На этой неделе я не работаю над личным проектом, но работаю в паре над клиентским проектом с тремя ремесленниками из 8-го Света. Это очень увлекательно, так как я впервые испытываю настоящую трудовую жизнь программиста!

В первые два дня работы в паре я и мой наставник Рабеа работали над функцией проекта, над которым она работает. По сути, нам нужно было добавить кнопку на страницу веб-сайта нашего клиента, где пользователи могут запрашивать расценки на конкретную услугу.

Проект написан на TypeScript — бесплатном языке программирования с открытым исходным кодом, который компилируется в JavaScript. TypeScript синтаксически похож на JavaScript, но он добавляет к языку необязательную статическую типизацию (что, на мой взгляд, неплохо!). У меня нет опыта ни с JavaScript, ни с TypeScript, поэтому мне было очень интересно посмотреть и узнать что-то новое.

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

Ознакомиться с кодовой базой большого проекта в первый раз — это первая большая проблема, и, конечно, двухдневного времени недостаточно, чтобы привыкнуть ко всем файлам, зависимостям, фреймворкам и т. д. проект сделан из / использует. Но было очень интересно наблюдать, как разработчик делает настоящую работу!

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

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

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

В этом смысле Рабеа показал мне инструмент форматирования, который разработчики могут использовать для обеспечения соблюдения выбранного стиля во всем проекте, который называется linter или lint. Однако он ищет не только ошибки стиля и форматирования.

linter – это инструмент для проверки качества кода с широкими возможностями настройки, который позволяет вам создать собственный файл конфигурации с набором определенных правил. У вас могут быть разные правила для разных сред, например. сервер и клиент.

Для JavaScript инструмент linter — это JSLint, а для TypeScript — TSLint. Эти инструменты проверяют весь ваш исходный код на распространенные ошибки, такие как отсутствие точек с запятой в конце строки, фигурные скобки без if, for, while и т. д. и т. д. Он также может искать менее распространенные ошибки, такие как операторы, разделенные запятыми вместо точки с запятой и т. д.

Чтобы запустить TSLint Rabea, введите в командной строке следующую команду:

yarn lint

Yarn — это инструмент управления зависимостями, который управляет всеми зависимостями проекта. Чтобы иметь возможность запускать инструмент linter, вам нужно добавить зависимость к вашему проекту yarn, хотя, возможно, есть способ установить инструмент непосредственно в командной строке без использования диспетчера зависимостей и запустить инструмент с помощью другой команды: I не уверен!

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

Этот пост недостаточно исчерпывает тему linter, но уже приятно знать, что подобные инструменты доступны для облегчения жизни разработчиков. Завтра мой парный тур продолжается, и я с нетерпением жду его!