- PVSM.RU - https://www.pvsm.ru -

Eskimo — Node.js бойлерплэйт для создания прототипов

Эскимо [1] — новый Node.js бойлерплэйт для быстрого прототайпинга (MVP).

Даже если интернет заполнен разными бойлерплэйтами и фрэймворками, на нынешний день отсутствует современный, модульный и минимальный бойлерплэйт для запуска прототипов (специально для строительства rapid minimal product-ов «RMVP's»). Проект создается с малого, одним человеком, но потом, под влиянием вкладчиков, он растет до непредсказуемых размеров. Поиск в Google и GitHub про Nodejs бойлерплэйт и Nodejs фрэймворк дает сотни результатов.

Но многие из этих запускателей проектов не имеют автоматизации для развертывания и тестирования продуктов. Некоторые игнорируют практику фронт-энда и не используют Bower [2], Bootstrap [3], Font Awesome [4], S3/CloudFront [5], clustering [6] и LESS [7]. И ни один бойлерплэйт или фрэймворк не внедрили инъекцию зависимостей с помощью электролита [8], за исключением Эскимо [9] и проекта Джареда Хэнсона [10].

Большинство приложений структурируют свой код попросту используя глобальные переменные (что является плохой практикой). Вот, например как многие запускатели проектов структурируют свой код с помощью глобальных объектов:

// config.js

module.exports = {
port: process.env === 'development'? 3000: 80
};
// controller.js

module.exports = function(config) {
return function(req, res, next) {
res.send('Hello world');
});
};
// app.js

var express = require('express');
var app = express();
var config = require('./config');
var controller = require('./controller')(config);

app.get('/', controller);

app.listen(config.port);

Как Эскимо решает проблему?

Простое проектирование

Построенный с commander [11] и вдохновленный yo [12] интерфейс командной строки (CLI) предоставляет команду создать новый прототип и команды для проектирования схемы mongoose [13], jade [14] темплэйта и route middleware.

Для быстрого проектирования, изначально базируясь на успешные разработки проектов, были совмещены в один бойлерплэйт следующие составляемые: один язык шаблонов — jade, один ORM — mongoose, одна база данных — MongoDB [15] и один CSS пре-процессор — LESS [7].

Простая персонализация

Если не нравится использование Jade, Less, Passport [16], просто удалите тему из сгенерированных файлов проекта и удаляйте их из package.json после команды — eskimo create [name].

Примеры

Скажем, вы создали новый проект. Что дальше? Нужна аутентификация Facebook и/или Google в приложении, или интеграция с Stripe, или документация и установка для RESTful API, или использование Sockets.io, или настройка автоматизированного развертывания? Просто посмотрите в /examples. Имея микро- примеры как Readme файлы, пользователи вынуждены читать и думать, а не просто копировать/вставлять полный рабочий пример.

Проекты, разработанные с помощью Эскимо

https://ourharvest.com/ [17]
http://developer.marketprophit.com/ [18]
http://seedfeed.com/ [19]

Эскимо создано ведущим программистом Node.js Ником Бофом [20].

Автор: spascan

Источник [21]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/javascript/74872

Ссылки в тексте:

[1] Эскимо: http://eskimo.io/

[2] Bower: http://bower.io/

[3] Bootstrap: http://getbootstrap.com/

[4] Font Awesome: http://fontawesome.io/

[5] S3/CloudFront: https://aws.amazon.com/

[6] clustering: http://nodejs.org/api/cluster.html

[7] LESS: http://lesscss.org/

[8] электролита: https://github.com/jaredhanson/electrolyte

[9] Эскимо: http://eskimo.io

[10] Джареда Хэнсона: https://github.com/jaredhanson

[11] commander: https://github.com/visionmedia/commander.js/

[12] yo: https://github.com/yeoman/yo

[13] mongoose: http://mongoosejs.com/

[14] jade: http://jade-lang.com/

[15] MongoDB: http://www.mongodb.org/

[16] Passport: http://passportjs.org/

[17] https://ourharvest.com/: https://ourharvest.com/

[18] http://developer.marketprophit.com/: http://developer.marketprophit.com/

[19] http://seedfeed.com/: http://seedfeed.com/

[20] Ником Бофом: https://github.com/niftylettuce

[21] Источник: http://habrahabr.ru/post/243579/