rainrb

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

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

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

7:41

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

7:45

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

8:03

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

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

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

8:22

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

8:24

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

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

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

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

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

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

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

8:33

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

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

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

8:39

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

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

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

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

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

8:53

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

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

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

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

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

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

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

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

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

9:43

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

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

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

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

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

9:51

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

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

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

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

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

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

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

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

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

10:47

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

13:05

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

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

7:35

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

7:37

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

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

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

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

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

7:44

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

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

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

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

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

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

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

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

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

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

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

9:22

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

9:25

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

9:25

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

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

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

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

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

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

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

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

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

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

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

9:58

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

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

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

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

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

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

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

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

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

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

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

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

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

11:09

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

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

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

11:49

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

11:51

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

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

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

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

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

12:46

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

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

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

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

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

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

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

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

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

16:49

# Среда 61 твит

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

8:18

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

8:20

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

8:22

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

8:24

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

8:25

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

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

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

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

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

9:39

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

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

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

9:44

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

9:47

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

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

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

10:02

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

10:03

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

10:04

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

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

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

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

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

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

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

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

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

11:05

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

11:06

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

11:07

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

11:08

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

11:09

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

11:10

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

11:12

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

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

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

11:14

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

11:21

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

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

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

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

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

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

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

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

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

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

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

18:57

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

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

6:09

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

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

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

6:14

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

6:15

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

8:05

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

8:07

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

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

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

8:21

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

8:22

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

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

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

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

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

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

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

9:37

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

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

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

10:21

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

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

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

11:06

test stats

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

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

14:26

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

15:00

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

15:01

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

15:01

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

15:02

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

15:03

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

15:09

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

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

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

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

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

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

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

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

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

15:41

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

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

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

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

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

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

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

15:51

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

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

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

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

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

15:59
@rubyunderhood слава монолитам
16:29

. @Bugagazavr почему?)

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

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

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

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

16:33

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

16:38

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

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

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

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

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

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

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

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

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

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

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

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

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

18:52

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

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

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

4:56

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

8:21

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

8:22

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

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

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

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

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

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

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

8:45

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

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

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

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

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

8:58

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

9:19

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

9:20

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

9:29

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

13:48

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

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

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

13:51

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

13:54

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

13:54

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

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

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

13:59

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

14:01

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

14:03

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

14:04

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

14:05

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

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

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

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

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

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

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

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

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

14:17

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

15:29

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

15:42

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

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

9:48

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

9:49

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

9:50

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

9:52

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

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

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

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

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

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

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

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

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

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

github.com

other


@g3d