170 похожих чатов

Дисклеймер: не надо только говорить, что я доебываюсь, это важно. Геттеров

не должно быть по принципу tell, don't ask.
Но вот, например, охранник хочет увидеть твой пропуск, ты должен показать. Кажется, что вот он гетер. Однако, вместо String getAccessCard(), лучше сделать String showAccessCard(), на худой конец просто accessCard().
Почему это важно? Такое мышление и именование помогает оставлять гетеры только там, где это действительно необходимо по смыслу.



А вообще это все эзотерика, конечно, никто от и до таких правил не придерживается, но, если стараться, то код получается меньше и читабильнее (не в смысле, как императивщики говорят, мол, вот я смотрю на портянку в 2к строк и мне все понятно, сразу все вижу, нахер ваш ооп, а в смысле того, что каждая сущность маленькая, у нее single responsibility, поэтому ей легко дать говорящее имя и при чтении легко понять, что она делает, а самое главное легко запомнить и понять архитектуру, когда все маленькое, ответственности не дублируются и у сущностей только по одной ответственности. Но, ещё раз, такого почти не бывает.
Мне нравится, например, код aeron в этом плане, рекомендую.

2 ответов

14 просмотров

Я это, новенький тут и просто интересуюсь (не срача ради): а чем accessCard() лучше getAccessCard()? get - глагол, явное действие, к тому же автодополнение с get покажет все, что можно получить. showAccessCard() - имхо, неудобно, когда карту, например, нужно отдать, а не показать - делать еще метод giveAccessCard?

ты случаем не с Егором Бугаенко работаешь?

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта