| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > Еще раз о недостатках JSP |
| Автор: Stampede 24.4.2007, 23:09 |
| На днях некий Zarar Siddiqi написал на java.net статью под названием http://weblogs.java.net/blog/zarar/archive/2007/04/are_jsps_dead.html Не сказать чтоб особенно толково, но в принципе основные недостатки перечислил: способствование плохим практикам, невозможность переиспользования кода, разметка в тегах вместо HTML, неудобство тестирования и пр. Я обо всем этом писал в статье http://forum.vingrad.ru/index.php?act=module&module=vingradfaq&article_num=002896. Интересно тут другое - реакция комьюнити. Чувака проооосто заплющили. Каждый проходящий мимо посчитал своим долгом отметиться в стиле "кошек не любите? да вы из просто готовить не умеете". При этом забывая, что речь шла не j том, как правильно готовить кошек, а стоит ли вообще употреблять их в пищу, когда есть гораздо более кошерные блюда. Меня это в общем не сильно удивляет. Просто я получил еще одно подтверждение, что нести свет знаний в массы - занятие не самое благодарное, особенно если нести его приходится, пробиваясь навстречу потоку. Не ровен час, затопчут. Но я все-таки попытаюсь. Не сейчас, попозже. Есть у меня одна задумка... Stay tuned |
| Автор: Maksym 25.4.2007, 12:13 |
| Stampede А что ты думаешь по поводу jsf и facelets? |
| Автор: Stampede 26.4.2007, 19:51 |
Хороший вопрос. Я нахожу, что общий вектор развития веб-технологий в Java направлен в сторону дальнейшей профанации процесса разработки ПО. За идеей компонентной ориентации JSF видится все то же стремление дать программисту в руки гуевый инструмент, в котором он мышкой натянет на шаблон веб-страницы всяких чекбоксов и таблиц, мышкой же привяжет их содержимое к источникам данных, и все это типа сразу должно взлететь. Взлететь-то оно, может, и взлетит, да только лететь будет строго по траектории, предписанной создателями. А захочешь отклониться, направить куда-то по своему желанию - ан опаньки. Не предусмотрено. И это правильно. Ты ведь хотел чтоб у тебя все было, и чтоб при этом не надо было учить HTML, CSS и JavaScript? Хотел. Вот и получи черный ящик. Только не поймите меня правильно. Понятно, что в JSF и facelets в коннечном итоге тоже можно сделать так, что будет работать как тебе надо. Беда только в том, что делать это придется через задний проход. Потому что технологии эти изначально были заточены под нечто другое, и преследовали иные цели. Цели, которые с понятиями программный дизайн и грамотная архитектура имеют очень мало общего. Такое вот мое ИМХО |
| Автор: Maksym 26.4.2007, 20:29 |
| В целом согласен. Не кажется ли тебе, что общий вектор развития веб-технологий в Java (да и всей отрасли разработки коммерческого промышленного ПО в целом) раскладывается на два ключевых:
Это достаточно понятно, хотя есть простор для наблюдения и анализа. Мне кажется, что ключевой вопрос в том, как не погрязнуть новшествах, навязываемых бизнесом; работать в правильном, со своей точки зрения, ключе и при этом оставаться конкурентно способным. Ведь в этих "быстрых" технологиях, действительно, кроется большая, хоть и "нехорошая" сила. И с точки зрения быстрого результата и внешней эффективности они очень сильны. |
| Автор: Stampede 26.4.2007, 21:14 | ||
Ключевое слово здесь - конкурентоспособный. И я утверждаю, что софтверный шоп, который выбрал (изначально менее очевидный) путь наработки собственных фреймворков, в достаточно короткой перспективе окажется значительно конкурентоспособнее шопа аналогичного профиля и размера, но использующего "ad hoc", "one-off" и "throw-away" принципы разработки - принципы, абсолютно имманентные в JSP-культуре. Другое дело, что отдельно взятому программисту не так-то легко добиться принятия конторой "правильных" принципов и методов разработки. Для этого нужно быть "особой, приближенной к императору", или хотя бы просто главным софтверным архитектом конторы. Ну что ж, тем, кто пока еще не на этой позиции, есть к чему стремиться. Как я когда-то выразился, плох тот кодер, который не мечтает стать архитектом |
| Автор: y3u 26.4.2007, 21:17 |
| ну даже не знаю... лично я давно работаю с JSP по модели MVC, скриптлеты писал всего за два года несколько раз и то потом на кастом теги менял, потому как делалось одно и тоже, а тег - как раз для повторного использования. Так вот, ничего криминального не вижу. Просто надо иметь опыт разработки для веба и строить архитектуру продуманно, тогда все будет просто до безобразия, хотя и не без своих заскоков... Велосити применял только как темплейт процессор для всяких шаблонов документов, впечатлился, тем более в нашем MVC фреймворке можно его вместо JSP спокойно привертеть без каких либо проблем. Жалко времени совсем нету, чтобы попробовать. Вот включили б велосити в JavaEE SDK (хотя, имхо, он и в SE ой как пригодился б), тогда голый JSP точно можно хоронить. А всякие JSF и иже с ними, не знаю... ни разы еще не видел чтобы в проектах серьезных их использовали. Видимо васем проще по старинке бекинг бинами и контроллерами с вьюхами... Другой вопрос, что сейчас все в сторону асинхронности развивается - это хорошо, но нужно, опять же, стандартизировать и написать хороший тьюторил. А то в джаве сейчас стока всего разного и вкусного, а главное новому конца и края не видать. А хочется соответствовать стандартам, хочется сертификат иметь... А в сертификате велосити нету, зато там есть JSP... А какой сертификат без опыта, без еженевной практике. Вот как-то так... |
| Автор: Stampede 26.4.2007, 21:57 |
| y3u, я очень рад за вашу контору и за тебя лично (на полном серьезе), что, используя JSP как основную технологию в слое View, вам удется избежать соблазна "попрограммировать на странице". Видать, был печальный опыт. И мне остается лишь искренне недоумевать, что мешает вам сделать следующий шаг и перейти на шаблонную технику рендеринга. Тем более что ваш MVC это позволяет. Неужели так нравится писать разметку в синтаксисе кастом тегов? И утяжелять страницы кучей невоспроизводимых описателей? Впрочем, это уже не столь существенно. |
| Автор: JUncle 27.4.2007, 08:25 | ||||
Не вижу в этом проблемы. Velocity бесплатен, со всеми зависимостями весит не более 500 кб.
Зачем работать на стандарты? Стандарт должен работать на нас. А если он этого не делает - к черту такой стандарт. |
| Автор: Maksym 27.4.2007, 12:21 | ||
Респект |
| Автор: am_sasa 27.4.2007, 15:45 |
| ща я выдам! JSP и JSF порочная технология создания макета страници со всякими разметками в любом виде! надо иметь объектом управления не страницу, а элемент страницы, как в десктопе! не окно, а разные панели окна, которые потом собираются в страници! от так я вижу наше будущее))) |
| Автор: Maksym 27.4.2007, 16:28 | ||
|
| Автор: Stampede 27.4.2007, 18:14 | ||
| И? Ну красивая декларация, рассчитанная на эффект среди ИТ-манагеров. А если взглянуть по существу? Что если мы в картинку добавим такие требования как малоглючность, тестируемость, расширяемость, масштабируемость, поддерживаемость... Кстати, очень символично, что автор от Sun делает упор именно на эти три фазы жизненного цикла: спроектировали, сваяли и отдали клиенту - типа нате, заберите, и долбись оно конем. С таким бабло-ориентированным подходом долгосрочные характеристики продукта действительно отодвигаются куда-то на десятый план. И денег, особенно в мутной мыльно-пузырной воде доткомов, с таким подходом можно наловить побольше. Но карму-то! Карму неужели не жалко? Ведь не дядина карма, своя собственная. Другой не будет. Добавлено через 8 минут и 30 секунд
Похвальная юношеская максима, но y3u вообще-то имел в виду в первую очередь сертификацию. И от этого вопроса так просто не отмахнешься. Нужно слишком уверенно чувствовать себя в професиональном плане, чтобы позволить себе роскошь не быть сертифицированным в тех или иных мэйнстримных технологиях. Так штааа... |
| Автор: Maksym 27.4.2007, 18:51 | ||
Ну так.. |
| Автор: JUncle 27.4.2007, 22:19 | ||
Это скорее географический вопрос. В субпровинции Росфедерации (не провинция в классическом смысле, но не Москва, и не Спб), сертификация вещь конечно не бесполезная, но практически ничего не решающая. |
| Автор: y3u 27.4.2007, 22:57 | ||
сертификаты, грамоты и прочая мукулатура будет очень нужна, когда надо будет сменить работу в возрасте 35+. А если хочешь занимать руковдящую должность в крупной компании, то там бумажка решает еще как, особенно если она на стене в рамочке висит, да еще если их штук 5 разных - совсем хорошо. Это, так сказать, подтверждение квалификации для тех, кто имеет косвенное отношение к твоей работе, к примеру на заказчиков очень благотворно всегда влияет всякая разная мукулатура, начиная от простых красочных буклетов с маркетинговой водой, заканчивая, совершенно ничего не значащими в нашей стране (ибо у нас все как делалось на колене, так и делается), но имеющимися у всех сертификатов качества ISO 9000, ISO 9001 - без них не будут покупать большие дяди и тети... А в начале карьеры, когда еще нет конечных целей, когда не значешь чем будешь заниматься через полгода, когда работу можно менять с легкостью, когда нет семьи и детей, когда не надо закрывать кредиты, когда ценят в первую очередь за сообразительность молодых мозгов и работу за еду и опыт |
| Автор: tux 27.4.2007, 23:08 | ||
Совершенно прав. Я вот что-то так и не удосужился заполучить хотя бы одну такую бумажку. |
| Автор: Maverick 28.4.2007, 10:40 |
| Позвольте все-таки несколько слов в защиту rad-систем... Я вообще был дельфистом... вот уже полгода-год осваиваем Java... Ну J2EE... Коллектив подсел на нее по моей инициативе - причем одним из аргументов было: хватит заниматься кнопкокидательством, пора становиться профи, кроссплатформенность и все такое... короче, взял на слабо... и начался кошмар... Не успеваешь освоить что-то одно - уже выходит новая версия... Каждая тема как матрешка - внутри сидят еще три, а тех еще три... Корпоративную систему пишем... Сначала хотели JDBC - быстро поняли: неудобно, стали писать свои классы-интерфейсы... Нарыли EJB... Взялись за EJB.... EJB1, EJB2, EJB3, Hibernate, TopLink, маппинги, аннотации...Я уже не говорю про аппликэйшн сервера... Одного Geronimo я мучил недели 3... GlassFish, JBoss и куча других... Вроде освоили - теперь интерфейс написать... гора материала... Проект уже с нуля переписывался раза 4... И так уже долго... Проблема Java - отсутствие нормального процесса программирования... слишком много для человека... Такое впечатление, что ты на огромном судне - один... ты капитан, кок, штурман, механик, матрос и наводчик орудия - и все это под обстрелом... Ничего не работает с первого раза... НИЧЕГО вообще... пока google не задолбаешь на полдня... Если в делфи - я был уверен, что все работает... то тут - никогда... Недавний пример, в SunAppServer 9.0 есть глюк, который не позволяет ему нормально отрабатывать редеплой из NetBeans (оооо, а IDE - вообще отдельный разговор, пробовали штук 5... )... Вышла 9.1... дай, думаю, обновлю... Скачал, она с NetBeans 5.5 не работает, скачал 5.5.1... получил 6 багов... погуглил, 5 исправил... на 6ом меня остановили фразой - пофиксено, будет исправлено в следующей версии... Кроме как тихо материться больше нечего... А IDEA - месяц я вручную деплоил и дебажил приложения, пока до меня не дошло, что под меткой GlassFish скрывается SunAppServer... Господа, для человека, который входит в мир данной тематики - слишком много и сразу, и все поаглицки... ЧЕРЕСЧУР... Особенно для людей, которым требуется давать РЕЗУЛЬТАТ В СРОК... Счас мучим интерфейс - web часть... Писал я вручную сервлеты, потом JSP- страницы... Думал об Springs, Struts... Только если еще и это год изучать - то когда вообще что-то будет... А функциональность требуется очень мощная... Поэтому я плюнул на изыски пока... Строчу в NetBeans JSF-странички и смотрю, чего же он генерит... Пойдем от обратного... результат параллельно знаниям... Это основное достоинстов RAD-систем... Освоение технологии паралельно разработке проекта... Да первые пару проектов будут топорными, но это дает человеку шанс не чувствовать себя идиотом и не опускать руки... и продолжать развиваться... |
| Автор: chief39 28.4.2007, 12:05 | ||
В каком смысле? Если хвататься сразу за всё, что позволяет джава? А если на делфях писать свой хитрый протокол, сложную логику приложения и гипер-красивое, кастом УИ - то чувствуешь себя только коком? Даже не знаю что сказать Насчёт деплоя из идеи - для этого лучше использовать ант или мавен. Которыми уже можно управлять из идеи. Насчёт серверов - вполне может быть, с джибоссом помучился... Но есть вариант... не брать бесплатные сервера, а прикупить один из дорогих и мощных. Делфи ведь, кажется, тоже не бесплатно? И если так трудно с серверами - то пжалте, можно без них. Под делфи ведь апп серверов нету? А то прям как: "у нас только ржавые велосипеды, а в той стране велики, машинки и ракеты космические. Но ракеты иногда ломаются и я с ними намучился. У нас проще." - дык кто мешает в той стране не лезть к ракетам? |
| Автор: Maverick 3.5.2007, 08:53 | ||||||||
вот-вот... темы-матрешки.... для банальной задачки расположения приложения на сервере - надо убить две-три недели на изучение дополнительных примочек...
Ну в дельфях - если среда берет что-то на себя, она это делает, а не делает вид, что делает... а тут шаг в лево, шаг вправо...
да чего-то я не уверен, что веб-сфера будет в основах своих сильно от джеронимо отличаться... что-то я смотрю: все эти платные сервера - это двоюродные сервера бесплатных...
Вот-вот.... У меня пока есть терпение разбираться и тыкаться... а у кого характер по злее - плюнет на хрен на всю эту бодягу... Если бы эти ракеты были бы постабильнее - космонавтов было бы гораздо больше... а так пока основные проблемы по освоению Java создает сам Java... |
| Автор: Stampede 3.5.2007, 11:54 |
| Я в общем согласен с Maverick, есть в JEE такое дело. Что могу посоветовать... Во-первых, проявлять здоровый консерватизм. Не пытаться гнаться за новомодными штучками. Не апгрейдить на только что вышедшие версии. Хотя бы полгода дайте им отстояться. Посмотрите, что о них люди говорят, что в баг репортах пишут. Я согласен, это не всегда помогает, но это хотя бы какой-то выход. Во-вторых, советуйтесь в вопросах выбора инструментов. В том числе и на Винграде. Людей с опытом тут достаточно много, может что-то и присоветуют (или наоборот отсоветуют А в общем да, нету блин silver bullet'ов. |
| Автор: chief39 3.5.2007, 12:57 | ||
Нууу... тогда можно это же заявить сишникам, которые мэйк юзают уже сто тыщ лет. Но, как по мне, две-три недели на ант и простые шаги в сторону сервера приложений - это задофига. Разве что на третьем курсе института покатит :-/ Но, в принципе, в том и суть, что для работы с велосипедом тебе не надо знать как работает система охлаждения, ху из распредвал, что такое сцепление и гидроусилитель. Не хочешь гидроусилителя? Не ставь. Так проще. Но баранку придётся крутить двумя руками. "для банальной задачки расположения приложения на сервере" - для ознакомления, конечно, неплохо бы за две минуты натягать компонентов и сразу увидеть бесполезный но работающий вариант... но ведь деньги не платят за "банальные задачи" Я бы и сам не против чтоб, как в анекдоте, ракета состояла всего лишь из х...ны и пое...ни. И чтоб эти части были взаимозаменяемы. Но пока такого никто не смог придумать. Сможешь? |