rainrb

20 июля 2015, Ростов-на-Дону

# Понедельник 59 твитов

Привет, неожиданно для себя оказался underhood:) Зовут меня Саша, программирую на чем придется, последние годы преимущественно на ruby.

10:41

В разработке ПО с 2002 года, имею опыт C++, Java, .NET, люблю Slackware Linux и рок-н-ролл:) Тем на текущую неделю – будем импровизировать:)

10:45

Вот такой вопрос -- важен ли для web-разработчика и ruby разработчика в частности общий технический бэкграунд?Т.е. приходит на собеседование

11:03

товарищ, который не знает чем линкедлист от массива отличается. Это можно считать стоп-фактором при приеме на работу на ваш взгляд?

11:04
@rubyunderhood думаю, именно это знание зависит от прошлого опыта. Например, в руби массив, но имеет интерфейс связанного списка и стека!
11:15
@rubyunderhood @rainrb линкедлист - это же там, где девочки hr-ы спамят, при чём тут вообще массивы? </sarcasm>
11:16

. @lisovskyvlad ну, вопрос-то не только про ruby а вообще:)Константное время доступа по индексу либо быстрая вставка в середину вот это все

11:22

. @lisovskyvlad ну и массивы линкед-листы это что в голову пришло. Вот например хэш-таблица, очень популярный контейнер.

11:24

. @lisovskyvlad нужно ли иметь представление о внутреннем устройстве, или это все фигня?)

11:24
@rubyunderhood @lisovskyvlad для этого у товарища должен был быть бекграунд на джаве или джаваориентированное преподавание в вузе
11:26
@rubyunderhood @lisovskyvlad т.е. если хочется наказать тех, кто не посещал лекции или пришел в отрасль из медбратьев - то вариант, конечно.
11:26

. @mktoid @lisovskyvlad А почему в джаве? Это ж вроде такие штуки, которые во всех языках есть :)

11:27
@rubyunderhood для эффективного и вдумчивого использования да
11:28

. @lisovskyvlad но при приеме web-разработчика на работу это не важно?

11:28
@rubyunderhood Всё-таки это рынок, а не чисто так. Если считаешь для вашиъ проектов это будет критично, то вполне важно.
11:29

Тогда так -- FAV если общая техническая эрудиция важнее чем знание доскональное фреймворка с которым придется работать. RT если наоборот:)

11:33

извините за опечатки:((( буду внимательнее

11:34
@rubyunderhood имхо спорный вопрос. Без базиса не понять фреймворк или как язык работает, без фреймворка/языка не сделать бизнес
11:38
@rubyunderhood ну а без бизнеса никому отрасль не нужна :)
11:38

.@anton_davydov спорный:)Но я как-то заметил, что с людьми которые обладают широким кругозором работать по-проще и задачи решать эффективнее

11:39

. @anton_davydov т.е. человек с бэкграундом и фреймворки без проблем подтянет до нужного уровня:)

11:40
@rubyunderhood конечно, они не замкнуты в рамках одного стека + вы можете общаться на общих абстракциях, а не на тех, что дает стек
11:40
@rubyunderhood да, но тут есть другая крайность. Яркий пример - олимпиадники (которые совсем хардкорные)
11:43

. @anton_davydov нууу, да. Но это из разряда крайностей все-таки. Человек целенаправленно прокачивает определенные скиллы.

11:44
@rubyunderhood ну и стоит определиться для чего нужны человеку знания. Сделать продукт? Тогда, с вероятностью 95%, ему и не надо знать ...
11:47
@rubyunderhood ... Как работает хеш или какова сложность сортировки. В его случае важно знать архитектурные тонкости, кмк. Если человек ...
11:48
@rubyunderhood ... Делает убийцу редиса/постгреса или еще какой штуки, то да, без этого никуда.
11:49

. @anton_davydov ну вот не знает человек, как работает хэш, возвратит в хэш-функции единичку и получим проблемы с производительностью:)

11:53

. @anton_davydov вообще я считаю, что определенный багаж знаний позволяет не сесть в лужу лишний раз:)

11:54
@rubyunderhood А не хочется все бросить нахуй и съебать в лес?
12:35

. @suxxes пока нет:)

12:35
@rubyunderhood важно ли в строительстве если человек бетон 200 не отличает от 100? Смотря чем он будет заниматься. Если трубы ложить, то нет
12:35

. @ptico все так, но на практике кмк часто бывает что кладешь трубы, но приходится и в бетон :)

12:37
@rubyunderhood Я в принципе считаю, что собеседование в тех. профессиях — вещь сугубо для понимания адекватности человека.
12:37
@rubyunderhood Остальное понимается за 1-3 месяца работы на испытательном.
12:38
@rubyunderhood если на проект с кучей сложной бизнес-логики приходит чувак и лепит методы в 80LOC без тестов, то мне пофиг различает или нет
12:38
@rubyunderhood @anton_davydov Это уже больше похоже на идиотизм, а не недостаток знаний.
12:38

. @suxxes @anton_davydov пример конечно утрированный, но общая идея я думаю ясна

12:39
@rubyunderhood за что любит сляку? Оно же в помойку превращается? =)
12:40

. @Stammru люблю по старой памяти:) Сидел на ней несколько лет -- очень простая и понятная система. Сейчас с маком мучаюсь:)

12:43

. @Stammru помойка решается сборкой пакета и pkgtool-ом, вместо make && make install :)

12:44
@rubyunderhood ага, типо таких вопросов были на вакансию разработчика интернет-магазина, зачем, непонятно
12:46

. @Stammru в ecommerce может быть много сложных задач.

12:47
@rubyunderhood круто! расскажи над чем работаешь, какой стэк и что такое пилишь в какой компании? :)
12:49

.@mpak999 пропустил самый главный твит:) rails-стэк, фронтенд backbone. Из последнего - принимаю участие в бэкенде ural1.ru

12:51

. @Stammru ну да. Это несложно с помощью makepkg, ну и особо не приходилось ничего собирать, дистр был ready for developers

13:05
@Stammru @rubyunderhood все слакварщики так делали и делают, а в чем проблема?
13:15

. @vyazovoi @Stammru во, сразу видно, наш человек:)

13:15
@Stammru @rubyunderhood более того, так делают во всех дистрибутивах, когда надо что-то собрать
13:16
@rubyunderhood @Stammru я использовал Slackware ооооочень давно, в данный момент тоже мак использую
13:17
@vyazovoi @rubyunderhood ну я мало встречал слакварщиков, но у меня стереотип сложился, сто у них убитая система, у каждого своя структура
13:32

. @Stammru @vyazovoi да не,там со структурой как раз все норм. Но в настоящее время большого смысла в использовании это OS конечно нет:)

13:33
@Stammru @rubyunderhood ещё как раз интернета небыло, помню исходники приносил от людей и собирал как умел
13:39

. @vyazovoi @Stammru еще было Fido и файл-эхи :)

13:39
@Stammru @rubyunderhood спустя какое-то время пробовал слаку снова, так там уже все собирали из SBO (такой репо со скриптами сборки)
13:39
@rubyunderhood @Stammru не, это меня обошло, я играл в старкрафт через телефон и ждал интернета
13:41
@rubyunderhood за трубы в бетон предусмотрен отдельный котёл в аду :) А вообще, сколько людей, столько и мнений. Все разным занимаются
13:47

. @ptico я про то, что узкая специализация (или трубы, или бетон) это редкость. Часто задачи требуют экспертизы в нескольких областях.

13:47

Пользуясь случаем прорекламирую facebook группу рубистов в Ростове-на-Дону,если кто будет в наших краях - заходите:) facebook.com/groups/rndrug/

16:05

# Вторник 77 твитов

Всем привет:) Продолжаем трансляцию. Для начала – немного хорошей музыки music.yandex.ru/album/77947/tr… :)

10:35

А обсудить предлагаю деплоймент ruby и rails-приложений, подготовку серверов, продакшен.

10:37

Есть кто-нибудь, кто использует альтернативные capistrano инструменты для деплоя? Может быть mina? Деплой через git?:)

10:39
@rubyunderhood ansible + capistrano, nginx + unicorn
10:42

. @lisovskyvlad что делаешь ансиблом? подготовку сервера для capistrano-деплоя?

10:43
@rubyunderhood использую мина для последних пару-троек задач, полет нормальный
10:43

. @svenyurgensson а ее вообще пилят? Там вроде бы с контрибуторами было как-то не очень.

10:44

. @svenyurgensson достаточно давно пробовал, какие-то мелкие проблемы были все время с ней в итоге надоело и откатился на капистрано

10:44
@rubyunderhood зачем пилить уже хорошо запиленное? Оно ж работает, просто и без затей. Кода немного - можно спокойно под себя поправить
10:49

. @svenyurgensson надо будет попробовать еще раз при случае:)

10:51
@rubyunderhood я пока не встречался. Есть какие-то нюансы с рестартом приложения после деплоя, но меня не особо парит
10:51
@rubyunderhood ansible provision, cap - deploy
10:52

. @lisovskyvlad как стейджинг и прдакшен организуешь в ансибловских ямлах?

10:53
@rubyunderhood ну отличие простое - только в credentials, просто указываешь разный сервер для выполнения. Серверы в спец. файле хранятся :)
12:16

. @lisovskyvlad т.е. вы просто на базе inventory-файлов разруливаете?

12:16
@rubyunderhood для нестандартных конфигураций chef + capistrano, простые скармливаю dokku
12:16
@rubyunderhood mina очень быстрая, одно «но»: из-за этого локальные операции нельзя (или я не понял как) вставить в поток, делаю в 2 команды
12:17

Я тоже использую ansible+capistrano.Но ansible несмотря на определенную простоту напрягает своим dsl-ем. Мануал должен быть все время открыт

12:18
@rubyunderhood админы рулят chef, мы деплоим capistrano. unicorn, sidekiq рулятся через runit
12:20
@rubyunderhood я видел у одного фронтендера make файл с деплоем, но у него там просто, конечно
12:21

. @Stammru make-файл и фронтендер как-то не очень сочитаются:) Но вцелом весело, наверное:)

12:22

Все пишут про unicorn, а puma как же? Я последние проекты поднимаю на нем и все нравится. Конфигурирование и упровление достаточно удобное.

12:25

Памяти меньше потребляет. В целом puma очень нравится.

12:25

@rubyunderhood упрАвление конечно ;)

12:27
@rubyunderhood а есть ли смысл если у тебя не jruby и не rubinius? у всех уже есть конфиг unicorn
12:39

. @Stammru а почему нет смысла? работать приятнее и памяти меньше потребляется, по-моему это уже плюс.

12:40
@rubyunderhood а какие мысли о Passanger?
12:40

. @TheSunwave ты про новый, который Raptor? я его честно сказать не пробовал еще. Но было бы интересно послушать отзывы причастных

12:41
@rubyunderhood я в общих чертах. Я пробовал и пуму и пассажира, но на своем уровне я так и не понял разницы)
12:42
@rubyunderhood насколько меньше, измерял? А что значит работать приятнее?
12:43

. @Stammru работать приятнее - субъективные ощущения от экспириенса:) В плане памяти - на простом приложении воркеры ~70мб

12:46
@rubyunderhood тоже на пуму перешел, все прям даже визуально быстрее на старте
12:46
@rubyunderhood а я сделал на passenger standalone и тоже все ок
12:46

. @svenyurgensson а что у него в плане интересных фич? Пишут про много инструментов для анализа работы приложения, отладки и т.п.

12:51
@rubyunderhood ничем пока не пользовался, ранняя стадия. Но раньше всегда пользовал нжинкс/пассажир и все работало как часы.
12:53

. @Marat_Galiev вопрос в трактовке термина "лучше". По-моим ощущениям меньше памяти, быстрее старт.

12:58

. @Marat_Galiev но это не значит что юникорн плохой и его надо выкинуть:)

12:59
@rubyunderhood а чем пума лучше в среднестатистическом проекте чем юникорн?
13:02
@rubyunderhood ну да, unicorn в принципе неплох ) Тут скорее зависит от личных предпочтений на мелких/средних проектах.
13:06
@rubyunderhood в последнем проекте и деплой и провижн делал через ansible, понравилось
13:06

. @KELiON деплой через ansible? а не медленно? по-ощущениям получается еще более slow чем capistrano

13:07
@rubyunderhood @KELiON если в ансибл добавить кеширование когда он делает gather facts то чуть побыстрее будет…
13:18
@rubyunderhood к нему быстро привыкаешь и основные операции запоминаются. А поддерживать 2 инструмента в одном проекте не очень удобно
13:18
@rubyunderhood с gather_facts: no быстрее. Плюс можно выполнять одну роль деплоя, без проверки конфигов, если лень ждать)
13:18

. @KELiON согласен, чем меньше инструментов тем лучше

13:18
@rubyunderhood Текущий пет пишу с пумой для упрощения стэка, т.к. фэй не понимает юникорн. Вот и решил попробовать пуму.
13:22

. @suxxes насчет faye, actioncable и причастных, кстати, можно отдельно поговорить, тема немного холиварная:)

13:23
@rubyunderhood сначала был capistano 2, 3 потом только mina, только хардкор =)
13:53

. @vredniy а почему mina? Работает быстрее, или есть еще каки-либо преимущества?

13:53
@rubyunderhood работает очень быстро, все до безумия прозрачно и просто, минимум подводных камней. Это все очень субъективно, канешна)
13:58

. @vredniy чувствую, пришло время попробовать mina снова)

13:58
@rubyunderhood обязательно дай ей шанс и ты не пожалеешь, да и мануалов по ней стало намного больше, чем раньше.
14:02
@vredniy @rubyunderhood да мина объективно быстрее))
14:08

. @Bugagazavr @vredniy ну да, я знаю, просто в те времена, когда я ее пробовал были проблемы, которые заставили меня откатиться на cap

14:09

. @Bugagazavr @vredniy и после этого я особо не следил за ее развитием

14:09
@rubyunderhood @vredniy так она собирает sh скрипт, и не устанавливает коннект на каждую задачу как capistrano
14:10

А что насчет супервайзеров? Кто что использует? Я сижу на github.com/kostya/eye в общем и целом свои задачи выполняет

14:49

В eye нравится то, что работает не на системной уровне, а на пользовательском, хотя крутые админы наверняка не согласятся со мной:)

14:51

. @Stammru я локально использую foreman. runit конечно хорошая штука, но с eye как-то по-проще.

14:53
@rubyunderhood я его локально использую для запуска pg, elastic, redis и прочего, на проде runit
14:53
@rubyunderhood а как ты дружишь eye с автостартом после ребута например? Есть решения с cron @reboot, но оно попахивает на мой взгляд.
15:42

. @bufo_alvarius @reboot а init.d чем не подходит?

15:43
@rubyunderhood требованием иметь рут и переходит в системный скоуп тонкой настройки.
15:44

. @bufo_alvarius тогда только крон, других способов я не знаю.

15:46

. @bufo_alvarius я вообще не заморачиваюсь с автостартом. Если случился ребут то ситуация однозначно нештатная и надо разбираться в чем дело

15:47
@rubyunderhood мне ещё понравился supervisord, на пет-прожектах использую
15:48

Транслирую вопрос @svenyurgensson:"никто еще github.com/antirez/disque не пользовался? А то хочется минимального месседж брокера и job queue"

16:23
@rubyunderhood @svenyurgensson redis, resque, pubsub не устраивает?
16:38
@backendsecret @rubyunderhood @svenyurgensson кстати тоже интересно чем redis для этого не угодил
17:18
. @svenyurgensson @rubyunderhood "WARNING: This is alpha code NOT suitable for production" - как бы намекает "почему"...
19:23

. @bufo_alvarius я бы все мониторил;)

19:36
@rubyunderhood согласен полностью, но хочется забывать о некоторых проектах, которые не требуют мониторинга, но хотят жить)
19:36

. @Bugagazavr @bufo_alvarius а как он поможет, если у человека нет root-доступа к серверу?

19:44
@rubyunderhood @bufo_alvarius sudoers для выполнения только конкретной команды?
19:45
@rubyunderhood @bufo_alvarius user ALL = (root) NOPASSWD: /sbin/start service, /sbin/stop service, /sbin/restart service, /sbin/status ...
19:48

. @Bugagazavr @bufo_alvarius да это понятно, но там кажется дело было в том, что человек вообще не хотел на системный уровень лезть

19:49

# Среда 61 твит

Продолжаем разговор:) Чтобы лучше работалось, всем хорошую песню music.yandex.ru/album/1987027/…

11:18

А тема вот такая-кто как создает новые приложения?Руками и копипастом файлов из старых проектов, rails app template,RailsBricks, еще как-то?

11:20

Я как-то заморачивался с созданием application template, вцелом жить можно, но не сказать что сильно удобно.

11:22

Шаблон надо периодически мантейнить, хранится он в специальном репозитории, да и не все можно вписать в контекст шаблона.

11:24

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

11:25

Или никто не заморачивается и всех устраивает rails new my_app ?)

11:29
@rubyunderhood влаштовує, але в середині генерованої структури роблю неймспейси
12:37
@rubyunderhood юзаем внутренний гем, куча генераторов базовых настроек, деплоя и пр. rails templates разочаровали.
12:37

. @bufo_alvarius да, rails templates какие-то не очень. Хорошо подходят разве что для совсем простых вещей.

12:37
@rubyunderhood все зависит от того, насколько часто ты делаешь rails new.
12:38

. @shved270189 согласен. Но хочется же все делать эффективно и в один клик.

12:39

. @forever_frey гляну, спасибо. Но это я так понимаю целевое решение мыслящих роботов, не много не то все-таки.

12:40
@rubyunderhood у меня yo-генератор, разворачивает Rails API + изоморфный Flux app (Redux), одна команда и оно живое github.com/alexfedoseev/g…
12:41

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

12:44

. @bufo_alvarius а на базе чего построено решение? Просто ruby? Или какие-нибудь полезные джемы используете?

12:47

. @iamstarkov @alexfedoseev спасибо, может действительно откажусь от rails templates)

12:48
@rubyunderhood когда я только с рельсами имел дело, для этих задач юзал Thor (он тоже был ок), но потом перелез на Yeoman, т.к. все там)
12:49
@rubyunderhood Thor генераторы делаю
12:50
@rubyunderhood судьбоносный вопрос: rvm rbenv chruby? Юзаешь ли gemsets? Куда ставишь глобальные пакеты (eg CLI tools written in Ruby)?
13:02

. @listochkin я ждал этого вопроса, сам хотел вбросить но по-позже:)

13:02

. @listochkin долго сидел на rvm, потом перелез на rbenv. Сейчас он в везде и в проде и в дев. Гемсеты перестал юзать после того, как

13:03

. @listochkin закончились проекты на rails2 и везде появился бандлер. Глобальные пакеты ставлю в глобальный гемсет. Но их мало.

13:04

. @listochkin rails, clit tools, powify, foreman и прочее мелкое. Зависимости проектов бандлю в /vendor/bundle всегда.

13:05
@listochkin @rubyunderhood если на дев-машине то chruby+ruby-install. Работает очень быстро, внутри 40 строчек на баше
13:07

. @ptico @listochkin chruby вполне вариант. Но я остановился на компромисном rbenv, пока нет желания переезжать куда-то.

13:08
@ptico @rubyunderhood воу, а примеры?
13:36
@ptico @listochkin @rubyunderhood rbenv хорош для dev. А на проде ставишь либо системно, либо в докер и тоже хорошо
13:37

. @jalkoby @ptico @listochkin а зачем системно? Если разным проектам нужны разные версии ruby?

13:38
@rubyunderhood боюсь, тут подразумевается - одна машина/один проект
13:39
@rubyunderhood @ptico @listochkin если разные проекты на одном сервере - то ставишь по докеру на каждый проект и там создаешь свою песочницу
13:39
@rubyunderhood @rainrb Это чтобы программистам совсем уже нечего было делать ;)?
13:57

. @pshenichnyy @rainrb ну, программисты пусть программируют, а рутинные задачи которые можно автоматизировать должны быть автоматизированы)

13:58
@rubyunderhood ты говорил, что писал на куче языков. Тебе сейчас это помогает? И какой язык повлиял на тебя больше? А какой нравится больше?
14:03

. @anton_davydov ну, не так чтобы прямо на куче языков. В основном на C-подобных, плюсы, джава, шарп, кое что на питоне ну и shell)

14:05

. @anton_davydov насчет помогает - помогает опыт работы в разных проектах с разными людьми и технологиями. Язык это не камень преткновения

14:06

. @anton_davydov из разных проектов почерпнул разное, C++ low level, железо, память, алгоритмы, оптимизация, когда нужна а когда нет

14:07

. @anton_davydov java -- паттерны, переключение мозга с маленьких кубиков на большие, документооборот, решение людских проблем)

14:08

. @anton_davydov шарп и дотнет -- просто классная штука, если надо что-то программировать под windows. Студия имхо самая лучшая IDE

14:09

. @anton_davydov В настоящее время очень нравится ruby, большинство моих задач на нем решаются отлично. Смотрю потихоньку в сторону кложуры

14:10

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

14:12

. @anton_davydov не стоит быть евангелистом) Стоит работать с разными языками и технологиями, по-возможности применять их на практике.

14:12
@rubyunderhood если вообще лень, то используй prelang.com. pic.twitter.com/W2WzssTkZn
14:13

. @vredniy ух ты, спасибо интересная штука:)

14:14

. @anton_davydov кристал смотрел немного, в общем и целом интересно, но пока не очень понятно с чем и как его готовить:)

14:21

. @anton_davydov насчет кложуры - скобочки да, функциональный стиль, вся мощь темной стороны силы (jvm) :)

14:23
@rubyunderhood а на кристал смотрел? Выглядит многообещающе. И почему лисп?
14:23
@rubyunderhood да по сути там rails generators с шаблонами на каждый случай + некоторые development зависимости тянем через gemspec сразу.
17:13
@rubyunderhood да, не совсем то, но похоже. Я еще встречал веб-приложение, которое генерировало пустые рельсы с гемами, выбранными юзером
17:37

. @forever_frey если бы вопрос был только в гемах, то вопроса бы не было)

17:37
@rubyunderhood, пользуясь случаем. Расскажи плиз какие есть современные более-менее известные open source проекты на рельсе?
17:51

. @toppka первое,что приходит в голову - gitlab,spree,redmine,discourse, refinery cms,еще гугл подсказывает fatfreecrm, ноя не знаю что это)

17:55
@toppka @rubyunderhood opensourcerails.com є отакий сайтик де зібрані такі проекти
17:57
@toppka @rubyunderhood Redmine, Diaspora ...
17:57

. @toppka вообще, рельса имхо уже выходит из того возраста когда на ней народ с энтузиазмом создает открытые решения:)

17:57
@rubyunderhood @toppka LocomotiveCMS, Diaspora, Errbit и тут еще много awesome-ruby.com
17:58
@rubyunderhood @toppka тай самі популярні opensource рішення на рельсах вже достатньо древні
18:02

. @toppka еще вот подсказывают tryshoppe.com, что-то новое судя по всему

18:03
@toppka @rubyunderhood гугли discourse, rubybench, rubygems, gitlab
19:15
@rubyunderhood rbenv + .rbenv-version @listochkin
21:55

. @suxxes @listochkin сейчас же вроде .ruby-version сделали? Если речь про локальную версию ruby

21:57

# Четверг 123 твита

. @suxxes Да, вышел новенький JRuby, ты опередил меня буквально на несколько минут:) Судя по описанию релиз крайне интересный.

9:09

. @suxxes да, пока нет:( Но думаю скоро появится.

9:12
@rubyunderhood Хочу потом попробовать в работе. У нас есть Java кода в проекте и разных либ. Может выиграем в производительности, например.
9:14

А вот и блог-пост от разработчиков JRuby 9000 blog.jruby.org/2015/07/jruby_…

9:14

. @suxxes даааа, JRuby весьма заманчивая штука. В 9000 обещают совместимость с 2.2 что очень круто на мой взгляд:)

9:15

Возвращаясь к JRuby (тем более поводо-то какой!) кто-нибудь использовал JRuby в серьезных задачах? Как насчет JRuby и Rails?

11:05

Я к сожалению JRuby практически не использовал. Когда-то в древности писал маленькое десктопное приложение с использованием Swing и еще

11:07

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

11:08
@rubyunderhood единственный раз, когда я jruby использовал - я пытался вагрант плагин для дженкинса обновить, после этого - понял что не мое
11:15
@rubyunderhood я знаю, что вроде в @bookmate_ru используют jruby с рельсой. Надеюсь кто-то из их разработчиков ответит :)
11:15

. @anton_davydov у меня похожая история с Rubinius-ом. Периодически накрывает, думаю: "Пора, пора что-то попробовать запустить на Rubinius"

11:21

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

11:22

. Разработчики @bookmate_ru, говорят вы используете JRuby и Rails, расскажите пожалуйста!

11:23
@rubyunderhood у меня даже с кристаллом такое было (там не очевидное задание типов для некоторых кейсов)
11:23
@rubyunderhood а вообще да, невероятно важно для технологии быть user friendly и иметь ответы на популярные вопросы
11:24
@exAspArk @rubyunderhood @bookmate_ru @tank_bohr о круто, я как раз слушал его доклад :)
11:38
@anton_davydov @exAspArk @rubyunderhood @bookmate_ru Да, использовали. И даже на рельсе маленький сервис сейчас работает в продакшене
11:39
@tank_bohr а сейчас у вас другой стек? @exAspArk @rubyunderhood
11:39
@anton_davydov @exAspArk @rubyunderhood да, как у всех. MRI на основных проектах. JRuby от безвыходности
11:39
@anton_davydov один в кромешной тьме. никто кроме тебя им не пользуется. приходится думать самому @exAspArk @rubyunderhood
11:39

. @tank_bohr @anton_davydov @exAspArk а почему JRuby от безвыходности?

11:39
@tank_bohr может, с JRuby 9000 жить наконец-то станет чуть веселее? :) blog.jruby.org/2015/07/jruby_… @anton_davydov @rubyunderhood
11:39
@tank_bohr и как впечатления от jruby? :) @exAspArk @rubyunderhood
11:40
@rubyunderhood нужны были библиотеки на джаве. альтернатив либо не было вовсе, либо совсем грустные @anton_davydov @exAspArk
11:43
@rubyunderhood Сегодня в рамблере ruby meetup, идёт кто-нибудь?
11:49
@rubyunderhood у нас сейчас одна из команд пилит jRuby апп (не Rails) ради Hibernate. Всё никак не соберемся рассказать где нибудь об этом
12:20

. @HornedKavu было бы очень интересно, но почему Хибернейт? У меня от него осадочек остался не особенно приятный) HQL, маппинги та еще песня

12:21
@rubyunderhood в тред призывается @vladson4ik
12:36
@HornedKavu @rubyunderhood Есть такое дело, пилим. Хибирнейт хорош для своих задач: легаси базы, несколько представлений, кеширование.
12:37
@HornedKavu @rubyunderhood Ну и самое главное — Data Mapper как паттерн. HQL пока используем, но в планах описать dsl по-удобнее.
12:37
@HornedKavu @rubyunderhood А маппинги — так скорее даже хорошо, структурировано, доменные модели не загажены.
12:37

. @vladson4ik @HornedKavu парни а зачем хибер, если вы уже сейчас собираетесь dsl-по удобнее?

12:37

. @vladson4ik @HornedKavu с таким же успехом можно свой датамаппер на рубях соорудить, вроде паттерн не сверх сложный

12:38
@rubyunderhood @HornedKavu DSL - только для запросов, чтобы все вот эти (Сriteria) скрыть, а не для описания моделей. Модели — *.hbm.xml
13:08
@rubyunderhood @vladson4ik свой дата-маппер на рубях не делали, потому что ниже положить нечего. У Гибера очень большая гибкость.
13:08
@rubyunderhood Несколька маппингов на 1 таблицу, несколько таблиц на один класс, ленивые коллекции и композитные элементы из коробки.
13:08
@rubyunderhood @vladson4ik @HornedKavu Зачем строить свой, если есть ROM?
13:20

. @suxxes @vladson4ik @HornedKavu ROM же вроде на стадии активного развития. Это очень хорошо безусловно, но если кому-то нужен продакшен

13:21

. @suxxes @vladson4ik @HornedKavu прямо сейчас, то это вопрос

13:21
@suxxes @rubyunderhood @HornedKavu ROM сырой. И мы не делаем свой, мы юзаем production grade Java Hibernate.
13:21
@iamstarkov Там какая-то херь со статистикой @rubyunderhood творится.
13:38
@artemeff @suxxes @rubyunderhood @HornedKavu на момент начала работ, он был очень сырой. А что сейчас там, интересно!
13:38
@artemeff @suxxes @rubyunderhood @HornedKavu там есть ассоциации? Композитные объекты? Ленивые ассоциации и поля?
13:38
@artemeff @suxxes @rubyunderhood @HornedKavu но да, например Redis ))) так быстро не прикрутишь
13:39
@artemeff @suxxes @rubyunderhood @HornedKavu к HIbernate, я имею в виду.
13:39
@vladson4ik @suxxes @rubyunderhood @HornedKavu там многое от адаптера зависит
13:40

. @suxxes ну и количество твитов похоже на правду

14:06

test stats

14:07
@suxxes @rubyunderhood ноуп, уже починил
15:15
@listochkin @rubyunderhood rvm, везде и всегда
16:03
Хей, @rubyunderhood вам должно нравится такое! /cc @sudodoki @mikhailbortnyk @kottans_org twitter.com/g33konaut/stat…
16:47
@rubyunderhood @suxxes @HornedKavu а нашу интеграцию JRuby с Hibernate мы планируем допилить и выпустить.
17:26

. @vladson4ik @suxxes @HornedKavu было бы крайне интересно посмотреть.

17:26

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

18:00

Тот код, которому вроде бы и в app не место и в lib непонятно как складывать:) Например есть модель User, есть класс, который сериализует

18:01

Коллекцию пользователей в csv. Где ему место?

18:01

Я, например для /app/models/user.rb и делаю /app/models/user/csv_serializer.rb и вкладываю его как User::CsvSerializer

18:02

Вообще стараюсь все жестоко неймспейсить в приложении. Такие вещи как CatalogCategory, CatalogItem, CatlogItemImage не люблю.

18:03

. @mpak999 я про в app-не место, для того, чтобы подчеркнуть возможные сомнения:)

18:09

. @mpak999 app/serializers можно вполне,но в случае/serializers/user/xml /serializers/user/csv /serializers/user/something та же вложенность

18:11
@rubyunderhood хехе, "вроде бы в app не место"? сам все равно положил в app/models/.... куча вложенности бегать, не проще ли app/serializers
18:11
@rubyunderhood Выношу подобные вещи в lib (lib/serializers/user/csv.rb)
18:22
@rubyunderhood app/services/csv_exporter_service.rb
18:22

. @svenyurgensson как вариант) а предметно-специфичные как раскладываешь? неймспейсишь внутри /app/services?

18:23
@rubyunderhood в таком случае надо четко соблюдать правила рельс про наименование модуля и пути, где он лежит, ибо отломается class autoload
18:32

. @svenyurgensson это да. Но конвенции вообще всегда стоит соблюдать, иначе ошибки могут быть совершенно непонятными)

18:33
@rubyunderhood app/serializers?
18:33
@rubyunderhood app/filters app/forms app/services app/jobs – главное не забыть добавить в autoload path чтобы работал console reload
18:33
@rubyunderhood app/-folder-, если относится к частям аппа и при этом специфично приложению, lib-whatever-, если более абстрактно.
18:33
@rubyunderhood на самом деле стоит всегда помнить слова @michaelklishin о том, что приложение - оно прежде всего руби, а потом уже - рельсы
18:38
@rubyunderhood в том плане, что надо делать так, как считаешь правильно исходя из своего опыта и удобства
18:38

. @svenyurgensson @michaelklishin все так,но часто замечаю – народ теряется за счет того, что конвенции есть, но всего не предусматривают)

18:39
@rubyunderhood рельсовая файловая структура — отстой и заставляет узко мыслить. Приложения не могут состоять из одних М, V и С
18:40

. @ptico я бы сказал, что рельсовая файловая структура заточена в первую очередь под M, V и C)

18:41

. @svenyurgensson нуу, вот в рельсовых гайдах вроде бы об этом ничего не говорят, вот народ и делает как бог на душу положит

18:42
@rubyunderhood для этого есть документация, так что RTFM
18:42

. @svenyurgensson @ptico и попутно вопрос -- как стоило бы организовать файловую структуру рельсы, чтобы не было отстойно?

18:43
@rubyunderhood @ptico а что еще бывает в _обычном_ серверсайде, кроме MVC ?
18:43
@svenyurgensson @rubyunderhood ну вот, к примеру, как я это люблю делать: pic.twitter.com/tyoXSTGdk8
18:43

. @ptico @svenyurgensson т.е. все сводится к расширению рельсовой файловой структуры предметно-специфичными папками

18:44
@rubyunderhood я имел в виду документацию к проекту, где ты отклоняешься от рельсовых стандартов. Она должна быть
18:45
@ptico @rubyunderhood выглядит устрашающе, но, думаю, вполне обоснованно и сделано не просто так
18:45

И еще попутно про файлы и папки:)Есть app, в нем сайт, админка, api для мобильных устройств,ЛК для каких-нибудь партнеров.Большое приложение

18:51

Как поступите?Одно большое приложение, или gem с уровнем данных, библиотечным кодом и по приложению на каждую задачу?)

18:52
@rubyunderhood не совсем, тут всё ключевое в use_cases/ каждый из которых как мини-гем со свободной структурой
18:52

. @ptico понятно, спасибо)

18:52
@rubyunderhood а всё что вокруг: шареный между юзкейсами application-specific код
18:58
@rubyunderhood если интересно, могу эфемерный пример на гитхаб закинуть, чтоб общий концепт можно было понять
18:59

. @ptico класс, давай конечно!

18:59
@rubyunderhood слава монолитам
19:29

. @Bugagazavr почему?)

19:29
@rubyunderhood @Bugagazavr слава микросервисам
19:32

. @TheSunwave @Bugagazavr почему? и что такое микросервис?)

19:33
@rubyunderhood тестировать проще, да и все всегда под рукой
19:33

. @Bugagazavr а почему тестировать проще? какая разница?

19:33

. @Bugagazavr нуу, n независимых приложений у каждого своя тестовая база, можно тестировать по отдельности пока не надоест:)

19:38

. @Bugagazavr Является ли максимально-шаред код добром или злом это еще вопрос для обсуждения:)

19:38
@rubyunderhood это актуально для rails app, ибо на практике либо был гемор с дублирвоанием кода, либо с актуализацией
19:39

. @Bugagazavr код который совсем дублируется в общий джем:) В остальном изолировать:)

19:40
@rubyunderhood ну как бы среда для тестирования более замороченная, плюс код максимально shared для всех задач которые рулит монолит
19:40
@rubyunderhood по отдельности оно не будет отражать реальной картины, разве что замокать все что только можно, и следить за актуальностью :)
19:41

. @Bugagazavr я невполне согласен) API-для мобилок, админка, сайт вполне тянут на независимые приложения, что мокать между ними)

19:43
@rubyunderhood и получаем лишнюю сущность, вместо правки, кода прийдется публиковать новую версию, и обновлять зависимости в проекте.
19:43

. @Bugagazavr это да, вопрос в том кто перевешивает advantages или disadvantages

19:43
@rubyunderhood gem хорошо когда одно решение на несколько проектов, а не как shared код в рамках одного.
19:44
@rubyunderhood у нас был проект, один проект - 5 сайтов, пробовали разделить, но появилось куча гемора
19:46

. @Bugagazavr может не так делили?) но вцелом конечно ситуации могут быть разными, да.

19:47
@rubyunderhood сабж вот в jvm языках шарить код будет проще, чем в ruby, вот к примеру github.com/twitter/finatra
19:48
@rubyunderhood там с ассетами было много проблем, ну и лишние действия появлялись, хотя такая архитектура выглядит и чище
20:00
@rubyunderhood @Bugagazavr lotus и архитектура container вам в помощь
20:00

. @artemeff @Bugagazavr Лотус интересная штука, хочу найти время подробно посмотреть

20:02
@rubyunderhood помнится мне ci, vexor, кажется он был распилен на десяток гемов, контрибьютить в него было то еще удовольствие. (:
20:02
@rubyunderhood @Bugagazavr обязательно найди :)
20:02
@rubyunderhood @Bugagazavr ты же сам написал :) Разбиение обработчиков задач на отдельные приложения.
21:52

. @TheSunwave @Bugagazavr в случае rails врядли применимо слово "микро" :)

21:52

# Пятница 152 твита

@rubyunderhood @Bugagazavr в случае с Rails можно писать свои сервисы хоть на Erlang, и спокойно писать на Ruby обертку)
7:54

. @TheSunwave @Bugagazavr почему-то напомнил cs4.pikabu.ru/images/preview… :))

7:56

Сегодня пятница, хочется поговорить про что-нибудь легкое и не особенно существенное:) Например про linux vs OS X vs Windows для ruby dev

11:21

Кто что использует? Я давно на маке, но обдумываю свитч обратно в Linux. Двое моих колег используют windows + vagrant / virtualbox)

11:22

Может быть есть какие-то более экзотические варианты?)

11:22
@rubyunderhood Использую Linux и Vagrant + VBox для некоторых проектов (чтобы не захламлять основную систему).
11:33

. @scaint что за дистр? Убунта?

11:33
. @rubyunderhood @scaint Нынче Mint в моде, так что, думаю "Linux" - это он.
11:39
@rubyunderhood слишком очевидная тема!
11:39

. @kDasme все на маках?))

11:39
@rubyunderhood конечно! Даже без вагрантов. Но пока просто не пригождалось, разумеется вагрант нужен :)
11:42
@rubyunderhood да, 14.04 LTS
11:42
. @dcromster @rubyunderhood Мой выбор: Debian/Mint.
11:44

. @backendsecret @dcromster debian -- добро, а вот с убунтой всегда какие-то проблемы были, не прижилась

11:45

. @kDasme в макоси в частности раздражает brew, с ним головняк, когда хочется поставить пакет специфической версии)

11:46
. @rubyunderhood Я привык к aptitude. Mint - та же убунту, но на родном (мне) Gnome2, проблем не испытываю. Debian - обсуждать нечего :)
11:56
@rubyunderhood @kDasme macports на такое дело :) хотя с brew проблем не было
11:56

. @mpak999 @kDasme что-то от макпортов несколько лет назад отказался)

11:57
. @rubyunderhood Неее, если уж хочешь нормальный holy-war, то #ruby vs #python!
11:57

. @backendsecret по-моему это уже малоактуальный холивар, но вот ruby vs нодажс еще встречается:)

11:58

. @backendsecret в вашем руби даже промисов нет, сказал мне однажды один js-ник:)

11:59
@backendsecret @rubyunderhood хотите холивара - удалите емакс/сублайм/атом и поставте православный вим
11:59

. @anton_davydov @backendsecret я кстати согласен насчет vim-а, самый лучший редактор:)

12:00
. @scaint @rubyunderhood LTS рулит, слов нет. Но какое DE? Что ставил из ppa? И вот уже LTS не такой уж LTS :)
12:00
. @anton_davydov @rubyunderhood Таки в чём проблема? Так и есть :) Vim заруливает!
12:00
@rubyunderhood мак + вагрант для крупных проектов
12:00

. @backendsecret конечно странное сравнение, но видимо в этом и смысл)

12:01
. @rubyunderhood Странное на мой взгляд сравнение. Но это всё ничего - сейчас Lispеры и Perlисты подтянутся - вот тогда всем хана!
12:01

. @backendsecret лисп вообще непонятно зачем нужен, если кложура есть)

12:02
. @rubyunderhood Lisp нужен, чтобы была кложура... Вообще, мне ML-языки больше нравятся... Но хайпа вокруг них меньше :)
12:04

. @backendsecret я бы сказал лисп БЫЛ нужен, чтобы появилась кложура) Но это уже отдельная история)

12:04
@backendsecret А? Шо? Холивар?! Уууэээээ... Да ну нафиг. Пойду посплю... :) @rubyunderhood
12:05

. @dcromster @backendsecret да вот хз, я всего лишь про окружение разработки спросил и понеслось...

12:05
. @rubyunderhood Lisp - не язык. Это подход! Так что он ЕСТЬ. Тот же #hy - всё тот же #lisp, но на #python.
12:07

. @backendsecret нуу, согласен, хорошо) спорить было бы глупо)

12:07
@rubyunderhood на маке, и на Xubuntu - самое то, мне графические навороты не нужны, летает
12:07

. @svenyurgensson если графические навороты ненужны тогда можно fluxbox попробовать, кайфовая штука)

12:08
. @backendsecret @rubyunderhood Gnome classic. PPA: Crystal, Erlang, Rust, Neo4j и всякая мелочь, вроде Heroku toolbelt, Vivaldi...
12:08
@rubyunderhood для меня emacs - самый лучший редактор (в том числе и текста :)
12:08

. @svenyurgensson несколько раз пытался втыкать в emacs, но в итоге vim победил) Видимо привычка срабатывает)

12:09
. @svenyurgensson @rubyunderhood Просто интересно: в тунаре таки появились вкладки? или "какой file manager используете под xfce4"?
12:11
@rubyunderhood @kDasme чего отказываться-то, надо совмещать просто, раз уж что-то в brew не идет, то через port попробовать и т.п.
12:11
. @rubyunderhood @svenyurgensson конечно срабатывает. :wq запомнил - дальше - проще!
12:12
@rubyunderhood мне же не конфиги дрочить хочется, а комфортно работать, или есть линукс с предустановленным fluxbox?
12:12

. @svenyurgensson а чего там его предустанавливать, одна строчка в .xinitrc Конфигов там кот наплакал, разве что для меню, да тему выбрать)

12:13
@rubyunderhood @kDasme без фанатизму главное :)
12:13
@rubyunderhood для вимеров надо ставить spaceemacs - там режим evil mode включен. Хотя я считаю это извращением
12:13
@backendsecret @rubyunderhood я хз как он называется, родным пользуюсь и не думаю, мне там вкладки ни разу не понадобились
12:14
@rubyunderhood ну и зачем это? лишние телодвижения. Как вспомню раньше ATI карту к убунту прикрутить - на три дня веселья - так и вздрогну
12:15

. @svenyurgensson удобно, минималистично) но вцелом, если xfce всем устраивает, то оно и не за чем)

12:16
. @svenyurgensson @rubyunderhood Значит ничего не изменилось. Помню, как перелез с xfce4 на lxde - прям радовался!
12:17
@rubyunderhood он же, этот fluxbox адово страшный fluxbox.org/screenshots/sc…, небось, какие-нибудь задроты-хакеры с немытыми головами писали
12:19

. @svenyurgensson ахахах, он кайфовый, жалко тут разработчиков fluxbox нет)

12:19

Еще вброшу попутно, тут зашел разговор за файловые менеджеры, а они вообще нужны в *nix?

12:20

Я большинство времени провожу в консоли, файндером практически не пользуюсь вообще, ооочень редко.

12:21
@rubyunderhood lxde выглядит вполне нераздражающе, возможно годная вещь
12:21
@rubyunderhood ну серьезно, там же ад с иконками, с фонтами, с принципами UI, вообще куда ни ткнись, а жизнь - коротка чтоб так хуево жить
12:21
@svenyurgensson @rubyunderhood чуваки, як щодо xmonad
12:24

. @ilavriv @svenyurgensson опередил меня, я только хотел за тайловые поговорить) Это имхо высший пилотаж)

12:24
@rubyunderhood я mc иной раз пользуюсь, забиваю список путей в лист ctrl+\
12:24

. @Stammru в mc как-то не могу((

12:25
. @rubyunderhood И таки зачем тогда весь этот MacOS? Linux консоль ни разу не хуже!
12:25

. @backendsecret дык и я об этом же)

12:25
@rubyunderhood @ilavriv кто-нибудь скажет, какую проблему они решают?
12:25

. @svenyurgensson @ilavriv автоматически лейаутят окошки, можно мышью ВООБЩЕ не пользоваться

12:26
. @ilavriv @rubyunderhood @svenyurgensson Годно. Только надо вникнуть.
12:26
@svenyurgensson @rubyunderhood основна проблема то мабуть розміщення вікон (їх по суті нема) тайли можна більш ергономічно настроїти
12:26
@rubyunderhood Kubuntu 15.04 :)
12:26

. @bytecheg по-моему последний нормальный релиз KDE был 3.3, после этого все пошло под откос((

12:27
. @rubyunderhood А я об этом. Вот сижу я за dell xps и ни разу не понимаю, на кой переплачивать за Mac.
12:27
@backendsecret @rubyunderhood cmd+c и ctrl+c! В линуксе копировать из терминала/в терминал - это головная боль
12:28

. @dimazest @backendsecret а вот и нет) есть же xclip

12:28
@svenyurgensson @rubyunderhood крім того лаяути можна групувати тайли для різних задач. тобто мати різні лаяути для дева чи сервання в неті
12:28
@backendsecret @rubyunderhood две вроде бы маловажные причины: зарядка и twitter.com/dimazest/statu…
12:29

. @dimazest @backendsecret а что зарядка?

12:29

. @dimazest @backendsecret с шорткатами конечно конфуз, но можно в конце концов пользоваться не xterm-ом а чем-то более продвинутым)

12:31
. @dimazest @rubyunderhood 1. Сtrl+shift+{c,v} 2. Ты не поверишь, но можешь назначить любой аккорд.
12:31
. @backendsecret @rubyunderhood У меня первый DE был Энлаймент.Я тогда пищал от восторга: на Pent75 без видеоускорителя такие эффекты делал!
12:31

. @dcromster @backendsecret энлаймент всегда казался каким-то хипстерским) помню fvwm и icewm были, а потом blackbox и fluxbox

12:33
@rubyunderhood @ilavriv @svenyurgensson большую часть времени провожу в терминале (tmux + vim/nvim). Тайловый wm мне вообще не нужен
12:33

. @scaint @ilavriv @svenyurgensson тайлы кайфовы тем что можно много терминалов открыть, в которым будет tmux :)

12:33
. @rubyunderhood @dimazest Делай утром - будешь огурцом! А про ноут - 6 часов держит - на мастер-классе пришлось поверить. Вообще, под 8.
12:33
@rubyunderhood да, в жизни надо всё попробовать... :D @backendsecret
12:34
@rubyunderhood @scaint @svenyurgensson і не тільки терміналів всяке буває
12:34
. @dcromster @rubyunderhood e17 творит чудеса компизовости... Жаль в целом выглядит как гуано...
12:35
. @rubyunderhood а хто у Львові і йде сьогодні на @pivorakmeetup ?
12:36
.@backendsecret @rubyunderhood и тачпад, конечно. не видел на других ноутах адекватных тачпадов, может плохо искал
12:36
@rubyunderhood @scaint @ilavriv мне терминал terminator вполне годен, делаю сколько надо в нем сплитов и вперед
12:36
. @rubyunderhood @dcromster i3wm - самое норм!
12:37
. @rubyunderhood @dimazest С шорткатами конфуз только в Mac- в Linux можно поставить те же Ctrl-V/C, точнее не в Linux а в прогах под него.
12:40

. @backendsecret @dimazest но это разбираться надо) вцелом я не помню больших проблем с копипастом, когда в линуксе работал, как-то решалось

12:41
@backendsecret я помню на убунте вставлял кликом скролом мыши, задолбался shift+insert нажимать @rubyunderhood @dimazest
12:41
.@backendsecret @rubyunderhood а как проги останавливать тогда!!!!1111
12:44
. @Stammru @rubyunderhood @dimazest ой! прям мазохизм какой-то. Хоть погуглил бы...
12:44
. @dimazest @rubyunderhood Начнём с того, что этот Ctrl-c - это просто сигнал, а на что ты его назначишь - твоё право.
12:47
. @dimazest @rubyunderhood А продолжим: "У меня два биндинга к разным экшонам - что делать" - любой jsовец тебе расскажет.
12:49
.@backendsecret @rubyunderhood это понятно, но хочется просто пользоваться и особо не думать или настраивать систему
12:49

. @dimazest @backendsecret thinkpad T440s стоит рассмотреть)

12:52
. @dimazest @rubyunderhood Либо ты настроишь систему, либо система настроит тебя!
12:53
@backendsecret вспоминается бородатая шутка: В линуксе можно настроить всё. И ты, ****, будешь всё настраивать @dimazest @rubyunderhood
12:56
.@backendsecret @rubyunderhood ладно, напильником шорткаты можно исправить, а что делать с тачпадом и зарядкой?
12:58
.@backendsecret @rubyunderhood можно ли netflix смотреть и spotify слушать без бубна в linux?
13:04
@backendsecret @rubyunderhood @dimazest будь не как все! fuck the systemd!
13:22
@backendsecret @rubyunderhood уоу-уоу-уоу, палехше! Макбук придумал боженька и дал его Джобсу в обмен на лучшую марку
13:37

. @ptico @backendsecret по-моему божественные макбуки закончились примерно на леопарде)

13:37
@rubyunderhood @dimazest @backendsecret за 2+ года пока все шнурки живые от всех девайсов apple, но я аккуратный
13:40
@rubyunderhood по поводу ОС: это мы привыкли и зажрались. Недавно имел дело с виндой и десктопным линухом, с тех пор не ворчу про макось
13:57
@artemeff @rubyunderhood полировать нет времени, но суть должна быть понятна github.com/Ptico/rubyunde…
16:12

. @ptico @artemeff спасибо большое!

16:12
@artemeff @rubyunderhood преимущества такого подхода в том, что легко тестировать и переиспользовать куски кода.Плюс изменения вносить проще
16:12
@artemeff @rubyunderhood можно форкнуть, придумать себе модификацию и попробовать реализовать. Тестовое окружение настроено
16:12
@rubyunderhood ну и можно спрашивать что да почему
16:12
@rubyunderhood @svenyurgensson да, там, где нужно думать своей головой и начитается большинство проблем ;)
16:13
@ptico @rubyunderhood откровенно говоря, я игрался с подобным несколько лет назад, не увидел профита и забил.
16:35
@rubyunderhood и так, чтобы было нормально жить, к рельсе нужно относиться как к библиотеке, а не фреймворку.
16:47
@rubyunderhood наименование папок/файлов это единственные конвенции, которые удобны (в контексте autoload), всё остальное просто код.
16:47
@michaelklishin @rubyunderhood @svenyurgensson Золотые слова. Разрабатывайте приложение, которые используют rails, а не являеются частью его
16:47

. @lisovskyvlad нууу, rails это все-таки фреймворк а не библиотека. Во что на практике выливается этот подход (относитесь как к библиотеке)?

16:48

. @lisovskyvlad не очень понял вопрос, что именно имеешь в виду?

16:49
@rubyunderhood это ты так называешь ООП дизайн?
16:49
@rubyunderhood выливается это в такое - github.com/mokevnin/rails…. Бизнес логика должны быть 100% отделена от AR, контроллеров и хэлперов.
16:51

. @lisovskyvlad сейчас глянем что там такое

16:51

. @lisovskyvlad меня за троллить не выйдет, я всвое время александреску осиливал)

16:54

. @lisovskyvlad а ценность книг по рефакторингу очень сильно переоценена)

16:54

. @lisovskyvlad ну сервис объекты и что? разговор то был не про это изначально) дискас про то куда чего раскладывать)

16:55
@rubyunderhood я тебя троллю, стоит почитать книги о рефакторинге, DDD, Санди Метц посмотреть доклады и т.д. Что такое разработка вообще то
16:56
@rubyunderhood на современный лад это называется сервис объекты - github.com/gitlabhq/gitla…
16:56
@rubyunderhood зацени как мало кода в моделях github.com/gitlabhq/gitla…, а это очень большое приложение (gitlab)
16:56
@rubyunderhood если вкратце, то всё что не про http, persistency в классы, которые вообще не знают что их используют в веб-приложении.
16:57

. @lisovskyvlad про то, как делать мало кода в моделях уже 100 книжек написали, разговор о том, кто как организует базу кода в рельсах)

16:59

. @lisovskyvlad ага чудесно так и надо, вот ты лично как эту кухню структурируешь в рельсовом приложении?) все в либ валишь?

17:01

. @lisovskyvlad Влад ворвался откуда-то с середины видимо:) Дискас был не про то, как какой код писать, гибкий и тестируемый, или негибкий

17:03

. @lisovskyvlad и нетестируемый, а как его структурировать в контексте приложения на рельсах.

17:04

. @lisovskyvlad app/serializers, app/services, app/something? Это мы и хотели выяснить:)

17:05

. @lisovskyvlad неймспейсы-то используешь?) app/serializers/user_csv_serializer, или app/serializers/user/csv_serializer? или по всякому?:)

17:07
@rubyunderhood Мой подход такой: забудь что, это прилжоение рельсовое. Просто абстрагируйся от неё. Пиши гибкий тестируемый код.
17:07
@rubyunderhood @lisovskyvlad я скоріше розбиваю на неймспеси концептуально типу app/admin/ app/api/v1 і тп
17:08

. @lisovskyvlad а эволюционирует в каком плане?) Типа, вначале фигачим а потом разгребаем по-возможности?)

17:09
@rubyunderhood Да, видимо я не понял что вы хотели то. Ну, конечно не /lib. В либ то, что вообще к приложение не относится, но ещё не гем.
17:10
@rubyunderhood @lisovskyvlad є така штука як hierarchical mvc неймспейси тут якраз грають роль модулів а mvc в середині них
17:10
@rubyunderhood Зависит от насколько четко видна конечная цель (обычно нет), многие приложения живут годами и требования к ним тоже меняются.
17:12

. @lisovskyvlad угу, респект за МОЩНЫЙ врыв, я вначале удивился даже:)))

17:14
@lisovskyvlad @rubyunderhood якраз якщо аплікуха живе довго то неймспейси полегшують її скейлінг і дописування нових штук
17:14
@lisovskyvlad @rubyunderhood тобі по суті можна не тримати в голові всю архітектуру а зосередитись на конкретному неймспейсі
17:15

. @ilavriv @lisovskyvlad вот да, согласен, все что можно изолировать -- надо изолировать)

17:16
@rubyunderhood красавчик, давно я такого срача из пустоты не видел! :+1:
17:16

. @anton_davydov да я сам удивился, честное слово:)))

17:17

. @Bugagazavr я как раз за неймспейсы и выступаю)

18:29

Всем хорошего вечера пятницы, на сегодня я в оффлайн) На последок всем хорошей музыки youtu.be/FPbQ6weKh-k

18:42

# Суббота 14 твитов

Спасибо @suxxes, подкинул хорошую тему: Как и чем начать и продолжать тестирование?

12:48

Если говорить об инструментах, то я (наверное, как и большинство) использую rspec, factory_girl, capybara, teaspoon.

12:49

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

12:50

С чего начинать писать тесты в новом приложении – я обычно пишу features spec-и постепенно дополняя их юнит-тестами. Важно, чтобы тестовая

12:52

инфраструктура развивалась совместно с приложением.Начать писать тесты в большом,долгоживущем app, без тестового покрытия будет сложно

12:53
@rubyunderhood @suxxes мне кажется, достаточно не принимать PR без тестов и поставить CI :)
12:53

. @anton_davydov @suxxes еще вопрос, кто какие CI использует) Я гитлабовский.

12:53
@rubyunderhood Я вот даже не тестирую. :)
12:56

В продолжении разговора -- а есть адепты TDD? 100% coverage, test first вот это все

13:07
@rubyunderhood не адепт TDD, раньше тесты не писал вообще и спал плохо. Сейчас на довольно большой проект стал писать тесты - сон улучшился)
13:14
@rubyunderhood 100% coverage это иногда мало
13:53

. @ptico я бы сказал 100% coverage это часто бестолково)

13:53
@rubyunderhood есть вот такая штука github.com/mbj/mutant/ покрывать ей на 100% не обязательно, но самые слабые места узнать можно
14:01
@rubyunderhood @anton_davydov @suxxes GitLab CI, TeamCity - для проектов, Travis CI - для gems
15:52

# Воскресенье 2 твита

@rubyunderhood есть одна очень хорошая вещь в тестах: они понижают фоновый уровень тревоги и повышают удовлетворение
13:30
@rubyunderhood @anton_davydov @suxxes я использую длс CI jenkins с пробегом rubocop -> rspec -> cap deploy
13:31

github.com

other


@g3d