?

Log in

No account? Create an account
Про фреймворки - In 3.14 we trust [entries|archive|friends|userinfo]
BrotherFlame

[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Про фреймворки [Aug. 23rd, 2011|07:57 pm]
BrotherFlame
[Tags|]

Сегодня столкнулся на работе с тем, что придется потратить день или пол-дня, чтобы помочь коллеге развернуть систему на его рабочем месте. Возникли проблемы с хибернейтом. Если бы там использовался просто jdbc, проблем бы не возникло.

Сравнивая две системы на предыдущем месте работы и на текущем, можно сказать, что первая была архитектурно красива. Но в ней не было ни одного фреймворка, только стандартная ява.
Вторая, которую я сейчас переделываю -- включает их три:

спринг
хибер
рич фейсес

И она архитектурно уродлива.
Беда.
Даже со скидкой на огромную разницу в уровне разработчиков, очевидно, что фреймворки не панацея.

Нужно четко разделять понятия:
1) что полезно для резюме
2) что полезно для маркетинга
3) что полезно для дела

Фреймворки полезны, для резюме. Все хотят, чтобы у разработчика было много фреймворков в резюме.
Фреймворки полезны, для маркетинга. Можно убедить заказчика, что использования фреймворков уменьшит риски по поддрежке кода в случае смены подрядчика. (Это не так, но все верят что так, на самом деле решает только стиль программирования, уровень разработчиков и наличие документации).

Но, для дела они очень часто не нужны. Их "необходимость" и "выгодность" не обосновывается ничем, кроме больной фантазии старших разработчиков или самодеятельностью программиста (см. п. 1). Нельзя подменить культуру делать что-то хорошо, например, программировать, "умением" использовать модные и мощные инструменты. Подмена умения и понимания того, как правильно класть кирпичи, на покупку супер мастерка от Юдашкина, не принесет каменщику дополнительного дохода.

В случае с нашей системой, хибернейт дает (и это уже проверено) ощутимые минусы к скорости разработки по сравнению с jdbc. И речь не о том, что разработчики слабые, а о том, что для фиксированных разработчиков, которые далеко не первый раз используют хибернейт, время на разработку больше, чем в случае с jdbc.

Спринг (quarz) используется только что бы запускать job по расписанию, причем через Томкат. Хотя с этим бы прекрасно справился бы Крон.

Рич фейсес дают небольшой профит, но возможностей JSP и стандартной библиотеки тегов хватило бы с избытком, к тому же JSP проще сверстать.

С другой стороны, умение думать, делать такие системы, которые со временем не требуют усилий на рефакторинг, и применение на практике таких вещей как code reuse, например, ни одним фреймворком не заменяется.
LinkReply

Comments:
[User Picture]From: realbot
2011-08-31 12:21 pm (UTC)
Единственное с чем соглашусь, так это с той мыслью, что каждая конкретная задача требует конкретного иструмента, который решит эту задачу наилучшим образом. И кэп как бы намекае ...

По поводу всего остального, маркетинга и т.д. ... ну Сашь ... ни знаю как там с вашими промышленными фрейворками, но причем тут это ваще. Или с резюме ) Напомнило ситуацию на моей нынешней, начальнег говорит: "Если сейчас придет еще какой нибудь крендель и начнет рассказывать где он и как получал вышку, пошлю незадумываясь". Ну тоесть когда человек не знает, что говорить о настоящем он говорит о прошлом.

И поповоду хибера. Ты сравниваешь ORM с кроссплатформенным интерфейсом для СУБД, это все равно, что сравнивать кремнивое ружье с винтовкой Драгунова. И потом, по-моему, что то является частью другого, не? )

А то что не разобрались ... ну чтож, например сам неделю не мог драйвера для видюхи настроить. Это уже технологическая проблема и к фрейворкам это имеет такое же отношение как к любому другому софту. Так же и какой нибудь нетбинс можно день ставить на ту же соляру.

А скажика мне SDK это вообще что, ну или те же сервлеты + JSP, просто набор библиотек который обязует тебя следовать ряду соглашений по разработке?
Да конечно, можно сказать, что для данной конкретной задачи инструмент избыточен и вообще не применять его, но ставить крест на всем софте который грубо говоря более высокоуровневый, на мой взляд не стоит.

И по поду профессионализма, естественно ни один фреймворк тебе мозгов не добавит если ты его только применяешь, а если ты знаешь как он и почему работает, да еще ни только он, да еще и коммитешь в него ) В общем разобраться во внутренностях фрейворка, это самый лучшей сопособ разобраться с целым классом задач для которых он применяется. Это как книга написанная на любимом языке ).

И во всем своем рассуждении ты упускаешь чуть ли не основуную состаляющую - это качество софта и степень покрытия тестами.

Ты можешь описать свою логику на JDBC для моделей, но есть какие то общие штуки, которые за тебя добрые дяди уже протестировали. И в любом случае твоя реализация будет в чем то уступать ) не потому, что ты хуже этих дяденек, а потому что они сделали это раньше и набрали больше экспы.
(Reply) (Thread)