AlexWayfer

4 июля 2016, Moscow, Russia

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

Привет всем! На этой неделе с вами @AlexWayfer (Александр Попов), разработчик на Ruby примерно полтора года.

18:22

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

18:24

На аватаре не стоит акцентировать внимание, мне больше 20 лет, а этой фото лет 6. Так что постараюсь быть серьёзным, не смотря на обложку :)

18:26

На этой неделе хотелось бы обсудить некоторые темы, связанные как с back-end, так и с front-end (немного), так и на более отвлечённые темы.

18:29

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

18:34

@rubyunderhood Суть этого опроса в том, что, как мне кажется, летом затормаживается деятельность многих компаний. А люди отдыхают :)

18:37

@rubyunderhood Сложнее выкатить релиз, сложнее пройти/провести собеседование, сложнее продумать стратегию. Но самое время фиксить баги!

18:39

Вот ещё один опрос на ночь глядя: что вам больше нравится? В реплпях можно описать субъективные причины.

19:55

@rubyunderhood Лично я больше верю в GitLab из-за наличия open-source версии, но UI у GitHub чаще понятнее / более отточен

19:57
@rubyunderhood gitolite? :)

Выглядит, на мой взгляд, "не свежо", плюс хостится на GitHub, что, как минимум, странно для такого проекта 🤔twitter.com/odidoit/status…g

20:39
I didn't get 10/10. sigh. link: Ruby or Rails?:
railshurts.com/quiz/

По Твиттеру гуляет интересный тест, который не смог пройти ни Matz, ни DHH на 10/10, если вдруг ещё не видели. twitter.com/yukihiro_matz/…

22:44

Моё мнение таково: 1. Тест вряд ли можно считать полноценным или вообще очень ценным, хотя бы потому, что он довольно короткий для такого.

22:45

2. Он скорее показывает не роль Rails в Ruby, а простоту, гибкость и расширяемость самого Ruby: многие привыкли к этому.

22:47

# Вторник 83 твита

@rubyunderhood битбакет. исторически сложилось ибо халява. интерфейс гитхаба не нравится. гитлаб не вижу смысла пробовать

Я раньше тоже, но, увы, на работе мы дошли до ограничений в бесплатной версии 😞
Так я ближе познакомился с GitLab twitter.com/oleg_antonyan/…

6:47
@rubyunderhood на связи автор теста. идея теста: а не опасно ли это, когда ты забываешь где заканчивается язык, а где начинается фрэймворк?

Хорошая идея! Опасно, конечно же. Только вот... 🤐 я не писал проектов на Rails - 8/10, Matz тоже вряд ли активноtwitter.com/inem/status/75…U

6:50

Ну то есть я избегаю синтаксиса Rails, как избегаю XML - и кто знал, что to_xml не у Ruby? sample не встречал, выглядит слишком Rails.

6:56
Через полчаса онлайн: goo.gl/8Xbj3I
Можно ли не тратить 5 лет на универ, если я хочу стать программистом. pic.twitter.com/7Gduf9FAFe

О, тоже насущный вопрос. Я уверен, что можно. Просто перспективы разные. И сдвиг по времени. twitter.com/inem/status/75…

7:31

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

7:33

Время - те, кто не учатся, а тратят 2-4 года сразу на любимое занятие - обычно сильно опережают в нём выпустившихся сверстников.

7:34
@rubyunderhood устроиться в банк - сомнительное достижение.

Для кого-то это тоже достижение. Думаю, там не сильно хуже, чем ежедневный CRUD. Это просто как пример компании. twitter.com/mr_The/status/…

7:37
@rubyunderhood не все мечтают работать в больших конторах

Да, именно это я и пытаюсь сказать: не целитесь на Сбербанк или подобное? Лучше не тратьте время на высшее. Но! twitter.com/oleg_antonyan/…

7:39

Но стоит попробовать учиться. Мне очень помогли первые 1-1.5 года. А дальше я решил, что мне не нужны компании, смотрящие на наличие диплома

7:41
@inem @rubyunderhood по мне так не важно, если будешь писать clean ruby код и не обнаружишь любимый метод, просто подключишь activesupport

На вкус и цвет. Знаю людей (и сам такой), которые при виде AS там, где это лишне, закрывают проект, например. twitter.com/mpak999/status…

7:49
@mpak999 @inem @rubyunderhood а действительно ли это того стоит: притянуть в проект лишние 5000 строк кода ради любимого метода?

Да, хороший вопрос! Плюс глобальное расширение стандартных классов... Есть механизмы refine, но в AS плевали на них. twitter.com/sharipov_ru/st…

7:51
@mr_The @rubyunderhood @inem а как же трактор? Говорят, без диплома трудно завести.

Да, вроде да. Поэтому я и обозначил "перспективы", а не просто "выбор компании", так как диплом чуть шире влияет. twitter.com/c01nd01r/statu…

7:52
@rubyunderhood @inem фанатики :)))

Сложно назвать фанатизмом желание сделать код проще, легче и с соблюдением наиболее подходящих норм языка. twitter.com/mpak999/status…

7:53
@rubyunderhood @oleg_antonyan а вот у всех гитлаб делает лаг-лаг или у нас просто машинка слабая?

Методом проб выяснили, что для GitLab лучше отдельную чистую машину с 2 ядрами CPU и 2 GB RAM + 2GB Swap (на всякий) twitter.com/7rulnik/status…

8:19
@mr_The @rubyunderhood почему? В банках есть интересные задачи, data science и прочие ништячки

В принципе, разные интересные задачи много где есть, в том числе в банках, и интерес у каждого свой. Так что да. twitter.com/vladimir1ch/st…

8:23
@vladimir1ch @rubyunderhood наверно, вам очень повезло с банком) я слышал только прокучу легаси и уныния

Я тоже слышал про Java 6, но, по сути, это просто условия работы, с которыми многие согласны смириться. twitter.com/mr_The/status/…

8:32

Так, раз уж зашёл разговор про велосипеды: что вы предпочитаете?

8:37

@rubyunderhood Очевидно, что часто нужно ничего из этого, или что-то другое, или всё сразу, но вот если говорить о таком жёстком выборе.

8:37

@rubyunderhood Например, пользуетесь библиотекой, в ней нет нужных фич или есть ненужные баги, а менять её саму нет возможности.

8:39

@rubyunderhood Сначала, очевидно, лучше костыли. Но иногда наступает момент, когда из них можно собрать велосипед поменьше...

8:40

Немного про мой взгляд на велосипеды: они никогда не делаются под копирку. Без них не было бы Ruby, многих других ЯП, того же iPhone/Android

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

У меня были задачи, выходящие за scope, связанные с роутерами. Высшее образование не помогло бы. Но помог интернет. twitter.com/poctek/status/…

8:46

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

8:48
@rubyunderhood андроид костыль :)

Вряд ли. Как раз тот случай, когда "Уже есть работающие мобильные ОС, зачем тебе своя?"
А внутри может быть. twitter.com/sevendump/stat…

8:50
@rubyunderhood я не говорю о том, что делать больно будет каждая задача, но считаю что связка учеба + работа эффективнее просто работы

Именно с такой связки я и бросил учёбу. И до сих пор очные студенты даже на последнем курсе - боль для компании. twitter.com/poctek/status/…

8:52

Намного меньше появляется желания создать велосипед-альтернативу той системе, которая расширяется (с помощью плагинов, например).

9:19

@rubyunderhood Именно поэтому мой путь такой: notepad.exe > Notepad++ > Sublime > Atom. Удобство и расширяемость.

9:21

@rubyunderhood Не очень люблю IDE из-за их массивности и меньшей гибкости: от текстового редактора с плагинами можно выжать всё необходимое.

9:26

@rubyunderhood Но часто всё равно есть альтернативы (велосипеды), так как возникает необходимость (желание) сделать всё иначе на корню.

9:27

Про плагины: не представляю своей жизни без rubocop. 10 LOC на метод сначала кажется безумным ограничением, но оно насильно прививает ООП.

9:39

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

9:40

@rubyunderhood ... Но у меня есть негласное правило: если аргументы повторяются в двух и более методах - самое время подумать над классом.

9:41

@rubyunderhood Аргументы становятся instance variables, повтора кода меньше, ООП и гибкости больше. На мой вкус, это хорошо.

9:43

@rubyunderhood А логика примерно такая же, как с обычными переменными: используешь данные больше одного раза - лучше объяви переменную.

9:44

По этой теме новый опросик! (Надеюсь, вы их любите)
Соблюдаете ли вы ограничение в 10 строк кода на один метод?

10:09

@rubyunderhood Не всегда и не прямо, но часто, как мне кажется, это влияет на ясность и поддерживаемость кода.

10:11
@rubyunderhood откуда уже 10 взялось? от @sandimetz было 5 - 100 robots.thoughtbot.com/sandi-metz-rul…

Придерживаюсь RuboCop: github.com/bbatsov/ruby-s…
100 LOC очень свободно, с ограничением в 10 писать интереснее. twitter.com/mpak999/status…

10:14
@rubyunderhood Ideally, most methods will be shorter than 5 LOC. - и rubocop так же :) 100 LOC это на класс, не на метод

Да, 100 на класс, 10 на метод. В опросе было упомянуто ограничение именно на метод. twitter.com/mpak999/status…

10:18
@rubyunderhood На стадии - "проект запущен и рубит бабки" всем пофиг, можно творить любую фигню соблюдая формулу "запущен -> рубит бабки"

Можно. Можно вообще ничего не творить, ведь бабки рубит. Но мы же о другом: создание, развитие, поддержка. twitter.com/sevendump/stat…

10:21

И в проекте скорее всего понадобится что-нибудь делать. Если он сделан хорошо - лучше и дальше делать хорошо. Если нет - то без разницы.

10:24
@rubyunderhood о саппорте, есть парсеры - разбивать на методы в 10 строк не вариант, все пишем большими методами охватывающими всю страницу.

На странице, наверняка, есть различные элементы, которые нужно вытащить. Они, как и вся страница - разные сущности 😉 twitter.com/sevendump/stat…

10:37
@rubyunderhood рубокоп в прекоммит хуке не даёт не соблюсти, падла :)

Отличный способ, советую всем 👌
(Для существующих проектов без такой ориентированности может не подойти, конечно) twitter.com/oleg_antonyan/…

11:03
@rubyunderhood у нас еще прижился RSpec на pre-push :) (если нет CI)

Лучше, конечно, иметь CI или CD, но на pre-push тоже вариант. twitter.com/mxgoncharov/st…

13:32

Исходя из темы RuboCop и количества LOC: как вы считаете, чего из этого достаточно?

14:36

@rubyunderhood Я смотрю предварительные результаты и всё очень-очень плохо 😥 Ну ладно, итоги завтра.

15:40
@rubyunderhood рубокоп маст хэв, но 10loc на метод это бред imo, лепят 100 методов и стейт через собак шарят между ними потом)

Делаешь attr_accessor и не видишь собак 😉 twitter.com/rainrb/status/…

17:26
@rubyunderhood а то же самое, хотя конечно немного лучше.

Очень люблю в Ruby размытостость границ между методами (поведением) и переменными (состоянием). twitter.com/rainrb/status/…

18:05
Вы юзаете Jekyll или Middleman? Помогите GitLab-у лучше понять какие SSG популярней других: goo.gl/4oKKQf
//сс @rubyunderhood

Не пользуюсь ничем из этого, но во благо общего дела ✌ twitter.com/inem/status/75…

18:05
@rubyunderhood зависит от того, в какой стране компания :)

Интересно. Как же страна влияет на активность деятельности компании в различные времена года? twitter.com/gaar4ica/statu…

19:03
@rubyunderhood лучше одна функция без сайдэффектов на 50 строк кода, чем 5 функций по 10 строк с расшаренным стейтом

Из одной функции можно "случайно" изменить внешнюю переменную по ссылке, так что сложно согласиться, разное бывает. twitter.com/rainrb/status/…

19:05
@rubyunderhood мода на сервис-классы с единственным методом,в который параметры передаются через конструктор сервисного класса пример тому

Зачем единственный метод? Разбиваешь класс по методам 10 LOC,разбиваешь другой,находишь общее - выделяешь в родителя twitter.com/rainrb/status/…

19:08
@rainrb @rubyunderhood покуда сервис делает одно дело ок что какойто стейт шарится. Читабельность и дебагельность важнее

Да, лучше instance variables, чем одинаковый стэк аргументов от метода к методу, или один огромный, "all-in-one" twitter.com/oleg_antonyan/…

19:11
@oleg_antonyan @rubyunderhood ну так расшареное состояние и ухудшает читабельность и отлаживаемость.

Никто не заставляет шарить на всех вокруг, всё же есть private и protected в том числе для attr_reader или accessor twitter.com/rainrb/status/…

19:14
@rubyunderhood дебажить такой код особенно хорошо потом, с размытыми границами между поведением и состоянием))

Всё очень просто: с префиксами (@) это состояние, всё остальное без них - поведение. twitter.com/rainrb/status/…

19:16
@rubyunderhood ну вот Бразилия, наиболее благоприятная погода там зимой.

Ну есть ещё Австралия, где смещены времена года, но пока опрос пока показывает, что отпуск вообще переоценён 🤔twitter.com/gaar4ica/statu…F

19:18
@rubyunderhood ну так если состояние шарится между 10 приватными методами, оно разве перестает быть расшаренным

Оно расшарено внутри класса, что просто группирует методы относительно состояния. twitter.com/rainrb/status/…

19:28
@rubyunderhood я пожалуй тогда не понял, что имелось ранее в виду под "размытыми границами между поведением и состоянием"

Суть в том, что мне нравится с одной стороны жёсткое разделение между состоянием и наследованием... twitter.com/rainrb/status/…

19:31

Это не совсем шэйр наружу, если всё грамотно написать. @rainrb

19:31

С другой стороны, нет разделения между getter/setter и сторонним вычислительным поведением @rainrb

19:32
@rubyunderhood даже не знаю,я вообще изначально говорил о том, что функции без сайдэффектов проще отлаживать чем функции с сайдэффектами:)

Окей. Один класс с приватными переменными, по опыту, вполне заменяет один огромный метод, только выглядит более ООП. twitter.com/rainrb/status/…

19:35
@rubyunderhood если у нас есть класс с 20 методами, и кучей инстанс-переменных это часто проблема даже если методы по 10LOC. Как-то так:)

Как это не иронично звучит, но тут на помощь приходит создание новых классов, иногда даже приватных. twitter.com/rainrb/status/…

19:36

Особенно если этот класс больше 100 LOC в сумме @rainrb

19:36
@oleg_antonyan @rubyunderhood хехе :) а вот в RubyMine отлично rubocop плагин работает + @codeclimate способствует улучшению качества кода

Я вот не уверен, но разве у Matz не было конфликта и отказа с CodeClimate? И разве в RubyMine RuboCop не встроен? twitter.com/mpak999/status…

19:42
@rubyunderhood если метод большой,делим его на маленькие,добавляем состояние,получаем много методов в классе,делим класс на маленькие классы

Всё примерно так! Относительно ситуации, конечно. Но в целом это изложение принципа ООП, на мой взгляд. twitter.com/rainrb/status/…

19:47

ООП не идеален, кому-то нравится ФП, и тут просто дело вкуса. @rainrb

19:48
@rubyunderhood передавая в конструкторы какие-то данные и вызывая методы созданных инстансов для получения результатов,так что ли выходит?)

Да, всё примерно так. Был даже пример на днях такого. Мысли "да чтоб его, лучше бы в один метод всё" посещали, но... twitter.com/rainrb/status/…

19:49

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

19:51
@rubyunderhood тогда два вопроса-почему нельзя использовать просто маленькие функции,которые вернут результат на основании входных данных

Можно. Всё можно. Можно всю программу в main-scope описать без функций и классов, просто подход разный. twitter.com/rainrb/status/…

19:57
@rubyunderhood и что такое класс:) попутно прошу извинить за ошибки-опечатки в предыдущих твитах

Класс - это абстрактная сущность. Очень советую осознать, если изучаете Ruby, в котором почти всё на этом основано. twitter.com/rainrb/status/…

19:58

То есть, например, есть человек и мяч, между которыми поведение (действие / функция). Фишка в том, что руку можно вынести в класс. @rainrb

19:59

При необходимости и желании, конечно же. @rainrb

19:59
@rubyunderhood На классы надо делить не механически, а по смыслу. Каждое существительное предметной области во множественном числе — класс.

Не соглашусь. Иногда нужен нотификатор, выполняющий определённый набор действий при определённом единичном сценарии. twitter.com/vassilevsky/st…

20:00

Это как пример. То есть его экземпляр сейчас нужен только в одном месте, но логически его лучше вынести в отдельный класс. @vassilevsky

20:01
Вот ещё один опрос на ночь глядя: что вам больше нравится? В реплпях можно описать субъективные причины.

Опрос закончился. GitHub заметно лидирует. Ну что ж, заслуженно. twitter.com/rubyunderhood/…

20:04

@rubyunderhood От себя могу лишь побудить обратить больше внимания на GitLab. Особенно для компаний есть преимущества. Всем мир✌

20:05
@rubyunderhood Когда они добавили Docker Registry, я испугался, что GitLab со временем превратится в помойку хайповых фич ;(

Активно следим и жаждем демократии без введения тоталитарных фич 🙏 twitter.com/vassilevsky/st…

20:56
@rainrb @oleg_antonyan @rubyunderhood Плюс стейт в инстансе вполне может быть иммутабельным

Предпочитаю константы через наследование вместо классовых методов 👌 twitter.com/ptico/status/7…

20:57
@rainrb @rubyunderhood разговор про руби, а значит, это почти всегда рельсы. Пока, по крайней мере.

Попрошу, не на этой неделе 😞 Разговор про Ruby, благо, аккаунт не RailsUnderhood какой-нибудь. twitter.com/zhulikgleb/sta…

21:18

Тип "разговор про стройку, а значит про экскаватор" - нет. При всём уважении - нет. @zhulikgleb @rainrb

21:19
@rubyunderhood А можно гист с примерами? (На ГитЛабе :)

Да, пожалуйста: gitlab.com/snippets/22025 twitter.com/vassilevsky/st…

21:31
@rainrb @zhulikgleb @rubyunderhood так сервис-объекты тоже свое рода неймспейсы получаются

Да, только без таскания аргументов между методами, а с хранением их как состояния в виде instance variables. twitter.com/zhulikgleb/sta…

21:35
@rubyunderhood @rainrb если они в процессе работы не меняются и не служат для передачи данных из одного метода в другой, иначе все плохо

Да, именно! Классы призваны решить именно эти проблемы модулей, на мой взгляд. twitter.com/zhulikgleb/sta…

22:04

Могут быть вычисления, зависимости одного метода от результата другого, но сути и входных данных это не меняет @zhulikgleb @rainrb

22:05

# Среда 40 твитов

Привет! Сегодня попробуем удариться в back-end. Начнём издалека, потом ближе к конкретике.

9:15

Для меня это немного сложная в обсуждении тема в виду моей педантичности и непростых отношений с Rails... @rubyunderhood

9:17

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

9:18

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

9:20

1. Фреймворков, помимо Rails, много - больших и маленьких. Очень часто они совсем разные по функциональности и подходу. @rubyunderhood

9:22

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

9:22

2. Есть замечательная ORM - Sequel. Советую обратить внимание. Во многом нравится больше того же ActiveRecord. @rubyunderhood

9:24

3. Какую ORM вы бы не использовали - очень важно, на мой взгляд, хорошо знать чистый SQL и принципы реляционных БД. @rubyunderhood

9:26
Просто интереса ради - а как с математической базой, графами и алгоритмами? Каким самообразованием спасаетесь? @rubyunderhood

Во-первых, основы даются в школе (если есть желание) и на первых курсах. Во-вторых, спасает чутьё и мышление. twitter.com/ad__astra/stat…

11:12

Ну и в-третьих, в интернете можно найти много материалов с терминами даже по запросам из обычной речи: "как перебрать дерево". @ad__astra

11:14

Общие взгляды высказал, теперь конкретика. Как вы храните локализации?

13:02
@rubyunderhood Но я, собственно, к чему: какие книги по всем этим (на самом деле нужным) темам порекомендуете? И к Курсере как относитесь?

Книг порекомендовать не могу на эту тему, не сталкиваюсь с ней. Ну, если кто-то другой напишет - опубликую. twitter.com/ad__astra/stat…

13:05

Ко всему, что развивает человека, отношусь положительно. Тут уже способы на вкус и цвет, а также интенсивность. @ad__astra

13:06
Общие взгляды высказал, теперь конкретика. Как вы храните локализации?

Начинаешь обычно с YAML, потом делаешь некоторый контент из БД тоже переводимым... twitter.com/rubyunderhood/…

13:08

И вдруг понимаешь, что содержимое YAML нужно тоже дать удобно менять менеджеру. И вот тут у меня срывает крышу. @rubyunderhood

13:09

Потому что либо делаешь максимально возможный красивый интерфейс для редактирования YAML и пишешь в файл... @rubyunderhood

13:10

Либо как-то переносишь локализацию key words тоже в БД, в другом виде. До сих пор не решил, что лучше, но предстоит. @rubyunderhood

13:11
@rubyunderhood давать менеджерам редактировать yml файлы это часто плохая идея, потому как yml файлы не отражают контекст

Зависит от структуры YAML-файла, но в целом да, мне тоже так кажется. twitter.com/rainrb/status/…

13:22
@rubyunderhood часто бывает недостаточно перевести слово, или фразу. Локализация это существенно более сложная задача в общем случае

Есть какой-нибудь опыт наиболее удачного подхода удобного редактирования менеджером локализации? twitter.com/rainrb/status/…

13:23
@rubyunderhood специальный человек идет по экранам приложения и выполняет корректный перевод, после чего отдает результат разработчикам
13:28
@rubyunderhood А разработчики уже распиливают то, что получилось на yml-файлы, или как им удобнее
13:28
@rubyunderhood мультиязычность это такая штука, которую делаешь либо сразу, либо отгребаешь
13:28
@rubyunderhood Globalize вроде был на этот случай

Он только для Rails + вроде как повторяет функциональность самого R18n, может взаимодействие чуть другое и всё. twitter.com/rimmer333/stat…

13:42

А боль больше для key words: локализация кнопки "Зарегистрироваться", например. @rimmer333

13:43
@rubyunderhood YAML для статичного контента, БД для всего что вносится в админку менеджером.

Не думал о редактировании "статичного контента" менеджером в админке? 😉 twitter.com/mimikadze/stat…

14:13

Я знаю, вопрос частный, но иногда на ранних стадиях проекта он не очень статичный 😞 @mimikadze

14:14
чик-чик и в продакшен ;-) twitter.com/rubyunderhood/…

Иначе ни одно ПО не имело бы версии 1.0 😉 Почти всё развивается, многое меняется или хотя бы дотачивается потом. twitter.com/netandreus/sta…

14:27
@rubyunderhood c Глобалайзом понт, ребята. У него в логике N+1 проблема, которая не лечится.
14:55
Так, раз уж зашёл разговор про велосипеды: что вы предпочитаете?

Победили велосипеды. Как я говорил, считаю "велосипед" - грубым названием альтернативы, а костыль - это недофича) twitter.com/rubyunderhood/…

16:57
Исходя из темы RuboCop и количества LOC: как вы считаете, чего из этого достаточно?

Видимо, большинство разработчиков очень самоуверены и ленивы :) twitter.com/rubyunderhood/…

16:59

Комментарии в коде нужны для contribution, а вот документация описывает использование.

16:59

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

17:01
@ad__astra @poctek @rubyunderhood у меня в ВУЗе были Ruby, Java, C, Asm, Haskell, Prolog на хорошем уровне. Так что вуз вузу рознь

Думаю, многим будет интересно, что это за ВУЗ? twitter.com/mastedm/status…

17:02
@rubyunderhood просто никто не читает доку, как бы ты хорошо ее не написал

По опыту, без документации никуда, за исключением "для себя". Все читают документацию Ruby, а не код MRI 😉 twitter.com/mr_The/status/…

17:04
По этой теме новый опросик! (Надеюсь, вы их любите)
Соблюдаете ли вы ограничение в 10 строк кода на один метод?

Результаты приемлимы для ФП и лени. Если вы вдруг хотите погрузиться в ООП - советую ставить RuboCop и набивать руку twitter.com/rubyunderhood/…

17:08
@rubyunderhood @ad__astra @poctek МГИУ, сейчас расформировали и слили с МАДИ

Не ожидал от автомобильного-дорожного Haskell и прочее 😱 Выбирайте ВУЗ внимательнее! Бывает и такое. twitter.com/mastedm/status…

17:10
@rubyunderhood если ты пишешь опенсорс - да, без доки некуда. Если это часть внутреннего проекта - никто ее не прочитает.Проверено не раз :(

Было пару раз, что команда частично менялась, и проще отдать читать документацию, чем день проводить в объяснениях. twitter.com/mr_The/status/…

18:02

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

19:24

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

19:31
@rubyunderhood главное не автоопределять, если набрал специально en. Бесит когда перенаправляет.

Безусловно, автоматика должна работать только при отсутствии вообще каких-либо данных (сессия/URL) twitter.com/golodenko/stat…

21:54

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

@rubyunderhood кто скажет что документация не нужна, тот просто не работал в достаточно большом проекте

Примерно те же ощущения. twitter.com/mimikadze/stat…

7:19
@rubyunderhood 10? Вы че? У меня все по 5 строк.

Можно будет попытаться :) Но по началу и 10 рвёт шаблоны. twitter.com/golodenko/stat…

13:33

Ещё одна интересная тема по back-end, которую не успел осветить вчера: как вы разделяете типы/роли пользователей?

13:38

Если у вас какие-то свои варианты, комментарии и мнения - что верно, а что не очень - буду рад услышать!

13:38

Вдогонку: сколько у вас точек входа в ЛК/админку?

13:42
@rubyunderhood есть критерий: ограниченность количества ролей. От него и надо прыгать.

Самый распространённый вариант: у вас есть админ, менеджер, поставщик услуги и потребитель услуги. Как поступить? twitter.com/kalashnikovism…

13:43

Может быть один /sign_in с распознанием роли/модели за счёт общей уникальности входных данных. @kalashnikovisme

13:44

А может быть /{admin,manager,provider,consumer}/sign_in, а там уже одна модель или даже разные. @kalashnikovisme

13:46
Общие взгляды высказал, теперь конкретика. Как вы храните локализации?

Странно, большинство обходится без редактируемого на несколько языков контента, только статические переводы. twitter.com/rubyunderhood/…

16:37

При этом трое обходятся без YAML и хранят всё в БД. Тоже так хочу 😞 Если хорошо организовано. pic.twitter.com/CdeuWr3jmi

16:39
@rubyunderhood одна модель User с атрибутом role. В контроллерах модули Admin::*, Manager::*, etc.

Одна модель, разные контроллеры, разные view кабинетов. А авторизация? Action, URL и view тоже разные? twitter.com/kalashnikovism…

16:41
@rubyunderhood вспомнил славные пхпшные времена, где часть конфига модно было хранить в бд, а потом evalить.

Eval is evil. © twitter.com/kofeeanon/stat…

18:50

На ночь глядя: как часто вы затрагиваете front-end?
UPD: Убрал конкретику про JS,потому что он есть в любом варианте

19:08

Лично я для работы back-end программистом считаю идеальным второй вариант, для full-stack и open-source выбирать не приходится :)

19:10

У себя на работе стараюсь как можно больше проектов отдавать front-end джуну, но в тех, что на мне, иногда педантичность и опыт берут верх.

19:13
@rubyunderhood да не, "метапрограммирование"

Если в программе есть место, в которое можно скормить любой код - это огромная брешь в безопасности. twitter.com/kofeeanon/stat…

19:27
О, совсем забыл! Какого вида ссылки на мультиязычных сайтах вы предпочитаете?

Я удивлён. Почему так? Думал, что без изменения URL - самое элегантное и любимое. twitter.com/rubyunderhood/…

19:28
@rubyunderhood с изменениями лучше для SEO, индексации и аналитики

Сейчас думаю над этим и понимаю, что да. Надо будет по возвращению из отпуска изменить :) twitter.com/rimmer333/stat…

19:42
@rubyunderhood ох, дядь, сарказм, а история про пхп это ирония над бэд практис

Окей 👌 Я не очень умею в сарказм :) А именно такой истории я вроде нигде не встречал, к счастью. twitter.com/kofeeanon/stat…

19:43

И, возвращаясь к теме, переводы статики можно хранить в БД без eval, конечно же. Интересно как именно, в т.ч. редактирование @kofeeanon

19:45
@rubyunderhood без изменения - это крайне неудобно. Тот же алиекспресс вечно предлагает мне кривую русскую версию.
20:42
@rubyunderhood А по поддомену - идеально. Можно и ссылку кому-то расшарить и в плане разработки просто и понятно.
20:42
@mr_The @rubyunderhood с поддоменом с точки зрения SEO не очень. Без изменения url – вообще жесть.

Самое лучшее с точки зрения SEO, получается, между доменом и path, как часть пути? twitter.com/igor_alexandro…

21:39

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

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

20:28

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

20:29

А пока новая тема и опрос к ней: какое у вас желание изучения английского языка?

20:34

Опрос может показаться странным, тема намного шире, но здесь максимум вариантов ответа только 4, а связать разные опросы не получится :(

20:36
А пока новая тема и опрос к ней: какое у вас желание изучения английского языка?

От себя скажу, что у меня среднее желание изучения английского и большая лень. И знаете что? Конечно же зря! twitter.com/rubyunderhood/…

20:39

Он невероятно востребован, если вы хотите хоть как-то взаимодействовать с людьми из отдалённых стран. Поэтому банальный совет: учите.

20:41
На ночь глядя: как часто вы затрагиваете front-end?
UPD: Убрал конкретику про JS,потому что он есть в любом варианте

Почти половина выполняет свои обязанности back-end, другая full-stack. И почти все работают с JS. Вы молодцы :) twitter.com/rubyunderhood/…

20:43
Посмотри как прекрасен мир без JavaScript

Лично я не люблю JS и постоянно вспоминаю это: twitter.com/grepdev/status…
Но, выбора в браузерах нет, только в специальностях :)

20:46
Вдогонку: сколько у вас точек входа в ЛК/админку?

Преимущественно используется хороший, на мой взгляд, способ. twitter.com/rubyunderhood/…

20:49

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

20:50
Ещё одна интересная тема по back-end, которую не успел осветить вчера: как вы разделяете типы/роли пользователей?

А вот тут интересно: одна модель - 17%, против одной модели - 31% в опросе про точки входа. twitter.com/rubyunderhood/…

20:53

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

Вот и подошла моя неделя к концу. Спасибо всем 🙌
Мне было интересно, надеюсь и вам.
С вами был @AlexWayfer, хорошего вам кода и деплоя :)

22:36

other