Каковы современные тенденции веб программирования?

Здравствуйте, уважаемое сообщество.

Я динозавр веб разработки, начинал в 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?

Буду очень признателен, за ваши советы, спасибо.
  • Вопрос задан
  • 6060 просмотров
Решения вопроса 1
Gorky
@Gorky
Веб-разработчик
Вставлю свои пять копеек. Имхо, по большому счету то, НА ЧЕМ ты пишешь имеет значение лишь в очень крупных проектах с большой командой и постоянными обновлениями. Там выбор стека на старте наложит отпечаток на все остальное. В 99% остальных случаев стек технологий совершенно не важен, если ЗАДАЧА ВЫПОЛНЯЕТСЯ.

Я такой же динозавр, только еще более древний, с нулевых годов пишу сайты. Слежу в пол глаза за всеми новыми течениями, языками, фреймфорками, IDE. Но категорически не вижу причин переходить на них для себя. 99% всех заказов под веб можно реализовать на том же вордпрессе или каком-то другом движке, на самописке и тд. И только один процент заказчиков реально знает что ему нужен например SPA на вуе с нереляционной БД и тд. Тот же SASS или лесс, который одно время взрывал фронтэнд тоже так и не убедил меня в своей нужности. Хотя я честно смотрел видосы с объяснениями-сравнениями, сам писал на них и тд. Если ты пишешь базовые css стили аккуратно и продуманно, разбиваешь на кусочки при необходимости и тд - у тебя и так никогда не возникнет проблем.

По факту, все что изменилось в моем личном мире за последние лет десять - это добавилось немного ООП в собственном коде и сменилась среда где я писал с дримвивера на atom. ВСЕ. Остальное как было php/mysql/html/css/js-jquery так и осталось. И знаете что? Этого с головой хватает чтобы решить ВСЕ задачи которые передо мной стоят. И я совершенно себя не чувствую каким-то ущемленным или устаревшим.

Фишка мне кажется в том, что когда появится что-то действительно прорывное, супер удобное, стоящее и тд - у вас не будет стоять вопроса "а зачем мне это, а стоит ли переходить". Вы однозначно поймете что да, стоит, это круто и ускорит/улучшит процесс и результат вашей работы.
Ответ написан
Пригласить эксперта
Ответы на вопрос 10
@andrei_pro
Работаю фул-стек разработчиком уже давно и использую именно такой стек почти везде, поделюсь мнением.
Стек Bootstrap + Laravel + VueJS вы выбрали отлично, подойдет для любого уровня приложений. У нас хайлоад управление админкой мы делаем на Laravel + VueJS, а хайлоад апи на симфони и ноде.

Отвечая на ваши вопросы:
чтобы оно было универсально, то есть корректно отображалось на смартфонах, планшетах, десктопах

Bootstrap как раз для этого, изучите все детали верстки на разные устройства.

чтобы оно корректно работало на старых/дешевых смартфонах

Забудьте про jQuery, пишите на vuejs (>es6) + vanilla js, используйте вебпак + полифилы если старые девайсы нужны.

Подытожу: учите bash + git + composer + laravel + vuejs + bootstrap + sass + js (es6) + docker. (бутстрап по желанию, если объем стилей не большой пишите на чистом css)
Ответ написан
@promex
Если сайт заточен под трафик из поисковиков, то все новомодные "laravel + vuejs + bootstrap + sass + js (es6) + docker" жестко идут лесом

- чтобы оно было универсально, то есть корректно отображалось на смартфонах, планшетах, десктопах
- чтобы оно корректно работало на старых/дешевых смартфонах

Велик тут изобретать не нужно. Если сайт делается под индексацию поисковиками, то старая добрая связка php + js + jquey + ajax это то, что оптимально. Подстраивание под разные экраны делаем в css правилами media

ну а если пофиг на то, что сервера в браузер будет приходить почти пустая страница, после чего сразу динамически изменяться, вводя в ступор поисковики, то тогда гуляй поле конечно
Ответ написан
AntonBoltnev
@AntonBoltnev
Со-основатель сервиса поиска продавцов Bicco
чтобы оно было универсально, то есть корректно отображалось на смартфонах, планшетах, десктопах


Bootstrap учить далеко необязательно. В нем много лишнего. И порой ты можешь столкнуться с проблемой неBootstrap макета. Если дизайнер не нарисовал по сетке - бутстрап ваш только проект загрузит барахлом не нужным и придется переопределять стили. Что геморойно и опять же сжирает байты.
Научитесь лучше верстать на flex или grid. В нативное поведение этих css-свойств уже зашито адаптивное поведение.

чтобы оно корректно работало на старых/дешевых смартфонах


А насколько старыми они должны быть? iphone 3-4? и подобные?
Начнем с того, что эти устройства, на сколько мне известно, не поддерживают интернет выше 3g. А на таком соединении у них даже лендинги будут грузиться не быстро.
Тут тонкий момент. Либо ты постоянно пытаешься подстроиться под старое унылое г....:) Либо ты забиваешь на это и кодишь современно! Почитай про Изящная деградация vs. постепенное улучшение

Что касается того на чем вообще писать код. По бекенду не скажу, но очень популярна (как и всегда) Java. Из относительно нового - Node.js
Во Фронтенде если 3 фреймворка вокруг которых уже не первый год твориться истерия:
- Vue.js
-React.js
-Angular (уже мало кто пользует с нуля. В основном это поддержка уже написанных проектов)

Я для себя, как фронтенд, выбрал Vue.js
У него самый низкий порог вхождения и понятный "подкопот".
Популярность пониже чем у React.js, но набирает обороты.
Ответ написан
Sanovskiy
@Sanovskiy
Веб-разработчик с 2005 года
Привет, коллега-динозавр. Лично я нынче пишу простые бэкенд-апи с минимальными завязками на фреймворки. Максимум - сторонние библиотеки и компоненты симфони из композера
Фронта почти не касаюсь. Если требуется фронт, пилю скелет на бутстрапе и оживляю его скриптами на ECMAScript6. Т.е. описываю объектную модель сущностей на странице и взаимодействия между ними.
Чаще просто предоставляю документацию по апи фронтендеру.
Ответ написан
jun-dev
@jun-dev
Ищу подработку, делаю дешево и на совесть.
Главное - не перегружайте свой сайт лишними и громоздкими скриптами. Без фанатизма. Сейчас весь "цивилизованный" веб очень засран тоннами JS фреймворков и разных библиотек, их нынче пихают по поводу и без такового. Всё же порой лучше сделать "по-старинке" и работать оно будет лучше чем на Vue.js/Angular/вашлюбимыйфреймворк.жс тем более если есть производительный сервер. Не стоит забывать о пользователях Windows, так как некоторые хипсторы любят оптимизировать свои сайты под розовый Сафари на Аймаке, в результате сайт может совершенно меняться, как правило не в лучшую сторону. И это не говоря о старом железе, на котором стоит Windows XP. Конечно не стоит тормозить прогресс, но и не стоит идти у него на поводу.
Лучший сайт тот - который приносит пользу своему посетителю, в 99% случаев ему плевать на чём написан сайт, ему важен конечный результат. Но если он будет тормозить, сжирать траффик или крэшится, врядли человек к вам вернется, да ещё и другим расскажет.
Ответ написан
Комментировать
iCoderXXI
@iCoderXXI
React.JS/FrontEnd engineer
Был я когда-то фуллстеком, так же на пыхе в процедурно-функциональном стиле кодил бэк, ООП был в виде подключения всяких библиотек типа Smarty, DBSimple. Году в 10 надоело плодить бойлерплейт, психанул и запильнул небольшой фреймворк, осознав, что основная логика уехала на фронт, поэтому движ делал упор в отдать первичную верстку и поддерживать кучу AJAX-запросов удобно. Фронт делал на jQuery с плагинами.

До некоторой поры это работало прекрасно, пока, однажды, не пришлось пилить форму на 60 полей с кучей логики для интеграции внутренней CRM заказчика с Цианом. Особенно когда через несколько месяцев пришлось менять логику, т.к. жизнь не стоит на месте...

Окончательно меня добила форма для подачи заявок на ипотеку на 8 страниц и 300 полей с конфигуратором и возможностью отключать любые поля, блоки и даже страницы. Заказчик потребовал реализации на jQuery, хотя я уже вовсю тогда увлекался React' ом.

В общем что поезд былого ушел и нужно переквалифицироваться я осознал году в 2014-2015 окончательно, чем тут же и занялся.

Сначала я метнулся в Node.JS, но там мне показалось всё скучным, поэтому я переключился на фронт, преимущественно на React + Vanilla. Оказалось, что я толком и не знал JS, поэтому я стал методично закрывать все свои белые пятна. Один из лучших способов что-то выучить - начать учить этому других, поэтому я пошел наставником по JS куда взяли, что помогло в сжатые сроки освоить базу, т.к. сам для себя можешь и смухлевать, а когда ответов ждут другие люди, это очень дисциплинирует. :)

В перспективе планирую все же вернуться к фуллстек разработке, но уже на базе Node.JS + React, т.к. лично для меня данный стек наиболее комфортный.
Ответ написан
@Urukhayy
Можете взглянуть на MEAN
Ответ написан
@Romario21
Тут главный вопрос че мы пишем.
Если документоориентированные системы(типо инет магазины, блоги, новости).
То собственно Laravel, Symphony ну и т.д JS c его фреймворками тут нах не сдался.

Для простеньких SPA приложений можно конечно React, Vue. Но это только для простеньких, для сложных бизнес приложений они не очень подходят (ибо не стабильно и долго). Вообщем сложных проектов на на них нет и кто б че ни говорил.

Для бизнес приложений (куева туча таблиц, отчеты, не тривиальные бизнес логики).
Я бы посоветовал Vaadin - это java web фреймворк.
Вообщем все что крутится на Java или C#.

Так же для больших корпоративных клиентосов никуда не исчез Desktop.

По поводу телефонов никто уже не заморачивается на адаптацию сайта, под экран. Т.к разрешение современных телефонов большое, все кто смог давно написали мобильные клиенты.
Ответ написан
devellopah
@devellopah
ну так пишите api на laravel(lumen) и spa на vue.js, маршрутизация через клиент, если нужно ssr, то в php есть модуль

Также интересно будет обратить внимание на typescript, graphQL(альтернатива rest)
Есть ещё такой список со стеками, ещё одна полезная ссылка
Ответ написан
Комментировать
Digiport
@Digiport
PHP рулит
Привет!
Если ты динозавр, то я окаменелое говно этого динозавра. Опыт с 1990 года :)

- чтобы оно было универсально, то есть корректно отображалось на смартфонах, планшетах, десктопах

Используй фреймфорк, коих множество (jQuery Mobile, Bootstrap, Framework7, Onsen UI и т.п.)

- чтобы оно корректно работало на старых/дешевых смартфонах

Чтобы старые смарты не висли, генерите контент на сервере (требуется мощный сервер), отдавая готовый код. Или же совмещайте генерацию на сервере и на клиенте. Всё зависит от конкретной задачи.

Отмечу, что я для генерации кода использую jQuery-подобную библиотеку для PHP. Те же селекторы, те же методы - очень удобно!
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы