Студия разработки сайтов и приложений

Netspark.ru

Keep it simple, [censored]

Уж сколько раз твердили миру, функция, маленький именованный кусочек кода, который можно повторно использовать — должна делать что-то одно. То, что следует из её названия, из её назначения. И больше ничего делать не должна, особенно чего-то никак из названия/описания не следующего.

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

public function loadAccountBalance(AccountInterface $account) {
    // Load site balance if user can administer transactions.
    if ($account->hasPermission('administer transactions')) {
      return $this->loadSiteBalance();
    }
    // Check if issuer balance exists.
    // ...

То есть метод, реализующий простую функцию — вернуть пользовательский баланс — внезапно, вероломно и без предупреждения вернёт баланс всего сайта, если вдруг у данного пользователя есть административные права.

И если 1 человек, глядя на это, скажет — о, как удобно, я как раз так и хотел! То, я уверен, на него придется 99, которые скажут

Ах ты [censored] [censored] [censored] я два часа потратил [censored] [censored] руки этому [censored] оторвать бы

Комментарии