Очень интересное ощущение - оказаться на переднем краю (во временных масштабах Java) развития какой-то технологии (JavaFX) после работы со стабильной, читай мертвой (Swing). Стабильный API, JavaDoc, книги, стопицот ответов на StackOverflow в конце концов. Для любой проблемы известно не одно решение, боле того "после двух релизов баг становится фичей", а следовательно ждать исправления нет смысла. Первое что замечаешь - нет JavaDoc, в том, что есть - нет примеров. Второе - есть баги. Тысячи их, а багтрекер почему-то не просто доступен только после регистрации, более того, он закрыт для индексации. Когда делал что-то на Swing у меня ни разу не было желания засабмитить багрепорт, сейчас - постоянно. Третье - всё самое вкусное и желанное будет в версии next. Восьмерка выйдет весной следующего года, если опять не отложат.
Рано или поздно все сталкиваются с нерешаемой красивыми путями проблемой, а чем активнее развитие технологии, тем чаще это случается. У всех, правда, разный порог нерешаемости. Приняв неизбежность, пишем свою обёртку, если код написан с принципом Open-Closed в голове, то перегружаем пару методов, если нет - то копируем всё. После чего исправляем ту самую проблему, пишем обоснование и ссылку на багрепорт. Когда-нибудь это можно будет удалить.
Иногда эта проблема такая маленькая и незаметная, что хочется исправить это здесь и сейчас. Почему это зло и затычки нужно прятать в максимально низкоуровневом коде? Потому что эта затычка начинает расползаться по коду, нет централизованной возможности исправить всё оптом, когда появится решение проблемы, а самое страшное - что можно забыть или не знать и опять начать решать уже решенную проблему.
Инкапсуляция говнокода
![]() |
When a small hack could solve all my problems |
Иногда эта проблема такая маленькая и незаметная, что хочется исправить это здесь и сейчас. Почему это зло и затычки нужно прятать в максимально низкоуровневом коде? Потому что эта затычка начинает расползаться по коду, нет централизованной возможности исправить всё оптом, когда появится решение проблемы, а самое страшное - что можно забыть или не знать и опять начать решать уже решенную проблему.