Мы с удовольствием используем Typescript в Qualdesk (эксклюзивно) более полутора лет и видим много преимуществ в нашей повседневной работе. Мой vim настроен так, чтобы максимизировать все возможности автозаполнения и время от времени наши ошибки CI, когда кто-то выполняет ленивое исправление, не запуская его локально.

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

Улучшение наших разговоров о решениях

В команде, которая сильно зависит от проверки кода в форме запросов на вытягивание, получение мнения других людей о наших решениях является второй натурой.

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

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

Имея это в виду, интерфейсы Typescript позволили нам получить эту раннюю проверку смысла, не выходя из текстового редактора. Мы можем начать строительство с определения интерфейсов и моделей данных - в отличие от программирования на основе интерфейсов - и использовать их, чтобы начать разговор о подходе. Другие члены команды могут легче понять, как предложенное решение будет работать, и могут задавать более конкретные вопросы (как оно взаимодействует с остальной частью кода, как это влияет на наши планы и т. Д.)

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

Написание более простого кода

В данном случае, вместо того, чтобы включить что-то в Typescript, он мешает нам сделать что-то плохое.

TypeScript делает действительно сложным написание слишком сложного кода.

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

Если во время проверки кода вы начнете читать типы, которые не сразу понять, высока вероятность того, что базовая реализация может быть проще.

Еще одна вещь о Typescript - это мешает вам писать преждевременно абстрагированный или чрезмерно обобщенный код. Обобщенный код в Typescript будет использовать универсальные шаблоны или типы для вещей, которых еще нет в коде. Первое может быть правильным, но довольно быстро становится труднее понять, чем саму реализацию. А писать шрифты для вещей, которые еще не придумали, нетрудно - это невозможно. Вы очень быстро приходите к выводу, что вы придумываете что-то, и вам не следует передавать это репо… потому что вам это не понадобится.

Эти два преимущества гарантируют, что я больше не вернусь к vanilla JS в ближайшее время. Они заставляют меня задуматься о том, какие языки мы могли бы добавить в наш технологический стек в будущем - статическая типизация будет одним из основных требований.

Мне бы хотелось услышать, что вы думаете - предпочитаете ли вы непринужденную обстановку языков с динамической типизацией или преимущества статической типизации? Заметили ли вы какие-либо другие преимущества от использования Typescript? Напишите мне в Твиттере @lukaszsagol

Попробуйте Qualdesk бесплатно со своей командой

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

Сделайте вашу следующую встречу лучше, запустив ее в Qualdesk.



Первоначально опубликовано на https://www.qualdesk.com.