Так сложилось, что работу, которая мне нравилась и которую, как мне кажется, я делал хорошо, мне пришлось сменить на более стабильную и прибыльную, но уже не такую интересную – работу линейного менеджера в подразделении информатизации в крупном банке. Сказать, что эта работа полная противоположность прежней сложно, но в ней нет, того, что было в разработке: драйва, необходимость решения сложных задач, изучения новых технологий, что тут говорить – не было даже английского языка (знание которого терять не хотелось). Откровенно говоря, несмотря на заявляемую гибкость и передовые технологи, во многих банках царит IT-совок и ручной труд.

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

В связи с этим было принято решение об изучении новых технологий в области разработки на базе небольшого домашнего проекта (вычитываемые из книг и интернета знания без опыта применения улетучивались очень и очень быстро). Необходимые знания были, время выделить для своего развития я мог всегда.

В качестве проекта была выбрана идея реализации новостного агрегатора (с клиентом на Android) и его серверной стороны для сбора, обработки, хранения и представления данных.

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

  • системой контроля версий;
  • системой сборки;
  • системой последовательной интеграции;
  • интегрированными средами разработки для Java и Android;
  • системой хранения готовых артефактов;
  • библиотекой обхода интернет-сайтов на Java;
  • системой контроля конфигураций;
  • системой мониторинга;
  • системой контейнерной виртуализации;
  • системой визуализации данных от систем мониторинга;
  • нереляционной системой хранения данных;
  • распределённой поисковой системой;
  • распределённой системой обработки сообщений;
  • системой анализа на естественном языке;
  • вероятностными тематическими моделями, работающими в распределённых системах;
  • библиотеками для разработки Android приложений.

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

Схематически компоненты проекта можно представить так:

image

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

Дальнейшие посты будут посвящены каждой теме (или сразу нескольким темам) из указанных и будут содержать интересные ссылки, будут описывать особенности их применения в моём проекте.

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

Комментарии (2)


  1. time2rfc
    31.07.2017 15:49

    Доброго времени суток, спасибо что решили поделиться со мной своими знаниями, возник вопрос — действительно ли необходимо делить статью на 16 маленькиъ кусочков ?


    1. fedor_malyshkin
      31.07.2017 16:26

      Делать твиттер из Хабр конечно не планирую, но слепить все моменты в одну мега-статью будет негуманно для читателей. Писать её я буду месяца 2-3 и при этом сильно уменьшу вероятность, что её дочитает кто-то до конца.
      Одно могу сказать, что комбинированные посты точно будут.