@proRuby

Страница 968 из 1594
Roman
12.12.2017
06:59:34
но в своих личных проектах я часто пишу как v2 почти

kolas
12.12.2017
07:02:55
ты в личных проектах еще на коллбэках всю логику строишь? ?

Alex
12.12.2017
07:04:37
но если сделать нормальный блок и не писать все в одну строку - нормально
ну читается неплохо, но тогда надо прописывать коллбек в сервис - а это уже "ну такое..." все таки проще написать пару строк

Google
Dima
12.12.2017
07:06:56
есть мнение что 2я версия тяжелее читается т.к. в одной строчке, в последней, несколько действий ну а желательно чтобы программисты тратили минимум времени на прочтение и понимание кода - "долой сложность!" и все такое
Зависит от уровня программиста. Если человек шарит в рубях: то вторая читается легче. Если человек в рубях шарит по хуже то первая читается лушче.

Roman
12.12.2017
07:07:13
ну можно конечно это считать колбеками. но это простой yield

Slava
12.12.2017
07:16:50
@lbvf50 @thktomska полностью согласен, вторая версия не будет проблемой для прочтения, если читает рубист

Alex
12.12.2017
07:17:19
Зависит от уровня программиста. Если человек шарит в рубях: то вторая читается легче. Если человек в рубях шарит по хуже то первая читается лушче.
я не согласен .perform.tap(&method(:track_errors)) тут объективно более сложное выражение - шаришь ты или нет нужно больше прилагать усилий чтобы разобраться - а в чем выигрышь? в эстетике?

Dima
12.12.2017
07:18:00
я не согласен .perform.tap(&method(:track_errors)) тут объективно более сложное выражение - шаришь ты или нет нужно больше прилагать усилий чтобы разобраться - а в чем выигрышь? в эстетике?
дело в интерции. Разбираешь сложную строку и идешь дальше до конца. А во второй версии разбираешь строку - стоп - следующя строка - стоп - следующая строка.

в общем одниаково.

по количеству + и -.

Alex
12.12.2017
07:23:23
дело в интерции. Разбираешь сложную строку и идешь дальше до конца. А во второй версии разбираешь строку - стоп - следующя строка - стоп - следующая строка.
в случае со стороками мы явно складываем результат сервиса перескакивать на др строчку чтобы вспомнить что такое результат? не согласен - если бы тут было 5-6 сущностей, то может быть - а тут одна, response - я считаю что запомнить что это такое проблем ни у кого не будет. во втором же случае мы довольно хитрым и не таким явным способом передаем в track_errors этот самый результат - нужно потратить больше сил чтобы понять эту неявность и уразуметь ее обоснованность

я думаю даже опытный задаться вопрос wtf\what for? а зачем кому-либо задаваться таким вопросом? зачем тратить на это психические силы своих коллег?

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

Roman
12.12.2017
07:32:09
однострочники идите на перле пишите :)

kolas
12.12.2017
07:32:26
в пхп же есть какая-то тулза чтобы шифровать свой код

Google
kolas
12.12.2017
07:32:35
чтоб никто не прочитал )

Nikolay
12.12.2017
07:35:42
> я думаю даже опытный задаться вопрос wtf\what for? согласен, возникает сразу вопрос “и в чем бенефит?”, вместо того что бы пройти дальше вообщем сувать бездумно метамагию - это привычки чуть окрепшего джуниора) с мотивацией “because i can”…я думаю все этим переболели\переболеют когда-то)

Nikolay
12.12.2017
07:36:41
Просто, понятно и явно
понимание что так лучше писать приходит далеко не сразу)

Anton
12.12.2017
07:37:18
Ну да

Nikolay
12.12.2017
07:37:20
в какой-то момент полученные знания давят на мозг и ты юзаешь их где не попадя

Anton
12.12.2017
07:37:35
Правило простое, уменьшай конгнетивную нагрузку и все

Dima
12.12.2017
07:48:39
Правило простое, уменьшай конгнетивную нагрузку и все
а что значит уменьшать "когнетивную наргузгу"? (уменшать познавательную нагрузку, делать код легче для чтения)

это сложно для формализации

Anton
12.12.2017
07:50:45
а что значит уменьшать "когнетивную наргузгу"? (уменшать познавательную нагрузку, делать код легче для чтения)
Это значит, что в первом случае у тебя линейный флоу в котором ты просто берёшь результат и вызываешь его у метода а потом возвращаешь что-то явно. Во втором - тебе надо помнить что делает tap, &, method + понимать, что возвращаемый релультат будет тем, что perform вернёт. Это все лишняя умственная нагрузка, особенно, когда работаешь в команде, потому что другим разбираться в коде тоже нужно

Dima
12.12.2017
07:51:15
я, если что, написал сначала 2ю версию - это называется codewars головного мозга - так что будьте осторожны со своим кланом) codewars прививает плохие привычки писать нечитаемые однострочники, будто бы это круто в продакшене
мне вот эта крикика CW напоминает критику занятий в спорт зале некоторыми тренерами по ударным еденоборствам в 90ых. Мол штангой заниматься нельзя, ай-йа-йа-яй забитый будешь. А в итоге время показало что занимаься штангой - надо. Вот тоже самое и с CW: не надо качаться, мышцы забьешь.

Anton
12.12.2017
07:51:56
Вы не гончие и одинокие волки, вы все работаете в команде с кем-то, уважайте окружающих и делайте код на столько простым, что бы его понял даже пре Джуниор

Alex
12.12.2017
07:52:47
Правило простое, уменьшай конгнетивную нагрузку и все
+1 я стремлюсь уходя от своих контрпродуктивных склонностях

Dima
12.12.2017
07:54:27
Это значит, что в первом случае у тебя линейный флоу в котором ты просто берёшь результат и вызываешь его у метода а потом возвращаешь что-то явно. Во втором - тебе надо помнить что делает tap, &, method + понимать, что возвращаемый релультат будет тем, что perform вернёт. Это все лишняя умственная нагрузка, особенно, когда работаешь в команде, потому что другим разбираться в коде тоже нужно
это с какой позиции п осмотреть. можно и с другой стороны зайти 1. надо перемещаться со строки на строку, запоминать переменные 2. просто идем вперед, сохраняя только взвращенное значение —- Надо помнить что делает tap, &, method + - ну дак это называется знать язык. Везде золотая середина есть.

Anton
12.12.2017
07:55:25
По поводу знать язык: Тебе нужно написать наиболее поддерживаемый вариант, который будет лёгок для всей команды. Так то можно и callcc в коде выебываться, это же тоже руби, знай его

Google
Dima
12.12.2017
07:56:50
1. У тебя 3 строки, не смеши 2. Да, только ты должен будешь наткнуться на tap, а потом вернуться, что бы вспомнить что было результатом до этого
я не смешу, я говорю как есть. анализируюя малеьнкие участки когда. в первом варианте я искал что такое responce.

Alex
12.12.2017
07:56:52
мне вот эта крикика CW напоминает критику занятий в спорт зале некоторыми тренерами по ударным еденоборствам в 90ых. Мол штангой заниматься нельзя, ай-йа-йа-яй забитый будешь. А в итоге время показало что занимаься штангой - надо. Вот тоже самое и с CW: не надо качаться, мышцы забьешь.
дело не в этюдах и катах а в том что по крайней мере раньше на CW набирали популярность имеено короткие выражения - этакое гольф-программирование самая идея решения этюдных задач - это несомненно крутая идея. У меня претензии к критериям хорошего рещения. В гольф-программирование они одни, в пет проджекатах могут быть другие - на работе третьи. Вот просто надо это осмысленно раздилять. А я это плохо разделяю.

Anton
12.12.2017
07:56:54
Или юзать везде флипфлоп

Vasiliy
12.12.2017
07:57:42
парни дароу

Vasiliy
12.12.2017
07:58:34
я чёт не могу в сортировку, у меня есть юзер, у юзера мессаги, мне надо получить отсортированных пользователей по дате последней мессаги, как разрулить?

Anton
12.12.2017
07:59:15
Я выразил своё мнение, если бы у меня был бы выбор - я бы оставил первый вариант тли заставил бы переделать на первый вариант на ревью

Vasiliy
12.12.2017
07:59:28
рельса, ар, вот это вот всё

pny
12.12.2017
08:00:49
рельса, ар, вот это вот всё
Тут без скуля вряд ли обойдется

Alex
12.12.2017
08:02:03
и вообще данные 2 куска кода равнозначны по + и -, их сравнение это учет нюансов.
мое мнение тоже другое поддерживаемость кода выше у простого варианта на код ревью я бы тоже попросил коллегу упростить

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

rekero
12.12.2017
08:06:25
но это долго будет

на больших базах

добавь поле и туда сохраняй дату последнего сообщения

Alexey
12.12.2017
08:07:17
Ради сортировки? Как по мне - перебор)

pny
12.12.2017
08:09:27
Не перебор, а явный саботаж

rekero
12.12.2017
08:09:35
ну такой запрос может реально больше 10 секунд выполняться

Alexey
12.12.2017
08:09:59
Можно добавить отсортированный индекс, потеряем только во времени создания/обновления

Google
Dima
12.12.2017
08:11:12
ну вот ты считаешь что сложное решение - это норм возможно уже слишком поздно) шутка - ничего более
я считаю что "сложное" второе решение легче усваивается человеком который хорошо ориентируется в руби. "простое" решение более уневерсально для широкого круга разработчиков, потому что в нем на порядок меньше рубишной специфики.

Alexey
12.12.2017
08:16:51
я считаю что "сложное" второе решение легче усваивается человеком который хорошо ориентируется в руби. "простое" решение более уневерсально для широкого круга разработчиков, потому что в нем на порядок меньше рубишной специфики.
Команды редко сбалансированы, а большую часть кода в проектах пишут джуны, для которых подобные решения сложно/непонятно. А что еще страшнее, они не разобравшись как это работает, считают это крутым и начинают пихать везде, в итоге весь проект полон "нюансов языка". Но попадая в контроллер ты тратишь лишнее время, чтобы понять что вообще происходит. Лично мне ни один вариант не нравится. Тк response - обычно хеш и мне не ясно, мутируют ли его в методе track_errors. Но это мелочи, первый банально проще для восприятия.

Максим
12.12.2017
08:18:14
default: &default adapter: mysql2 encoding: utf8 pool: 5 username: root password: socket: /tmp/mysql.sock development: <<: *default database: database_development # Warning: The database defined as "test" will be erased and # re-generated from your development database when you run "rake". # Do not set this db to the same as development or production. test: <<: *default database: database_test # As with config/secrets.yml, you never want to store sensitive information, # like your database password, in your source code. If your source code is # ever seen by anyone, they now have access to your database. # # Instead, provide the password as a unix environment variable when you boot # the app. Read http://guides.rubyonrails.org/configuring.html#configuring-a-database # for a full rundown on how to provide these environment variables in a # production deployment. # # On Heroku and other platform providers, you may have a full connection URL # available as an environment variable. For example: # # DATABASE_URL="mysql2://myuser:mypass@localhost/somedatabase" # # You can use this database configuration with: # # production: # url: <%= ENV['DATABASE_URL'] %> # production: <<: *default database: database_production username: username password: password socket: /var/run/mysqld/mysqld.sock значит ли это что дб лежит на локалхосте?

Максим
12.12.2017
08:22:56
ага

понял

спасибо

Dima
12.12.2017
08:23:55
Anton
12.12.2017
08:24:30
А как же первое правило колбэка, мутируй все подряд

Dima
12.12.2017
08:24:34
У тебя давно легаси не было ахах
но за Томаса я уверен, если там будет мутация то будет и восклицательный знак.

Alex
12.12.2017
08:25:16
я считаю что "сложное" второе решение легче усваивается человеком который хорошо ориентируется в руби. "простое" решение более уневерсально для широкого круга разработчиков, потому что в нем на порядок меньше рубишной специфики.
легче чем неопытным, да но оно не перестает от этого быть сложным - я думаю это объективный показатель, кол-во синтаксиса, операторов, вызовов в одной строке

Vasiliy
12.12.2017
08:28:18
но это долго будет
там лимит всё равно, пагинация

я думал touch заюзать на родительской модели при добавлении сообщения, но чёт тоже думаю перебор

Alex
12.12.2017
08:34:03
но за Томаса я уверен, если там будет мутация то будет и восклицательный знак.
я бы лучше новый хэш отдал бы, чем мутировать старый

Максим
12.12.2017
08:35:01
читаете эту неделю секретов бекенда в твитере?

там чел ооп на голову на этой неделе переворачивает

и я вот думаю норм ли тему загоняет али говно какоет

Google
pny
12.12.2017
08:36:06
там лимит всё равно, пагинация
Тебе вроде как придется отсортировать все сообщения по дате создания с группировкой по user is в любом случае, так что это будет затратно.

Alexey
12.12.2017
08:36:53
@Qew7777 поделись чтоли сабжем, а то я не в курсе)

Только если там не рассуждения в стиле ООП мертво и функциональщина маст хев, устал я от этих споров. :D

rekero
12.12.2017
08:38:04
Alexander
12.12.2017
08:38:32
я только хохлосрач читал
А чё там у хохлов?

rekero
12.12.2017
08:39:10
https://twitter.com/backendsecret/status/940170080234754048

первая ветка

Alexey
12.12.2017
08:40:37
Я скучаю по твиттеру в 140 символов ?

Alexander
12.12.2017
08:46:01
Хех мда

Максим
12.12.2017
08:49:46
ну я так понял что он парадигмы фп типа иммутабельности объектов приписывает ооп

чего я как раз не оч понимаю

типа нулл - плохо могу понять

гетеры сетеры - плохо почти могу понять но не верю что без них было бы удобнее

а вот копировать объекты вместо изменений понять не могу

Alex
12.12.2017
08:51:49
ну я так понял что он парадигмы фп типа иммутабельности объектов приписывает ооп
иммутабельность и ооп - это вроде не связные понятия, не?

Максим
12.12.2017
08:52:18
https://twitter.com/backendsecret/status/940170080234754048
ну вот чел тут утверждает что связные и даже обязательные и что по другому если то у тебя неправильное ооп

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

вот и думаю

Anton
12.12.2017
08:53:50
а вот копировать объекты вместо изменений понять не могу
Это очень полезно, когда ты можешь позволить себе это. Таким образом тестировать проще и нет сайд эффектов

Максим
12.12.2017
08:54:03
ну типа блин

Страница 968 из 1594