Javascript-форум (https://javascript.ru/forum/)
-   Сборка проекта, утилиты (https://javascript.ru/forum/server-tools/)
-   -   Оптимизация WorkFlow! (https://javascript.ru/forum/server-tools/47785-optimizaciya-workflow.html)

Safort 22.03.2015 18:03

Сравнение https://www.airpair.com/node.js/post...press-koa-hapi

В Koa, как и в новых версиях Express, нету родного роутинга, нужно устанавливать дополнительные модули.

melky 22.03.2015 18:29

Цитата:

Сообщение от Safort (Сообщение 362416)
melky,
много времени прошло, наверняка многое из списка поменялось. Может, обновишь?)

да, несколько штук поменялось

Цитата:

Сообщение от Gozar (Сообщение 362471)
Чем быстрее разрабатывать, тем медленнее сервер обычно.

:blink:

Цитата:

Сообщение от Safort (Сообщение 362540)
минусы: стабильность(на данный момент 0.18.1 версия). Требует Ноду от 0.11 или io.js.

babel :)

Цитата:

Сообщение от Safort (Сообщение 362540)
Koa создал автор Express и, разумеется, должен был учесть прошлые ошибки)

если считать уродливый middleware за ошибку - то да
в koa реализация мидлверов уже поприятней

а вообще, видел шумиху вокруг hapi - так что интересно попробовать его

Safort 22.03.2015 18:38

Цитата:

Сообщение от melky (Сообщение 362551)
babel :)

У меня не получилось его завести(

Цитата:

а вообще, видел шумиху вокруг hapi - так что интересно попробовать его
А я вот не видел, но синтаксис кажется более громоздким.

melky 22.03.2015 19:00

Оформлю следующий этап "эволюции кодовой обезьяны" отдельным сообщением, дабы можно было углядеть [де]градацию.
  1. Scaffold

    Yeoman
    Языки:
    • Приложение: JavaScript, ECMAScript 6
    • Разметка: JSX (React)
    • Стили: Stylus
  2. Общие штуки
    Всё в куче. Связанное с программированием и не очень.
    • Стили - BEM от Nicolas Gallagher
    • Разметка (компоненты React): модуль + фасад
    • Общий рабочий процесс - TDD. хз насчёт статей. использую интеграционные тесты для определения задач, которые нужно имплементировать. Хоть и не похоже на TDD в чистом виде, подход "тест-имплементация-рефакторинг" остался.
    • Контроль, задачи - Bitbucket issues (с полным набором - компонентами, вехами, важностями, версиями и д.р.)
    • Git Flow - для организации коммитов и вообще всего, что происходит в репозитории
    • Toggl - замерить время на проекты \ задачи
    • Схемы - mindmup. На телефоне - SimpleMind Free mind mapping. Недооценённая штука
    • Управление временем. Как-то заболела спина и глаза. Попользовался Pomodoro. сейчас использую режим 45\15 как более привычный
  3. BE + FE!


    FrontEnd

    BackEnd
    • FW - Express
    • ORM - Sequelize
    • База - PostgreSQL
  4. Сборка

    Webpack - упаковщик модулей.

    Через webpack делается 2 сборки - клиентская (для браузера) и серверная (для серверной отрисовки)
  5. Тестирование

    Сравнение
    Chai в режиме should, chai-as-promised, sinon, sinon-chai, rewire

    FrontEnd
    • Mocha. Если нужно в браузере - mocha-loader для webpack. На практике, для React хватило и jsdom; результат - скорость выполнения тестов довольно неплохая

    BackEnd
    тоже Mocha
  6. Окружение

    Во всех 3х окружениях (разработка, тесты и боевой сервер) приложение крутится в Docker.

    Приложение поделено на микросервисы, каждый запускается в своем контейнере.

    Для манипулирования контейнерами использую docker-compose (в прошлом, fig).

    Окружения отличаются только переменными окружения (которые передаются из машины напрямую в контейнер).

    Кластеризацию и горизонтальное масштабирование пока не посчастливилось попробовать, но проблем возникнуть не должно (спс, Docker)

    Для разработки из под Linux использую сразу Docker, из под Windows - Vagrant Ubuntu с установленным внутри docker.

  7. Размещение
    • Исходников Bitbucket
    • Приложения OpenShift. Но из-за Docker может разместиться везде, хоть у меня на телефоне или роутере

melky 22.03.2015 19:06

Цитата:

Сообщение от Safort (Сообщение 362554)
У меня не получилось его завести(

вроде easy - require('babel/register')

для решения проблемы относительными путями модулей я добавляю папку проекта к каталогам поиска модулей:

в файле задания переменных окружения ( %APP%/.env )
Код:

# ....
export NODE_PATH=.

Цитата:

Сообщение от Safort (Сообщение 362554)
А я вот не видел, но синтаксис кажется более громоздким.

подход "конфигурация превыше всего". вроде мало кода, но вот не потечёт ли абстракция - не уверен

Safort 22.03.2015 20:14

melky,
Цитата:

Приложение: JavaScript, ECMAScript 6
Эмм... :)


Цитата:

вроде easy - require('babel/register')

для решения проблемы относительными путями модулей я добавляю папку проекта к каталогам поиска модулей:

в файле задания переменных окружения ( %APP%/.env )
А я просто переключаюсь на 0.12 или io.js.

Gozar 22.03.2015 20:29

Использую MySQL Workbench - для проектирования базы OrientDB :) и указания связей.

Erolast 23.03.2015 08:13

Цитата:

У меня не получилось его завести(
А ты точно инструкцию читал? https://babeljs.io/docs/using-babel/

Safort 25.03.2015 23:58

Цитата:

Сообщение от Erolast (Сообщение 362612)
А ты точно инструкцию читал? https://babeljs.io/docs/using-babel/

Неа:(

Erolast 28.03.2015 15:11

Цитата:

вроде easy - require('babel/register')
Еще проще - поставить бабель глобально и херачить babel-node вместо node.
Код:

npm install -g babel
babel-node ./index.js



Часовой пояс GMT +3, время: 01:38.