Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - BoneFlute

Stran: 1 ... 100 101 [102] 103 104 ... 133
1516
Vývoj / Re:Rozlišení objektu v PHP
« kdy: 24. 01. 2018, 21:20:53 »
Nepředávej objekty do konstruktorů, vytvoř jim privátní a veřejné vlastnosti a předávej tyto. Používej dědičnost.

Co ho to učíš?!

1517
Vývoj / Re:Jak funkci předat parametry uložené v poli?
« kdy: 24. 01. 2018, 21:10:16 »
Nevidím k tomuto doporučení žádný důvod.

https://en.wikipedia.org/wiki/Dependency_injection

Vkládat celé pole je varianta https://en.wikipedia.org/wiki/Service_locator_pattern obecně považované za antipattern. To, že to není objekt, ale pole je jen nepodstatný detail. Princip a tím i problém je stejný.

1518
Vývoj / Re:Rozlišení objektu v PHP
« kdy: 24. 01. 2018, 16:29:05 »
Nevytvoříš dvě třídy se stejným jménem.

Objekty rozlišíš podle toho, jaký mají typ. Funkce get_class.

Metoda __toString() nijak neuprávuje svůj objekt. Tato metoda vrací textovou reprezentaci objektu. Slouží to k tomu, aby se dalo zapsat echo "Obsah objektu {$a}.". Nevrací jméno třídy, ale textovou reprezentaci instance, obsahu.

Můžeš lépe popsat, o co ti jde?

1519
Vývoj / Re:Jak funkci předat parametry uložené v poli?
« kdy: 24. 01. 2018, 16:15:39 »
Ahoj,
když mám takový pole
Kód: [Vybrat]
$arr = ('a'=>'A', 'b'=>'B','c'=>'C'); //Jen nástřel, jedna se o velký pole
a potřebuji zavolat funkci a předat 4 parametry
Kód: [Vybrat]
zavolej_funkci('A','B','C');

Existuje několik řešení tohoto problému.

Pokud máš argumenty v poli, a chceš je jen předat jako argumenty funkci:
Kód: [Vybrat]
call_user_func_array('zavolej_funkci', $arr);
To předpokládá správné pořadí v tom poli.

Nebo můžeš použít funkci extract, kterou ty argumenty z pole $arr rozpustíš do stejně pojmenovaných proměnných. A pak zavoláš přesně to:
Kód: [Vybrat]
zavolej_funkci($a, $b, $c, $d);
Je to funkční, ale vůči lokálnímu kontextu dost drsné. Takže to dělej alespoň v nějaké funkci, ať si něco nepřepíšeš. Na druhou stranu to rovnou můžeš tu funkci volat:
Kód: [Vybrat]
zavolej_funkci($arr['a'], $arr['b'], $arr['c'], $arr['d']);
Bude to čistější, bezpečnější a přehlednější.

Nebo taky můžeš chtít, že to pole je prostě pole, obsahuje hodně parametrů, a tak to do té funkce předej celé jako jeden argument:
Kód: [Vybrat]
zavolej_funkci($arr);
To už ale trochu smrdí, a pouvažoval bych, zda to pole musí být opravdu tak velké. Opravdu ta funkce zpracovává všechny argumenty? (Třeba jo, neříkám nic.)

Vzhledem k tomu, jak to popisuješ bych zvolil:
Kód: [Vybrat]
zavolej_funkci($arr['a'], $arr['b'], $arr['c'], $arr['d']);

Nikdy nepředávej celé pole, pokud je to jen trochu možné.

1520
Vývoj / Re:Jak funkci předat parametry uložené v poli?
« kdy: 24. 01. 2018, 14:47:01 »
Stovky položek nepředstavují problém, protože to pole se stejně předává odkazem.

Nepředávají. Odkazem se předávají jen objekty.

Pole se v PHP kopíruje líně, tedy až v okamžiku, kdy ho začneš modifikovat, což se běžně nedělá. Výkon tím tedy nijak netrpí.

To víme. Ale to jsi neřekl. Ty jsi řekl, že se v php pole předává odkazem. A to není pravda.

1521
Vývoj / Re:Jak funkci předat parametry uložené v poli?
« kdy: 23. 01. 2018, 16:09:03 »
Stovky položek nepředstavují problém, protože to pole se stejně předává odkazem.

Nepředávají. Odkazem se předávají jen objekty.

1522
Z tohoto duvodu pouzivame mysi ze dreva nebo rucne placane keramiky, aby to stylove sedelo.

me vynech z techto novot, ja mam mys z pestniho klinu

Myš? Jaká myš? To je zase nějaká novota toto?

1524
windows  má př: skupinu Trustedinstaller to jsem tet pochopil že linux takové skupiny nevede a jak tyhle "skryté" skupiny fungujou ve windows

Vložím citaci odjinud, třeba se chytíš za nos.
Citace
zacinaji se tady na builderu rozmahat dotazy, ktery nemaji hlavu ani patu
a vypadaji, jakoby byly napsany imbecilem nebo pubertakem. Asi by to misto
odpovidani chtelo opet odkazovat na "stare otazky"
-- slave, builder.cz - PHP (28.12.2008)

1525
Vývoj / Re:Swift a protected access control
« kdy: 23. 12. 2017, 19:04:03 »
... Protected je contract. ...

U čeho mi naopak uniká rozumný důvod, proč existuje, je private. Poděděná třída má mít možnost přistupovat k vnitřnímu stavu děděné třídy, jinak je dědění velmi omezené ...

Pointa protected a private je v tom, že private je interní problém daného objektu. Ten si pomocí něho řeší své problémy, které ale nechce zveřejňovat z dobrého důvodu: jakmile to zveřejní, stane se to součástí api, a už to nesmí změnit. Jinak rozbije uživatele. A čím šiřší api, tím více kombinací musí programátor ošéfovat. Když je to private, tak to může kdykoliv přepsat. To je děsně osvobozující.

U protected v praxi vidím zlozvyk programátorů, kteří místo toho, aby metodě dali private, tak jí dají raději protected, protože co kdyby to někdy chtěli přetížit že jo. Když by dávali protected namísto public, tak mlčím.

1526
Vývoj / Re:Swift a protected access control.
« kdy: 23. 12. 2017, 00:06:32 »
No jasně. To známe. Ale já se ptám proč by to tak mělo být řešené? Není to poněkud zbytečně složité? Proč to prostě není v té metodě start?

Vy víte, co se děje mezi začátkem start a spuštěním run?
Měl bych to řešit? Měl bych to vědět?

1527
Vývoj / Re:Swift a protected access control.
« kdy: 21. 12. 2017, 00:29:00 »
Ano, souhlasím s tím, že protected je k ničemu. (Dokonce ho už nějaký ten pátek v žádném mém kódu nepoužívám.)

Polož si otázku: proč by měl někdo bránit tomu, aby se zavolala metoda run napřímo? Proč není ta třída navržena tak, aby napřímo volat šla?

Protože konkrétně ten Thread se pouští přes metodu start, ta je veřejná a metoda run má sloužit pro implementaci toho, co má to vlákno provádět. Někdo by si to mohl třeba spléct a zavolat run v domnění, že to pouští to vlákno. Kdyby byla protected, tak by se to nestalo. Mně se to prostě nelíbí.

No jasně. To známe. Ale já se ptám proč by to tak mělo být řešené? Není to poněkud zbytečně složité? Proč to prostě není v té metodě start?

No jako teoreticky by to mohlo jít tak, že bych úplně upustit od toho klasickýho konceptu, co je vidět skoro všude, ale udělat to spíš tak, že by se vlákno vůbec nedědilo za účelem implementace logiky, co má vykonávat (překrytí nějaká PROTECTED metody), ...
To, že je to vidět skoro všude neznamená, že to je dobře. Já bych klidně tvrdil, že je to prostě špatně :-)

1528
Vývoj / Re:Swift a protected access control.
« kdy: 20. 12. 2017, 19:50:34 »
Ano, souhlasím s tím, že protected je k ničemu. (Dokonce ho už nějaký ten pátek v žádném mém kódu nepoužívám.)

Polož si otázku: proč by měl někdo bránit tomu, aby se zavolala metoda run napřímo? Proč není ta třída navržena tak, aby napřímo volat šla?

1529
Studium a uplatnění / Re:Kde sehnat levny programatory??
« kdy: 15. 12. 2017, 04:25:31 »
Jé to je krásný příspěvek!

Pravidla jsou jasný, a jsou dvě: ekonomie a hloupí umřou.

1530
Vývoj / Re:Python - zbožňovaný lidmi?
« kdy: 15. 12. 2017, 02:35:50 »
...

Přiznám se, že mě napadlo, že přijde nějaká podobná reakce. Ale pak jsem si řekl, proč se namahat. Kdo chce pochopit, pro toho to může být zajímavé. Zbytek mě nezajímá.

Stran: 1 ... 100 101 [102] 103 104 ... 133