Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Если не использовать фреймворк, то первое, чем вы будете заниматься в новом проекте — писать свой фреймворк (роутинг, контроллеры, шаблоны...).
magic("Hello world"), то человеку не испорченному этой ерундой придется открывать документацию к фреймворку и смотреть что там за magic, что там за appepie, что такое easyRequestBlabla и далее по аналогии.2015 год — конечно стоит!
веб-фреймворки (play, spark и т.д.)WUT?! Он чуток побигдатее… Видимо, вы имели ввиду spring mvc.
Останутся по-сути, голые сервлеты.Которые тоже, по сути, фреймворк, т. к. навязывает структуру программы и семантику обработки запросов. Без фреймворков — java.net.Socket.
Которые тоже, по сути, фреймворк,
Сумбурно, но основная мысль, надеюсь понятна. Фреймворк должен служить мощным ограничителем неразумных «хотелок» разработчика.
Не допускать написания говнокода. Просто сделать это невозможным физически.
нативном PHP ничто не мешает сделать 100500 запросов к БД в цикле
Тогда как это делает фреймворк, написанный физически людьми?)
Что мешает открыть и посмотреть как устроено, перенять себе?
Что мешает использовать поиск в случае проблем с реализацией?
А что мешает немного подумать самостоятельно и написать не 100500 запросов в цикле, а сколько конкретная функция требует?
Если бы вы использовали голый язык, то с такой проблемой столкнуться не пришлось бы. Язык он и есть язык и новому разработчику в команде не пришлось бы тратить столько времени на понимание фреймворка, он бы сразу смог работать.
Если бы вы использовали голый язык, то с такой проблемой столкнуться не пришлось бы. Язык он и есть язык и новому разработчику в команде не пришлось бы тратить столько времени на понимание фреймворка, он бы сразу смог работать.
«просто решить задачу» превращается в сложную и неопределенную «решить задачу с помощью фреймворка»
Плохо, что Spring стал своего рода стандартом де-факто. Его лепят везде, даже не задумываясь о целесообразности.
В большинстве проектов, которые я видел, Spring рудиментарен и проще и лучше было бы обойтись без него, чем с ним, заменяя легковесными библиотеками с целевым функционалом.
Велосипеды легче вести, контролировать и кастомизировать. Сколько раз приходилось биться в истерике, когда логически вроде бы все должно работать, но фреймворк либо кидает несколько страниц страшного эксепшна, либо еще хуже — просто игнорирует написаное или работает не как ожидалось? Это бич всех фреймворщиков
Насчет неплохого решения с архитектурной точки зрения я мог бы долго спорить. Тут и проблемы изначальной заточки только под разработку веб через MVC, и сомнительность самой парадигмы IoC, и куча совершенно ненужных прослоек, типа Spring Data, и тупо неудобство многих вещей, etc…
Как я уже сказал, IoC — с точки зрения архитектуры концепт достаточно сомнительный.
Как я уже сказал, IoC — с точки зрения архитектуры концепт достаточно сомнительный. Организация архитектуры более традиционными способами имеет преимущества.
Если все же нужен IoC, возьмите Guice — это мелкий IoC контейнер с отличной конфигурацией через DSL.
Затем, в реальном проекте очень быстро понимаешь, что и в нем нет необходимости: связать пару бинов можно и ручками.
Затем идет пресловутый Spring MVC. Благодаря Struts и куче выросших на нем кодописунов, он быстро проник в массы и стал стандартом де-факто. Идея была понятна, но совершенно непроработана.
В итоге, использование MVC на порядки усложнило разработку.
Кроме того, MVC легко позволяет делать плохо, что в неумелых руках ведет к полной дезорганизации. Могу сказать, что в 90% сайтов хватит Servlet + JSP + JSTL, про которые все как-то очень быстро забыли.
Для справки, Apache Tapestry — гораздо более проработанный и организованный фреймворк, нежели Spring MVC.
Spring Data — совершенно рудиментарен. Запросы к базе данных в реальном приложении — это нечто более, чем найти объект в таблице по полям. Repository-per-entity — совершенно глупый концепт, который заставляет пользователя делать JOIN вручную, увеличивая в N раз число запросов к БД.
Spring Hateoas — искусственный концепт экспортировать Spring Data через Rest. Те же проблемы, только еще с участием HTTP.
Т.о. большинство концептов Spring-а искусственны и годны только в теории и для демок.
Я об IoC и его scopes. В spring определен request scope, который сохраняет состояние объектов во время запроса. Однако его использование ограничено исключительно MVC контейнером. Когда запросы приходят, например, через JMS или RMI, придется разрабатывать и интегрировать свой scope. Сделать абстрактный request scope для всех endpoint-ов разработчики не догадались.
Кроме того, MVC включено в Core Spring Framework, а не существует как отдельный проект, что вместе с другими технологиями делает понятным целевое использование фреймворка.
Версии PHP, версии Mysql.
Тут кто-нибудь помнит, что такое php-nuke?
Или недавний пример с форума, человек пришел с проблемой, нашел Free-cms на хостинге не работает — ошибок лезет куча, cms-ке три года…
что после забрасывания проекта (а это 90% процентов случаев) — система через 3 года полетит в помойку…
А как жаль, там же ООП, гениальные реализации, добрая сотня классов.
за этот коротки период — 7-10 лет
И все будто бы имеет обратную совместимость, но то тут, то там всплывают приятные неожиданности.
Только фреймворки портят, скорее, разработчика.
Точно так же как упор на структуры данных, ООП, функционал, уводят от разработки фендаментальных вещей…
Ваши субъективное право относится к программированию как составляющей бизнеса.
есть выводы, сделанные на основе длительного наблюдения.
Кратко и конкретно: программисты ( «чем ниже уровень» ) почему-то у нас начиная с 90-х затравливались,
Формальным доказательством на 2015 год является почти полное отсутствие системного программирования в России.
P.S. Покажите мне российскую операционную систему, чтоб при загрузке там не торчало Ванилья Соурс и тогда можно переходить к формальным доказтельствам.
является почти полное отсутствие системного программирования в России.
И в общей массе уводит в сторону талантливых людей от фундаментальных разработок
У вас порядка больше на порядок, а может на 2, а может на n.
в 90-х преподавалась настолько безобразно, что складывать ощущение будто это делается просто нарочно.
готовые решения, под капот почти не надо залезать
Построй свой сайт легко и просто с такой-то системой 10 щелчками мыши
Фреймворки портят разработку