Каковы современные тенденции веб программирования?
Здравствуйте, уважаемое сообщество.
Я динозавр веб разработки, начинал в 2005 году. Пишу на чистом PHP (причем в процедурном стиле, пардон) и нативном JavaScript (с добавлением jQuery). Так получилось, что везде, где бы я не работал, я был единственным специалистом и варился в собственном соку. Соответственно выполнял роль фулстек-программиста. Не оправдываю возможную свою лень, но загрузка везде была большая и на самообразования не хватало времени.
В итоге, как выглядели мои сайты или так сказать веб-приложения: на php я генерировал динамические html страницы с JS кодом. При необходимости локального изменения данных в браузере клиента - отправлялся ajax-запрос на сервер, который генерировал готовый html-блок, который затем вставлялся в нужное место.
Правильно я понимаю, мир сильно изменился, теперь серверная и клиентская часть сильно разошлись. Сервер уже не генерирует динамически страницы, он служит лишь источником и обработчиком данных (аналог API-сервисов). Клиентская часть разрабатывается на JS-фреймворках и весь процесс генерации интерфейса идет уж в браузере клиента?
В чем я запутался, с одной стороны все перешли на JS-фреймворки и теперь отрисовка происходит на стороне клиента, что выдвигает определенные требования к железу клиента (иначе тормоза).
При этом Google с его Lighthouse и методом ранжирования сайтов говорит, что сайты должны быстро загружаться и быстро отображаться, и это они теперь в первую очередь проверяют на старых смартфонах.
Очень много читал, прежде задать здесь вопрос (крик беспомощности). Про ООП понятно,все на него перешли и альтернативы нет. Про PHP выбрал к изучению Laravel, про JS, CSS, HTML - понял что нужно изучать Bootstrap для адаптивной верстки, VueJS - в качестве JS-фреймворка.
Прошу прощение за длинное вступление, теперь собственно вопросы:
Подскажите как быть если есть такие требования к сайту/веб-приложению:
- чтобы оно было универсально, то есть корректно отображалось на смартфонах, планшетах, десктопах
- чтобы оно корректно работало на старых/дешевых смартфонах
Разделить клиентскую часть и серверную часть: на чистом PHP отдавать/обрабатывать данные, на VueJS и Bootstrap делать интерфейс.
Или
По прежнему на PHP уже с Laravel генерировать страницы для пользователя с Bootstrap и jQuery?
Разделяя клиент и сервер, вам еще нужно будет позаботится о SSR, ради поисковиков.
Для этого на серваке потребуется нода или v8js. Оба случая практически исключают возможность использования shared хостингов.
Ну конечно это дополнительные килобайты текста для изучения =))
Если нужно сделать
- чтобы оно было универсально, то есть корректно отображалось на смартфонах, планшетах, десктопах
- чтобы оно корректно работало на старых/дешевых смартфонах
просто возьмите ларку и сделайте.
И вот этот тезис в корне неправильный:
нужно изучать Bootstrap для адаптивной верстки
Для адаптивной верстки нужно css знать на пятёрочку.
DarthWazer, без расширенного описания, вопрос будет слишком общий, а тут видна подоплека проблемы.
Но в любом случае вы здесь управляете, можете делать то, что считаете нужным.
Не надо учить Boostrap, лучше сразу познайте сетку Grid.
ОСОБЕННО не используйте бутстраповские менюхи или тп в коммерческих целях ибо если клиент захочет поменять вам будет оч трудно
Андрей, так сложилась судьба, что только в начале этой карьеры, я работал в компании, где делали много сайтов. А потом были проекты в которых я был единственным программистом и работал над единичными проектами. Загрузка была очень высокой, что некогда было читать что либо кроме stackoverflow. Периодически были моменты когда заходил на хабр, видел - о вот новый фреймворк, который все хвалят, надо будет изучить. Но заходя через полгода уже был новый всеми хвалимый фреймворк. Так вот время и летело....Сожалеть поздно.
Я до осени 2017 года всегда работал только сольно, с нуля и под ключ, совмещая в единственном лице и аналитика, и архитектора, и базовика, и бэкера, и фронтендера, и тестировщика, и саппорт. Всегда был единственный, а потому, первый парень на деревне, воспринимаемый остальными сотрудниками где-то на уровне то ли шамана, то ли колдунщика, то ли волшебника, то ли магистра серо-буро-малиновой магии. До кучи еще системным администрированием занимался, эникейством и прочим. Потом поумнел, добился от начальства взять помощников и стал делегировать всю ернудистику им.
Году в 2011 я даже успел побыть CTO стартапчика, причем все шло хорошо, но стартап сдох не родившись по финансовым причинам. И я, будучи совершенно уверен в своей высочайшей квалификации и способностях, ринулся штурмовать вакансии в гигантах типа Яндекса, где меня быстро спустили с небес на землю. По части JS я не тянул даже на стажера, хотя на jQuery делал достаточно сложные вещи...
В общем для разработчика весьма опасно подолгу работать сольно. Теряешь ориентиры и адекватное восприятия реальности. Поезд уходит в даль, а ты даже не подозреваешь, насколько отстал от действительности...
Но пара ледяных душей, и ты уже проснулся и с оптимизмом смотришь в будущее... :D
Тут главный вопрос че мы пишем.
Если документоориентированные системы(типо инет магазины, блоги, новости).
То собственно Laravel, Symphony ну и т.д JS c его фреймворками тут нах не сдался.
Для простеньких SPA приложений можно конечно React, Vue. Но это только для простеньких, для сложных бизнес приложений они не очень подходят (ибо не стабильно и долго). Вообщем сложных проектов на на них нет и кто б че ни говорил.
Для бизнес приложений (куева туча таблиц, отчеты, не тривиальные бизнес логики).
Я бы посоветовал Vaadin - это java web фреймворк.
Вообщем все что крутится на Java или C#.
Так же для больших корпоративных клиентосов никуда не исчез Desktop.
По поводу телефонов никто уже не заморачивается на адаптацию сайта, под экран. Т.к разрешение современных телефонов большое, все кто смог давно написали мобильные клиенты.
Извините, но вы тут написали бред. Особенно улыбнуло - "ибо не стабильно и долго". Вы, наверное, совсем не вникали в Vue/React. Потому что это как раз-таки стабильно и быстро, если изучить документацию.
Насчет телефонов - процент мобильных пользователей огромен. А разрешение в разы меньше десктопных. Адаптация нужна, если не хотите терять клиентов. Пилить нативные приложения под Andriod/iOs имеет смысл только в том случае, когда у вас не информационный сайт, а какой-нибудь облачный сервис. Тогда, конечно, нативное приложение будет удобнее и пользователи будут его качать. В противном случае оно нафиг не нужно, проще перейти на другой сайт, который будет нормально отображаться, чем устанавливать очередное приложение.
kn1ght_t, сложные приложения крутятся в финансовых структурах и огромных холдингах.
Там черт ногу сломит в бизнес логике и ее визуализации(разные департаменты,отделы, пользователи).
И всех своя бизнес логика, свое поведение UI компонентов.
Вот на пример как-то писал для Пепсико одно приложение, там среднее кол-во полей у объектов 120-170
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.