Nette\String – odstraneni final

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
juzna.cz
Člen | 248
+
0
-

Urcite to stve vice lidi, nez jen me. Byl bych rad, kdyby trida Nette\String nebyla final a ja ji mohl podedit a pridat dalsi metody (u me jsou to napriklad: camelize, uncamelize, getFirstLine, getLastLine, …).

Tyto funkce nejsou potrebne vzdy a vsude, nektere jsou i dosti typicke pro konkretni problem. Nema smysl je tedy davat do mainstreamove Nette\String.

V soucasnosti si je muzu dat do vlastni tridy String bez podedeni z nette, ale:

  • proc mit dve tridy na praci se stringy? Kdo si ma pamatovat, ze startsWith je v prvni a camelize v druhe??
  • zkopirovat si veskere metody z Nette\String – ale to neni moc pekne reseni
  • pouzit __callStatic a z nej volat Nette\String – to mi pak ale IDE nebude napovidat

Vyvratte moje pripominky nebo podporte muj pull request

jasir
Člen | 746
+
0
-

Rozhodně souhlas. Některé final v Nette vnímám jako zcela zbytečné házení klacků pod nohy.

juzna.cz
Člen | 248
+
0
-

Dukaz misto slibu, ze to fakt pouzivam ;) Pridejte sve dukazy a podporte me :)

Honza Marek
Člen | 1664
+
0
-

Podporuju každé zrušení final :)

redhead
Člen | 1313
+
0
-

Zrušit všechna final!

h4kuna
Backer | 740
+
0
-

zrušit final ++

Editoval matata (19. 3. 2011 11:20)

hrach
Člen | 1834
+
0
-

++++++

Vyki
Člen | 388
+
0
-

Máš pravdu. Já jsem si kvůli tomu vytvořil svou třídu na práci s řetězci, ale všechny ty metody patří do String.

Droid
Člen | 92
+
0
-

1+

Filip Procházka
Moderator | 4668
+
0
-

Yes we can!

+++ pro všechny třídy v tools! další na pořadí je ArrayTools

Editoval HosipLan (19. 3. 2011 13:47)

juzna.cz
Člen | 248
+
0
-

Nebyl bych az zas tak radikalni s odstranovanim vsech final, myslim ze jsem se o tom bavil s Davidem na unorove posledni sobote a mel nejake dobre duvody, proc to nekde nechat (uz ale presne nevim, bylo hodne pozde).

Pokud mate navrh na odstraneni final i u jinych trid, tak posilejte reporty proc by tam nemel byt a ukazky vasich podedenych trid, jako dukaz ze to opravdu ma smysl.

h4kuna
Backer | 740
+
0
-

btw uz se to taky jednou resilo tady na foru, tak tady je link pro slouceni

westrem
Člen | 398
+
0
-

Naprosty suhlas s juzna.cz

U Nette\String som musel rucne zrusit final aby som ju mohol podedit a mat veci pekne pokope, bolo to jedno z final, ktore ma zaskocilo.

Na druhej strane nie som za rusenia final, len preto ze su final, to je absurdny argument a su triedy, kde to final ma opodstatnenie (myslene vo vseobecnosti).

Nette\String, je vsak ukazkovy priklad na to, kde ma vela ludi potrebu rozsirovat ju a pridavat vlastnu custom funkcionalitu, ktora nepatri priamo do FW a extend je v tomto pripade ten pravy kandidat.

Mikulas Dite
Člen | 756
+
0
-

Nesouhlasím. Final podle mě nemá opodstatnění prakticky nikdy. Pokuď si vývojář potřebuje něco ohnout, musí takhle vrtat v Nette, případně jenom copy and paste. Souhlasím s argumentem, že je dobré, že taková knihovna potom nutí uživatele k tomu správnému řešení (ideální příklad je konstruktor komponent vs startup metoda). To je dobré, pokud nějaké řešení existuje. Trošku nevhodné, pokud jiný způsob není, jako v případě Tools.

Filip Procházka
Moderator | 4668
+
0
-

Podle mně má opodstatnění u tříd/struktur, které, jak píše David, nejsou připravené pro rozšiřování, nebo záměrně nechce, aby se je někdo pokoušel rozšiřovat, protože počítá s jejich odstraněním/refaktoringem, kvůli forward-compatibility (ano, to „slovo“ jsem si právě vymyslel). A nebo kvůli vynucení Composition

Ale takový Nette\String nebo Nette\ArrayTools se určitě už moc měnit nebudou…

Editoval HosipLan (20. 3. 2011 0:26)

juzna.cz
Člen | 248
+
0
-

To zni jako krasne tema na posledni sobotu :)

Honza Marek
Člen | 1664
+
0
-

Taky kdyby někdo chtěl vyrobit mock v PHPUnitu, ta ta třída nesmí být final a pokud možno by neměla mít ani final metody. Tohle sice není případ statických tříd jako je String, ale je dobré to zvážit, pokud někde final píšu.

juzna.cz
Člen | 248
+
0
-

Merged onto nette/master :) Davide, za to te zvu v sobotu na pivo