
Dmitriy
02.10.2017
15:17:54
А ну если так, Но тогда очень много методов будет же
Или это ничего страшного?

Anton
02.10.2017
15:18:33
ну

Oleg
02.10.2017
15:18:39
Где-то я видел правило что метод должен быть не более 7 строк

Google

Anton
02.10.2017
15:18:41
можно не только по методам разделять
но и по классам

Gleb
02.10.2017
15:19:50
было время, когда действовало правило "метод должен помещаться в один экран"

Alex
02.10.2017
15:20:26

Dmitriy
02.10.2017
15:23:44
Ладно, буду придерживаться этому правилу

Alex
02.10.2017
15:27:26

Alex
02.10.2017
15:27:50
а не класс на 100 однострочных методов

Oleg
02.10.2017
15:28:19
Есть книга "Чистый код", вот там во главу угла поставлено это всё. И там ещё про компромисы когда излишние ограничения могут навредить и тп.
И как когда и как поступать
С примерами
Правда на Java
Но там не про язык, так что понятно

Google

Alex
02.10.2017
15:28:58

Alex
02.10.2017
15:29:11

Oleg
02.10.2017
15:29:18
+

Alex
02.10.2017
15:29:54
мне особенно "нравятся" классы типа
def call
set_post
process_form
update_data
end

Anton
02.10.2017
15:30:43

Alex
02.10.2017
15:30:53
а особо умные там сайдэффекты создают

Alex
02.10.2017
15:31:09

Alex
02.10.2017
15:31:17
основная бизнеслогика должна проходить в главном методе, с методами хелперами.

Anton
02.10.2017
15:31:27

Alex
02.10.2017
15:31:36

Oleg
02.10.2017
15:31:36
Тут всё зависит от того а что в этих методах

Nikita
02.10.2017
15:31:38
def main

Anton
02.10.2017
15:31:38
у меня основная логика разделена на 5 классов и методов 10 наверно

Alex
02.10.2017
15:32:01

Anton
02.10.2017
15:32:05

Alex
02.10.2017
15:32:05
именно!
что именно? def main юзает классы, все просто

Fedor
02.10.2017
15:32:09
тоесть
def call
#300 строк одного метода
#200 строк другого метода
#еще 150 строк кучки мелких вспомогательных методов
end
выглядит круче?

Alex
02.10.2017
15:32:23

Google

Oleg
02.10.2017
15:32:34
То есть смысл то в том что есть метод, который делает то как назван, есть 3 метода-шага, которые делают по частям это единое целое, при этом внутри уже низкоуровневая бизнес-логика с вычислениями.

Alex
02.10.2017
15:32:37
даже 50 не наберется. Если наберется то стоит подумать о других классах.

Oleg
02.10.2017
15:33:13
Идеально когда шаги могут быть переиспользованы

Alexey
02.10.2017
15:33:26
https://robots.thoughtbot.com/sandi-metz-rules-for-developers

Oleg
02.10.2017
15:33:29
И переиспользуются

Alexey
02.10.2017
15:33:36
идеальные правила

Alex
02.10.2017
15:34:08
> Methods can be no longer than five lines of code.
Фигня

Oleg
02.10.2017
15:34:13
Есть более жесткие с 3мя аргументами

Alexey
02.10.2017
15:34:14
нет

Anton
02.10.2017
15:34:15

Alex
02.10.2017
15:34:16
да

Alexey
02.10.2017
15:34:23
это делает все понятным

Alex
02.10.2017
15:34:30
это делает все запутанным наоборот

Alexey
02.10.2017
15:34:30
и заставляет тебя думать над названиями

Alex
02.10.2017
15:34:40
нет это заставляет тебя без причины плодить методы

Oleg
02.10.2017
15:34:40
А вот 5 строк мало, 7 норм.
Но вы уже ощищаете это?! Дух холивара за лимиты правил!

Alex
02.10.2017
15:34:44
а потом бегать как дурак.
строк 15 норм, у меня там банально хэшик может собираться

Oleg
02.10.2017
15:35:23
Хеш, кстати, можно за одну строку считать, если там нет вычислений сложных внутри прям

Alex
02.10.2017
15:35:39

Google

Oleg
02.10.2017
15:35:53
Ну вот, собственно компромисы
Это очень тонкое искусство конечно - писать хороший код

Alexey
02.10.2017
15:36:08
@davydovanton только если совсем никак не разделить)

Oleg
02.10.2017
15:36:20
Где не 100500 строк и не 100500 вложенностей, но и не 100500 методов

Alex
02.10.2017
15:36:22

Anton
02.10.2017
15:36:30
самое тупое, что я могу примеров 20 с головы назвать, когда не разделить

Oleg
02.10.2017
15:36:31
И я об этом

Anton
02.10.2017
15:37:53
это уже 6 строк

Admin
ERROR: S client not available

Oleg
02.10.2017
15:38:50
Вот, поэтому по мне так 5 мало
А так да, по факту 15 вполне себе ок
Но главное чтобы они делали одно действие, заданное именем

No
02.10.2017
15:40:18
5 строк лимит на метод?
шта?

Oleg
02.10.2017
15:40:20
Ну, за исключением извращенских методов с названием doProcess и тп, особенно когда вообще не ясно что за процесс то

No
02.10.2017
15:40:30
я очень критичен к длине своих методов, но даже для меня это слишком

Oleg
02.10.2017
15:40:32

No
02.10.2017
15:40:33
10-15 самое то

Google

Alex
02.10.2017
15:40:46
15 оптимально
иногда больше если метод хорошо читается.

Oleg
02.10.2017
15:40:56
Есть компании где программистам платили за количество методов.... ну вы поняли....

Alex
02.10.2017
15:41:06
KPI вообще ерунда.
считать сколько дохода принес погромист - ооооч сложно

No
02.10.2017
15:41:29
а какой профит от 5 строк? как аргументируется?
ибо в куче случае ты даже не сможешь придумать нормальное название метода, чтобы вынести
если у тебя допустим 7 строк вместо 5

Oleg
02.10.2017
15:42:21
Аргументируется мол абстракция простая выходит и быстро понимаешь
Ну, вот так вот считают авторы правил

No
02.10.2017
15:42:37
а называть методы в стиле do_one_and_do_two_if_conditions_true
это уже маразм, имхо
он любит давать дельные советы, но не говорить о том, что это рекомендации, а не железное правило
и после программисты зарабатывают невроз от того, что не могут писать как дядя Боб

Alex
02.10.2017
15:44:49
а дядя боб смееца.

No
02.10.2017
15:45:06
я серьёзно, убил себе когда-то кучу нервов, разнося неразносимое
по советам дяди Боба, когда методы были слишком длиными, чтобы пройти его правила

Alexey
02.10.2017
15:45:49

Alex
02.10.2017
15:46:18

No
02.10.2017
15:46:31
сразу перед глазами, как отдельное действие
а не как часть редиректа