• TDD/BDD в чем разница и для каких видов модулей стоит использовать?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    TDD

    - пишем тесты - маленький кусочек, то что можно минут за 10 написать. На этом этапе мы формулируем что мы хотим написать.
    - пишем код - пишем код, который делает тесты "зелеными". то есть все работает. Мы делаем это максимально быстро, самым тупым способом, который просто быстрее всего сделать.
    - рефакторинг - после того как все работает, или еще через пару итераций, что бы набралось чуть больше "грязи", чистим код поочередно. Важно при рефакторинге чистить что-то одно. Либо код, либо тесты (да да, их тоже надо рефакторить иногда устраняя дублирование). Поправили код - прогнали тесты, все хорошо? тогда можно тесты подправить. Ну и т.д.

    BDD
    - пишем фичаспеки - это этап детализации более высокоуровневых требований. Фич. Обычно на этом этапе просто записываются мысли как что должно работать. В этом плане описание фичи описывает юзкейс, а сценарии - детализируют поведение фичи. То есть если у кого-то возникает вопрос как что должно работать, люди описывают пример в виде сценария. Типа что есть, что мы делаем и что в итоге должна выдать система.
    - пишем код - так же как и в случае с tdd, можно писать код для разных уровней.
    - рефакторинг.

    TDD - для одного разработчика, BDD - для команды. А BDD-style assertions для chai - это пафос. По сути это "планирование фич" в рамках библиотек и отдельных объектов. Чуть меньший масштаб. Но ничем от TDD вообще не отличается, хотя если сильно постараться можно так же оценивать ценность фич для пользователей нашей библиотеки и т.д.

    Как никак в BDD основная мысль - фичаспеки должен иметь возможность читать продукт оунер или стэкхолдеры, то есть те кому проект собственно нужен, что бы говорить должно работать так или нет. В случае с библиотеками... ну вы пишите что-то для девелоперов, а они в состоянии читать тесты как фичаспеку. И в принципе от предметной области недалеко.
    Ответ написан
    1 комментарий
  • Какой open source проект на node.js выбрать как эталон для архитектуры и стиля?

    Dugnist
    @Dugnist
    Fullstack Node.js Developer (JSBerry, React, Vue)
    Если речь о модульной архитектуре, предлагаю посмотреть:
    https://github.com/Dugnist/jsberry
    Буду рад форкам или контрибьюторам...)
    Ответ написан
    Комментировать
  • Какие существуют средства поиска дублированного кода в проекте для JS (или вообще)?

    @w96k
    Популярный вариант для высокоуровневых языков: https://codeclimate.com/
    Ответ написан
    Комментировать
  • Какой open source проект на node.js выбрать как эталон для архитектуры и стиля?

    bingo347
    @bingo347 Куратор тега Node.js
    Crazy on performance...
    Исходники самой node.js и v8 лично я считаю эталонными как в плане js так и в плане c++
    Из чисто js - можно изучить исходники lodash
    По архитектуре неплохо выглядит фреймворк sails.js
    Ответ написан
    1 комментарий