English

Предисловие

Я перешел в профессиональную веб-разработку в 2013. До этого я был инженером и работал на заводе, программировал контроллеры и писал программы на Delphi. В свободное время изучал веб и подрабатывал разработкой приложений для Вконтакте. До этого, еще в 2005 году, я сделал свой сайт на narod.ru и написал для него гостевую книгу на php. Раньше в начале 2000-ых web-разработчик занимался версткой (или Flash интерфейсом), программированием, установкой и настройкой программного обеспечения сервера, сам выгружал код и сопровождал проект.

Теперь трудно представить специалиста, который одинаково хорошо разбирается во всех аспектах веб-разработки. Все чаще видно разделение на специальности и выделение отдельных видов работ в целые направления. Сейчас есть Frontend, Backend-разработчики, специалисты по инфраструктуре, специалисты по безопасности, тестировщики, проектные менеджеры, аналитики.

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

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

Содержание (Предварительно)

  1. Эволюция приложений

    1.1. От статичного HTML до Single Page Application и Progressive Web Application

    1.2. Монолит, Микросервисы, Serverless

    1.3. HTML, REST, GraphQL

  2. Frontend и Backend хирургия

  3. Компоненты системы (FE-приложение, BE-приложение, Web-сервер, RDBMS, NoSQL, Система для полнотекстового поиска, очереди сообщений, брокер сообщений Kafka, хранилище файлов, 3-party сервисы)

  4. Инструменты

    4.1. Язык программирования

    4.2. Среда разработки

    4.3. Управление контейнерами

    4.4. Контроль версий

    4.5. Сборка проекта gradle maven, webpack, composer

    4.6. Коммуникация и Управление проектом

    4.8. Provisioning

    4.9. Остальное

  5. Разработка программного обеспечения

    5.1. Приложение

    5.2. Тестирование

    5.3. Локальное окружение

    5.4. Обеспечение качества checkers, linters, security, duplicates.

    5.5. Процесс разработки Задача, ожидаемые результаты, возможные решения, код, локальное тестирование, Merge Request, Ревью, Merge в dev, тесты, в production.

  6. Инфраструктура Своя инфраструктура, Аренда, Облако, Serverless

  7. Развертывание и доставка кода CI/CD, pipeline

  8. Эксплуатация

    8.1. Окружения: локальное, тестовое, эксплуатация ???

    8.2. Observability logs, tracing, metrics

  9. Один рабочий день разработчика

    9.1. Первый рабочий день

    9.2. Остальные дни

  10. Список ссылок