# Понедельник 11 твитов
Привет всем! На этой неделе с вами @AlexWayfer (Александр Попов), разработчик на Ruby примерно полтора года.
21:22Работаю в небольшой конторе пару лет, не придаю этому большого значения, так как сообщество про ЯП, а не работу, но на вопросы ответить могу
21:24На аватаре не стоит акцентировать внимание, мне больше 20 лет, а этой фото лет 6. Так что постараюсь быть серьёзным, не смотря на обложку :)
21:26На этой неделе хотелось бы обсудить некоторые темы, связанные как с back-end, так и с front-end (немного), так и на более отвлечённые темы.
21:29Начнём как раз с одной из таких, так как актуально: в какое время года вы уходите в отпуск?
21:34@rubyunderhood Суть этого опроса в том, что, как мне кажется, летом затормаживается деятельность многих компаний. А люди отдыхают :)
21:37@rubyunderhood Сложнее выкатить релиз, сложнее пройти/провести собеседование, сложнее продумать стратегию. Но самое время фиксить баги!
21:39Вот ещё один опрос на ночь глядя: что вам больше нравится? В реплпях можно описать субъективные причины.
22:55@rubyunderhood Лично я больше верю в GitLab из-за наличия open-source версии, но UI у GitHub чаще понятнее / более отточен
22:57@rubyunderhood gitolite? :)
Выглядит, на мой взгляд, "не свежо", плюс хостится на GitHub, что, как минимум, странно для такого проекта 🤔twitter.com/odidoit/status…g
23:39Вот и подошла моя неделя к концу. Спасибо всем 🙌
Мне было интересно, надеюсь и вам.
С вами был @AlexWayfer, хорошего вам кода и деплоя :)
# Вторник 80 твитов
I didn't get 10/10. sigh. link: Ruby or Rails?:
railshurts.com/quiz/
По Твиттеру гуляет интересный тест, который не смог пройти ни Matz, ни DHH на 10/10, если вдруг ещё не видели. twitter.com/yukihiro_matz/…
1:44Моё мнение таково: 1. Тест вряд ли можно считать полноценным или вообще очень ценным, хотя бы потому, что он довольно короткий для такого.
1:452. Он скорее показывает не роль Rails в Ruby, а простоту, гибкость и расширяемость самого Ruby: многие привыкли к этому.
1:47@rubyunderhood битбакет. исторически сложилось ибо халява. интерфейс гитхаба не нравится. гитлаб не вижу смысла пробовать
Я раньше тоже, но, увы, на работе мы дошли до ограничений в бесплатной версии 😞
Так я ближе познакомился с GitLab twitter.com/oleg_antonyan/…
@rubyunderhood на связи автор теста. идея теста: а не опасно ли это, когда ты забываешь где заканчивается язык, а где начинается фрэймворк?
Хорошая идея! Опасно, конечно же. Только вот... 🤐 я не писал проектов на Rails - 8/10, Matz тоже вряд ли активноtwitter.com/inem/status/75…U
9:50Ну то есть я избегаю синтаксиса Rails, как избегаю XML - и кто знал, что to_xml не у Ruby? sample не встречал, выглядит слишком Rails.
9:56Через полчаса онлайн: goo.gl/8Xbj3I
Можно ли не тратить 5 лет на универ, если я хочу стать программистом. pic.twitter.com/7Gduf9FAFe
О, тоже насущный вопрос. Я уверен, что можно. Просто перспективы разные. И сдвиг по времени. twitter.com/inem/status/75…
10:31Перспективы - у вас почти нет шансов устроиться в тот же Сбербанк миддлом, например, без высшего. Но в небольшой компании хоть тим-лид.
10:33Время - те, кто не учатся, а тратят 2-4 года сразу на любимое занятие - обычно сильно опережают в нём выпустившихся сверстников.
10:34@rubyunderhood устроиться в банк - сомнительное достижение.
Для кого-то это тоже достижение. Думаю, там не сильно хуже, чем ежедневный CRUD. Это просто как пример компании. twitter.com/mr_The/status/…
10:37@rubyunderhood не все мечтают работать в больших конторах
Да, именно это я и пытаюсь сказать: не целитесь на Сбербанк или подобное? Лучше не тратьте время на высшее. Но! twitter.com/oleg_antonyan/…
10:39Но стоит попробовать учиться. Мне очень помогли первые 1-1.5 года. А дальше я решил, что мне не нужны компании, смотрящие на наличие диплома
10:41@inem @rubyunderhood по мне так не важно, если будешь писать clean ruby код и не обнаружишь любимый метод, просто подключишь activesupport
На вкус и цвет. Знаю людей (и сам такой), которые при виде AS там, где это лишне, закрывают проект, например. twitter.com/mpak999/status…
10:49@mpak999 @inem @rubyunderhood а действительно ли это того стоит: притянуть в проект лишние 5000 строк кода ради любимого метода?
Да, хороший вопрос! Плюс глобальное расширение стандартных классов... Есть механизмы refine, но в AS плевали на них. twitter.com/sharipov_ru/st…
10:51@mr_The @rubyunderhood @inem а как же трактор? Говорят, без диплома трудно завести.
Да, вроде да. Поэтому я и обозначил "перспективы", а не просто "выбор компании", так как диплом чуть шире влияет. twitter.com/c01nd01r/statu…
10:52@rubyunderhood @inem фанатики :)))
Сложно назвать фанатизмом желание сделать код проще, легче и с соблюдением наиболее подходящих норм языка. twitter.com/mpak999/status…
10:53@rubyunderhood @oleg_antonyan а вот у всех гитлаб делает лаг-лаг или у нас просто машинка слабая?
Методом проб выяснили, что для GitLab лучше отдельную чистую машину с 2 ядрами CPU и 2 GB RAM + 2GB Swap (на всякий) twitter.com/7rulnik/status…
11:19@mr_The @rubyunderhood почему? В банках есть интересные задачи, data science и прочие ништячки
В принципе, разные интересные задачи много где есть, в том числе в банках, и интерес у каждого свой. Так что да. twitter.com/vladimir1ch/st…
11:23@vladimir1ch @rubyunderhood наверно, вам очень повезло с банком) я слышал только прокучу легаси и уныния
Я тоже слышал про Java 6, но, по сути, это просто условия работы, с которыми многие согласны смириться. twitter.com/mr_The/status/…
11:32Так, раз уж зашёл разговор про велосипеды: что вы предпочитаете?
11:37@rubyunderhood Очевидно, что часто нужно ничего из этого, или что-то другое, или всё сразу, но вот если говорить о таком жёстком выборе.
11:37@rubyunderhood Например, пользуетесь библиотекой, в ней нет нужных фич или есть ненужные баги, а менять её саму нет возможности.
11:39@rubyunderhood Сначала, очевидно, лучше костыли. Но иногда наступает момент, когда из них можно собрать велосипед поменьше...
11:40Немного про мой взгляд на велосипеды: они никогда не делаются под копирку. Без них не было бы Ruby, многих других ЯП, того же iPhone/Android
11:44@rubyunderhood вот только если однажды задача выходит за рамки скоупа любимого занятия, нехватка знаний может сказаться
У меня были задачи, выходящие за scope, связанные с роутерами. Высшее образование не помогло бы. Но помог интернет. twitter.com/poctek/status/…
11:46Я отучился в вузе полтора года и понял, что он даёт мне всё меньше ценного, почти всё из чего можно найти в сети в более актуальной версии.
11:48@rubyunderhood андроид костыль :)
Вряд ли. Как раз тот случай, когда "Уже есть работающие мобильные ОС, зачем тебе своя?"
А внутри может быть. twitter.com/sevendump/stat…
@rubyunderhood я не говорю о том, что делать больно будет каждая задача, но считаю что связка учеба + работа эффективнее просто работы
Именно с такой связки я и бросил учёбу. И до сих пор очные студенты даже на последнем курсе - боль для компании. twitter.com/poctek/status/…
11:52Намного меньше появляется желания создать велосипед-альтернативу той системе, которая расширяется (с помощью плагинов, например).
12:19@rubyunderhood Именно поэтому мой путь такой: notepad.exe > Notepad++ > Sublime > Atom. Удобство и расширяемость.
12:21@rubyunderhood Не очень люблю IDE из-за их массивности и меньшей гибкости: от текстового редактора с плагинами можно выжать всё необходимое.
12:26@rubyunderhood Но часто всё равно есть альтернативы (велосипеды), так как возникает необходимость (желание) сделать всё иначе на корню.
12:27Про плагины: не представляю своей жизни без rubocop. 10 LOC на метод сначала кажется безумным ограничением, но оно насильно прививает ООП.
12:39@rubyunderhood Ну то есть, конечно, можно раздробить один большой метод на много мелких, таская одни и те же аргументы из одного в другой...
12:40@rubyunderhood ... Но у меня есть негласное правило: если аргументы повторяются в двух и более методах - самое время подумать над классом.
12:41@rubyunderhood Аргументы становятся instance variables, повтора кода меньше, ООП и гибкости больше. На мой вкус, это хорошо.
12:43@rubyunderhood А логика примерно такая же, как с обычными переменными: используешь данные больше одного раза - лучше объяви переменную.
12:44По этой теме новый опросик! (Надеюсь, вы их любите)
Соблюдаете ли вы ограничение в 10 строк кода на один метод?
@rubyunderhood Не всегда и не прямо, но часто, как мне кажется, это влияет на ясность и поддерживаемость кода.
13: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…
@rubyunderhood Ideally, most methods will be shorter than 5 LOC. - и rubocop так же :) 100 LOC это на класс, не на метод
Да, 100 на класс, 10 на метод. В опросе было упомянуто ограничение именно на метод. twitter.com/mpak999/status…
13:18@rubyunderhood На стадии - "проект запущен и рубит бабки" всем пофиг, можно творить любую фигню соблюдая формулу "запущен -> рубит бабки"
Можно. Можно вообще ничего не творить, ведь бабки рубит. Но мы же о другом: создание, развитие, поддержка. twitter.com/sevendump/stat…
13:21И в проекте скорее всего понадобится что-нибудь делать. Если он сделан хорошо - лучше и дальше делать хорошо. Если нет - то без разницы.
13:24@rubyunderhood о саппорте, есть парсеры - разбивать на методы в 10 строк не вариант, все пишем большими методами охватывающими всю страницу.
На странице, наверняка, есть различные элементы, которые нужно вытащить. Они, как и вся страница - разные сущности 😉 twitter.com/sevendump/stat…
13:37@rubyunderhood рубокоп в прекоммит хуке не даёт не соблюсти, падла :)
Отличный способ, советую всем 👌
(Для существующих проектов без такой ориентированности может не подойти, конечно) twitter.com/oleg_antonyan/…
@rubyunderhood у нас еще прижился RSpec на pre-push :) (если нет CI)
Лучше, конечно, иметь CI или CD, но на pre-push тоже вариант. twitter.com/mxgoncharov/st…
16:32Исходя из темы RuboCop и количества LOC: как вы считаете, чего из этого достаточно?
17:36@rubyunderhood Я смотрю предварительные результаты и всё очень-очень плохо 😥 Ну ладно, итоги завтра.
18:40@rubyunderhood рубокоп маст хэв, но 10loc на метод это бред imo, лепят 100 методов и стейт через собак шарят между ними потом)
Делаешь attr_accessor и не видишь собак 😉 twitter.com/rainrb/status/…
20:26@rubyunderhood а то же самое, хотя конечно немного лучше.
Очень люблю в Ruby размытостость границ между методами (поведением) и переменными (состоянием). twitter.com/rainrb/status/…
21:05Вы юзаете Jekyll или Middleman? Помогите GitLab-у лучше понять какие SSG популярней других: goo.gl/4oKKQf
//сс @rubyunderhood
Не пользуюсь ничем из этого, но во благо общего дела ✌ twitter.com/inem/status/75…
21:05@rubyunderhood зависит от того, в какой стране компания :)
Интересно. Как же страна влияет на активность деятельности компании в различные времена года? twitter.com/gaar4ica/statu…
22:03@rubyunderhood лучше одна функция без сайдэффектов на 50 строк кода, чем 5 функций по 10 строк с расшаренным стейтом
Из одной функции можно "случайно" изменить внешнюю переменную по ссылке, так что сложно согласиться, разное бывает. twitter.com/rainrb/status/…
22:05@rubyunderhood мода на сервис-классы с единственным методом,в который параметры передаются через конструктор сервисного класса пример тому
Зачем единственный метод? Разбиваешь класс по методам 10 LOC,разбиваешь другой,находишь общее - выделяешь в родителя twitter.com/rainrb/status/…
22:08@rainrb @rubyunderhood покуда сервис делает одно дело ок что какойто стейт шарится. Читабельность и дебагельность важнее
Да, лучше instance variables, чем одинаковый стэк аргументов от метода к методу, или один огромный, "all-in-one" twitter.com/oleg_antonyan/…
22:11@oleg_antonyan @rubyunderhood ну так расшареное состояние и ухудшает читабельность и отлаживаемость.
Никто не заставляет шарить на всех вокруг, всё же есть private и protected в том числе для attr_reader или accessor twitter.com/rainrb/status/…
22:14@rubyunderhood дебажить такой код особенно хорошо потом, с размытыми границами между поведением и состоянием))
Всё очень просто: с префиксами (@) это состояние, всё остальное без них - поведение. twitter.com/rainrb/status/…
22:16@rubyunderhood ну вот Бразилия, наиболее благоприятная погода там зимой.
Ну есть ещё Австралия, где смещены времена года, но пока опрос пока показывает, что отпуск вообще переоценён 🤔twitter.com/gaar4ica/statu…F
22:18@rubyunderhood ну так если состояние шарится между 10 приватными методами, оно разве перестает быть расшаренным
Оно расшарено внутри класса, что просто группирует методы относительно состояния. twitter.com/rainrb/status/…
22:28@rubyunderhood я пожалуй тогда не понял, что имелось ранее в виду под "размытыми границами между поведением и состоянием"
Суть в том, что мне нравится с одной стороны жёсткое разделение между состоянием и наследованием... twitter.com/rainrb/status/…
22:31С другой стороны, нет разделения между getter/setter и сторонним вычислительным поведением @rainrb
22:32@rubyunderhood даже не знаю,я вообще изначально говорил о том, что функции без сайдэффектов проще отлаживать чем функции с сайдэффектами:)
Окей. Один класс с приватными переменными, по опыту, вполне заменяет один огромный метод, только выглядит более ООП. twitter.com/rainrb/status/…
22:35@rubyunderhood если у нас есть класс с 20 методами, и кучей инстанс-переменных это часто проблема даже если методы по 10LOC. Как-то так:)
Как это не иронично звучит, но тут на помощь приходит создание новых классов, иногда даже приватных. twitter.com/rainrb/status/…
22:36@oleg_antonyan @rubyunderhood хехе :) а вот в RubyMine отлично rubocop плагин работает + @codeclimate способствует улучшению качества кода
Я вот не уверен, но разве у Matz не было конфликта и отказа с CodeClimate? И разве в RubyMine RuboCop не встроен? twitter.com/mpak999/status…
22:42@rubyunderhood если метод большой,делим его на маленькие,добавляем состояние,получаем много методов в классе,делим класс на маленькие классы
Всё примерно так! Относительно ситуации, конечно. Но в целом это изложение принципа ООП, на мой взгляд. twitter.com/rainrb/status/…
22:47@rubyunderhood передавая в конструкторы какие-то данные и вызывая методы созданных инстансов для получения результатов,так что ли выходит?)
Да, всё примерно так. Был даже пример на днях такого. Мысли "да чтоб его, лучше бы в один метод всё" посещали, но... twitter.com/rainrb/status/…
22:49Но потом понадобилось добавить кое-что, и от тройного повтора кода спас заранее созданный предок. @rainrb
22:51@rubyunderhood тогда два вопроса-почему нельзя использовать просто маленькие функции,которые вернут результат на основании входных данных
Можно. Всё можно. Можно всю программу в main-scope описать без функций и классов, просто подход разный. twitter.com/rainrb/status/…
22:57@rubyunderhood и что такое класс:) попутно прошу извинить за ошибки-опечатки в предыдущих твитах
Класс - это абстрактная сущность. Очень советую осознать, если изучаете Ruby, в котором почти всё на этом основано. twitter.com/rainrb/status/…
22:58То есть, например, есть человек и мяч, между которыми поведение (действие / функция). Фишка в том, что руку можно вынести в класс. @rainrb
22:59@rubyunderhood На классы надо делить не механически, а по смыслу. Каждое существительное предметной области во множественном числе — класс.
Не соглашусь. Иногда нужен нотификатор, выполняющий определённый набор действий при определённом единичном сценарии. twitter.com/vassilevsky/st…
23:00Это как пример. То есть его экземпляр сейчас нужен только в одном месте, но логически его лучше вынести в отдельный класс. @vassilevsky
23:01Вот ещё один опрос на ночь глядя: что вам больше нравится? В реплпях можно описать субъективные причины.
Опрос закончился. GitHub заметно лидирует. Ну что ж, заслуженно. twitter.com/rubyunderhood/…
23:04@rubyunderhood От себя могу лишь побудить обратить больше внимания на GitLab. Особенно для компаний есть преимущества. Всем мир✌
23:05@rubyunderhood Когда они добавили Docker Registry, я испугался, что GitLab со временем превратится в помойку хайповых фич ;(
Активно следим и жаждем демократии без введения тоталитарных фич 🙏 twitter.com/vassilevsky/st…
23:56@rainrb @oleg_antonyan @rubyunderhood Плюс стейт в инстансе вполне может быть иммутабельным
Предпочитаю константы через наследование вместо классовых методов 👌 twitter.com/ptico/status/7…
23:57# Среда 45 твитов
@rainrb @rubyunderhood разговор про руби, а значит, это почти всегда рельсы. Пока, по крайней мере.
Попрошу, не на этой неделе 😞 Разговор про Ruby, благо, аккаунт не RailsUnderhood какой-нибудь. twitter.com/zhulikgleb/sta…
0:18Тип "разговор про стройку, а значит про экскаватор" - нет. При всём уважении - нет. @zhulikgleb @rainrb
0:19@rubyunderhood А можно гист с примерами? (На ГитЛабе :)
Да, пожалуйста: gitlab.com/snippets/22025 twitter.com/vassilevsky/st…
0:31@rainrb @zhulikgleb @rubyunderhood так сервис-объекты тоже свое рода неймспейсы получаются
Да, только без таскания аргументов между методами, а с хранением их как состояния в виде instance variables. twitter.com/zhulikgleb/sta…
0:35@rubyunderhood @rainrb если они в процессе работы не меняются и не служат для передачи данных из одного метода в другой, иначе все плохо
Да, именно! Классы призваны решить именно эти проблемы модулей, на мой взгляд. twitter.com/zhulikgleb/sta…
1:04Могут быть вычисления, зависимости одного метода от результата другого, но сути и входных данных это не меняет @zhulikgleb @rainrb
1:05Привет! Сегодня попробуем удариться в back-end. Начнём издалека, потом ближе к конкретике.
12:15Для меня это немного сложная в обсуждении тема в виду моей педантичности и непростых отношений с Rails... @rubyunderhood
12:17Так что сразу говорю, что я не хочу агрессии, конфликтов и пр., только мирное обсуждение субъективных мнений с пониманием @rubyunderhood
12:18Хотел начать с опросов по ORM, фреймворкам и т.д., но тут всё более менее понятно всем, так что просто выскажу пару своих мнений.
12:201. Фреймворков, помимо Rails, много - больших и маленьких. Очень часто они совсем разные по функциональности и подходу. @rubyunderhood
12:22Не бойтесь велосипедов, некоторые менее популярные вещи могут решать ваши задачи лучше других более популярных. @rubyunderhood
12:222. Есть замечательная ORM - Sequel. Советую обратить внимание. Во многом нравится больше того же ActiveRecord. @rubyunderhood
12:243. Какую ORM вы бы не использовали - очень важно, на мой взгляд, хорошо знать чистый SQL и принципы реляционных БД. @rubyunderhood
12:26Просто интереса ради - а как с математической базой, графами и алгоритмами? Каким самообразованием спасаетесь? @rubyunderhood
Во-первых, основы даются в школе (если есть желание) и на первых курсах. Во-вторых, спасает чутьё и мышление. twitter.com/ad__astra/stat…
14:12Ну и в-третьих, в интернете можно найти много материалов с терминами даже по запросам из обычной речи: "как перебрать дерево". @ad__astra
14:14Общие взгляды высказал, теперь конкретика. Как вы храните локализации?
16:02@rubyunderhood Но я, собственно, к чему: какие книги по всем этим (на самом деле нужным) темам порекомендуете? И к Курсере как относитесь?
Книг порекомендовать не могу на эту тему, не сталкиваюсь с ней. Ну, если кто-то другой напишет - опубликую. twitter.com/ad__astra/stat…
16:05Ко всему, что развивает человека, отношусь положительно. Тут уже способы на вкус и цвет, а также интенсивность. @ad__astra
16:06Общие взгляды высказал, теперь конкретика. Как вы храните локализации?
Начинаешь обычно с YAML, потом делаешь некоторый контент из БД тоже переводимым... twitter.com/rubyunderhood/…
16:08И вдруг понимаешь, что содержимое YAML нужно тоже дать удобно менять менеджеру. И вот тут у меня срывает крышу. @rubyunderhood
16:09Потому что либо делаешь максимально возможный красивый интерфейс для редактирования YAML и пишешь в файл... @rubyunderhood
16:10Либо как-то переносишь локализацию key words тоже в БД, в другом виде. До сих пор не решил, что лучше, но предстоит. @rubyunderhood
16:11@rubyunderhood давать менеджерам редактировать yml файлы это часто плохая идея, потому как yml файлы не отражают контекст
Зависит от структуры YAML-файла, но в целом да, мне тоже так кажется. twitter.com/rainrb/status/…
16:22@rubyunderhood часто бывает недостаточно перевести слово, или фразу. Локализация это существенно более сложная задача в общем случае
Есть какой-нибудь опыт наиболее удачного подхода удобного редактирования менеджером локализации? twitter.com/rainrb/status/…
16:23@rubyunderhood специальный человек идет по экранам приложения и выполняет корректный перевод, после чего отдает результат разработчикам16:28
@rubyunderhood А разработчики уже распиливают то, что получилось на yml-файлы, или как им удобнее16:28
@rubyunderhood мультиязычность это такая штука, которую делаешь либо сразу, либо отгребаешь16:28
@rubyunderhood Globalize вроде был на этот случай
Он только для Rails + вроде как повторяет функциональность самого R18n, может взаимодействие чуть другое и всё. twitter.com/rimmer333/stat…
16:42А боль больше для key words: локализация кнопки "Зарегистрироваться", например. @rimmer333
16:43@rubyunderhood YAML для статичного контента, БД для всего что вносится в админку менеджером.
Не думал о редактировании "статичного контента" менеджером в админке? 😉 twitter.com/mimikadze/stat…
17:13Я знаю, вопрос частный, но иногда на ранних стадиях проекта он не очень статичный 😞 @mimikadze
17:14чик-чик и в продакшен ;-) twitter.com/rubyunderhood/…
Иначе ни одно ПО не имело бы версии 1.0 😉 Почти всё развивается, многое меняется или хотя бы дотачивается потом. twitter.com/netandreus/sta…
17:27@rubyunderhood c Глобалайзом понт, ребята. У него в логике N+1 проблема, которая не лечится.17:55
Так, раз уж зашёл разговор про велосипеды: что вы предпочитаете?
Победили велосипеды. Как я говорил, считаю "велосипед" - грубым названием альтернативы, а костыль - это недофича) twitter.com/rubyunderhood/…
19:57Исходя из темы RuboCop и количества LOC: как вы считаете, чего из этого достаточно?
Видимо, большинство разработчиков очень самоуверены и ленивы :) twitter.com/rubyunderhood/…
19:59Комментарии в коде нужны для contribution, а вот документация описывает использование.
19:59Так что, пожалуйста, не пренебрегайте документацией: далеко не все хотят копаться в вашем коде, чтобы понять, как оно работает.
20:01@ad__astra @poctek @rubyunderhood у меня в ВУЗе были Ruby, Java, C, Asm, Haskell, Prolog на хорошем уровне. Так что вуз вузу рознь
Думаю, многим будет интересно, что это за ВУЗ? twitter.com/mastedm/status…
20:02@rubyunderhood просто никто не читает доку, как бы ты хорошо ее не написал
По опыту, без документации никуда, за исключением "для себя". Все читают документацию Ruby, а не код MRI 😉 twitter.com/mr_The/status/…
20:04По этой теме новый опросик! (Надеюсь, вы их любите)
Соблюдаете ли вы ограничение в 10 строк кода на один метод?
Результаты приемлимы для ФП и лени. Если вы вдруг хотите погрузиться в ООП - советую ставить RuboCop и набивать руку twitter.com/rubyunderhood/…
20:08@rubyunderhood @ad__astra @poctek МГИУ, сейчас расформировали и слили с МАДИ
Не ожидал от автомобильного-дорожного Haskell и прочее 😱 Выбирайте ВУЗ внимательнее! Бывает и такое. twitter.com/mastedm/status…
20:10@rubyunderhood если ты пишешь опенсорс - да, без доки некуда. Если это часть внутреннего проекта - никто ее не прочитает.Проверено не раз :(
Было пару раз, что команда частично менялась, и проще отдать читать документацию, чем день проводить в объяснениях. twitter.com/mr_The/status/…
21:02О, совсем забыл! Какого вида ссылки на мультиязычных сайтах вы предпочитаете?
22:24Если есть какие-либо комментарии, вопросы, замечания или другие варианты - буду рад услышать. @rubyunderhood
22:31# Четверг 23 твита
@rubyunderhood главное не автоопределять, если набрал специально en. Бесит когда перенаправляет.
Безусловно, автоматика должна работать только при отсутствии вообще каких-либо данных (сессия/URL) twitter.com/golodenko/stat…
0:54@rubyunderhood кто скажет что документация не нужна, тот просто не работал в достаточно большом проекте
Примерно те же ощущения. twitter.com/mimikadze/stat…
10:19@rubyunderhood 10? Вы че? У меня все по 5 строк.
Можно будет попытаться :) Но по началу и 10 рвёт шаблоны. twitter.com/golodenko/stat…
16:33Ещё одна интересная тема по back-end, которую не успел осветить вчера: как вы разделяете типы/роли пользователей?
16:38Если у вас какие-то свои варианты, комментарии и мнения - что верно, а что не очень - буду рад услышать!
16:38Вдогонку: сколько у вас точек входа в ЛК/админку?
16:42@rubyunderhood есть критерий: ограниченность количества ролей. От него и надо прыгать.
Самый распространённый вариант: у вас есть админ, менеджер, поставщик услуги и потребитель услуги. Как поступить? twitter.com/kalashnikovism…
16:43Может быть один /sign_in с распознанием роли/модели за счёт общей уникальности входных данных. @kalashnikovisme
16:44А может быть /{admin,manager,provider,consumer}/sign_in, а там уже одна модель или даже разные. @kalashnikovisme
16:46Общие взгляды высказал, теперь конкретика. Как вы храните локализации?
Странно, большинство обходится без редактируемого на несколько языков контента, только статические переводы. twitter.com/rubyunderhood/…
19:37При этом трое обходятся без YAML и хранят всё в БД. Тоже так хочу 😞 Если хорошо организовано. pic.twitter.com/CdeuWr3jmi
@rubyunderhood одна модель User с атрибутом role. В контроллерах модули Admin::*, Manager::*, etc.
Одна модель, разные контроллеры, разные view кабинетов. А авторизация? Action, URL и view тоже разные? twitter.com/kalashnikovism…
19:41@rubyunderhood вспомнил славные пхпшные времена, где часть конфига модно было хранить в бд, а потом evalить.
Eval is evil. © twitter.com/kofeeanon/stat…
21:50На ночь глядя: как часто вы затрагиваете front-end?
UPD: Убрал конкретику про JS,потому что он есть в любом варианте
Лично я для работы back-end программистом считаю идеальным второй вариант, для full-stack и open-source выбирать не приходится :)
22:10У себя на работе стараюсь как можно больше проектов отдавать front-end джуну, но в тех, что на мне, иногда педантичность и опыт берут верх.
22:13@rubyunderhood да не, "метапрограммирование"
Если в программе есть место, в которое можно скормить любой код - это огромная брешь в безопасности. twitter.com/kofeeanon/stat…
22:27О, совсем забыл! Какого вида ссылки на мультиязычных сайтах вы предпочитаете?
Я удивлён. Почему так? Думал, что без изменения URL - самое элегантное и любимое. twitter.com/rubyunderhood/…
22:28@rubyunderhood с изменениями лучше для SEO, индексации и аналитики
Сейчас думаю над этим и понимаю, что да. Надо будет по возвращению из отпуска изменить :) twitter.com/rimmer333/stat…
22:42@rubyunderhood ох, дядь, сарказм, а история про пхп это ирония над бэд практис
Окей 👌 Я не очень умею в сарказм :) А именно такой истории я вроде нигде не встречал, к счастью. twitter.com/kofeeanon/stat…
22:43И, возвращаясь к теме, переводы статики можно хранить в БД без eval, конечно же. Интересно как именно, в т.ч. редактирование @kofeeanon
22:45@rubyunderhood без изменения - это крайне неудобно. Тот же алиекспресс вечно предлагает мне кривую русскую версию.23:42
@rubyunderhood А по поддомену - идеально. Можно и ссылку кому-то расшарить и в плане разработки просто и понятно.23:42
# Пятница 1 твит
@mr_The @rubyunderhood с поддоменом с точки зрения SEO не очень. Без изменения url – вообще жесть.
Самое лучшее с точки зрения SEO, получается, между доменом и path, как часть пути? twitter.com/igor_alexandro…
0:39# Суббота 11 твитов
Прошу прощение за отсутствие. Уехал в другую страну (отпуск же), только наладил связь. Но неделя подходит к концу, и мои темы тоже.
23:28Попробую найти твиты с закончившимися опросами (уведомления исчезли, надо вручную) и подвести итоги.
23:29А пока новая тема и опрос к ней: какое у вас желание изучения английского языка?
23:34Опрос может показаться странным, тема намного шире, но здесь максимум вариантов ответа только 4, а связать разные опросы не получится :(
23:36А пока новая тема и опрос к ней: какое у вас желание изучения английского языка?
От себя скажу, что у меня среднее желание изучения английского и большая лень. И знаете что? Конечно же зря! twitter.com/rubyunderhood/…
23:39Он невероятно востребован, если вы хотите хоть как-то взаимодействовать с людьми из отдалённых стран. Поэтому банальный совет: учите.
23:41На ночь глядя: как часто вы затрагиваете front-end?
UPD: Убрал конкретику про JS,потому что он есть в любом варианте
Почти половина выполняет свои обязанности back-end, другая full-stack. И почти все работают с JS. Вы молодцы :) twitter.com/rubyunderhood/…
23:43Посмотри как прекрасен мир без JavaScript
Лично я не люблю JS и постоянно вспоминаю это: twitter.com/grepdev/status…
Но, выбора в браузерах нет, только в специальностях :)
Вдогонку: сколько у вас точек входа в ЛК/админку?
Преимущественно используется хороший, на мой взгляд, способ. twitter.com/rubyunderhood/…
23:49Увы, недавно я столкнулся с сильным дроблением на модели, контроллеры и вьюхи, и пока не понял, насколько это лучше или хуже в том проекте.
23:50Ещё одна интересная тема по back-end, которую не успел осветить вчера: как вы разделяете типы/роли пользователей?
А вот тут интересно: одна модель - 17%, против одной модели - 31% в опросе про точки входа. twitter.com/rubyunderhood/…
23:53