[python] otázka ohladom mojho štýlu písania v OOP

Hynek Fabian hynek.fabian na firma.seznam.cz
Pondělí Leden 14 18:14:17 CET 2013


Tak s timnhle bych byl opatrny. Vetsina filozofovani o OOP je psana s
ohledem na C++/Javu a kdyz dojde na prakticke rady nebo dokonce ukazky
zacnou se objevovat veci jako singletony, gettery/settery, fabricke
metody a podobne radosti, ktere jsou v pythonu bud zbytecne nebo
vyslovene skodlive.
Nic proti filozofovani, naopak, Design Patterns by mela byt povinna
cetba :-) ale porad plati ze by clovek mel znat dobre jazyk o kterem je
rec, aby rozeznal co je obecny princip a co jen vlastnost jazyka.
Pak jsou tu samozrejme takove ty uplne akademicke pojednani ve kterych
neni ani radka kodu, ale z tech se imo zacatecnik nedozvi nic prakticky
uzitecneho.
Spis nez nejake dalekosahle zvaneni, uplne zakladni "ustava" kodu v
pythonu je pro me modul this.

On 01/13/13 18:48, Róbert Čerňanský wrote:
> On Sat, 12 Jan 2013 18:46:35 +0100
> Roman Beno <romanbeno273 na gmail.com> wrote:
> 
>> V mojej otázke som mal viac na mysli, či je vhodné písat jednu velkú
>> metódu bez atribútov ako program, prípadne viac metód na
>> rozkúskovanie a trochu sprehladnenie programu, resp. sa snažit aby
>> čast kódu pri vytváranií instancie triedy (čiže už za dokončením
>> definície triedy) bola čo najstručnejšia?
> 
> Tu vlastne pýtaš, ako najlepšie navrhnúť program.  Aké triedy bude
> mať, aké metódy budú tieto triedy obsahovať a pod.  Tu sa pri hľadaní
> návodov nemusíš držať Python-u (a v niektorých prípadoch ani objektovo
> orientovaného programovania), ale hľadaj skôr informácie o objektovo
> orientovanom (alebo všeobecnom) návrhu.
> 
> Napr. na stránke
> http://c2.com/cgi/wiki?PrinciplesOfObjectOrientedDesign sa nachádzajú
> základné princípy objektovo orientovaného návrhu.  Hneď prvý (Single
> Responsibility Principle) Ti dáva odpoveď na to, či je lepšia jedna
> veľká metóda (či trieda) alebo viac malých.
> 
> Čo sa týka návrhu a písania programu všeobecne, (ale aj objektového),
> tak je výborná kniha Dokonalý kód
> (http://www.martinus.sk/?uItem=24387).  Dáva odpovede na podobné otázky
> ako sa tu pýtaš.
> 
> Robo
> 
> 



Další informace o konferenci Python