Javascript-форум (https://javascript.ru/forum/)
-   Сборка проекта, утилиты (https://javascript.ru/forum/server-tools/)
-   -   Инструменты, которые вы используете для разработки (https://javascript.ru/forum/server-tools/49283-instrumenty-kotorye-vy-ispolzuete-dlya-razrabotki.html)

Safort 05.08.2014 21:54

Инструменты, которые вы используете для разработки
 
Этот тред посвящается всему тому, что делает процесс кодинга легче.
Пишем тут какие вы используете редакторы/IDE, плагины, сборщики, пост/препроцессоры(и т.д.) и почему они лучше чем те, что используют другие форумчане. Холливары приветствуются.



Начну с себя.

CSS: stylus
HTML: emmet. Никаких ущербных Jade'ов мне не надо
JS: ничего, потому, что кофе не вкусный и убивает мозг, а тайп с приходом шестёрки уйдёт восвояси
Сборщики: юзаю Gulp, потому, что Grunt уже не моден
Плагины для Галпа:
imagemin, concat, stylus, uglify, rename, csso, jshint
Редактор: саблайм (плагины: Эммет и Лайврелоад)
Разное: одним глазом кошусь на БЭМ

kobezzza 05.08.2014 22:05

Цитата:

HTML: emmet. Никаких ущербных Jade'ов мне не надо
Ну всё таки это разные вещи. Emmet не защитит тебя от XSS, не даст code-reuse... да и вообще это разные инструменты и странно их сравнивать :)

Цитата:

Разное: одним глазом кошусь на БЭМ
Можно двумя глазами, лишь бы инструменты хорошие были, например в Stylus всё для этого есть.

.b-input {
    &__input {
        &_hover {
            &_true {
                ...
            }
            
            &_false {
                ...
            }
        }

        ...
    }
}

.b-select {
    @extend .b-input;
}


В своём Snakeskin я сделал похожую схему для HTML

- template bInput()
    < .{this.name}
        < input.&__input
            ...

- template bSelect() extends bInput


В JS для БЭМ юзаю свою закрытую либу.

***

По сабжу:

CSS: Stylus + Nib
HTML: Snakeskin
JS: es6-transpiler
Сборщики: grunt или простой jossy
Редактор: WebStorm

Safort 05.08.2014 22:35

kobezzza,
Цитата:

Ну всё таки это разные вещи. Emmet не защитит тебя от XSS, не даст code-reuse... да и вообще это разные инструменты и странно их сравнивать :)
Не-не, я их не сравниваю. Просто для коллекции туда его впихнул)

Цитата:

Можно двумя глазами, лишь бы инструменты хорошие были, например в Stylus всё для этого есть.
у меня один глаз..
А вообще в Стайлусе очень много годного. На мой субъективный взгляд он лучше всяких Лесс и СЭСС. Только вот CSSComb'а на него нету, как я понимаю..

Цитата:

Сборщики: grunt
Есть мнение, что Грант для стариков не умеющих изучать новое и выходить из зоны комфорта. Что на это скажете, мсье?)

Цитата:

HTML: Snakeskin
JS: es6-transpiler
Минусы/плюсы?




Кротаны, а не знаете, можно ли как-то WebStorm на халяву по честному получить?

kobezzza 05.08.2014 22:45

Цитата:

На мой субъективный взгляд он лучше всяких Лесс и СЭСС.
Он объективно лучше их, но всё равно не идеален, хотя после того как проект перешёл в руки ребят из Яндекса, то он прям вышел из спячки, так что держим кулачки.

Цитата:

Есть мнение, что Грант для стариков не умеющих изучать новое и выходить из зоны комфорта. Что на это скажете, мсье?)
Да они одинаковы, только у одного более императивный синтаксис, а у другого более декларативный. Мне по душе более декларативный подход.

Цитата:

Минусы/плюсы?
Кого именно? es6-transpiler генерит хороший код, почти не глючит, много чего умеет и в отличии от traceur не тянет runtime-либу.

Snakeskin - ОО-шаблонка использующая концепцию шаблон-функция (аля Google Closure Templates). Синтаксис либо классический (GCT, Dust), либо Jade-Like.

Цитата:

Кротаны, а не знаете, можно ли как-то WebStorm на халяву по честному получить?
Сделать годный опен-сорс проект, а вообще он стоит 50 баксов, для IDE - это копейки.

Gozar 05.08.2014 22:45

Цитата:

Сообщение от Safort
можно ли как-то WebStorm на халяву по честному получить?

http://confluence.jetbrains.com/display/WI/WebStorm+EAP
Также
http://confluence.jetbrains.com/disp...Access+Program

Хотя имхо eap глючный и несмотря на киллер фичу, пришлось вернуться на 7-ку.

l-liava-l 05.08.2014 23:20

Цитата:

ничего, потому, что кофе не вкусный и убивает мозг
Сходу батхерт обеспечил


CSS: Stylus + Nib
HTML: хватает автодополнения
JS: coffee
Сборщики: brunch
Редактор: WebStorm, vim

kobezzza 05.08.2014 23:23

Цитата:

HTML: хватает автодополнения
Ты не юзаешь шаблонки?Оо

Gozar 05.08.2014 23:29

Цитата:

Сообщение от l-liava-l
HTML: хватает автодополнения

В гробу видал. Что угодно, только не это.

Юзаю fj (fiji :)) как html конструктор, скоро релиз.

l-liava-l 05.08.2014 23:31

Цитата:

Ты не юзаешь шаблонки?Оо
Ну я не использовал, а пока сахарок не получил к нему и не тянет.
Завербуй меня, речами лестными... пожаалуйста:yes:

Safort 05.08.2014 23:34

kobezzza,
Цитата:

хотя после того как проект перешёл в руки ребят из Яндекса, то он прям вышел из спячки, так что держим кулачки.
Только вот мажорная версия всё ещё 0.х (

Цитата:

Кого именно? es6-transpiler генерит хороший код, почти не глючит
Всего)
Про "почти не глючит" можно по подробнее? А то ES6 ждать мне уже невмоготу.

Цитата:

Snakeskin - ОО-шаблонка использующая концепцию шаблон-функция (аля Google Closure Templates). Синтаксис либо классический (GCT, Dust), либо Jade-Like.
А если сравнивать Змеекожа с Dust от Линкенид. То какие у них -/+ относительно друг друга?

Цитата:

а вообще он стоит 50 баксов, для IDE - это копейки.
Я студентота, на 50 баксов больше недели проживу и ещё останется. И в моём случае не 50, а $1050. Ноут не потянет это добро.


Я вот раньше слышал про Nib, но не обращал внимание на него. Как я понимаю, он что-то типа автопрефиксера? Тогда чем Ниб лучше Autoprefixer'а? у него тоже можно гибкие настройки под браузеры делать, али ещё какие фичи есть?



Gozar,
по первой "Early Access Program for WebStorm is closed now." ;(
А по второй 30-дневка, про неё я слышал, но это совсем не круто.



-----



Ребят, а есть какое годное средство для перегруза Ноды после сохранения изменений в файлах? Знаю про супервизор, но мб есть ещё что-то? Главное, что бы оно на саблайм шло плагином или ещё как, толстые ИДЕ пока не потяну.

kobezzza 05.08.2014 23:42

Цитата:

Сообщение от Safort (Сообщение 324513)
kobezzza,
Только вот мажорная версия всё ещё 0.х (

Да и пх :)

Цитата:

Сообщение от Safort (Сообщение 324513)
Про "почти не глючит" можно по подробнее? А то ES6 ждать мне уже невмоготу.

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

Цитата:

Сообщение от Safort (Сообщение 324513)
А если сравнивать Змеекожа с Dust от Линкенид. То какие у них -/+ относительно друг друга?

Snakeskin объективно лучше по всем параметрам, иначе бы я не тратил на него время :)

Цитата:

Сообщение от Safort (Сообщение 324513)
Я студентота, на 50 баксов больше недели проживу и ещё останется. И в моём случае не 50, а $1050. Ноут не потянет это добро.

:)


Цитата:

Сообщение от Safort (Сообщение 324513)
Я вот раньше слышал про Nib, но не обращал внимание на него. Как я понимаю, он что-то типа автопрефиксера? Тогда чем Ниб лучше Autoprefixer'а? у него тоже можно гибкие настройки под браузеры делать, али ещё какие фичи есть?

Nib - это как Compas в SAAS (т.е. кроме полифилов полезные функции) + немного Autoprefixer.
Autoprefixer - это для Rework и префиксы он ставит лучше, т.к. сам Stulys не умеет некоторые штуки для организации полифилов.

Цитата:

Сообщение от Safort (Сообщение 324513)
Ребят, а есть какое годное средство для перегруза Ноды после сохранения изменений в файлах? Знаю про супервизор, но мб есть ещё что-то? Главное, что бы оно на саблайм шло плагином или ещё как, толстые ИДЕ пока не потяну.

Всякие grunt/gulp-watch и т.д.

ixth 05.08.2014 23:44

Редактор: vim
Сборщик: make
БЭМ во все поля

melky 05.08.2014 23:44

CSS: stylus + nib без вендорных префиксов (выключаются сменой значения для переменной)
HTML: jade
JS: livescript
Редактор: sublime text
Сборщик: webpack
Тесты: jasmine/mocha + chai
БД: Postgres
Frontend Framework: angular
Backend Framework: sailsjs

Судя по языкам, у меня на клавиатуре нет кнопок со скобками, но это не так))

Safort 05.08.2014 23:46

l-liava-l,
Цитата:

Сходу батхерт обеспечил
старался)

Gozar,
Цитата:

В гробу видал. Что угодно, только не это.
а что тут такого? HTML ручками быстро и весело пишется, особенно с Эмметом.

Цитата:

Завербуй меня, речами лестными... пожаалуйста
и меня тоже тогда.

kobezzza 05.08.2014 23:54

Цитата:

и меня тоже тогда.
Да просто нужно выделить день другой на изучение шаблонок и усё :)
Только не стоит тратить время на EJS и компанию, ибо это унылое говно.

l-liava-l 06.08.2014 00:00

такс, вопрос ко всем кто тут есть, вы хоть иногда считаете себя идиотами которые таак мало смыслят в веб разработке и вообще чуть ли не скрипткидди?

Safort 06.08.2014 00:10

kobezzza,
Цитата:

Snakeskin объективно лучше по всем параметрам, иначе бы я не тратил на него время :)
Да? Хмм.. ну ладно. Ох, теперь ещё один фреймворк в очередь на изучение :D Мне так жизни не хватит :/

Цитата:

Всякие grunt/gulp-watch и т.д.
Не, мне надо, что бы именно сам процесс ноды перезапускало. Для http-сервера, например. Или они тоже так умеют?



ixth,
Но ведь vim для роботов. Не, ну в серьёз, он уж слишком замудрёный.


melky,
Цитата:

Тесты: jasmine/mocha + chai
Жасмин, моча, чай. Как мне нравится эти слова, когда они в одном предложении)

l-liava-l 06.08.2014 00:14

Цитата:

Но ведь vim для роботов. Не, ну в серьёз, он уж слишком замудрёный.
Нет, нужно лишь посидеть за ним... недельку) а потом еще

Ну а если серьезно то он может решить твою проблему с ide, плагинов море, настраивай как хошь

ixth 06.08.2014 00:14

Цитата:

Сообщение от Safort (Сообщение 324527)
ixth,
Но ведь vim для роботов. Не, ну в серьёз, он уж слишком замудрёный.

Я робот и больше ни в чем не могу.

Цитата:

Сообщение от Safort (Сообщение 324527)
melky,
Жасмин, моча, чай. Как мне нравится эти слова, когда они в одном предложении)

«Мокко». Это читается как «мокко». Я специально проверял.

Safort 06.08.2014 00:21

l-liava-l,
ну не то что бы идиотом, но новичком точно. Почему идиотом-то сразу?)
Вообще, люто бешено сопротивляюсь этим всяким шаблонам и прочим хипстерским поделкам. Не из-за того, что трудно/лень изучать(хотя это тоже немного есть), а из-за любви к велосипедам.
Но из-за всяких кобеззз, мелких, Гозаров, тебя и прочих местных кодо-хипстеров моя воля слабеет не по дням, а по часам.

Жанглирование всеми этими обёртками действительно может превратить в глупого скрипткиди, если не сможешь себя заставить писать/разбирать что-то самостоятельно..

Safort 06.08.2014 00:27

l-liava-l,
Цитата:

Нет, нужно лишь посидеть за ним... недельку) а потом еще

Ну а если серьезно то он может решить твою проблему с ide, плагинов море, настраивай как хошь
И ещё, и ещё..

А как же красота ГУЯ? Я лучше денег накоплю/заработаю на ПК с толстым процессором и жирным ССД)

Safort 06.08.2014 00:29

ixth,
Цитата:

Я робот и больше ни в чем не могу.
тогда ладно.

Цитата:

«Мокко». Это читается как «мокко». Я специально проверял.
тогда ладно. [1]

l-liava-l 06.08.2014 00:34

Цитата:

А как же красота ГУЯ?
http://itmages.ru/image/view/1825927/a02ce03a

Там, как видишь, не страшно)

Просто нужно привыкнуть к клавиатурным сокращениям, а не тянуться к мышке)

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

kobezzza 06.08.2014 07:25

Цитата:

Вообще, люто бешено сопротивляюсь этим всяким шаблонам и прочим хипстерским поделкам.
У тебя просто видимо не было горького опыта, но шаблоны - это реально жизненно важная фича. У меня есть правило: если где бы то ни было идёт генерация строки для HTML (не важен её уровень сложности), то всегда нужно юзать только шаблон.

melky 06.08.2014 10:13

Цитата:

Сообщение от l-liava-l (Сообщение 324535)
http://itmages.ru/image/view/1825927/a02ce03a

Там, как видишь, не страшно)

Просто нужно привыкнуть к клавиатурным сокращениям, а не тянуться к мышке)

ха. найди 5 отличий. http://i.imgur.com/X0exnh0.png


Цитата:

Сообщение от Safort (Сообщение 324532)
Вообще, люто бешено сопротивляюсь этим всяким шаблонам и прочим хипстерским поделкам. Не из-за того, что трудно/лень изучать(хотя это тоже немного есть), а из-за любви к велосипедам.

Цитата:

Сообщение от Safort (Сообщение 324481)
юзаю Gulp, потому, что Grunt уже не моден

пам пам пааам :haha: попахивает синдромом NIH (Not invented here)

Цитата:

Сообщение от l-liava-l (Сообщение 324525)
такс, вопрос ко всем кто тут есть, вы хоть иногда считаете себя идиотами которые таак мало смыслят в веб разработке и вообще чуть ли не скрипткидди?

каждый раз, когда я сажусь за разработку single page webapp, дикая боль моей беспомощности останавливает меня. я достаю крест, молюсь, но angular непреклонен. :cray:

P.S. шучу. angular - аху#@!нная штука, всё-таки. и вопросы производительности там все решаются, ящитаю.

Цитата:

Сообщение от Safort
Ребят, а есть какое годное средство для перегруза Ноды после сохранения изменений в файлах? Знаю про супервизор, но мб есть ещё что-то? Главное, что бы оно на саблайм шло плагином или ещё как, толстые ИДЕ пока не потяну.

я юзаю nodemon. вот nodemon.json:
{
  "verbose": true,
  "ignore": [".tmp/*", "web_modules/*"],
  "watch": ["api", "config"],
  "ext": "js,ls,coffee"
}

а запускаю приложение так (sails):
nodemon app.js --verbose --debug --no-hooks.sockets --no-hooks.pubsub


норм штука, мне нравится. только жёсткий диск с 5400 RPM даёт о себе знать - хренов тормоз. скоро приедет SSD, должно всё повеселее двигаться

Цитата:

Сообщение от Safort
Кротаны, а не знаете, можно ли как-то WebStorm на халяву по честному получить?

зачем он тебе нужен?

Цитата:

Сообщение от Safort
ixth,
Но ведь vim для роботов. Не, ну в серьёз, он уж слишком замудрёный.

так говорят те, кто его не смог познать

Цитата:

Сообщение от l-liava-l
а гит в консоли

эх .. а у меня с приходом на Windows ушла и консоль, так что вот отличное решение с GUI :
http://i.imgur.com/FNrpiAB.png

l-liava-l 06.08.2014 13:51

Цитата:

P.S. шучу. angular - аху#@!нная штука, всё-таки. и вопросы производительности там все решаются, ящитаю.
Вот напиши на нем бесконечный скроллинг, (такой чтобы на мобилках работал как в вк) и чтобы внутри было что нибудь тяжелое.

Мы это дело решили подключением reactjs, на нем все элементы не вотчатся как в ангуляре, что отлично сказывается на производительности)
Ну и естеесна выгружаем из памяти тоже.

melky 06.08.2014 14:00

Цитата:

Сообщение от l-liava-l
на нем все элементы не вотчатся как в ангуляре

вот тут то ты и попался, серый волк.

Safort 06.08.2014 14:28

l-liava-l,
хм, ну только если мне саблайма будет мало, тогда уж ничего не поделаешь)

kobezzza 06.08.2014 14:35

Я слышал, что изучение VIM способствует росту бороды :D

Safort 06.08.2014 14:37

kobezzza,
Цитата:

У тебя просто видимо не было горького опыта, но шаблоны - это реально жизненно важная фича.


У меня есть правило: если где бы то ни было идёт генерация строки для HTML (не важен её уровень сложности), то всегда нужно юзать только шаблон.
Нет, не было.


Даже если просто экспериментируешь с какой-нибудь новой штукой?

l-liava-l 06.08.2014 14:42

Цитата:

У тебя просто видимо не было горького опыта, но шаблоны - это реально жизненно важная фича. У меня есть правило: если где бы то ни было идёт генерация строки для HTML (не важен её уровень сложности), то всегда нужно юзать только шаблон.
А можешь обьяснить почему? и какой шаблонизатор самый вкусный на данный момент?

Safort 06.08.2014 14:48

melky,
Цитата:

Цитата:

юзаю Gulp, потому, что Grunt уже не моден
пам пам пааам попахивает синдромом NIH (Not invented here)
Чот не пойму, NIH, если я правильно понял, это когда нравится велосипедить. А ты выделил "не моден", что соответствует хипстороголичеству.

Цитата:

P.S. шучу. angular - аху#@!нная штука, всё-таки.
Ангуляр больше всего недолюбливаю. Но немного учу, т.к. на будущей работе он может быть нужен.

Цитата:

я юзаю nodemon. вот nodemon.json
Спасибо, посмотрю.

Цитата:

только жёсткий диск с 5400 RPM даёт о себе знать - хренов тормоз.
Стоп. Оно жёсткий мучает?

Цитата:

зачем он тебе нужен?
Оно годное, я слышал. Особенно нравится, что оно перезапускать Ноду могёт.
Да и Илюша с кобезззой с ней довольно лихо управляются.

Цитата:

так говорят те, кто его не смог познать
Да. Мозг начал дымиться.

kobezzza 06.08.2014 14:49

Цитата:

Даже если просто экспериментируешь с какой-нибудь новой штукой?
Заблуждение, что шаблоны это что-то сложное (исключение XSLT, в котором без подготовки хрен разберёшся).

Вот пример шаблона Snakeskin

{template helloWorld(name)}
    <h1>
        {if name}
            Hello {name}!
        
        {else}
            <button>Sign in</button>
        {/}
    </h1>
{/}


Шаблон скомпилится в JS функцию и вызов в JS - это вызов функции helloWorld

helloWorld('koba')


1) Шаблон гарантирует защиту от XSS
2) Поддерживать шаблон просто как для прогера, так и для верстальщика
3) Шаблоны легко бить по файлам
4) Решение проблемы code-reuse
5) Отделение логики от представления
6) ???
7) PROFIT

http://screencast.com/t/iU7AgM6jvjaj

Цитата:

А можешь обьяснить почему?
Ответил выше.

Цитата:

И какой шаблонизатор самый вкусный на данный момент?
Тут можно начинать холивар :) Начни с чего-нибудь, а дальше сам решишь.

Safort 06.08.2014 14:50

kobezzza,
Цитата:

Я слышал, что изучение VIM способствует росту бороды
Ога, а ещё очки толще и джинсы уже становятся..

Safort 06.08.2014 14:51

l-liava-l,
Цитата:

и какой шаблонизатор самый вкусный на данный момент?
Ну что за нубский вопрос? Очевидно, что Змеекож!

kobezzza 06.08.2014 14:59

Цитата:

Ну что за нубский вопрос? Очевидно, что Змеекож!
Не, ну если провести беспристрастный анализ классических шаблонок (т.е. без data-binding), то ответственно заявляю, что готовящийся к релизу Snakeskin 4 объективно лучше всех известных JS аналогов.

Safort 06.08.2014 15:03

kobezzza,
*поставил ЗК чуть выше в списке изучения*

melky 06.08.2014 15:09

Цитата:

Сообщение от Safort
Стоп. Оно жёсткий мучает?

всмысле. как ещё проверить, изменился ли файл? скорее всего по таймауту сверяется дата последнего изменения

Цитата:

Сообщение от kobezzza
Шаблон гарантирует защиту от XSS

{template ЗАНУДА()}
с экранированием понятно, но что делать в заковыристых случаях?
<img src=LOL onerror=alert('XSS')>

это пример, на самом деле есть и намного хуже.

и от XSS в картинках шаблон не защитит ... нужно самому их перелопачивать.
{/template}

"доверяй, но проверяй", как говорится :) или "на шаблонизатор надейся, да сам не плошай"

kobezzza 06.08.2014 15:16

Цитата:

с экранированием понятно, но что делать в заковыристых случаях?
<img src=LOL onerror=alert('XSS')>
Чёто я не понял, что здесь не обычного с чем не справится экранирование?

{template foo(val)}
    <img src="{val}" />
{/}

foo('" onerror="alert(\'XSS\')') // всё будет проэкранировано и onerror не будет работать


Цитата:

{template ЗАНУДА()}

и от XSS в картинках шаблон не защитит ... нужно самому их перелопачивать.

{/template}
Гм.. приведи пример, я не понял :)

Safort 06.08.2014 15:21

melky,
Цитата:

всмысле. как ещё проверить, изменился ли файл? скорее всего по таймауту сверяется дата последнего изменения
ну не знаю, мб там вотчер какой. (Или вотчеры тоже по таймауту?)


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