Autor | Zpráva | ||
---|---|---|---|
Joker Profil |
#1 · Zasláno: 18. 3. 2016, 12:10:03
tester:
„mám před sebou rozpracovaný projekt který nechci dělat znovu z fleku“ Není od věci uvážit i to, že v čím pozdější fázi se změna uskuteční, tím bolestnější to bude. Ale podle mě implementace navržených řešení lokalizace by neměla být nějak problematická, je to celkem snadné. |
||
tester Profil * |
Joker:
Pokud teď myslíš ten "slovník" (db) tak to není problém ale nemohu provést nyní, nejdříve potřebuju dokončit přemapování a zbavit se magických čísel. Jinak jsem už dokončil Singleton a je to ohromě osvobozující právě od parametrů které jsem musel předávat do nově vytvářených objektů a do funkcí. Doufám však, že mi neklesne výkon, přeci jen když bych volal uvnitř funkce, která je ve smyčce na zpracování tabulkových dat, funkci na vrácení instance singletonu tak by tam mohl být jemný nárůst prodlevy. Mám to teď takto (iniciace programu): if (class_exists('S') && S::I() || die("Singleton not found.") ); S::I()->mysql = New Mysql_class(); S::I()->Results = New Results(); // add input action S::I()->MenuLinks = new MenuLinks(); S::I()->data = new Data(); S::I()->const = New Constants(); include_once C::PATH.'/include/template.inc.php'; ... ohromě osvobozující od parametrů které jsem musel předávat do nově vytvářených objektů a od globálních proměnných ve funkcích. ... |
||
Keeehi Profil |
tester:
Škoda že singleton dnes někteří už považují za anti-pattern. Globální proměnné jsou jistě špatné, ale ty parametry předávané do konstruktorů objektů jsou právě základem dependency injection. |
||
Joker Profil |
#4 · Zasláno: 19. 3. 2016, 23:49:18
Vedle toho v [#3] Keeehi ještě doufám, že ve skutečnosti se ty třídy nejmenují S, I a C. V opačném případě doporučuji si osvojit nějaký normální styl názvů.
Jinak singleton se často považuje za něco jako „objektová globální proměnná“ (což je argument pro to, že je to anti-pattern). |
||
tester Profil * |
#5 · Zasláno: 20. 3. 2016, 00:42:23
Joker:
Okopíroval jsem ty názvy ze Singletonu co jsem si napsal v C++. S znamená Singleton, I znamená Instance. Přece nebudu pokaždé psát Singleton::Instance()->Language->define.... trochu dlouhé na můj vkus. V Céčku jsou zkráceniny běžné a proč to nepoužívat když Singlton je výchozí bod celého programu. Keeehi Já neplánoval a neplánuji poskytovat někomu framework na tvorbu webových stránek nebo připojovat se k již existujícímu frameworku. Jak jsem již psal, mám radši vlastní tvorbu vlastní řešení takže to že ty třídy jsou navzájem závislé a neoddělitelně spjaté s konstantami vyhovuje v tom, že když by ten kód někdo ukradl tak bu bude buď na nic nebo pouze na jednu věc a to k původnímu účelu k jakýmu byl stvořen. Jinak ale chápu kam směřuješ, ale já žiju v jiném světě a znalost frameworků nemám, nemám čas na to to studovat, život je příliš krátký a toho času zas tolik není, takže bych rád ještě stihl dodělat svůj záměr pokud množno ještě v tomto životě. |
||
Keeehi Profil |
#6 · Zasláno: 20. 3. 2016, 02:47:23
tester:
„Přece nebudu pokaždé psát Singleton::Instance()->Language->define“ No to samozřejmě ne, protože by se to mělo jmenovat jinak. Je to velmi různorodý objekt, takže je ho těžké pojmenovat ale si bych to viděl takto: ServicesContainer::getInstance()->Language->define...
„trochu dlouhé na můj vkus.“ Dlouhé ale srozumitelné. „V Céčku jsou zkráceniny běžné“ To bude asi pozůstatek z dřívějších dob. V době jeho vzniku byly editory mnohem prostší. Názvy se zkracovali, aby lidem neupadly ruce a zřejmě i kvůli nevědomosti. Dnes je jiná doba a zkracování už ztratilo původní důvod. „Jinak ale chápu kam směřuješ, ale já žiju v jiném světě a znalost frameworků nemám, nemám čas na to to studovat, život je příliš krátký a toho času zas tolik není, takže bych rád ještě stihl dodělat svůj záměr pokud množno ještě v tomto životě.“ Kdyby k tomu přistupovali všichni takto, tak by se lidstvo nikdy nikam neposunulo. Kdyby jsi se chtěl dostat třeba pěšky z Prahy do Bratislavy, tak to půjdeš deset dní. Když si vezmeš kolo, na kterém jsi nikdy před tím neseděl tak ano, dejme tomu, že se první den budeš na něm učit a zůstaneš tedy pořád v Praze, ale další den, když už to budeš umět vyjedeš a v cíli budeš za další dva. Nejde o to abys začal používat nějaký framwork (i když věřím, že by to práci urychlilo), přístupy o kterých tu píšeme jsou aplikovatelné i bez nich a jsou vytvořené tak aby pomáhali při tvorbě kódu. Také jsou mnohokrát ověřené. |
||
Martin2 Profil * |
#7 · Zasláno: 20. 3. 2016, 03:03:41
tester:
Tohle je neuvěřitelné. Posloucháš se vůbec co říkáš? Celkem dost lidí ti tu radí celkem dost důležité poznatky z oblasti softwarového inženýrství a ty se zmůžeš jen na to nás bullshitovat nesmysly typu „mám radši vlastní řešení“, „život je moc krátký“, „žiju v jiném světě“. Nemá smysl s tebou ztrácet čas, jsi programátorský imbecil (v medicínském smyslu tohoto slova). |
||
tester Profil * |
Keeehi:
To bude asi pozůstatek z dřívějších dob. V době jeho vzniku byly editory mnohem prostší. Názvy se zkracovali, aby lidem neupadly ruce a zřejmě i kvůli nevědomosti. Teď si mi připoměl vc, linuxový editor :-) Ještě že na php mám PSPad. Mnohem lepší. Kdyby k tomu přistupovali všichni takto, tak by se lidstvo nikdy nikam neposunulo. Já jsem spíš ten co využívá již hotových programů a webových aplikací než ten co je programuje. To máš podobné jak kdyby si řekl, kdyby každý byl učitel (přirovnání např. k učiteli na vesnici, v obci apod. který celý život zůstane na jednom místě) tak se lidstvo nikam nedostane. Každý člověk plní ve společnosti jinou roli - nemohou být všichni programátoři frameworků. Martin2: Já s tebou také nebudu ztrácet čas. |
||
Joker Profil |
#9 · Zasláno: 20. 3. 2016, 09:22:32
Martin2:
Připomínám Pravidlo 4. tester: „Přece nebudu pokaždé psát Singleton::Instance()“ No to rozhodně ne. Název třídy by měl odpovídat tomu, co má ta třída na starosti. Pokud se nedá říct, co vlastně má ta třída na starosti (např. protože dělá hromadu nesouvisejících věcí), dost možná je ta třída špatně navržená. „když by ten kód někdo ukradl tak bu bude buď na nic nebo pouze na jednu věc a to k původnímu účelu k jakýmu byl stvořen“ Možná nepřehledný a těžko udržovatelný kód zkomplikuje zloději život, ale nenapadlo Vás, že v první řadě bude komplikovat život Vám? Jestli projekt neskončí v propadlišti dějin ještě před nasazením, bude ten kód nutné v budoucnu měnit. Věta „Ale tohle se určitě nikdy měnit nebude“ je asi tak reálná, jako cestou do hospody říct „Jdeme na jedno“. „Já jsem spíš ten co využívá již hotových programů a webových aplikací než ten co je programuje.“ I když i s těmi hotovými programy jste se musel na začátku naučit pracovat. A o pouhé tři příspěvky výš používání hotových řešení zavrhujete s tím, že byste se musel učit je používat: „znalost frameworků nemám, nemám čas na to to studovat, život je příliš krátký a toho času zas tolik není, takže bych rád ještě stihl dodělat svůj záměr pokud množno ještě v tomto životě.“ Mimochodem, pokud to neumíte a nechcete se to učit, je tu možnost někomu zaplatit, aby to udělal za Vás. |
||
tester Profil * |
Joker:
Je pravda že používám JQuerry, které jsem se kdysi naučil a používám wysiwyg html editor který však na instalaci byl tak snadný že jeho nainstalování mi trvalo jen pár hodin. Co se týče tvorby tak ta mě baví a proto nenechám nikoho udělat za mě. A používám taky C/C++ které jsem se učil loni, ovšem o co mi jde je že člověk nemůže umět vše a zároveň stihat vše a musí volit kompromis. Nebo někomu zaplatit. |
||
Časová prodleva: 16 dní
|
|||
tester Profil * |
MartinP:
"Múžeš hlášky v databázi rozdělit do sekcí (označené např. jménem stránky, kde je používáš) a pak mít funkci na zjištění hlášky, která zkontroluje, jestli je sekce v cache a když ne, tak celou sekci najednou načte z DB a vrátí tu jednu položku." Ohledně té cache, o jaké cache si to psal? Můžeš mi dát bližší příklad nebo odkaz na konkrétní funkci kterou bych zjistil že je to načtené v cache? Fisir: Je gettext vhodný taky na vytváření seznamů? Například seznam měst ČR, seznam regionů ČR, apod? Měl bych všechny pole s "options" pro formuláře vyexportovat do souboru gettextu? Zvýší se tím výkon nebo je to čistě jen o tom že se zlepší přehlednost programu a zjednoduší programování? |
||
Časová prodleva: 9 let
|
0