Øàáëîíèòå è äåòàéëèòå
The architect Christopher Alexander – father of patterns and pattern language … views the craftsmanship of fine structure to be the sole purview of the architect; the larger forms can be left to patterns and their application by the inhabitants.
James O. Coplien
Êàçàíî èíà÷å – àðõèòåêòúò Êðèñòîôúð Àëåêñàíäúð, áàùàòà íà øàáëîíèòå çà äèçàéí, ñìÿòà, ÷å ðîëÿòà íà àðõèòåêòà å äà “èçïèïà” äåòàéëèòå. Ñàìèòå øàáëîíè ìîæå è êëèåíòà äà ñè ãè ïîäáåðå!
Èçòî÷íèê : Clean Code Foreword.
Äîáðå å äà ñïîìåíåø, ÷å Êðèñòîôúð Àëåêñàíäúð å àðõèòåêò (èñòèíñêè, ïîñòðîèë å ìíîãî ñãðàäè) è òîâà òâúðäåíèå ìîæå äà íå å âÿðíî çà Design Patterns in Computer Science.
Ìèñëÿ, ÷å òîé å èìàë ïðåäâèä – êëèåíòà ñàì äà ïîäáåðå êàê äà èçãëåæäà íåãîâàòà êúùà, à ñâúðçâàíåòî íà øàáëîíèòå è èñòèíñêàòà àðõèòåêòóðíà ÷àñò å ðàáîòà íà ñàìèÿ àðõèòåêò.
Comment by Niko — 20/10/2008 @ 11:54 am
Íåùî íå áåøå íàðåä â èçðå÷åíèåòî “Êàçàíî èíà÷å… ” è ñå ÷óäåõ êàêâî.  “ìåòàôîðàòà”, êîÿòî Coplien èçïîëçâà “inhabitants” çà ïîñòðîéêàòà íå ñúîòâåòñòâà íà êëèåíòè çà ñîôòóåðà, à íà ïðîãðàìèñòè. Ïðîãðàìèñòèòå ñà òåçè, êîèòî “íàñåëÿâàò” ñîôòóåðà, à íå êðàéíèòå ïîòðåáèòåëè.
Comment by Êàìåí — 20/10/2008 @ 8:59 pm
Äîáàâèõ èçòî÷íèêà â ñòàòèÿòà, çàùîòî ìèñëÿ, ÷å èçíåñåíî îò öÿëîòî ñå ãóáè ñìèñúëà. Íî è íèùî íå ïðå÷è äà èìàìå ðàçëè÷íî òúëêóâàíèå âñå ïàê 😉 Ëè÷íî àç ùå ãî ïðî÷åòà îùå âåäíúæ çà äà ìîãà äà ïðåîñìèñëÿ ïàê íàïèñàíîòî.
Comment by Izida — 21/10/2008 @ 9:19 am
Òàêà çàïî÷âà àáçàöà – êëèåíòúò, êîéòî èçáèðà øàáëîíèòå îò öèòàòà â ñòàòèÿòà, å ñîáñòâåíèêà íà äîìà, à íå èçïúëíèòåëÿ /ñòðîèòåëÿ/. Òîé èñêà âåðàíäà ïðåä êúùàòà ñè (øàáëîí), äîêàòî àðõèòåêòúò ùå òðÿáâà äà èç÷èñòè âñè÷êè äåòàéëè è èçïúëíèòåëÿò äà ãè ðåàëèçèðà.
Àêî ïðîäúëæèì àíàëîãèÿòà ñ ðàçðàáîòêàòà íà ñîôòóåð – îòíîâî èìàìå àðõèòåêò, èçïúëíèòåëè /ïðîãðàìèñòè/ è êëèåíòè. Êëèåíòúò èñêà ïðèëîæåíèåòî äà ãî óâåäîìÿâà ÷ðåç èçïðàùàíå íà ïèñìî äî ìåíèäæúðà íà åêèï çà âñÿêà íîâîïîëó÷åíà ïîðú÷êà (øàáëîí ñëóøàòåë), àðõèòåêòúò è ïðîãðàìèñòúò ùå òðÿáâà äà ðåàëèçèðàò òîçè øàáëîí êàòî íàïèøàò êðàñèâ, ëåñíî ÷åòÿù ñå è ëåñíî ïîääúðæàù ñå êîä. Ìàëêî å ðàçìèòà ðàçëèêàòà àðõèòåêò/ïðîãðàìèñò – íî âñå ïàê êîíêðåòíèÿ òåêñò å ïðåäãîâîð çà êíèãà, îñíîâàâàùà ñå íà ãúâêàâèòå ìåòîäîëîãèè çà ðàçðàáîòêà è Test Driven Development. À ïðè òÿõ äèçàéí è êîä ñà òÿñíî ñâúðçàíè – ñ÷èòà ñå, ÷å êîäúò å íàé-òî÷íîòî îïèñàíèå íà ñàìèÿ äèçàéí.
Comment by Izida — 21/10/2008 @ 9:30 am
Ìèñëÿ ÷å ðàçáèðàì îòêúäå èäâà îáúðêâàíåòî.
 àðõèòåêòóðàòà øàáëîíè å òî÷íî òîâà çà êîåòî ãîâîðèø – ”èñêàì âåðàíäà ïðåä êúùàòà ñè èëè èñêàì êúùà ïîñòðîåíà â åäè êàêúâ ñè ñòèë”.
 ïðîãðàìèðàíåòî øàáëîíà ñå èçïîëçâà êàòî åäíà èëè íÿêîëêî ðåàëèçàöèè (äîñòà øàáëîíè èìàò ïîâå÷å îò åäíà ðåàëèçàöèÿ) íà îïðåäåëåí ïðîáëåì.  òîçè ñëó÷àé íå êëèåíòà à àðõèòåêòà/ïðîãðàìèñòà èçáèðà øàáëîíà.
 ïúðâèÿ ñëó÷àé èìàìå èçáîð íà ôóíêöèîíàëíîñò (êàê äà èçãëåæäà êúùàòà ìè), à âúâ âòîðèÿ ñëó÷àé èìàìå èçáîð íà ðåàëèçàöèÿ íà ôóíêöèîíàëíîñò èëè ïðîáëåì. Çà ìåí òîâà ñà äâå ðàçëè÷íè íåùà.
À íåðàçáèðàíåòî áåøå çàðàäè ñëåäíèÿ öèòàò „Ñàìèòå øàáëîíè ìîæå è êëèåíòà äà ñè ãè ïîäáåðå!”.
Ïðèåìà óòî÷íåíèåòî òè, ÷å „Ïðîãðàìèñòèòå ñà òåçè, êîèòî “íàñåëÿâàò” ñîôòóåðà”, íî â òîçè ñëó÷àé ñå ïîëó÷àâà ÷å òå ñà êëèåíòèòå ñïîðåä ìåòàôîðàòà (çàùîòî òå ïîäáèðàò øàáëîíà).
×åñòíî êàçàíî òàçè àíàëîãèÿ ìè å äîñòà ñòðàííà è ìàé íåùî êóöà.
Ìîæå áè çàùîòî „ãúâêàâèòå ìåòîäîëîãèè” íåïðåêúñíàòî ïðàâÿò àíàëîãèè ñúñ ñòðîèòåëñòâîòî êîèòî íå âèíàãè ñà òî÷íè èëè âåðíè è ñå ïðîáâàò äà äåëåãèðàò ïîâå÷å îòãîâîðíîñòè íà êðàéíèÿ êëèåíò (ïîäáîð íà øàáëîíè), à òîé îáèêíîâåíî íå å ãîòîâ çà òÿõ è îòêàçâà äà ãè ïðèåìå.
Ïîíå òîâà å ìîåòî ìíåíèå.
Comment by Niko — 21/10/2008 @ 10:06 am