project-guidelines README

The project's README from github.com/elsewhencode/project-guidelines. As one markdown file: README.md.

中文版 | 日本語版 | 한국어 | Русский | Português | Italiana | Persian/فارسی

Project Guidelines · PRs Welcome

While developing a new project is like rolling on a green field for you, maintaining it is a potential dark twisted nightmare for someone else. Here's a list of guidelines we've found, written and gathered that (we think) works really well with most JavaScript projects here at elsewhen. If you want to share a best practice, or think one of these guidelines should be removed, feel free to share it with us.


1. Git

Git

1.1 Some Git rules

There are a set of rules to keep in mind:

1.2 Git workflow

Because of most of the reasons above, we use Feature-branch-workflow with Interactive Rebasing and some elements of Gitflow (naming and having a develop branch). The main steps are as follows:

1.3 Writing good commit messages

Having a good guideline for creating commits and sticking to it makes working with Git and collaborating with others a lot easier. Here are some rules of thumb (source):

2. Documentation

Documentation

3. Environments

Environments

3.1 Consistent dev environments:

3.2 Consistent dependencies:

4. Dependencies

Github

5. Testing

Testing

6. Structure and Naming

Structure and Naming

7. Code style

Code style

7.1 Some code style guidelines

7.2 Enforcing code style standards

8. Logging

Logging

9. API

API

9.1 API design

Why:

Because we try to enforce development of sanely constructed RESTful interfaces, which team members and clients can consume simply and consistently.

Why:

Lack of consistency and simplicity can massively increase integration and maintenance costs. Which is why API design is included in this document.

9.2 API security

These are some basic security best practices:

9.3 API documentation

For each endpoint explain:

10. Accessibility (a11y)

Accessibility

10.1 Laying accessibility practices in place

Take the following steps at the start of your project to ensure an intentional level of accessibility is sustained:

Why:

Web content is accessible by default. We compromise this when we build complex features. It's much easier to reduce this impact by considering accessibility from the start rather than re-implement these features later.

10.2 Some basic accessibility rules to add to your project:

More accessibility rules can be found here.

11. Licensing

Licensing

Make sure you use resources that you have the rights to use. If you use libraries, remember to look for MIT, Apache or BSD but if you modify them, then take a look at the license details. Copyrighted images and videos may cause legal problems.


Sources: RisingStack Engineering, Mozilla Developer Network, Heroku Dev Center, Airbnb/javascript, Atlassian Git tutorials, Apigee, Wishtack

Icons by icons8

project-guidelines (elsewhencode/project-guidelines)

Searching Database…

Что это такое?Публичный сборник лучших практик для JavaScript-проектов, написанный и собранный командой elsewhen, — пронумерованные правила по Git, документации, окружениям, зависимостям, тестированию, стилю кода, API и не только.
Это пакет, который нужно устанавливать, или просто документ для чтения?Просто документ — структурированный README с пронумерованными правилами, и к каждому прилагается пояснение «Почему». Устанавливать ничего не нужно: вы копируете предложенные .gitignore и шаблон README, а остальное внедряете через code review.
Как применить эти правила на практике?Прочитайте сверху вниз и возьмите то, что подходит: скопируйте предложенные .gitignore и шаблон README.md по ссылкам, зафиксируйте версию node через .nvmrc, используйте lockfile, а остальное контролируйте в pull request.
Он рассчитан на Node или подходит для любого стека?Советы по окружению и зависимостям завязаны на Node/npm — nvm и .nvmrc, engines в package.json, package-lock.json или Yarn, — а вот правила по Git, сообщениям коммитов и документации подойдут для любого стека.
Это строгий стандарт или авторские рекомендации?Авторские рекомендации, а не принудительный инструмент: у каждого правила есть пояснение «Почему», и авторы открыты к обсуждению — стоит ли добавлять или убирать правила. Следить за их соблюдением придётся вам, например через code review.
Это для команд или для разработчиков-одиночек?В основном для команд: работа в feature-ветках с ревью pull request, защищённые ветки develop и master, одинаковые версии зависимостей на всех машинах. Одиночки тоже могут взять себе правила по коммитам и стилю кода.
Можно переиспользовать или адаптировать сам гайд?Да — лицензия MIT по метаданным репозитория, так что можно сделать форк и адаптировать гайд под свою команду. В конце гайда есть раздел Licensing о выборе лицензии для вашего проекта.
Насколько детальны правила по Git?Очень: никогда не пушьте напрямую в develop или master, делайте интерактивный rebase перед pull request, удаляйте feature-ветки после слияния. По коммитам — строка-заголовок до 50 символов, тело с переносом на 72, повелительное наклонение, а в теле объясняется, что сделано и почему.
Что там с советами по тестированию?Держите тестовые файлы рядом с тестируемым кодом и называйте их по схеме moduleName.spec.js или moduleName.test.js, а если продакшен-аналитика или лимиты API мешают, заведите отдельное тестовое окружение.
Там называются конкретные инструменты?Да: depcheck для поиска неиспользуемых пакетов, npm-stat и npm view, чтобы оценить популярность и поддержку пакета, npm outdated и npm-check-updates, чтобы не отставать от версий, Snyk для проверки уязвимостей, joi для валидации переменных окружения при старте и Docker для одинакового окружения.
Гайд есть на других языках?Да — переводы сообщества на китайский, японский, корейский, русский, португальский, итальянский и персидский перечислены ссылками в начале README. Впервые опубликованный в 2017 году, репозиторий по-прежнему публичный и не архивирован.
Size
0.5 MB
Stars
29.4K
Updated
CommitDec 09
Age
9y
Commits · 90 Days