Проектирането на проект е почти невъзможен без използване на структура или начално скеле. Обектите се приспособяват към услугите, налични за тях. Различните проекти имат различни сходни среди за услуги, правещи повторно използване на едни обекти трудно.
Развиването на обикновена структура се нуждае от много опит в началния стадии при изграждането за да работи качествено. Когато този опит не се използва, по произволни причини, има няколко техники, които може да ни насърчат да употребяваме повторно структурите :
Не се страхувайте от малки библиотеки
Това е един от враговете на повторното използване за хората, който не правят библиотеки от техният код. Клас, който може да се използва многократно, ще съществува скрит в програмна директория и никога няма да има възможност да бъде поделен, защото програмистът няма да го разбие на множество класове или класове в библиотека.
Причината за това е че хората не обичат да правят малки библиотеки. Не са прави.Забравете го. Компютърът не се интересува колко библиотеки вие имате.
Ако вие имате код, който може да бъде използван отново и не можете да бъдете поставен в съществуваща библиотека тогава направете нова библиотека. Библиотеките не остават малки за дълго ако хората наистина мислят за повторно използване.
Пазете кода в хранилище
Повечето компании нямат идея какъв код притежават. И повечето програмисти все още не предават това, което те са направили или това, което притежават в момент. Трябва да се поставя всичко налично за момента в хранилището, каквото и да е то.
В идеален свят програмист можеше да отиде към уеб-страница, да прегледа или изследва списък на пакетирани библиотеки, взимайки това, от което има нужда. Ако вие можете да откриете и получите достъп до такава система където програмистите доброволно поддържат, ще е чудесно.
Този принцип казва, че класа трябва да бъде отворен и затворен:
Отвореният/затворен принцип е степен на стабилност. Система се разширява не при добавяне на нов код, а като разширява вече работещия код. Програмистите често не се чувстват спокойно променяйки стар код защото той работи!
В действителност отвореният/затворен принцип просто има предвид добра употреба на абстракция и полиморфизъм. Чрез абстракция разлагаме на части обикновени процеси и идеи. Наследяването ни служи да създаваме интерфейс, който трябва да се придържа към използваните класове.
Ето го официалния, а те много се различават.
http://framework.zend.com/wiki/display/ZFDEV/PHP+Coding+Standard+(draft)#PHPCodingStandard%28draft%29-Scope