Для того чтобы писать чистый и понятный другим разработчикам команды код обычно используют два вида инструментов: линтеры и форматеры.
Линтеры автоматически анализируют код на наличие возможных программных ошибок и ошибок стиля.
Форматеры автоматически форматируют код в соответствии с предопределенными правилами и значениями отступов по умолчанию.
Язык Solidity не является исключением. Мы предлагаем обратить внимание на следующие инструменты, которые позволят автоматизировать рабочий процесс написания кода в команде.
Важно! Для того чтобы начать писать смарт-контракты на Solidity не обязательно сразу глубоко уметь разбираться во всех инструментах для линтинга и форматирования кода. Но важно знать, какие есть инструменты и для чего они используются. И когда в ходе разработки ты почувствуешь необходимость в использование какого-то из этих инструментов, ты уже будешь знать, что тебе нужно использовать.
- Prettier solidity. Работает в связке с solhint.
Про то что такое, git hooks можно почитать тут
- Husky. Этот инструмент может запускать линтер и форматер перед каждым commit, push или receive.
Важно! Нужно быть внимательным. Расширения для поддержки языка могут конфликтовать друг с другом. Не обязательно использовать все расширения сразу.
Список интеграций для других IDE можно посмотреть тут.
Есть несколько подходов в организации тестов для смарт контрактов. Например, для Foundry тесты пишутся на языке Solidity и это значит, что нам достаточно стандартного линтинга и форматирования только для языка Solidity.
В других средах разработки ситуация может быть немного иной. Например в Hardhat используются: библиотека ethers.js и тестовый фреимворк mocha. Это подразумевает написание тестов на языке javascript или typescript.
- ESLint. Понадобится для линтинга js или ts.
Важно! Для других фреймворков могут понадобиться свои инструменты линтинга и форматирования.