На этой неделе я не работаю над личным проектом, но работаю в паре над клиентским проектом с тремя ремесленниками из 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
, но уже приятно знать, что подобные инструменты доступны для облегчения жизни разработчиков. Завтра мой парный тур продолжается, и я с нетерпением жду его!