Обложка: Серебряные пули против оборотней или чем пользуется Full Stack Developer

Серебряные пули против оборотней или чем пользуется Full Stack Developer

Михаил Альфа
Михаил Альфа

ведущий разработчик в «Россельхозбанке» («РСХБ-ИНТЕХ»)

Dart

Кроссплатформенный язык программирования, который удачно выстрелил совместно с Flutter. У него есть несколько киллер-фич, которые делают его просто идеальным средством достижения целей:

  • AOT-компиляция в production-режиме, позволяющая сразу достигать высокой производительности;
  • JIT-компиляция в development-режиме, которая позволяет разрабатывать приложения с высоким уровнем комфорта и скорости.

Flutter

Кроссплатформенный фреймворк, позволяющий писать приложения для всего, у чего есть экран. Буквально. С данным инструментом приложения будут быстрыми, а разработка намного более продуктивной.

IntelliJ IDEA

Великолепная система разработки, предоставляющая огромный перечень возможностей. Да, она платная, и да, она тяжёлая, но ещё очень классная и функциональная. Я использую её больше 5 лет, но всё равно не знаю всех её возможностей полностью. После такого швейцарского ножа любой другой «текстовый редактор» кажется не более чем блокнотом «на максималках».

Protobuf

Система описания межсервисного взаимодействия, протокол обмена информацией и контракт. Я бы назвал Protobuf всеми этими словами сразу. Это строго-типизированный способ описания контрактов взаимодействия ваших сервисов, неважно каких:

  • Приложение-Сервер
  • Сервер-Сервер
  • Web-frontend-Сервер

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

OpenAPI

Очень похожая на Protobuf система описания контрактов, чуть более универсальная (с web-front никаких «но» нет), по-прежнему типизированная (но тут есть послабления и разработчикам необходимо строго следить за качеством OpenAPI схемы) и очень гибкая.

Vue.js

Frontend-фреймворк, позволяющий писать web-приложения с высоким уровнем качества, скорости и удобства. Подавать строго с TypeScript.

TypeScript

Обязательный инструмент, повышающий качество вашего проекта на уровень, совершенно недостижимый для простого JS. Без TS не стоит начинать делать какой-угодно проект, если вы думаете, что он будет существовать хотя бы полгода и более. Но даже если вы заранее знаете, что делаете «в стол» — всё равно выбирайте Typescript. Потом спасибо скажете.

TypeORM

Отличная ORM для работы с разными видами баз данных. И всё это с абсолютной, полной, совершенной системой типизации на Typescript. Возможно, насчёт «совершенной» я приукрасил, но вам я этого не говорил.

Nest.js

Сегодня я богат на эпитеты, но что поделать… Итак, Nest.js — ещё один образчик того, какими должны быть инструменты «здорового человека». Вы только подумайте: OpenAPI схема, интеграция с Protobuf / gRPC, использование TypeScript, TypeORM и вообще — это просто конструктор Lego, для которого у вас есть не только детальки, но и завод по их производству!

Добавление любого кастомного функционала в логику фреймворка, написание бизнес-логики, достижение лучшего качества кода в соответствии со всеми догмами SOLID, а также, хоть и мнимая, но возможность полностью перейти на любой другой фреймворк из-за подхода «Framework-agnostic» дорого стоят. Но вам они достанутся совершенно бесплатно.

PostgreSQL

Отличная СУБД. Ну а что тут ещё добавить?

DBeaver

Классный viewer для баз данных. Бесплатный, с большими возможностями, удобным интерфейсом.

Другие инструменты

Есть ещё много хороших и полезных инструментов, которые я перечислю уже в очень кратком формате:

  • Figma;
  • StackEdit (для написания Readme);
  • Bash;
  • Terminus (терминал такой);
  • Git;
  • Docker;
  • Ладно уж, что там — JavaScript, но только для утилитарных скриптов, которые на Bash писать слишком сложно и долго;
  • Jira;
  • Redmine;
  • Trello;
  • Clockify (время на задачки списывать как-то надо, но как считать?).

Стоит перечислить и плагины для IDEA:

  • Better Comments;
  • Flutter Enhancement Suite;
  • GitToolBox;
  • Grep Console;
  • Material Theme UI;
  • JsonToDart;
  • Rainbow Brackets;
  • Save Actions;
  • WakaTime (чисто для себя — полезнее знать, сколько ты тратишь времени на код, чем не знать).

Что думаете?