Короче, я хорошо помню, как в 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 слишком избыточна, пока я один, но не коммитить же все в мастер-ветку? Мало ли к проекту кто-то присоединится, или, если я покажу репозиторий на собеседовании, все будут смеяться. Остаётся и непраздный вопрос, что писать в описаниях коммитов и на каком языке, но оставим это на потом.
Стоит подумать, как это все дело развернуть на
Ах, еще же БД! Вроде PostreSQL хорошая, и я даже с ней работал, но, может, мне нужна nosql-база? Остается открытым вопрос, как ее развернуть на сервере, и как поддерживать одинаковую структуру на моём компьютере и в облаке без потери данных, но до этого пока далеко.
Ах, чуть не забыл. Раз фронтенд на JS-фреймворках, то нужно подумать о Server Side Rendering, важно, чтобы мой проект индексировался. Хм, не нужно ли для этого применить Next.js или Nuxt.js? Надо подумать.
Так как я уже стал что-то забывать, то нужно и какой-нибудь таск-трекер прикрутить, чтобы отслеживать задачи и прогресс. Стоит ли мне воспользоваться методологиями Scrum или Kanban? Или пока я один, можно и так? А как же тогда следить за дедлайнами?
Ещё я не подумал, конечно, о TS, ES6, SASS, PUG, GraphQL, ООП, функциональном программировании, иммутабельности и обо всём таком. И нужно будет сертификат HTTPS прикрутить обязательно! Может, мне позвать в команду пару друзей, чтобы сделать всё правильно вместе?
На этой ноте я устал окончательно и подумал, что, может, мне стоит откопать старую книжку по PHP, и сделать всё, как в 2013 году, когда я ни о чём выше не имел представления, а половина технологий ещё не появилась? Похоже, я слишком много думаю наперёд. Решу всё это потом, сейчас посмотрю сериал и пойду спать, а завтра точно начну программировать.
Автор: Сергей Копылов