Теперь я не могу сделать даже маленький сайт



    Короче, я хорошо помню, как в 2013 году я сел и написал небольшой сайт за один день.

    Это был сайт про события моего родного города. На одной странице выводились все мероприятия на грядущую неделю.

    Я сделал страничку с мероприятиями, и небольшую админку, где они редактировались. У меня была книжка по PHP, поэтому сайт я написал на PHP, подключил MySQL-базу, сверстал на HTML и CSS, и залил на виртуальный хостинг. Сайтом пользовались, а я усердно добавлял мероприятия каждое утро, пока не ушёл в армию, не оставив никого на поддержку. Так сайт и почил.

    Идея сайта всё ещё казалась хорошей, и я решил его возродить. Казалось бы, бери и делай, но против меня играло то, что я толком не помнил PHP, и уже успел набраться опыта разработки в очень больших, средних и маленьких компаниях.

    Я решил взяться за дело и стал думать.

    Хм, не могу же я просто взять PHP и написать на нем несколько страничек вперемешку с HTML. Как я буду это поддерживать без ООП и вообще нормального разделения кода? К тому же, все говорят, что PHP уже не очень, да и сколько новых версий вышло!

    Наверно, мне нужно взять что-то более современное, Node.js или Python. Но я, конечно, не буду просто писать на них потому, это не Best Practices. Пожалуй, возьму какой-нибудь фреймворк, например, Django или Express.js. Впрочем, это самые популярные фреймворки, а есть другие, посовременнее, надо поискать.

    Определившись, что я буду использовать или Python, или Node.js, я понял, что просто так отдавать целые странички с сервера нехорошо. Как мне в таком случае сделать всплывающие окна авторизации или динамическую подгрузку? Ну уж не с jQuery, упаси боже! Пожалуй, возьму React или Vue.js, чтобы написать правильный, разбитый на компоненты, интерфейс. Angular будет уже перебором, конечно. Используя фреймворк, мне нужно подключаться к бекэнду по API, поэтому использую Django REST Framework или вроде этого. Хорошо, что Express.js умеет так сам по себе, пожалуй, стоит выбрать Node.js в итоге. На фронтенде мне стоит подключить Axios, хотя теперь есть Fetch, но поддерживается ли он всеми браузерами? А может быть мне вообще использовать Svelte, чтобы заодно научиться чему-то новому?!

    Теперь стоит правильно настроить IDE, для того, чтобы соблюдать Code Styles, правильные отступы, и никогда не забывать писать тройное равно вместо двойного. Настройка получается с трудом потому, что плагины IDE спорят друг с другом и упорно делают отступ из четырёх пробелов, а не из двух.

    Разобравшись, я понимаю, что мой код нужно где-то хранить. Так как я уже порядком устал, выберу популярнейший GitHub. Настроив Git и авторизацию через ssh на моем компьютере, я понимаю, что я не знаю, какую систему ветвления использовать. GitFlow слишком избыточна, пока я один, но не коммитить же все в мастер-ветку? Мало ли к проекту кто-то присоединится, или, если я покажу репозиторий на собеседовании, все будут смеяться. Остаётся и непраздный вопрос, что писать в описаниях коммитов и на каком языке, но оставим это на потом.

    Стоит подумать, как это все дело развернуть на хостинге. Если бек на Python, то нужно создать виртуальное окружение и работать в нем. Почему-то на сервере сходу это не получается, что-то вечно падает. Кстати, нужно запускать приложение как сервис, чтобы всё перезапускалось после падения! Всё, теперь точно берём Ноду! Для бека на Node.js же нужно найти такой хостинг, где Node.js работает, а они все облачные и очень современные. Там нужно настроить развертывание проекта из репозитория на GitHub, но я не могу просто подключить мастер-ветку, потому, что тогда все мои изменения будут сразу же попадать на сервер, а это не очень хорошо. Конечно, можно разворачивать вручную, но это тоже как-то несовременно. Пожалуй, снова подумаю о системе ветвления.

    Ах, еще же БД! Вроде PostreSQL хорошая, и я даже с ней работал, но, может, мне нужна nosql-база? Остается открытым вопрос, как ее развернуть на сервере, и как поддерживать одинаковую структуру на моём компьютере и в облаке без потери данных, но до этого пока далеко.

    Ах, чуть не забыл. Раз фронтенд на JS-фреймворках, то нужно подумать о Server Side Rendering, важно, чтобы мой проект индексировался. Хм, не нужно ли для этого применить Next.js или Nuxt.js? Надо подумать.

    Так как я уже стал что-то забывать, то нужно и какой-нибудь таск-трекер прикрутить, чтобы отслеживать задачи и прогресс. Стоит ли мне воспользоваться методологиями Scrum или Kanban? Или пока я один, можно и так? А как же тогда следить за дедлайнами?

    Ещё я не подумал, конечно, о TS, ES6, SASS, PUG, GraphQL, ООП, функциональном программировании, иммутабельности и обо всём таком. И нужно будет сертификат HTTPS прикрутить обязательно! Может, мне позвать в команду пару друзей, чтобы сделать всё правильно вместе? Тогда без Scrum и Pull Requests не обойтись.

    На этой ноте я устал окончательно и подумал, что, может, мне стоит откопать старую книжку по PHP, и сделать всё, как в 2013 году, когда я ни о чём выше не имел представления, а половина технологий ещё не появилась? Похоже, я слишком много думаю наперёд. Решу всё это потом, сейчас посмотрю сериал и пойду спать, а завтра точно начну программировать.

    Комментарии 315

      +21

      Как мне кажется, как раз все наоборот.
      В NodeJS с помощью нескольких команд можно за десять минут поднять простой сайт типа блога, и он уже будет с формой входа, с загрузкой изображений, и вполне стильно выглядящий. Представляю сколько бы это заняло у меня лет 10-15 назад.

        +13

        Ну за 10 лет не скажу, а так чисто за тот же php с Yii. Показываешь ему табличку в базе и он тебе генерит CRUD. Контроллеры, вьюшки. Под ноду такое еще поискать надо, sails.js тебе только апишку даст.
        В статье конечно все малость утрировано. Прежде чем брать какой-то стек нужно хорошенько подумать. Если делать блог за сотку, то вряд ли кто-то будет замарачиваться с SPA, SSR и прочим. Можно вордпресс клиенут впарить

          –1

          Что значит "блог за сотку"?

            –4
            Шутка за 200
            Это, наверное, метафора в стиле «Своя игра»
              +5
              Нет, это просто означает задешево
                +2
                100 000 это дешево?
                  +11
                  Кто сказал, что «сотка» это именно 100 000 RUR, а не 100 USD, например?
                    +5
                    за 100р студент установит готовый движок.
                      +2

                      Я даже не знаю, специально вы написали RUR, подразумевая, что это 100 RUB, или это была случайность?


                      Ибо RUR и RUB – разные валюты, одна – советско-российский рубль, а другая – современный рубль, после деноминации, которая как раз на тысячу сократила множитель. Если вдруг кто не знал.


                      В любом случае, эта последняя буква ещё сильнее увеличивает неопределённость, сотка чего именно имелась в виду. :D

                        +1
                        Все правильно сказано — 100 000 RUR. Блог же за «сотку», подразумевая что очень дешево.)
                          +4
                          спасибо, добрый человек. Давным-давно, когда мне надо было быстро перевести сумму в USD в рубли, я писал в гугле «100 USD in RUR», потому что гугл так подсказал.
                          А потом у них синтаксис поменялся на RUB и мне было интересно почему. Недостаточно интересно, чтобы погуглить, но достаточно, чтобы я фоново помнил об этом все эти годы.
                          Теперь узнал.
                            +4
                            Открывая рублёвый счёт в банке вы возмущаетесь, что номер счёта начинается с xxxxx810, а не с xxxxx643? Если верить википедии, то по ISO 4217 кодами советского рубля были SUR (810).

                            Единицы измерения «соток» в исходном комментарии не указаны, а значит любые предположения могут быть ошибочны. Для сотрудников минфина или ЦБ РФ «сотка» вполне может и сотней миллионов.
                              0

                              О, про SUR я слышу впервые. Значит, RUR – постоветский российский рубль, но до деноминации.


                              Я об этом слегка любопытном феномене узнал примерно таким же путём, как и StraNNicK, переводя в гугле валюту на рубли и получив какие-то не очень близкие к реальности цифры.

                  –4
                  Какая-то кодогенерация CRUD вдруг внезапно какая-то фича, которую все вокруг пропустили, кроме А. Макарова. Разивайте мысль дальше.
                  Берете Strapi, там вообще даже показывать ничего не надо. Набиваете структуру и у вас уже API с готовой авторизацией, правами.

                  sails.js — умер года 3-4 назад. Fastify, Koa, Nest (дурацкое лого с опухшей губой льва). Думаю это единственное, что стоит рассмаривать.
                  CRUD для ноды — это плохая практика. Очень большой гон идет на ORM, потому что на практике не ясны плюсы этой абстракции.

                  Тимур преподает очень грамотную теорию и практику по ноде MarcusAurelius наверное, единственный. Советует вместо ORM использовать querybuilder-ы

                  За сотку я бы заморочился. Для SPA, SSR взял бы Nuxt.js
                    +6
                    Берете Strapi, там вообще даже показывать ничего не надо. Набиваете структуру и у вас уже API с готовой авторизацией, правами.

                    Это только API, а формочки кто делать будет? Админку клиенту? Еще плати 30 баксов в месяц, вешайся на third пати. Ради чего? API быстрей сделать? И gtasby подвизать? Все это из ряда TODO example


                    Какая-то кодогенерация CRUD вдруг внезапно какая-то фича, которую все вокруг пропустили

                    Ну так если 10 лет назад она была, а сейчас тебе апи сгенирировать SAAS проектом счастье


                    На тайпскрипте модельку опишу, дам ее graphql'у через typeORM, подкину генератор под клиент и суп аля зе бест маштабируемое api — готов, бесплатно.


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


                    Существует множество вещей упрощающих разботку. С этим никто не спорит. Можно сейчас как SAAS себе собрать, все, что хочешь.


                    CRUD для ноды — это плохая практика

                    Да, кому нужны эти создай, отредактируй, удали.


                    Или вы про биг дата / супер хайлоад в вакууме?
                    Да тогда это не CRUD (хотя это просто use cases на диаграмке, не более), а гордый API layer, за прокси сервером с балансером на контейнеры с микросервисами под очередями и все ради того (утрирую), что бы микрофронтенд мог жить без монолита и деплоиться отдельно по странично и все было супер. Я аж приуныл.


                    За сотку я бы заморочился. Для SPA, SSR взял бы Nuxt.js

                    Ну если делать нечего, ради свадебного ателье, фигачить spa и ssr

                      +4

                      6 минут с объяснениями, от установки до админки(CRUD) за логином и вьюх для сайта, по айтему. 2010 год.
                      Мне кажется я вебпак локально дольше разворачивать буду, учитывая, что node, npm уже стоит. И ради чего? На крупном проекте, долгострое да, с крупным заказчиком и супер пупер синьйорами — eсть смысл. А так, если ты мелкая фирма, шлепаешь сайт за сайтом. Какой spa, ssr? :) Я конечно предположу наработку и конвейер с готовыми решениями, но это все тоже самое, просто в профиль и явно дороже по издержкам.


                        0
                        Это только API, а формочки кто делать будет? Админку клиенту? Еще плати 30 баксов в месяц, вешайся на third пати. Ради чего? API быстрей сделать? И gtasby подвизать? Все это из ряда TODO example

                        Админка и есть strapi. Платить не нужно 30$
                        Да, кому нужны эти создай, отредактируй, удали.

                        Вы и описываете CRUD который и ругаете.

                          0

                          Есть много разных задач, проектов и клиентов. Мы сравниваем разных коз


                          Админка и есть strapi.

                          Ну вы же понимаете, что админку strapi клиенту сунуть так себе идея? Чисто для себя или под свой единый проект — окей. Хотя, интересно если кто-то так делает.


                          Платить не нужно 30$

                          Я посмотрел прайсинг на сайте. Не всем подойдет фришная в продакшене. Или есть свой хост, то там без ограничений?


                          Но я обязательно заценю ее, уже не раз слышал про нее :)

                        +1
                        sails.js — мы до сих пор это говно выпилить не можем =)) Зачем эта поделка вообще появилась…
                          0
                          Это же была волна новых идей. Никто не понимал какие js фреймворки и как использовать. Все занимали нишу, кто-то тащит лару в js кто-то идейно c#.
                            0
                            Ну JS для фронт-энда, а node.js и deno.land исползуют в бэке
                            +2
                            А что с ним не так? Смотрел на этот фреймворк несколько лет назад, когда он только начинал набирать популярность, идея у них была вполне здравая — сделать что-то вроде аналога рельсов из мира руби.
                              0
                              С ним все так, только он умер. Ну то есть 0 движей. Но домен кто-то оплачивет.
                                0
                                Вот вот. Идея была хорошая потому что руби он рейлс и джанго хорошие… а вышла какашка с магией, конвенциями и мать его глобальными переменными боже спаси и сохрани… я рад что оно умерло.
                            +1
                            А как же Strapi?
                            UPD: Прошу прощения, выше уже говорили про Strapi
                              0
                              мне кажется тебе будет интересен мой недо-проект github.com/LborV/js-mvc
                                0
                                В 2012 году, за вечер сделал одной юридической компании сайт, на Wordpress и нечего все работало отлично, была поддержка 3 языков, поиск, форма обратной связи, при чем я тогда системным администратором работал. До сих пор думаю если не нужно какой то сложной логики или API, то проще установить Wordpress и не париться, хотя сам я сейчас пишу сервисы на Python/Django
                                  0

                                  Недавно редактировал похожий сайт из 2012 — php+jquery, 3 языка и картинки.
                                  Проблема была в том, что студия, делавшая сайт в 2012, умерла, и её домен продаётся, ну а пока — предлагает оценить дорогих (и не очень) дам вместо информации о бывших создателях сайта.
                                  После удаления 1 строчки сайт продолжает выполнять функции сайта-визитки.
                                  Кажется, я ещё больше полюбил YAGNI.

                                +9
                                В NodeJS с помощью нескольких команд можно за десять минут поднять простой сайт типа блога, и он уже будет с формой входа, с загрузкой изображений, и вполне стильно выглядящий. Представляю сколько бы это заняло у меня лет 10-15 назад.


                                Да ровно столько же.
                                При использовании языка программирования, который был мейнстримом для веба тогда.

                                От языка программирования ничего не зависит.

                                Зависит — от набора используемых вспомогательных библиотек/фреймворков и от того как хорошо вы в этих библиотеках/фреймворках ориентируетесь.

                                А описанный функционал — заложен в библиотеки/фреймворки еще 20 лет назад.
                                Но, да, тогда это было в библиотеках/фреймворках — для других языков программирования, которые были в мейнстриме для веба тогда.

                                  +1
                                  Дык жумлу-дрюпал-вордпресс-медиавики бы поставил и вообще ни строчки кода бы не написал.
                                    0
                                    Вы забли про Ruby on Rails. Почти все ТОПовые фреймворки нашего времени построенные на принципах ROR. Как раз, 10-15 лет назад, когшда JS был только фронтендом, а ноды вообще не существовало.
                                      +1
                                      Кстати да, через месяц именно 15 лет будет с момента выхода Rails 1.0. А то, что автор в 2013 году вместо RoR+emberjs использовал PHP + jQuery, не думал про git, sass, ООП и т.п… ну не знаю, насколько это стоит обсуждения.
                                      Сейчас, как и в 2013-м, на RoR за день без проблем можно сделать сайт, запулить его в облако на Heroku (который у автора на картинке), и он там будет работать. И даже не будет просто так отдавать целые странички с сервера — turbolinks нынче уже идет из коробки.
                                        +2

                                        На днях было 15 лет со дня выхода symfony… А в 2013-м автор вполне мог использовать Symfony 2.0 — 2.4

                                      0
                                      Да и python также в принципе, можно тоже за минут 10-15 накидать на том же django с rest-ом функциональный готовый к работе сайт или rest api
                                        0
                                        А зачем REST? Django отлично отдаёт готовые страницы. Но нет, всем нужен REST. Да ещё и в виде DRF. А как посмотришь — проще обойтись без него. Ну вот не нужен этот монстр для большинства случаев, потому что он дублирует половину функций Django, править муторно, а привешивают к нему пару вызовов, с которыми отлично справится и собственный движок Django. Но менеджеры, конечно, лучше знают, что сейчас модно.

                                        Извините, задолбали запросы на использование конкретной технологии там, где она вообще ни зачем не сдалась.
                                          0
                                          REST здесь имелся именно в смысле REST api. Не спорю насчет отдачи страничек, но за описанные 10 минут, можно к отдаче дополнительно успеть прикрутить api, причем не обязательно на DRF. Опыт действительно показывает, что DRF не нужен на маленьких апишках, где всего пару вьюх, но когда у Вас начинает расти объем сущностей с которыми вы работаете, он позволяет сильно ускорить разработку. Но тут уже возникает вопрос того, что так же как и с обычным функционалом джанго нужно понимать что и где должно вызываться и как должна быть реализована та же бизнес логика.

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

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

                                            Например, чтобы разделить разработку бэка и фронта, а не заставлять фронтов писать серверные вьюхи.

                                              0
                                              Они и не должны их писать — это и я отлично делаю. А вот когда размер страницы исчисляется мегабайтами, это бесит.
                                                0

                                                А что они у вас делают?

                                                  0
                                                  Либо вёрстку, либо проблемы. Это когда я вообще берусь за сайты. Чаще я занимаюсь обратным процессом — собираю с сайтов данные и укладываю в базу.
                                                    0

                                                    А что вы называете вёрсткой?

                                                      0
                                                      Свёрстанную страницу, которую я потом режу на блоки для шаблонов. Ну да, ещё какая-то опциональная функциональность, которая работает без перезагрузки страницы.
                                                        0

                                                        Передают вам html файл с рыбой, вы ставите переменные, циклы, условия и т. п., декомпозируете, а когда они вносят правку в вёрстку повторяете процесс?

                                                          0
                                                          В какой-то степени, да. И в итоге получается сайт, который не требует университетского мэйнфрэйма для просмотра страницы.
                                                            0

                                                            Понятно. Я этого лет 15-20 назад наелся. Теперь или фронты осваивают бэк и сами правят шаблоны и т. п., или бэк с фронтом взаимодействуют по API, а фронт отвечает и за SSR если что )

                                                              0
                                                              Ну вот я до сих пор считаю, что это лучший вариант. Видел единичные случаи, когда вариант SPA оправдан. Чаще всего — просто мода нагружать браузер как можно сильнее, хотя сгенерировать страницу на сервере ничуть не затратнее, чем тот развесистый JSON, по которому она строится в браузере. А то и вообще пересылается в том самом JSON почти целиком.
                                                                0

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


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

                                                                  0
                                                                  Если нет радикально менять интерфейс каждую неделю, то такие замены не вызывают особых проблем, потому что достаточно взять из готовой свёрстанной страницы только то, что изменилось. Собственно, фронтэндер, изучив язык шаблонизатора, легко делает всё сам. Ему не надо изучать Python или какой-то другой серверный язык программирования, ему достаточно изучить язык шаблонизатора. Который, кстати, в любом случае надо изучать, как бы всё это ни было устроено. У него есть шаблоны, нарезанные фронтэндером, есть язык шаблонизатора, есть набор объектов, попадающих в шаблон. Больше ничего не требуется.

                                                                  Я постоянно спотыкаюсь о безумно тормозящие, достраивающиеся во время отображения страницы, которые грузят процессор так, что плакать хочется. Да и память жрут как не в себя. И вот уже машина, на которой отлично идёт разработка серверной части сайта, с трудом отображает страницы этого сайта, хотя в варианте серверной генерации справляется с сайтом на ура.
                                                                    0
                                                                    Собственно, фронтэндер, изучив язык шаблонизатора, легко делает всё сам.

                                                                    Я же так и сказал: фронты осваивают бэк и сами правят шаблоны

                                                                      0
                                                                      Это не бэк, это язык шаблонизатора и только. А какой-нибудь шаблонизатор он всё равно будет использовать.
                                                                        0

                                                                        Шаблон — часть бэка, язык шаблонизатора — один из языков бэка.

                                                                          0
                                                                          Значит, они и так занимаются бэк-эндом, работая в браузере и генерируя страницы по шаблонам и им никуда от этого не деться.

                                                                          А если серьёзно, то шаблоны — это как раз фронт-энд. И не важно, где из них собираются стртаницы. Потому что задача программиста бэк-энда — собрать данные и сложить их в пакет для дальней шей сборки страницы, а сборка страницы — это уже фрон-энд.
                                                                            0

                                                                            Ну вот очень многие знакомые фронтендеры не считают натягивание html вёрстки на созданные бэкендером шаблоны фронтенд разработкой — оно не на фронтенде исполняется, при ошибках вызывает 500 Internal Server Error и подобные аргументы.

                                                                              0
                                                                              Такое раздедление — «выполняется на сервере — значит бэк-энд» — это уже совсем что-то интересное. Тогда можно отмазаться от всей работы на основании «на сервере сгенерировано — бэк-энд, а я об этот грязный бэк-энд чистые джаваскриптовые ручки пачкать не будут». И, кстати. вёрстку не натягивают на шаблоны, шаблоны из этой вёрстки делают.
                                                                      0
                                                                      Ему не надо изучать Python или какой-то другой серверный язык программирования, ему достаточно изучить язык шаблонизатора.
                                                                      Который, кстати, в любом случае надо изучать, как бы всё это ни было устроено.

                                                                      Зачем? Требование при устройстве на работу?

                                                                      Я постоянно спотыкаюсь о безумно тормозящие, достраивающиеся во время отображения страницы, которые грузят процессор так, что плакать хочется.

                                                                      Есть такое..(((

                                                                      Да и память жрут как не в себя. И вот уже машина, на которой отлично идёт разработка серверной части сайта, с трудом отображает страницы этого сайта, хотя в варианте серверной генерации справляется с сайтом на ура.

                                                                      С чем это связано? И Почему? Нехватает ресурсов человек на разработку более лояльную к памяти и цпу?
                                                                        0
                                                                        1. Я, собственно, и написал, что Python ему изучать не надо, надо только изучить язык шаблонизатора. Вот в случае с PHP ему этот самый PHP, вероятно, изучить придётся. Ну просто потому, что сам PHP есть, был и будет шаблонизатором, как бы ни старались из него сделать язык общего назначения: это заложено в его архитектуре. Хотя некоторые (не будем показывать пальцем на разработчиков Joomla!) умудрились написать на языке шаблонизатора язык шаблонизатора.

                                                                        3. Потому что JS создавался как язык мелкой анимации страницы и получился многословным. А потом стал ещё более многословным, а потом его завернули в несколько слоёв систем безопасности и контейнеров, что так же не повысило его быстродействие, а потом некоторые умники стали писать библиотеки, дублирующие свойства CSS1. Я не шучу, попадалась реализация на JS свойства «position: absolute» на 2000 строк. А потом такое включают в другую библиотеку, которую уже используют, не заглядывая внутрь. И всё ради того, чтобы получить несколько килобайт JSON с сервера и нарисовать те же несколько килобайт HTML, но уже в браузере, хотя можно было посклеивать этот самый HTML на сервере.
                                                                          0

                                                                          В современной разработке на PHP его шаблонизаторские возможности очень часто не используются, вместо них, да, шаблонизаторы на PHP. И часть из них куда удобнее и безопаснее php-шаблонов.


                                                                          Классическое


                                                                          <?php echo htmlspecialchars($var, ENT_QUOTES, 'UTF-8') ?>

                                                                          vs


                                                                          {{ var|escape }}

                                                                          Это не говоря о возможности включить автоэкранирование по умолчанию.


                                                                          А из архитектуру что осталось от шаблонизатора так это <?php

                                                                            0
                                                                            Тем не менее, PHP — язык-шаблонизатор. И его сейчас костылят ровно так же, как это делают с JavaScript.
                                                                              +1

                                                                              Это бывший язык-шаблонизатор, а сейчас мультипарадигменный язык общего назначения :)

                                                                                0
                                                                                Просто его хорошо обвесили костылями. Основа-то осталась. И то, что на нём написали шаблонизаторы, не отмеяет его исходную природу, которая сохранилась. Из молотков можно собрать молоток побольше и потяжелее, но молотками они быть от этого не перестанут.
                                                                                  +2
                                                                                  Основа-то осталась.

                                                                                  Что там осталось? Только начало каждого файла с <?php
                                                                                    +1
                                                                                    Основа-то осталась.

                                                                                    В каком смысле? В семействе 7-й версии было огромное количество изменений, нововведений и очистки от старья типа mysql*. Улучшение поддержки типизации, переход от кодов ошибок к исключениям, новые операторы, сахар и т.д., включая буст производительности, по некоторым оценкам, чуть ли не в два раза. Через несколько дней релизится 8-я версия, в которой тоже куча нового + JIT. Да, возможность шаблонизировать средствами самого языка осталась, но это давным-давно не главное.

                                                                                      0
                                                                                      Да, возможность шаблонизировать средствами самого языка осталась, но это давным-давно не главное.

                                                                                      Более того, эта возможность многими просто не рекомендуется к использованию: и слищком многословна, и небезопасная по умолчанию.

                                                                                        +1
                                                                                        Более того, эта возможность многими просто не рекомендуется к использованию: и слищком многословна, и небезопасная по умолчанию.

                                                                                        Верно. При этом любопытно, что некоторые проекты (например, монструозный Magento) выбирают всё же пользоваться именно ей. Возможно, от нежелания добавлять лишние слои абстракции/библиотеки (в чём можно заподозрить, например, CodeIgniter), хотя в случае того же Magento их там уже столько, что влияние движка шаблонизатора (работа которого, к тому же, кэшируется), наверное, вряд ли можно считать существенным. У меня есть теория, что при достаточно большой популярности инструмента любая его фича будет кем-то использована вне зависимости от её спорности.

                                                                                          0
                                                                                          При этом любопытно, что некоторые проекты (например, монструозный Magento) выбирают всё же пользоваться именно ей.

                                                                                          Я делал один проект на Magento в 2009 и он мне тогда показался просто тормознутым куском говна. Если его не переписали полностью в новых версиях, то ничего удивительного, что он так и не умеет в нормальные абстракции. Вообще, если вы в период 2005-2009 читали код популярных тогда PHP-проектов (Joomla, Wordpress, Bitrix, Drupal, etc.), то легко понять почему люди массово переходили на другие языки. Всё-таки одно дело, когда ты по-простому делаешь сайтик, как описанный в статье, а другое — когда ты с таким же пофигизмом делаешь CMS или фреймворк. Это получается персонаж для кошмаров.

                                                                                            0
                                                                                            Bitrix

                                                                                            Он и сейчас не лучше. Прогресс за 10 лет — от глобальных переменных перешли к синглтонам.
                                                                                              0
                                                                                              Я делал один проект на Magento в 2009 и он мне тогда показался просто тормознутым куском говна. Если его не переписали полностью в новых версиях, то ничего удивительного, что он так и не умеет в нормальные абстракции.

                                                                                              С тех пор сильно переписали. Честно, ещё не был с ним знаком в 2009, но когда познакомился — в версиях 1.8-1.9 — это уже был проект вида "абстракции на абстракциях, погоняемых абстракциями на абстракциях, много раз рекурсивно повторить". Суровый такой абстрактный монстр. С версий 2.х было серьёзное обновление фреймворков, но почему-то шаблонизация PHP осталась. Здесь, наверное, надо отметить, что Magento это не среднестатистическая CMS. Wordpress по сравнению с Magento это как муравей в сравнении со слоном. По крайней мере, сегодня.


                                                                                              Всё-таки одно дело, когда ты по-простому делаешь сайтик, как описанный в статье, а другое — когда ты с таким же пофигизмом делаешь CMS или фреймворк.

                                                                                              Не уверен, что всегда дело в пофигизме. Сам неоднократно сталкивался с ситуацией, в которой чистота абстракций и элегантность кода разбиваются о количество и непредсказуемость функциональности. Не уверен, что тот же Magento был бы реализован лучше на Java.

                                                                                                0
                                                                                                в версиях 1.8-1.9 — это уже был проект вида "абстракции на абстракциях, погоняемых абстракциями на абстракциях, много раз рекурсивно повторить"

                                                                                                Да, он по-моему с самого начала такой был. И это было избыточно. Абстракции хороши, когда от них практический толк есть, а не абстракции ради абстракций.

                                                +1

                                                Расскажите — как? Спасибо.

                                              +49

                                              Вспомнил тут недавно PHP и спокойненко продолжил на нем делать сайты. Просто со временем образовался небольшой ворох минимального комплекта для запуска и получается вполне шустро и по разработке, и по скорости работы.
                                              Не знаю уж, чем так плох PHP и MySQL — пока этого мне никто объяснить не смог

                                                –15
                                                Ну это примерно как табличная вёрстка, которая тоже выглядит намного проще десятикратно вложенных div'ов с тоннами весьма нетривиального CSS'а, но считается «не тру», потому что недостаточно универсальна и покрывает лишь ограниченный набор юзеркейсов.
                                                  +15

                                                  Но при этом таблица не разваливается при очередном обновлении браузера.
                                                  А уж как неограничено применение современных фреймворков, просто сказка, и чем дальше тем страшнее.не помню как там точно: "Шаг влево, шаг вправо — считается побегом. Прыжок на месте расцениваю как попытку улететь в космос."

                                                    +10

                                                    К сожалению, таблица доставляет проблем, когда вспоминаем о мобильных устройствах, где скажем десктопный блок справа логичнее было бы выводить внизу или во всплывающем меню.
                                                    Opera 12 Mobile кажется последний браузер, который нормально умел масштабировать табличные сайты на экране смартфона.

                                                      +9

                                                      Вполне достаточно отдавать мобильным устройствам отдельную мобильную версию. Это куда надёжнее и куда легче адаптивности.

                                                        +12

                                                        Я бы не был таким категоричным.


                                                        Поддержка, тестирование и добавление нового функционала становятся вдвое затратнее в сложных интерфейсах.


                                                        В клиентских приложениях не редко используется комбинированный подход: разные компоненты в зависимости от размера экрана.


                                                        И, уже набивавшая оскомину истина: каждой задаче своё решение.

                                                          0
                                                          Собственно, на мобильных устройствах всё равно надо тестировать, так что особой разницы не вижу.
                                                      +9
                                                      Это точно, зато с «простейшей» по современным меркам странички браузер как пить дай отгребает гиг озу на то что бы распознать, что наТБМвертили эти ВЕБкодемастеры.
                                                      ТБМ, как я стар, когда в «кроватке» середины-конца 90х болтали… легкие чаты, пролезающие через 2400, а не требующие онлайн-линка в 1-2МБита. я совсем не понимаю современные тенденции — это для того чтобы даже мощнейшее железо заставить ползать так, что даже 8088 кажется очень даже быстрой машинкой?
                                                      ЛЮДИ, ОЧНИТЕСЬ!
                                                      а Илюше — нахрен универсальные на все случаи гробы, которые хреново распознаются везде? нафига эти кучи слоев? информация погружена во все эти обертки, что даже нормально вычитать ее приходится изголяться!!!
                                                        0

                                                        Вы же прекрасно понимаете, почему так сложилась история развития веба, да и всей индустрии.

                                                          +1

                                                          Во второй половине 90х, когда первично появились избытки мощностей, в первую голову процессорных, п-про, пошло такое компонентное чудо как Дельфи. Когда даже совсем безголовый олигофрен, мог тыкая мышкой собрать из компонентов красивое, но медленное приложение и в эти контейнеры сигналов и функций вложить нужную себе функциональность. Пошли производные компоненты и чем дальше тем хуже.
                                                          До них был другой подход к работе, есть атомарные компоненты, тот же mfc и между ними требовалось наращивать мясо, т.е. понимать что и как работает и зависит. А теперь даже ТБМный калькулятор занимает сотни мегабайт, требует выход в интернет и еле ползает на тех же смартфонах, которые мощнее суперэвм 20 летней давности, при несопоставимой полезности изделий.

                                                            0

                                                            А полезность в чём измеряете? Если в деньгах, которые покупатели готовы платить за изделия, то полезность суперэвм и смартфонов если и несопоставима, то с другой, наверное, стороны, а не той, что вы имели ввиду. Триллион долларов уж точно в год платят за смартфоны.

                                                              +1

                                                              Вы повторяетесь.


                                                              Тогда я снова скажу: вы все прекрасно понимаете. Ответы на «что, как и почему» у вас есть.


                                                              И вы ищете не объяснений, не интересных споров, а единомышленников.

                                                                +4

                                                                Как я понял, вы почему-то очень не любите Delphi.
                                                                Но Visual Basic появился раньше и, по слухам, был популярнее Delphi.


                                                                Утверждения о тормознутости Delphi голословны.
                                                                Delphi всегда был компилируемым языком с приемлемой скоростью и в тормознутости современных сотнемегабайтных калькуляторов он не виноват, они не на нём написаны.

                                                                  0

                                                                  И брюки Delphi превращается, превращается… в веб-приложение!


                                                                  Сурово ж вас приложило.

                                                                    +1
                                                                    А что не так? unigui.com в помощь хотя б…
                                                                      0

                                                                      Нет, что-то похожее реально существовало еще в начале нулевых.
                                                                      Но цимес в том, все эти веб-приложения, которые (заслуженно, не без того) старались охаять выше, построены вокруг хрома, который написан на C++.
                                                                      А виновата, оказывается, Delphi.

                                                            +2

                                                            15—20 лет назад я ещё как-то мог с вами согласиться, но сейчас таблицами верстать банально сложнее, чем гридами, флексбоксами, или даже простыми блоками. А в большинстве кейсов с адаптивностью — просто невозможно.

                                                            0
                                                            При том что все еще можно сделать сайт за один день на Wordpress на том же php и не мучаться.

                                                            Да и как-то не по существу — «ну теперь просто на php я не могу сделать сайт, и надо выбрать какой-то фреймворк: Jango или Express». И как бы автор не нагуглил, что есть Laravel с огромной экосистемой, и скаффолдингами из коробоки под react или vue. Или автор лет 5 назад начал писать статью.
                                                            +25

                                                            Весь вопрос: вам шашечки или ехать?
                                                            Я вас прекрасно понимаю. Сам так начинал проект. И бросал.


                                                            Хотите сделать новостной сайт: берёте Wordpress/<другая CMS>, покупаете готовый шаблон, домен и не парьтесь.


                                                            Хотите интернет-магазин? И под это готовых решений достаточно. Если не в РФ, то shopify.


                                                            Закладываете потенциал, и, вообще, это пет-проект с полным контролем — верной дорогой идёте.


                                                            А если хотите меньше париться, то на фронт берёте boilerplate, их достаточно много разных. Там уже есть всё.


                                                            Не хотите парится с бэком? headless cms.
                                                            Не хотите сильно парится с фронтом? Asp.net, Java jsf (?).


                                                            На любой вкус есть решения с разными преимуществами и недостатками.

                                                              +2

                                                              И ещё добавлю, если не хотите париться с ui, то есть масса вариантов UI-kit: antd, material ui. От Uber тоже есть.

                                                                +11
                                                                >Теперь я не могу сделать даже маленький сайт
                                                                ― Вона, опять у нашего барина ипохондрия сделалась!
                                                                ― Пора. Ипохондрия всегда на закате делается.
                                                                ― Отчего же на закате, Степан Степанович?
                                                                ― От глупых сомнений, Фимка. Вот глядит человек на солнышко и думает: взойдёт оно завтра аль не взойдёт?


                                                                >Весь вопрос: вам шашечки или ехать?
                                                                Ну, судя по тексту — шашечки.

                                                                >Как я буду это поддерживать без ООП и вообще нормального разделения кода?
                                                                Прежде чем это кто-то будет поддерживать, нужно чтобы это вообще заработало. Поэтому берете то, что знаете, и делаете прототип. Потом выкидываете, и делаете продакшн решение. Вполне возможно, что на совсем других технологиях. А может, его уже другие люди сделают.

                                                                У меня на работе как-то была задача сделать ма-а-а-аленький сайт google maps. Не в таких масштабах, конечно, как настоящий, а именно прототип. И могу сказать, что решение взять знакомые технологии, и добавить к ним ровно то, чего в них не хватает (в моем случае картографию и leaflet), и не более — оно самое правильное. И кстати, самый первый прототип был сделан на Apache Flex (Flash). За пару дней.
                                                                  +1

                                                                  Единственно, хочу заметить: ипохондрия это != хандра; ипохондрия, это когда человек постоянно выискивает у себя симптомы и признаки несуществующих болезней.

                                                                    0

                                                                    В оригинале была ипохондрия.

                                                                      0

                                                                      Оу, сори. С оригиналом не знаком, просто глаз немного резануло.

                                                                        +3

                                                                        Формула любви — один из немногих фильмов производства СССР, которые можно смотреть без крови из глаз даже сейчас. Неисчерпаемый источник цитат на все случаи жизни.

                                                                          0
                                                                          Похоже, я сегодня запас пепла на голову исчерпаю — фильм-то миллион раз просмотрен, но вот цитату не признал (
                                                                            0
                                                                            Формула любви — один из немногих фильмов производства СССР, которые можно смотреть без крови из глаз даже сейчас. Неисчерпаемый источник цитат на все случаи жизни.


                                                                            Это пара «сценарист Григорий Горин — режиссер Марк Захаров»
                                                                            У них все фильмы подобного качества.
                                                                    +4

                                                                    Оставляю комментарий для потомков:
                                                                    Если вы не мазахист, то никогда, НИКОГДА не берите Liferay (java), его разработали для наказаний

                                                                      +1

                                                                      А есть ли жизнь в java без spring?

                                                                        0

                                                                        с java EE еще можно жить, как по мне, но Spring лучше имхо :)

                                                                        +1
                                                                        Друг, я так тебя понимаю! Сам когда-то работал с ним, но выбора не было — работодатель продавал решения на его основе.
                                                                        +3
                                                                        Не хотите сильно парится с фронтом? → Java jsf

                                                                        Хе. Теперь вы не сильно паритесь, а прямо-таки погрязли в болоте энтерпрайза. И PrimeFaces вас не спасёт. :)


                                                                        На самом деле, не знаю, что именно теперь стоит использовать для фронта на джаве, уже давно этим не занимался. Какой-нибудь шаблонизатор для спрингового MVC, разве что...

                                                                          0
                                                                          Thymeleaf?
                                                                        +40

                                                                        А мониторить кто будет?! Вам ещё графана с каким-нибудь алертингом нужна. А то понадеплоют тут, а ты потом разбирайся.

                                                                          +9

                                                                          А ещё обработка ошибок: sentry какой-нибудь.
                                                                          Мониторинг доступности типа pingdom.


                                                                          Тесты не затронули. Целый пласт решений.


                                                                          Анализ уязвимостей.

                                                                            +10
                                                                            С тестами я даже боялся начинать потому, что не смог бы дойти ни до чего другого, остановившись на серьёзном вопросе, писать ли мне в этом проекте тесты сначала, или потом, и в каком объёме. :)

                                                                            Тут и дизайн, UI/UX, я тоже потерял, а если о монетизации задуматься, то это вообще пучина!
                                                                              +1
                                                                              писать ли мне в этом проекте тесты сначала, или потом

                                                                              Пока тесты и код в одном коммите — никто и не узнает :) Плюс есть rebase и squash ))

                                                                                0
                                                                                И filter-branch!
                                                                              0

                                                                              Тот же sentry в простейшем случае устанавливается практически в одну строчку (https://develop.sentry.dev/self-hosted/)
                                                                              С приходом контейнеров эра "коробочных решений" как раз в какой-то мере вернулась.
                                                                              Иногда достаточно написать Docker Compose файл и решение уже почти готово.

                                                                                0

                                                                                Вы упустили настройку самого dicker-а на, обычно, ограниченных ресурсах у хостера (по экономическим причинам).

                                                                                  0

                                                                                  Если речь про VDS какой-то и настройку именно докера, а не оркестрацию контейнеров, то обычно настраивать особо ничего и не надо, кроме установки самого докера.

                                                                              +20

                                                                              Автор явно обошёл стороной облака: вдруг про сайт завтра напишут все мировые сми и туда зайдут десятки миллионов пользователей? Нужно обязательно хоститься в облаке и чтобы работал автоматический скейлинг. Скорее всего k8s станет хорошим решением, в aws можно воспользоваться eks для этого. Также никогда не знаешь, сколько данных придётся хранить, добавим туда интеграцию с s3. Заодно и бэкапы закидывать в glacier deep archive удобно. Кроме этого с
                                                                              разворачивать всё руками — прошлый век, стоит взять terraform и исполтзовать подход infrastructure as a code. Десятки миллионов пользователей создали терабайты логов и их надо проанализировать? Как хорошо, что это можно обработать в кластере EMR. И это только начало, над cloud native частью стоит поработать, это сейчас очень популярно!

                                                                                +1

                                                                                Боюсь если сайт не для сбора денег на рекламе, авто-скейлинг лучше не использовать, а то кто знает как потом отдавать эи 10-20 k$ изща habra-эфыекта :)

                                                                              +80
                                                                              В этой статье нету упоминание Docker'а и это в 2020м то.
                                                                                +8
                                                                                Каюсь, очень хотел упомянуть, но забыл!
                                                                                  +14
                                                                                  Вот именно поэтому написание статьи нужно было начать с установки и настройки task tracker!
                                                                                    0
                                                                                    гитхаб же
                                                                                    +6

                                                                                    Ну что вы, ну какой docker в 2020, как минимум нужен kubernetes и чтобы мог адаптивно задеплоится на тысячу подов если много анонимусов зайдут в блог ;)

                                                                                    +5
                                                                                    В 2020 докер уже мёртв, разве нет?
                                                                                      0
                                                                                      А что вместо докера использовать?
                                                                                        0
                                                                                        А кто его «убил», не подскажите?
                                                                                          +1
                                                                                          Это, вероятно, отсылка к статье Docker уже умер...
                                                                                            –2
                                                                                            Да это понятно, правда, и там так и не ответили, кто его «убил» и с чего взяли что вообще кто-то кого-то убил)
                                                                                              +4
                                                                                              Его не убили, он просто умер. Но поскольку заменить особенно нечем (тут я не силен если честно), то все продолжают им пользоваться с надеждой, что родится какая-то новая технология.
                                                                                                +11
                                                                                                Никогда не понимал подобные высказывания. Докером пользуются сейчас поголовно все, я не знаю ни одну маленькую контору и ни одну большую контору, которая не использует Docker при локальном тестировании / разработке. А все остальные крики про «умер» — это блеф чистой воды, громогласные выкрики ради хайпа, имхо
                                                                                                  +3

                                                                                                  Справедливости ради, некоторые перешли/переходят на совместимые альтернативы или просто не используют.

                                                                                                    0
                                                                                                    И первый и второй ваш вариант предполагают какие-то альтернативные средства, приведите пример, пожалуйста. Надеюсь, вы не об open-server (denver) и vagrant говорите.
                                                                                                      +2
                                                                                                      Вероятно, это про Podman.
                                                                                                        +1
                                                                                                        lxc, chroot. /s
                                                                                                          +3

                                                                                                          Первый — про, прежде всего, podman и компанию. А так и lxc только за последнее время несколько постов на Хабре было. И вообще всё это обёртки над cgroups и неймспейсами.


                                                                                                          А вот второе — в голове была чистая олдскульщина: проект развёрнут на локальной машине разработчика без какой-либо виртуализации, конейнеризации и автоматизации. На новую машину нужно в строго определенные места склонировать репозитории, пачку /etc/* файлов, отредактировать /etc/hosts, и стандартного пользователя хорошо бы создать. Сделать один раз и забыть на годы может быть, пока не придёт письмо на группу рассылки devs: "в наших конфигах домены example.dev заменены на example.test в связи с тем, что .dev теперь делегируется. Обновите свои локальніе конфиги"

                                                                                                            0

                                                                                                            А что не так с вагрантом? Для разработки (под виндой по крайней мере) очень удобно — буквально за день сделал шаблон, и постепенно перетащил все проекты в отдельные виртуалки, при этом у каждой отдельный домен (на основе имени из composer/package.json). Как это сделать на докере сходу не нашел.

                                                                                                              0

                                                                                                              https://github.com/nginx-proxy/nginx-proxy вот так например, автоматически изменять конфиги "главного" nginx при старте новых "виртуалок"

                                                                                                                0

                                                                                                                Спасибо. Правда судя по беглому взгляду в Windows 10 оно просто так не заведется (hosts как минимум обновлять оно, похоже, не умеет).

                                                                                                                  +1

                                                                                                                  Я dnsmasq использую, чтобы все запросы **.test на докер шли

                                                                                                            +1

                                                                                                            А какие есть альтернативы? Firecracker на ум только приходит, но он скорее для FaaS.

                                                                                                            +1

                                                                                                            Основная проблема, что нет определения понятия «умер» в контексте технологии.


                                                                                                            В вышеуказанной статье вывод сделан по одному признаку: на конференции в Питере не было докладов.

                                                                                                  +1
                                                                                                  Так еще не все поняли, что это такое, а уже появляются статьи, что его уже хоронить собираются ))) Сам уже не знаю, стоит ли в нем разбираться или уже поздно.
                                                                                                  +6
                                                                                                  Обилие технологий не должно смущать. Выбрать фреймворк под задачу в 2020, очевидно, сложнее, чем в 2000 — но, сделав правильный выбор, развернуть решение и получить результат зачастую удается в разы быстрее.

                                                                                                  p.s. вдогонку к готовым cms типа вордпресса, если вдруг хочется попроще в плане архитектуры — любой статический генератор (gatsby, etc.), который даже на условные github pages из коробки встает (а это значит — без геморроя весь CI, мало ли в резюме показать :) ), решает описанную задачу.

                                                                                                    +1
                                                                                                    но, сделав правильный выбор

                                                                                                    и как вы узнаете что вы сделали правильный выбор?
                                                                                                    а чем больше технологий, тем выше шанс ошибиться
                                                                                                    плюс туториалы сложней релевантные найти, если выбрал одну часть одну, а другую другую
                                                                                                    так приходиться полюбому больше информации читать, и выбирать по каким-то критериями
                                                                                                    выбор это сложно, это факт

                                                                                                    Обилие технологий не должно смущать

                                                                                                    почему не должно? кто сказал что не должно? меня смущает, автора смущает
                                                                                                    потому что объективно выбор — смущает
                                                                                                    он требует ресурсов мозга, это факт

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

                                                                                                    я даже не про себя, а давно на веб-разработку забил
                                                                                                    в моей области (gamedev и сервера) тоже выбора прилично
                                                                                                      0
                                                                                                      Да из за обилия выбора тратишь время.((( Вот чтобы был какой сайт где все технологии представлены и хотя бы статистика по миру кто какие использует и какие проблемы они решают.

                                                                                                      я даже не про себя, а давно на веб-разработку забил
                                                                                                      в моей области (gamedev и сервера) тоже выбора прилично


                                                                                                      Прилично, тоесть его меньше чем в веб-разработке? А рутина, кол-во используемых технологий, овертаймы, многословность кода, часто переделывать? это по сравнению с вебразработкой в геймдеве как?
                                                                                                        0
                                                                                                        А рутина, кол-во используемых технологий, овертаймы, многословность кода, часто переделывать? это по сравнению с вебразработкой в геймдеве как?

                                                                                                        * рутина есть везде, и в геймдеве, там же тоже надо отлаживать баги, тестировать, кодить чтото 10 раз что вы уже делали
                                                                                                        * кол-во используемых технологий — иногда можно взять чтото простое что работает, иногда приходиться делать серьезный выбор, оценивая очень многое, и в геймдеве часто надо чтото оптимальное, но иногда это оптимальное это долго кодить, и выбирается сначала нечто среднее, или потом переписывается на более оптимальное, другую архитектуру и т.п, и все эти оптимизации они тоже требуют выбора (что делать и когда)
                                                                                                        * овертаймы — в геймдеве частые на сколько я слышал, хотя у меня бывают редко потому что я физически не могу авралить часто (голова уже не варит)
                                                                                                        * многословность кода (как и качество кода, и кач-во проектирования и тестов) — зависит от опыта разраба, впрочем там где я работал — в основном разрабы сильные, новичков откровенных почти не было, ну и копипаста и лапша в коде конечно бывала но явно меньше чем я видел в (условно) «плохих примерах кода на php\js»
                                                                                                        * часто переделывать — см выше — переделывается для оптимизаций, либо для портирования на другие девайсы (мобилки, веб, консоли, пк)
                                                                                                          0
                                                                                                          спасибо
                                                                                                        +1
                                                                                                        еще хочу дополнить, отвечу на свой комментарий

                                                                                                        с научной точки зрения, человек может сделать выбор 2мя способами
                                                                                                        1) лимбической системой — это псевдо-выбор основнанный на эмоциях, и зачастую в жизни именно он активно работает, например нам нравится какая-то еда, или мы привыкли вставать в опеределнное время и идти на работу, играть в определенные игры, и часто мы перенимаем этот опыт у кого-то, а потом зкрепляем за ним эмоцию и желание действовать также или не действовать
                                                                                                        … в примере с технологиями это может быть хайп (ктото гдето написал что это клевая теха), а никак не ваш разумный выбор, и потом есть высокий риск что вы выбрали не корректно, потому что вы то доверились комуто
                                                                                                        2) неокортексом — т.е. логическое осмысление множества факторов, но тут проблема — если сравнить 5 технологий (раньше) vs 500 (сейчас) то комбинаторный взрыв мешает сделать логический выбор за разумное время, и в конце концов человек или выбирает нечто «достаточно хорошее» как ему кажется, за N время (не макс время), или тратит слишком много энергии\времени на реально оптимальное решение

                                                                                                        поэтому о каком «правильном» выборе может идти речь, если для логического его осмысления неокортексом надо непомерное кол-во энергии
                                                                                                          0
                                                                                                          раньше то выбора было меньше, и туториалы читались быстрей, и релевантные причем

                                                                                                          Ох, помню сколько я времени убил на выбор стэка для простенького сайта на шаред хостинге: И C, и C++, и Perl, и ещё что-то Остновился на PHP. И это только язык.. А ещё выбор Linux или BSD. В чём под Windows писать код сайта… В чём писать разметку и стили...


                                                                                                          Просто автор для первого своего сайта по сути и не выбирал стэк: была одна книжка по ней и делал

                                                                                                        +6
                                                                                                        Я тоже сделал свой первый сайт на чистом PHP + JS около 20 лет назад. Через несколько лет свои наработки превратились в собственную CMS. Сейчас это ретро никому не нужно, кроме меня. Поэтому я, использую свои наработки, только для себя. За несколько часов делаю простой сайт и back-end для мобильного приложения.
                                                                                                        А своим клиентам рекомендую нанять другого разработчика для получения красивого и современного результата.
                                                                                                        Почему не изучаю зоопарк современных фреймворков и CMS? Да просто не хочется тратить на это время, разработка приложений под Android гораздо интереснее.
                                                                                                          +5
                                                                                                          Сейчас придет Дмитрий Карловский и покажет как на моле за сутки сделать вебсервис, где можно жестами для вебки двигать картой в браузере.
                                                                                                            +8

                                                                                                            Он сейчас занят — ищет языки с поддержкой четырёхзначной логики.

                                                                                                              –2

                                                                                                              Я много чем занимаюсь. Конкретно сейчас математически расчитываю дизайн. Есть в планах и своя штука на которой можно будет накликивать хоть CMS, хоть чат, хоть баг-реткер и тп. Хоть всё это вместе.

                                                                                                                –1
                                                                                                                Конкретно сейчас математически расчитываю дизайн.

                                                                                                                В смысле лейаут элементов + цвета невырвиглазные? Хотим подробности. Пролог это правильно, но зачем там 4-х значная логика?


                                                                                                                5.3 — я бы сказал язык переродился, но сильных BBC не помню до 7.0. Там скорее желание всё переписать было "по уму" с активным использованием новых возможностей: неймспейсов, нормального ООП, интерфейсов и т. п.

                                                                                                                Пора оставить PHP и MySQL для птушников. Dart интереснее, но медленно всё движецца

                                                                                                                  –1

                                                                                                                  Пока только различные отступы.
                                                                                                                  Четырёхзначная логика необходима для корректных рассуждений. Я думал использовать пролог для валидации доказательств, но похоже он недостаточно силён для анализа произвольных выражений. Так что придётся пилить свой пролог с четырёхзначной логикой и релевантной импликацией.

                                                                                                                    +1

                                                                                                                    Не хочу в ПТУ даже преподавать ) Современный PHP не имеет фатальных недостатков в своих нишах, а работать может не только с MySQL. полный переход переход на другие технологии, хоть "хайповые", хоть "мэйнстрим" существующему бизнесу особых плюсов не даст. Точечный — вполне, и давно практикуется, даже до моды на микросервисы.

                                                                                                                +1

                                                                                                                Мы тут, кстати, на днях хакатонили. Так я прям заскринил, что сделала команда, которая использовала модный стек React+Redux:


                                                                                                                Заголовок спойлера


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


                                                                                                                Для сравнения, наше решение на настолько не модном стеке, что организаторы срезали нам баллы за то, что использовали "экзотическую технологию, в которой не разбираемся, которую не используем каждый день":


                                                                                                                Заголовок спойлера


                                                                                                                А победили ребята пилившие на Ангуляре вчетвером:


                                                                                                                Заголовок спойлера



                                                                                                                Итого, можно сказать, что для вкручивания лампочки нужно либо 4 Angular разработчика, либо 1 $mol.


                                                                                                                К слову сказать, больше всех успели сделать ребята, что пилили на 1С. Выглядит оно, конечно, "интуитивно понятно". Не заскринил, но 1с-интерфейсы все одинаковые.

                                                                                                              +8
                                                                                                              может, мне стоит откопать старую книжку по PHP, и сделать всё, как в 2013 году
                                                                                                              PHP в этом плане очень подходит, потому что можно поставить самую последнюю версию, например PHP 8.0.0-rc3 и сделать сайт по книжке 2013 года, в которой скорей всего используется PHP 5.5. Реальный пример.
                                                                                                                +1
                                                                                                                ух, сколько нам приносил «радости» переход с 5.1 на 5.2, а потом на 5.3… помнится, именно 5.3 — прилично поменялся язык. Поэтому до сих пор есть сайты на 5.2, потому что «и так работает до обновления»
                                                                                                                  0

                                                                                                                  5.3 — я бы сказал язык переродился, но сильных BBC не помню до 7.0. Там скорее желание всё переписать было "по уму" с активным использованием новых возможностей: неймспейсов, нормального ООП, интерфейсов и т. п.

                                                                                                                    0

                                                                                                                    В 5.3-5.4 была история с резким сбросом кучи деприкейтов. В частности ссылки, глобальные переменные и ещё что-то по мелочи. Как следствие вся кодовая база, которая пришла ещё со времен PHP 4 отхватила.


                                                                                                                    Это разумеется не отменяет того, что глобальные переменные в 2013 это зашквар, но в реальных проектов этого добра было полно.

                                                                                                                      0

                                                                                                                      А, может почти не заметил потому что всегда активно боролся с деприкейтами. Хотя как-то выиливал на новом для себя проекте PHP4 конструкторы в процессе перевода с 5.6 на 7.0

                                                                                                                    +1

                                                                                                                    Я свой сайт написал по книжке году а 2008-2010, там была пятая версия языка. Сейчас без особых проблем мигрировал на хостинг с 7 версией (переписал mysql вызовы только, поддержка закончилась у библиотеки). Так что для простых сайтов это справедливо.

                                                                                                                      +1
                                                                                                                      У меня до сих пор сайт на PHP 4.4 dev. В своё время переход на PHP 5 не удался… А теперь уже утекло слишком много времени. Сервер поменять страшно. Ну и по старой админской привычке «работает, не трожь»… До сих пор боюсь этой «радости» перехода.
                                                                                                                        0

                                                                                                                        Тут уже лучше не переходить, а написать всё с нуля. Только, конечно, без того зоопарка, как у автора поста. Что-нибудь поменьше взять, покомпактнее.

                                                                                                                      0

                                                                                                                      Главное не забыть использовать mysql_connect(), а потом задолбать гугл и тостер вопросами "У меня не работает MySQL что делать".

                                                                                                                        0
                                                                                                                        Я просто переписал на mysqli_connect(), там почти тоже самое.
                                                                                                                      +2
                                                                                                                      Вах! Вы сделаль мой день!
                                                                                                                      Я в веб особо не лезу, но со стороны все видится именно так.
                                                                                                                      Понаплюсовал бы, но тут кармы-шмармы, и я как-то дискриминирован, поэтому просто спасибо, читал с удовольствием.
                                                                                                                        –3
                                                                                                                        Да автор какой-то странный, делает из мухи слона. Он бы ещё начал микросервисную архитектуру разворачивать для своего новостного блога города. Все эти инструменты же сделаны для конкретных задач. Для него подошёл бы тот же самый wordpress. А он начал забивать гвозди микроскопом, и жаловаться, что что-то тяжеловато.
                                                                                                                          +2

                                                                                                                          Можно тэги к статье посмотреть и не удивляться прочитанному.

                                                                                                                            +2
                                                                                                                            А чёрт! Для меня было слишком тонко :D.
                                                                                                                            0
                                                                                                                            Для автора подошел бы и Wix.com (или его аналоги).
                                                                                                                          +4
                                                                                                                          Так и написал бы что нет опыта разработки с нуля, всё для тебя подготавливали. После первого раза разработки с нуля в любой средней/большой конторе вопросов в принципе не возникает. Берёшь то что удобно и быстренько херачишь сайт не заморачиваясь вообще ни о чём. Новые технологии позволяют не писать кучу кода которую тебе нужно будет написать на ПХП, тут уже всё готово бери и используй. И исходя из опыта могу сказать что вообще не важно на чём писать, главное это на чём умеешь хорошо, чтоб не изучать туеву хучу новых инструментов.
                                                                                                                            0

                                                                                                                            Если делать всё "по уму", "чтоб пацанам не стыдно было показать", то почти без разницы какой конкретно современный стэк использовать, включая PHP и MySQL. Библиотеки, фреймворки, обёртки, кодогенераторы везде в мэйнстрим сейчас есть. Половина, если не больше современной инфраструктуры language agnostic.

                                                                                                                            +10

                                                                                                                            Истинно так!
                                                                                                                            А чем плох вариант сайта "из коробки"?
                                                                                                                            Wordpress/bitrix/Joomla + тема по вкусу + доработать напильником, кладём на популярный виртуальный хостинг = обычный типовой сайт! И никакого геморроя!


                                                                                                                            С каждым годом все больше осознаю, что главное — это КОНТЕНТ! Даже сайт сверстанный черти как, с поехавшей вёрсткой, без мобильной версии и прочих свистоперделок вполне себе будет популярным и посещаемых, если там есть важная и/или нужная информация.


                                                                                                                            Вспомните старую корзину Вайлдберриз — при оформлении заказа хотелось замучить до смерти того, кто её написал, но многие (и я тоже) ценой невероятных усилий таки оформляли заказ. Почему? Цена, удобная доставка, нет предложения от конкурентов, доверие к крупному ритейлеру. Остальное все от лукавого.


                                                                                                                            До сайта на ларавел или дотнет надо сначала дорасти! А там уже видно будет на чем и как оно должно работать.

                                                                                                                              +2

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

                                                                                                                                –1
                                                                                                                                самый лучший комментарий! жаль не могу плюсануть.
                                                                                                                                +4
                                                                                                                                Может, мне позвать в команду пару друзей, чтобы сделать всё правильно вместе?
                                                                                                                                Не забудьте записать друзей на тренинги по agile, scrum, kanban и т.д. Ну и само собой проект в Джире завести надо будет.
                                                                                                                                  +12
                                                                                                                                  Конечно, и мне стоит знания освежить! Нашёл курсы на Нетологии за 55 000, если друзей четверо, то выйдет всего 220 000 рублей. Плюс за Джиру по 7 долларов. Недорого, главное побыстрее найти инвестора!
                                                                                                                                    +9
                                                                                                                                    Лучше бросить дурацкую идею создавать сайт и сразу начать с курсов по созданию сайтов.
                                                                                                                                      +3

                                                                                                                                      Создать таки сайт, записываю все действия, и продавать как курс.

                                                                                                                                        0
                                                                                                                                        Создать сайт, где будут продаваться курсы по созданию сайтов с курсами…
                                                                                                                                          0

                                                                                                                                          Ну, мастер-классы по ведению мастер-классов были не редкостью.
                                                                                                                                          Но бум инфоюизнеса и инфоцыганства вроде бы уже прошел.

                                                                                                                                            +1
                                                                                                                                            Но бум инфоюизнеса и инфоцыганства вроде бы уже прошел.


                                                                                                                                            эта песня будет вечной
                                                                                                                                            0
                                                                                                                                            Создать агрегатор сайтов, где продают курсы, а лучше агрегатор агрегаторов с отзывами.
                                                                                                                                      0

                                                                                                                                      Прямо в точку! Именно поэтому я начал работать над проектом viewi https://viewi.net/ чтобы решить эту проблему. Стадия PoC.

                                                                                                                                        0
                                                                                                                                        Плывущая верстка родом из 2000-х, мммм, найс


                                                                                                                                        Причем на Хроме, правда не самой последней версии. 20 лет прошло, а мы все еще подстраиваемся под версии браузеров, ностальгия…
                                                                                                                                          0

                                                                                                                                          Можно узнать версию хрома ?

                                                                                                                                            0
                                                                                                                                            68
                                                                                                                                              0

                                                                                                                                              Слишком старая версия, flex is not supported, вам нужно обновить хром

                                                                                                                                                  0
                                                                                                                                                  Ну тогда вам к автору www.muicss.com
                                                                                                                                                    0

                                                                                                                                                    Апдейт: это не флекс, это плагин в хроме, буду решать проблему

                                                                                                                                                    +1
                                                                                                                                                    Дак в том-то и дело что я не должен обновлять версию годовой давности как в 2000-х потому-что что-то там не поддерживается, ибо это и есть та кросс-браузерность, о которой все мечтали. И да, flex поддерживается, выше уже сказали.