Arthur Dent (St, 2008-11-19 23:42):

„V určitých případech je dokonce užitečné oddělit objekt od aktu jeho vytvoření“ – nezbývá než souhlasit. Třeba u dětí je toto oddělení od aktu jejich vytvoření velmi žádoucí! ;)

Pardon, teď vážněji: Asi jsem četl jinou diskusi… ;) Říkal jsem něco trošku jiného než jaks to interpretoval zde. Takže to s dovolením trochu rozvedu:

Říkal jsem, že když jsem se v polovině 90. let OOP učil, tak tehdejší guruové hlásali myšlenku „zapouzdřit“ a „objekt se o sebe musí starat sám“. Byly určité náznaky, např. „friend“ třídy, ale základ bylo zapouzdření + dědičnost. Ono to ostatně tehdy ani moc jinak nešlo. Ačkoli „single responsibility“ bylo známo, tak při tehdejším stavu vývoje bylo spíš jako akademický koncept. Ostatně – jak dlouho že má .NET extension methods? :)

Od té doby jsem víc v podstatě nepotřeboval, v Javě jsem nedělal, v Object Pascalu (Delphi) to potřeba nebylo a v PHP pak už vůbec. TAKŽE když jste mi poslední dva dny vyprávěli o těch „samozřejmých kvalitních OOP věcech“, tak jsem si zjistil oč jde (protože se rád nechám poučit) – a co nevidím? Ústup od ortodoxních OOPistických pouček, co si z 90. let pamatuju… Ale můžu to naformulovat jinak, co takhle třeba: „Vývoj paradigmatu“? :)

Není to nic proti ničemu, nic špatného ani nějaké „uchýlení k obecným proklamacím“. Jazyky se vyvíjejí, stejně tak i přístup k programování a stejně tak i představa o tom, co je „moderní“. V tomto smyslu jsem to taky komentoval, asi jako Mirečkovo „To nás v Zahrádkách neučili!“ Rozhodně nepopírám Single Responsibility princip ani ho nestavím jako antipod zapouzdření, jen říkám, že je to posun proti praxi z 90. let – kurs otočený ne o 180, ale řekněme tak o 60 stupňů. A zrovna tak se odvažuju tvrdit, že za dalších 10 let přijdou do praxe další principy, které jsou dnes „akademické“ a dnešními prostředky nedosažitelné / neefektivní. Takže opravdu „houpačka“, kdy jsou „v kursu“ ty techniky, které současná technologie umožňuje.

Jak říká děda Simpson: „Bejval jsem v kursu, ale potom ho zas změnili a ten, ve kterém jsem teď, není ten správnej, a ten správnej mě děsí! To se stane i vám, hoši!“ :)

Takže když to shrnu: Učím se nový jazyk, sžívám se s jeho knihovnou a začínám tím, že si zkouším „staré dobré obecné a známé“ OO věci. Stejně tak si u nového mobilu nejdřív vyzkouším základní funkce tak jak je znám, a teprve pak přijde na řadu sžívání se „zkratkami“ a „novými postupy“, které mi novější technologie umožní. A samozřejmě jsem rád vždy, když mi někdo ukáže: „A víš že se to dá dělat i takhle?“

A závěrem do smířliva: Říkáš, že Single Responsibility je pravidlo, které má mít programátor na paměti. Já souhlasím a přidám k tomu dodatek: Pravidlo je dobrý sluha, ale špatné dogma. ;)

Takže přeji dobrý večer a – měj strpení se starším mužem, co si cestu k .NET prošlapával pětadvacet let od strojového kódu 8008 a TinyBASICu… :)

PS: Děkuji za tip na extension methods a děkuji za všechny další tipy, které mi v budoucnu rád a ochotně budeš poskytovat! ;) (To máš za to, že ze mne děláš v článku tak trochu osla! ;) )

Odpovědět
Obsah tohoto pole je soukromý a nebude veřejně zobrazen.
Více informací o možnostech formátování