Portál AbcLinuxu, 30. dubna 2025 20:24
>>Pro jakého čerta si potřebujete zvolit, zda je metoda virtuální? Kromě honění pikosekund to k ničemu nepotřebujete – tedy se u většiny skutečných OOP jazyků se vám takové volby nedostane. U vačšiny? U vačšiny mainstreamových jazykov(C++, C#, Visual Basic, Pascal / Delphi) si môžem zvoliť či bude metóda virtuálna.Asi to bude tym, ze vyraz "skutocne OOP jazyky" a vyraz "mainstreamove jazyky" oznacuju disjunktne mnoziny.
Smalltalk, ktorý sa v praxi medzi developermi moc neujal.Spousta old school věcí je ve smalltalku. Navíc lekce naučené ve smalltalku tak nějak daly směr moderním OO jazykům.
nemožnosť zvoliť či má byť metóda virtuálna (všetky metódy sú defaultne virtuálne)+
Potrebujem to kôli tomu aby som mohol zamedziť tomu aby iný developer moju metódu v inom objekte prepísal aj v rodičovskej triede.Tohle nějak nechápu. Pokud jsou všechny virtuální tak nepotřebujete nic označovat. Spíš by Vás mělo trápit že si nemůžete označit která *není* virtuální. Ale proč byste to dělal? Jinak...
je to neobjektové, neprehľadné a neintuitívne a a každá PHP knižničná funkcia má iné poradie parametrov.Tohle mě sere taky, nechápu kterej magor to takhle udělal. Nepište o PHP dlouhé články, ale vykašlete se na něj. A na všechny deriváty na něm postavené (drupal...) taky.
Jediné mainstramové OO jazyky ktoré túto možnosť nepodporujú sú Java a PHP. Potrebujem to kôli tomu aby som mohol zamedziť tomu aby iný developer moju metódu v inom objekte prepísal aj v rodičovskej triede.Pokud se to pochopil správně, jde vám o to, aby vaše metody nebyly předefinovatelné v potomkovi. Na to existuje klíčové slovo final.
k sa snažíte v PHP programovať objektovo (čo je nutnosť ak chcete mať elegantný, bezpečný kód)Elegantni a bezpecny kod absolutne nema zadnou souvislost s objektovym programovanim ...
Pokud potrebujes honit milisekundy, neprogramuj objektove, ale v co nejnizsim jazyce ... takze minimalne C, nebo asembler, pripadne rovnou ve strojakuSkutočne? Ono už to C býva občas rýchlejšie ako assembler, ak máte agresívne optimalizujúci kompilátor. Vo vyšších jazykoch sa dá dosiahnuť ešte vyššie zrýchlenie, vďaka kope sémantických informácií, ktoré kompilátor má k dispozícií, ale Vy ich pochopiteľne nevidíte (ak sa Vám teda nechce preliezať milión riadkov kódu...)
Normálne aplikácie? To sú ktoré? A prečo si myslíte, že v Haskelle a Lispe sa "normálne" aplikácie (nech už je to čokoľvek) netvoria?
Ne ze by neslo napsat ucetnictvi treba v Lispu, ono by slo napsat treba i v Texu, ale je to dobry napadV Texu ne, ale v lispu urcite. A delalo by se to dobre.
lenže tých pár milisekúnd sa zvykne nazbierať a preto potrebujeme stále výkonnejšie počítače lebo väčšina dnešných programátorov rozmýšľa ako vy
Přečti si co se píše v nějaké 30 let staré knížce o programování a optimalizacích .
if (string.Contains("PHP sux!"))
V PHP takto:
if (preg_match("/PHP sux/", $string))
Moc často se jinde nevrtám ale $this-> z PHP jsem viděl třeba v Qt jako this-> nebo u MS jazyků jako me., takže nevidím rozdíl... Prostě to tak je.
Třeba v C# jsem viděl naprosto otřesný způsob jak se připojit k databázi. V PHP stačí zavolat tři funkce, v C# ten človíček vytvářel nějakou podivnost aby to přinutil pracovat.
Class { private a = "x"; public void foo1(string a = "y") { return this.a; // vráti hodnotu x } public void foo1(string a = "y") { return a; // vráti hodnotu y } }
Class { private string a = "x"; public string foo1(string a = "y") { return this.a; // vráti hodnotu x } public string foo1(string a = "y") { return a; // vráti hodnotu y } }ospravedlňujem sa som nevyspatý.
$this
, s tím jsem nikdy problém neměl. Konkrétně jsem zvyklý psát ono redundantní this
i v jiných objektově orientovaných jazycích, např. C++, mám prostě radši, když na první pohled vím, v jakém kontextu je proměnná deklarovaná (a neuznávám konvence typu m_variable
), je to věc osobního stylu.
I přestože je v PHP hodně věcí špatných (způsobeno hlavně dlouhou historií PHP, zpětnou kompatibilitou a leností vývojářů), tak se v PHP dá psát vcelku slušný a dobrý kód, viz např. Doctrine 2 nebo Nette Framework.
Vždycky je to o človeku? Takže aspoň v princípe sa podľa teba dá rozumne programovať v Brainfucku? Alebo v PHP...
Ja tiež nepoznám jazyk, v ktorom by sa nedalo prasiť, ale zároveň poznám kopu jazykov, v ktorých sa dá neprasiť. Brainfuck k nim ale nepatrí určite a PHP dosť možno tiež nie
čo je nutnosť ak chcete mať elegantný, bezpečný kódA teď prosím tu o karkulce. Jinak ten matroš bych chtěl zkusit taky. Dodnes jsem nepochopil, jestli jako fakt a nebo jde o povedenou parodii. Pokud jde o parodii tak jednoznačně *THUMBS UP*.
$fn = "prehraj_".$typ; if (function_exists($fn)) { $fn($zvuk, $delka, ...); } else { error("Nepodporovaný typ zvuku."); }... a pak jen přidáváš funkce někam bokem. Dost podobně by se to dalo udělat i s třídama místo funkcí, ale to už je jen detail. Podstatný je kvalitní návrh. Implementace je až druhořadá.
Zvuk.prehraj()
enum media_type { MEDIA_SOUND, ... }; struct media { enum media_type type; ... } void prehraj(struct media m) { switch(m.type) { case MEDIA_SOUND: ... case... } }
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.