Page 20 - 4252
P. 20
Наприклад, патерн singletone (одиночка) може бути використаний для під-
тримки декількох інстанцій об'єкта в одиничному екземплярі. Це завдання но-
сить суто допоміжний характер і не може бути віднесено безпосередньо до рів-
ня бізнес-логіки або будь-якого іншого.
Проте не варто недооцінювати важливість прийняття рішень по відно-
шенню до цієї підсистемі. Від того наскільки зручними та ефективними будуть
реалізації допоміжних патернів, залежить те, наскільки зручно буде програму-
вати інші підсистеми, і наскільки ефективно вони будуть працювати. Код, на-
писаний у цій підсистемі, багато в чому визначає код, який буде писати про-
граміст, що користується цим framework'ом.
МАЛЕНЬКІ БІБЛІОТЕКИ
Один з ворогів повторного використання коду - той факт, що люди не
складають з свого коду бібліотеки. Клас багаторазового використання може бу-
ти похований у директорії однієї з програм і може ніколи не випробувати хви-
люючого почуття реінкарнації в новому проекті. І тільки тому, що програміст
не захотів винести цей клас (або класи) у бібліотеку.
Одна з причин трагедії: люди не люблять маленькі бібліотеки. Є в малень-
ких бібліотеках щось таке, що люди вважають неправильним. Придушіть в собі
це почуття. Комп'ютеру абсолютно все одно, скільки у вас бібліотек.
Якщо ви написали код, який можна використовувати повторно, але він не
вписується в вашу бібліотеку, створіть нову.
Тримайте свою базу бібліотек [репозиторій]
Більшість компаній не має ніякого поняття, який код у них є. І більшість
програмістів до цих пір не повідомляють про те, що вони зробили і не цікав-
ляться тим, що вже написано. Репозиторії покликані змінити ситуацію на кра-
ще.
В ідеальному світі програміст міг би зайти на сайт, подивитися по катало-
гу або пошуком знайти потрібний пакет бібліотек і закачати собі. Якщо ви мо-
жете налагодити таку систему, в якій програмісти на добровільній основі бу-
дуть підтримувати базу вихідників - це прекрасно. Якщо ви заведете бібліоте-
каря, який відстежує коефіцієнт повторного використання, то це просто розкі-
шно.
Інший спосіб - автоматична генерація сховища з початкових кодів. Дося-
гається подібний ефект через використання стандартних заголовків для класів,
методів, бібліотек і різних підсистем. Такі заголовки служать водночас техніч-
ним керівництвом і пунктами в списку репозиторія.
Файли, що включаються
Можливість повторного використання існуючого коду є дуже важливим,
тому що може зберегти час і гроші і сприяти узгодженості. Припустимо, що
сайт Web містить текстове меню, яке повторюється на кожній сторінці. Замість
повторного кодування меню буде значно легше закодувати його один раз і ди-
19