- Published on
Создаём блог
Привет!
В этой серии статей хочу рассказать о технической составляющей современного ИТ-блога. Не будем долго останавливаться на том, почему ведение собственного блога разработчиком (да и в целом любым инженером) — хорошая идея. В интернете хватает статей о мотивации, достаточно вбить в Google «Why every developer should start blogging». Вкратце все они сводятся к примерно такому списку преимуществ:
- Совершенствование знаний и навыков разработки. Когда пытаешься написать о чём-то или объяснить другим что-то, лучше и глубже разбираешься с темой.
- Можно прокачать навык письменной коммуникации. Один из самых важных навыков хорошего инженера — способность понятно и грамотно излагать свои мысли.
- Дополнительная возможность продавать себя и выделиться на фоне прочих соискателей при поиске работы. Как нанимающего менеджера меня всегда привлекают такие кандидаты, ещё до собеседования можно узнать о кандидате гораздо больше, чем из стандартного одностраничного резюме.
Также не будем задерживаться на том, стоит ли вести блог на собственном сайте или на сторонней площадке. У каждого из способов есть как плюсы, так и минусы. Так, например, собственный сайт значительно сложнее раскручивать и поддерживать, а сторонняя площадка может присваивать себе авторские права на материалы или блокировать неугодных рекламодателям авторов. Если всё это не пугает, то, конечно, проще будет начать публиковаться на всем известных Хабре, VC или Яндекс.Дзене.
Итак, нашей целью будет создание платформы для блоггинга одним человеком или небольшой группы авторов. Основные требования к результату:
- материалы носят технический характер, в них может встречаться кодили даже математические формулы
func NewAuthGrpcServer(logger *log.Logger, authService service.AuthService) pb.AuthServiceServer { return &authGrpcServer{logger: logger, authService: authService} }
- материалы должно быть легко редактировать, после редактирования их должно быть легко опубликовать;
- сайт должен быть достаточно отзывчивым и не требовать много ресурсов для работы;
- сайт можно разместить полностью бесплатно или за символическую цену;
- сайт должен автоматически масштабироваться под примерно любую нагрузку и иметь защиту от DDoS-атак;
- на сайте могут присутствовать динамические элементы, которые должны исполняться на серверной стороне;
- сайт должен хорошо индексироваться поисковиками, быть SEO-fiendly;
- сайт должен поддерживать возможность кастомизации, i18n и l10n.
Думаю, что уже здесь многие возразят, что требования (и предлагаемые решения) неадекватны изначальной задачи «создать простой ИТ-блог». Тем не менее мне также хочется показать, как создаются современные приложения, да и используемые технологии часто только ускоряют разработку (хотя и усложняют её из-за более высокого порога входа и необходимости предварительно разобраться в них). К тому же сразу оговорюсь, что я не являюсь экспертом в веб-разработке и всю свою сознательную жизнь провёл, создавая бэкенды. Для меня это скорее хобби-проект и возможность поддерживать актуальными знания о создании сайтов и веб-приложений.
В следующей части рассмотрим варианты выбора технологий для разработки движка блога.