Jak se vypořádat s Nette\Object
- Šaman
- Člen | 2659
Varianta s T
na začátku se mi líbí – osobně takto traity
odlišuji, aby bylo na první pohled jasné, zda se jedná o třídu, traitu,
nebo rozhraní I
.
Pak TObject
je velmi výstižné – funkcionalita, kterou
dodteď známe jako Nette\Object
. Navíc ten
Nette\Object
zůstává, ne?
TSmart
neurazí. Nebo třeba ta Comfy
.
Pod Strict
si představí jen tu strict funkcionalitu,
Static
mi přijde úplně zavádějící.
Dvojice TStrict
a TObject
by se mi líbila
nejvíc.
- Václav Pávek
- Backer | 100
castamir napsal(a):
TSmartObject
neboTSmartClass
.Mimochodem ten prefix
T
pro Traity je vybornej napad. Tuhle konvenci si s dovolenim pujcim :)
tohle se mi zamlouvá
- Pavel Kouřil
- Člen | 128
Jak jsem říkal už na gitteru; osobně bych preferoval
EnhancedBehavior
(a StrictBehavior
, apod.), protože
ta traita mění chování toho objektu (a dělá z něj něco, co
„by default“ není).
- Svaťa Šimara
- Člen | 98
Prosím neprefixujte T...
. Prefixovalo se někdy v dobách
C
, když to lidem přišlo jako dobrý nápad. Taky v databázi
neprefixujete spojovací tabulky jenom proto, že jsou spojovací…
co vypadá líp?
use Strict;
use TStrict;
use Object;
use TObject;
Pokud už rozlišovat traity, tak jsem spíš pro to říct, že daná třída něco je:
use IsStrict;
use IsObject;
- Šaman
- Člen | 2659
Prefixuje se kontinuálně celou dobu. Všechna rozhraní jsou prefixována
I
.
To is
je trochu zvláštní – instance přece JE zároveň
třídou všech svých předků a rozhraní. Presenter JE komponenta, JE to
Nette\Object a JE to Response.
Pokud to nebude rozlišené namespacem, tak je třeba název
Object
velmi matoucí. Každý ví, že doteď se od Objectu
dědilo a najednou si musím pamatovat, že Object je traita která se
používá. S prefixem je to jasné.
extends Foo
implements IBar
use TLorem
Edit: vlastně nejde až tak o to prefixování, ale o jasné rozlišení co je daný prvek zač. Bez prefixu s velkým písmenem na začátku jsou podle Nete konvence třídy. Ostatní nonPHP soubory jsou malými písmeny a rozlišuje typ se rozlišuje příponou. Takže už jen v seznamu souborů vidím, co je co (třída, rozhraní, šablona, konfigurace, zbude několik málo výjimek). Pokud by traity nebyly jasně odlišitelné, pak mi tuto výhodu vezmou.
Editoval Šaman (8. 4. 2016 10:05)
- Svaťa Šimara
- Člen | 98
Prefixování I
nechme stranou, to je jiný příběh.
Zkusil jsem si nakreslit diagram tříd, kde se vyskytuje trait, a i
Is...
vypadá prapodivně.
V diagramu tříd je jasně vidět, že daný prvek je trait/třída/rozhraní, IDE napoví, co je daný prvek zač. Ne, prefixování je zcela zbytečné.
Souhlasím, že roky rokoucí je Object
předek, od kterého se
dědí, takže nově vzniklá trait by se měla jmenovat jinak.