Автор Гілка: Чи потрібно дотримуватись стандартів програмування тільки заради їх дотримання?  (Прочитано 12931 раз)

gdekjifgb

  • Гість
Питання не стосується конкретно php.

Є деякий клас. Кількість корисних рядків у ньому приблизно 120-140 (запит до бд, заповнення класу даними, +інш).

А методи типу get_class_var
    public function get_usname() {
        return $this->usname;
    }
збільшують кількість рядків більше ніж в 2 рази.

Про інкапсуляцію я знаю (і гетети якраз і мають безпосереднє відношення до інкапсуляції),
...
    public $regdate_usopt;
    private $umk;
    private $usname;
    private $usplace;
    private $usablog;
    private $uslife;
    private $ava;
...
але для чого мені всі оті гетери?, якщо змінювати дані цього класу ззовні я аж ніяк не збираюсь (бо я єдиний прагроміст (розробник)).

От і питання звідси: Чи потрібно дотримуватись стандарті...

По іншому: В цьому випадку потрібно дотримуватись стандартів програмування?
---

Здається цього php-підрозділу не було раніше, та і сайт різнокольоровий?, або я на очі вже зовсім двинувся?

Відсутній ysenko

  • Новачок
  • *
  • дописів: 38
  • Карма: +1/-0
  • Python developer
Створення сеттерів/ґеттерів - один з варіантів, який дозволяє зменьшити зв'язування (coupling), що в свою чергу зменьшує вартість підтримки програмного забезпечення, але може збільшити вартість розробки (цей вибір завжди на плечах дизайнера системи). Раджу подивитися виступ Кента Бека на цю тему (англійською): https://www.youtube.com/watch?v=3gib0hKYjB0
import antigravity

gdekjifgb

  • Гість
У мене є паперова книга Макконела "Совершенный код". Відео гляну, але я на слух не все розумію. Здається там щось типу про складність/вартість проектів. Субтитри допоможуть.

Цитата
(цей вибір завжди на плечах дизайнера системи)

Отож  :-\. Ну я вважаю що добре, те що я тупо не роблю (не думаю однонаправлено) щось одне, а виникають варіанти і питання.
« Змінено: 2021-07-22 11:48:30 від gdekjifgb »

K15.Multik

  • Гість
Переваги від гетерів проявляються, коли потрібно попередньо виконати якісь дії над значенням поля. Наприклад екранувати заголовок сторінки (title), розрахувати ціну по курсу валют,.. Звичайно все це можна зробити безпосередньо в місці використання значення поля, але тут справа в зручності: як простіше змінювати -- в кожному місці використання значення чи в одному гетері?

Стосовно PHP -- краще використовувати "магічні" методи для гетерів, тоді об'єм коду не буде збільшуватись пропорційно кількості полів.

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Якщо ви колись чули про принцип Розподілу Відповідальності (Separation of Concerns SoC), то ви би побачили що приклади, запропоновані вами, не відповідають цьому принципу. Ґеттери (отримувачі) чудово працюють коли потрібно отримувати дані на льоту (lazzy loading) чи стежити за змінами у даних, щоб оновлювати інші, залежні, дані або помітити обʼєкт як змінений або розсинхронізований (dirty).

Перекодування даних в для вставляння в HTML, XML, SQL, JS, shell, YAML, TOML, CSV, і так далі, не є частиною процесу отримання даних. Функція get, за контрактом, навіть не підтримує можливість вказання кодування. Як правило, функцію перекодування називають encode/decode, translate, escape/unescape, а не get.
[Fedora Linux]