Conversation
Task1/mysort.js
Outdated
There was a problem hiding this comment.
вместо глобалов можно было сначало объявить функцию, а потом ее использовать те runTestsSort опустить в самый конец скрипта
There was a problem hiding this comment.
Но тогда код будет неопрятным. Так как в начале файла, модуля, класса должно быть самое важное. Ну это на мой взгляд.
There was a problem hiding this comment.
Код должен быть максимально самодокументированным. Используй тогда модуль заодно и от _ избавишься
var mySpecialFunction = (function () {
function myPrivate() {
}
return function () {
var stuff = myPrivate();
return stuff * 42;
};
}());
mySpecialFunction(100500);There was a problem hiding this comment.
- Я не понял комментария на счет "самодокументированности кода".
Писать комментарии? - мне кажется это избыточно в данной ситуации (так как не очевидного кода нет) - DRY
Писать тесты в которых описано как и что работает? - я это вроде бы написал в той или иной степени
Писать вики документацию? - когда я устраивался на стажировку мой код с вики документацией "обсмеяли" - DRY. - Если мы засунем все в функцию:
- ограничили видимость функции
- я не понимаю как протестировать "внутренние" функции.
There was a problem hiding this comment.
самодокументированности кода - всмысле, что код должен быть понятен и без коментариев. Коментарии только для не очевидных штук (алгоритмы, датафлоу, пояснения к аргументам функции итп).
Совсем не посмотрел на имена функций - все они тесты. Оставь как есть. Не заморачивайся :)
There was a problem hiding this comment.
А можете выложить под тестовым пользователем, вашу версию данной задачи? хочется научиться чему, то хорошему.
There was a problem hiding this comment.
Вот что бы я сделал по максимуму:
- Сделал бы из файла модуль (LMD или AMD)
- JSDoc для всех публичных функций (те, что на экспорт из модуля) с
@example - Сделал бы из модуля npm-пакет -
package.json(прописал бы все зависимости) - Добавил бы юнит-тестов на основе QUnit или Mocha
test/* - Сделал бы автоматизированный и безбраузерный запускатель тестов на node.js и PhantomJS
- Сделал бы автоматизированную проверку кода JSHint (не JSLint)
- Предыдущие 2 должны запускаться по
make testиnpm test - Сделал бы git-hook на основе JSHint, который не давал бы мне коммитить говнокод (желательно это сделать сразу иначе потом забиваешь).
- Сделал бы автоматизированную сборку документации
make docs - Прописал бы проект в TravisCI для автоматизированного тестирования каждого моего коммита в git origin
- TravisCI при каждом коммите скачивает к себе мой репозиторий выполняет
npm install && npm test(вобщем автоматом ставит и запускает базбраузерные тесты)
- TravisCI при каждом коммите скачивает к себе мой репозиторий выполняет
Почти все это я сделал тут https://github.com/azproduction/lmd
1. Добавил документацию к публичному методу bubble search. 2. Переписал тесты c использованием QUnit
^^