Filecoin

Filecoin


Уже зная об IPFS, ожидала, что код Filecoin окажется неплохим — и эти ожидания оправдались. Для начала, у них есть путеводитель по коду — всё, чтобы помочь разработчикам легко влиться в проект и начать отправлять пулл-реквесты как можно скорее. Это очень хорошая практика, но мало какие проекты заботятся о сообществе настолько сильно. К тому же, это показывает, что у проекта есть чёткая структура, а не кое-как собранные воедино куски эфира. Насколько я видела, весь код написан самими разработчиками, не форкнут из другого проекта (за исключением мелких кусочков и криптостека, где всё-таки указан копирайт, как здесь и здесь).

Кажется, их старания по коммьюнити-билдингу окупились: GitHub уже показывает 33 контрибьютора, и ещё 19 пулл-реквестов ожидают ревью. Также на момент написания статьи открыто 339 issues. И даже если бóльшая часть из них написана самими разработчиками, это всё равно хороший признак: разработка ведётся открыто, какие-то проблемы и задачи обсуждаются на публике, а не внутри команды (про которую я не уверена, что у них есть возможность собраться физически в одной локации).

Сам код хорошо документирован, почти что в едином стиле, по гайдлайнам сообщества golang. В комментариях к функции часто описывается не только то, что она по факту делает, но и то, как она интегрируется в общую инфраструктуру (пример). Коммитмесседжи не совсем в одном стиле, но хотя бы хорошо передают суть изменений.

Активно используются custom типы и структуры, что является хорошим стилем в языке go. Вообще, его возможности (custom types, reflection, даже лямбда-функции) они используют по полной, что иногда приводит к очень странно выглядящему коду, и это не очень хорошо (хотя для JS код в таком стиле — обычный, возможно, автор того файла пришёл как раз из JS). Что интересно, множество библиотек импортируют прямо из IPFS, вместо git-репозитория!

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

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

Report Page