Skip to content

Latest commit

 

History

History
40 lines (24 loc) · 1.43 KB

CONTRIBUTING.md

File metadata and controls

40 lines (24 loc) · 1.43 KB

DeFi Scan Contributing Guide

Developing Guides

TODO comments

TODO comments should usually include the author's github username in parentheses. Example:

// TODO(fuxingloh): Add tests.

Code of conduct

Please follow the guidelines outlined at https://github.com/DeFiCh/.github/blob/main/CODE_OF_CONDUCT.md

Explicit over implicit

Each package, feature, code and decision should be explicit and well documented over implicitly guessing.

TypeScript

TypeScript must be used for all code written in this project.

constants.ts not allowed

It's an anti-pattern for scaling code, it gives a false impression of separation of concern. All it does is create a mass of code concentration within project that were better separated.

An analogy for this problem is file organization in projects. Many of us have come to agree that organizing files by file type (e.g. splitting everything into html, js and css folders) don't really scale. The code related to a feature will be forced to be split between three folders, just for a false impression of "separation of concerns". The key here is that "concerns" is not defined by file type. Instead, most of us opt to organize files by feature or responsibility. vuejs/rfcs#55 (comment)

Minimize dependencies (target zero)

Do not depend on external code. (never if possible)

Top level functions should not use arrow syntax.