-
Notifications
You must be signed in to change notification settings - Fork 22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Должен ли наноостровной контрол тригерить nb-* события в перемешку с нативными? #377
Comments
Мое мнение: если уж библиотека берет на себя смелость кидать кастомные события, то она должна кидать только их. Кто знает, что станет с островным |
#376 |
@yandex-ui/nanoislands |
Я сторонник противоположного мнения. Есть стандартные события и надо поддерживать с ними совместимость не нарушая по максимуму. Ломать легче, чем строить. Если строится новая абстракция, то она должна решать проблемы которые существовали в старых абстракциях. Новое имя для событий не решает каких-либо проблем. И я до сих пор не понял концептуальной разницы
А что изменится? Принципы, набор событий? А вообще думать в такую сторону противоречит YAGNI. Слишком смелое предположение:)
Она в любом случае будет это делать, если элемент интерфейса имеет состояние фокуса.
Хорошое покрытие функциональными автотестами + ручное тестирование решит проблему. Юнит тесты уже есть. Да и мой ответ на issue - наноостровной контрол не должен тригеррить вперемешку c нативными. Он должен расширять контрол новыми событиями и сохранять старые, а не переопределять старые(если конечно же функциональность одна и та же) |
Да, именно события и изменится. И все поломается. Абстракции возводятся для того, чтобы избавить от такой головной боли. Если Вадим инкапсулирует нативные контролы, то я не должен задумываться о том, что у них под капотом, и какие события он кидает.
Совсем необязательно, ведь наноострова властны над тем, что прокидывают их внутренние контролы. |
|
Ничто не мешает изменить все кишки(хотя на канве, хоть на svg) контрола и оставить имя события 'focusin' без изменений. Не понимаю это мысль - событие предоставляет всего лишь интерфейс контрола, но не его реализацию. Меняй внутри, что хочешь, но интерфейс надо держать по максимуму совместимым с веб-стандартами. |
Мне лично все равно, как их называть, сейчас проблема в другом: на данный момент реализация такая, что если ты перешел в 2 события фокуса, прокидываемые контролом, вводят путаницу, мой посыл в этом. |
Ну с этим я не могу не согласиться. |
и туда же #344 |
Я еще хочу напомнить что завтра там может уже не быть нативного инпута в реализации. |
я за то, чтобы все элементы кидали нативные события. Во-первых, если я решил использовать библиотеку, я хочу только красивые кнопочки и уж точно не хочу заново изучать все события, которые мне нужны и держать их потом в голове. Во-вторых, все должно поддерживать стандарт, даже если кто-то что-то на него навесил сверху. Я считаю, что в не зависимости от реализации интерфейс взаимодействия с элементами не должен меняться. Взять в пример тот же MVC, разве от изменения view мы должны переписывать все остальное? Эти части не должны быть жестко зависимы друг от друга. И здесь тоже самое, мы меняем контрол в шаблоне и не должны после этого переписывать всю его обработку в js. Иначе работа с библиотекой становится слишком дорогой. |
Да, сорь, ошибся. |
Согласен. |
Предыстория: Для 3 контрольных вопросов Саша попросил Вадима сделать возможным прослушивание нативного события
focusin
отinput
a в ущерб наноостровномуnb-focused
. Пожелание было реализовано, и у нас благополучно отвалились саджест и поиск, которые опирались на событиеnb-focused
.Вопрос 1: должны ли острова давать возможность разработчику слушать нативные события?
Вопрос 2: как сделать так, чтобы нововведения, заказанные одним человеком, не ломали код, написанный другим человеком в проде? Как на концептуальном уровне (а то получится, как в басне про лебедя, рака и щуку), так и на уровне юнит- и автотестов.
The text was updated successfully, but these errors were encountered: