Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/azproduction/talk-better-js
Even Better JavaScript (ru)
https://github.com/azproduction/talk-better-js
Last synced: 22 days ago
JSON representation
Even Better JavaScript (ru)
- Host: GitHub
- URL: https://github.com/azproduction/talk-better-js
- Owner: azproduction
- Created: 2013-11-17T12:35:19.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2013-11-17T12:36:58.000Z (about 11 years ago)
- Last Synced: 2024-04-15T12:20:59.358Z (7 months ago)
- Language: CSS
- Homepage: http://azproduction.ru/talk-better-js/
- Size: 258 KB
- Stars: 2
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Код и Модули
* Все в куче
* Модули - просто файлы
* Модульные подходы и сборка
* CommonJS/Modules + Browserify
* CommonJS/Modules + [LMD](https://github.com/azproduction/lmd)
* AMD + r.js
* [Путь JavaScript модуля](http://habrahabr.ru/post/181536/)## Документация
* Код плохо документирован
* Код не правильно документирован
* Не корректно оформленный JSDoc```
/**
* Функция ololo, преобразовывает pewpew
* @param pewpew
*/
function ololo(pewpew) {}
```
* Подходы
* JSDoc
* jsdoc-toolkit
* jsdoc3
* Closure Compiler JSDoc
* Чем проверить
* [jscs](https://github.com/mdevils/node-jscs)## Кодстайл
* [airbnb/javascript](https://github.com/airbnb/javascript)
* Чем проверить
* .editorconfig (табы/пробелы)
* jshint (общий стиль и баги)
* [jscs](https://github.com/mdevils/node-jscs) (конкретные случаи)## Сложность кода
* Logical Lines of code (LLOC)
* Statements per function
* 12 и меньше - ОК
* Cyclomatic complexity
* 5 и меньше - ОК
* Nested loops
* 2 и меньше - ОК
* Halstead complexity measures (Маурис Говард)
* Difficulty (на сколько сложно понимать, развивать и ревьюить такой код)```
(#distinct_operators / 2) * (#operands / #distinct_operands)
```* Volume (количество кода)
```
(#operators + #operands) * log2(#distinct_operators + #distinct_operands)
```* Effort (усилие на создание такого кода)
```
difficulty * volume
```* Time (время на написание всего кода, секунд)
```
effort / 18
```* Bugs (оценка количства скрытых багов в таком коде)
```
pow(effort, 2/3) / 3000
```* Maintainability index [-Infinity...171] больше - лучше; 65 - OK
```
171 -
(3.42 * ln(mean_effort)) -
(0.23 * ln(mean_cyclomatic_complexity)) -
(16.2 * ln(mean_lloc))
```
* Чем проверить
* [plato](http://jsoverson.github.io/plato/examples/jquery/)Конфиги с типовыми настройками https://github.com/azproduction/npm-package