Дневник web-разработки 01. Выбираем стэк технологий
Настало время для нового поста в серии, посвященной моему текущему проекту, а именно разработке веб-приложения по управлению временем. В этом посте я расскажу о том, какой стэк веб-технологий я выбрал для создания своего интернет-приложения, а также обосную это решение.
На клиентской стороне никаких сюрпризов. Фронт-энд пишется на языке JavaScript (если точнее. то на EcmaScript 6), а за отрисовку отвечает фреймворк Vue в связке с webpack. Тут наверное надо пояснить почему именно Vue, а не мегапопулярный React. За всю свою карьеру мне удалось пощупать достаточное количество JavaScript-фреймворков. Приходилось иметь дело с Angular.js, Ext.js, Dojo, с новым Angular’ом и с Ember.
Таким образом нераспробованными из популярных фреймворков остались только React и Vue. Причины же почему я предпочел Vue Реакту довольно простые:
- Мне не нравятся JSX-шаблоны в React.
- Vue поновее и более “моднявый”.
- Vue положительно сравнивают с Angular.
- Мне не нравится название “React”.
Таким образом, тщательно взвесив преимущества и недостатки двух фреймворков [сарказм], мой выбор пал на Vue, который я до этого проекта вообще не практиковал.
А вот на серверную сторону мною был выбран молодой, но очень перспективный язык Kotlin от компании JetBrains. Kotlin это JVM язык, который исполняется на виртуальной машине Java и может использовать всю существующую экосистему Java. По сути, этот язык - это такая Java 2.0, в нем исправлены многие недостатки Java как языка. К сожалению, Котлину, как по мне, недостает популярности. Ну а в роли веб-фремворка на сервере у нас используется Spring Boot.
А теперь немного коснемся архитектуры. Так как я всегда легко поддавался влиянию различных трендова в IT-индустрии, при планировании высокоуровневой архитектуры приложения я решил сделать всё в виде микросервисов (всегда используйте микросервисы, даже там где они не нужны, иначе другие разработчики подумают что вы лох и будут показывать на вас пальцем). Именно по этой причине и бэкэнд и фронтэнд имеют собственный сервер, для бэкэнда это Apache Tomcat, а для фронтэнда - Node.js. Ах да, еще каждый из них завернут в Docker-контейнер, но об этом в следующий раз.
Чуть не забыл, вот ссылка на мой ежедневный стрим, если вдруг захотите посмотреть как я гуглю в прямом эфире разрабатываю свое веб-приложение. Заходите, начало в 21:00 по Московскому времени.
На этом на сегодня все, следите за обновлениями!