Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

4 Stron V   1 2 3 > »   
Reply to this topicStart new topic
> Traitsy, omg -_-
cojack
post 25.10.2011, 12:08:49
Post #1





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


Wiecie co, jak wejdą te Traitsy w php a to już nie długo, to jak najszybciej będę chciał się przebranżowić z php na inny język, najbliżej mi do c++ albo javy.

Straszne rzeczy się będą działy w php...


--------------------
cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena
Go to the top of the page
+Quote Post
nospor
post 25.10.2011, 12:14:10
Post #2





Grupa: Moderatorzy
Postów: 36 441
Pomógł: 6290
Dołączył: 27.12.2004




Aj tam, a kto ci każe z nich korzystać? Nie chcesz to nie używaj.

Gorzej, gdy będziesz musial poprawiać kod po kimś, ale z tym zawsze są problemy niezależnie od traitsów a zalezne od wyobraźni pierwszego autora kodu wink.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
cojack
post 25.10.2011, 12:22:53
Post #3





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


Przecież te Traitsy nie będą miały nic wspólnego z polimorfizmem, co innego gdyby się dało użyć traitsu tylko takiego samego typu interfejsu, ale nie, tam sobie będziesz mógł zrobić latająco-szczekający-pływający but.


--------------------
cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena
Go to the top of the page
+Quote Post
marcio
post 25.10.2011, 12:32:55
Post #4





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


tez nie widze korzysci tego mechanizmu...jedyne co to bedzie spaghetti code....czy jest odpowiednik tych traits'ow w python'ie czy C#?!?Pytam bo moze jest a nie wiem chociaz watpie


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
el.pablo.72
post 25.10.2011, 12:47:36
Post #5





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 1.11.2010

Ostrzeżenie: (0%)
-----


Nie przesadzajcie, po pierwsze co całkiem użyteczny mechanizm jeśli będzie z głową używany (jak wszystko w programowaniu), po drugie od czego jest phpDoc, trzeba pisać komentarze.
Go to the top of the page
+Quote Post
wookieb
post 25.10.2011, 12:51:57
Post #6





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Wymienię parę elementów, które tylko skorzystają na traitsach.
EventDispatcher
Iterator
Collection
Mocki/Stuby

Dlaczego?
  1. trait EventDispatcher {
  2. // cos
  3. }
  4.  
  5. class Module {
  6.  
  7. }
  8.  
  9. class SpecialModel extends Module {
  10. use EventDispatcher; // bo np tylko w tym module jest mi potrzebny
  11. }

Oczywiście php znów spieprzył sprawę ponieważ traitsy powinno móc dodawać przy tworzeniu instancji klasy
  1. $object = new Module with EventDispatcher; // Tego nie ma w php a powinno być


Jak naprawdę głęboko się zastanowicie to Traitsy odwalają za was cała masę roboty. Należy ich tylko umiejętnie używać.

Jak wyglądałby powyższy przykład w aktualnym php?
  1.  
  2. interface EventDispatcher_Interface {
  3. // metody
  4. }
  5.  
  6. class Module {
  7.  
  8. }
  9.  
  10. class SpecialModule extends Module implements EventDispatcher_Interface {
  11. // i tutaj PRZEPISUJESZ (tak dokładnie) implementację metod event dispatchera
  12. // ale po co? marnujesz pamięć a traitsy zrobią to za Ciebie znacznie wydajniej i szybciej!
  13. }


Zastanówcie się zanim zaczniecie wieszać psy nad rzeczami, które po prostu nie rozumiecie.

Nie zamierzam dyskutować nad sensem traitsów z osobami, które nie wyszły z poziomu "Po co obiekty? Przecież wystarczą mi tablice i prefixowane funkcje!" oraz tych które nie rozumieją, że przy tworzeniu klas bardzo ważny jest ich minimalizm a nie pakowanie całej masy funkcjonalności (bardzo często nie korespondujących z założeniem klasy) bo "potem mogą się przydać". To takie uprzedzenie przed głupimi postami właśnie w powyższym stylu smile.gif


--------------------
Go to the top of the page
+Quote Post
ixpack
post 25.10.2011, 12:55:33
Post #7





Grupa: Zarejestrowani
Postów: 248
Pomógł: 55
Dołączył: 1.06.2010
Skąd: mam to wiedzieć?

Ostrzeżenie: (0%)
-----


Ja Panowie może i nie mam tyle doświadczenia co Wy i chciałem się zapytać jak interpretujecie poniższy cytat:
"A Trait is intended to reduce some limitations of single inheritance by enabling a developer to reuse sets of methods freely in several independent classes living in different class hierarchies."
- interpretacja to nie tłumaczenie...

IMO mogą się przydać w mniejszych i większych aplikacjach. Gdy masz swoje biblioteki klas, lub kogoś klasy i chciałbyś użyć po części z wcześniejszych kodów - używasz traits i masz "jakby nową klasę" z funkcjami kilku wcześniej napisanych. Taki pakiet funkcji wyciągniętych ze starszego kodu.
Skomplikowałem to :/.
Czasem szybciej coś zbudować mając wszystko w jednym miejscu, które Tobie pasuje. Fakt można zrobić wtedy kombajn do wszystkiego i niczego, ale np. (ja tak myślę i prosiłbym o nakierowanie - bez wulgaryzmów hehe o ile błędnie myślę):
Mam wiele klas, w nich wiele metod. Buduję nową aplikację i potrzebuje po jednej metodzie pasującej do mojej przyszłej aplikacji z każdej klasy - używam traits, aby mieć wszystko w jednym miejscu i później już z górki. Trochę to takie na siłę i pewnie nie będę tego używał - podobnie jak systemów szablonu.

Mi marzy się framework, który można po swojemu ustawić. Tzn. Jakaś baza softu + klasy, funkcje pisane przez wszystkich innych i mnie. Mały framework, ale wariat.
Te traits'y mogłyby takiemu frameworkowi pomóc. Np. wyobraźcie sobie wiele wiele wiele klas w chmurze, z chmury te kawałki klas sobie doklejasz do swojego serwisu poprzez panel administracyjny -> zagrożenie olbrzymie, ale w teorii fajnie by to funkcjonowało. Ale wiadomo teoria z praktyką ma nie za dużo wspólnego i IMO traitsy będą, nie każdy tego będzie używał, ale czy to tak wielce zmienia cały PHP żeby od niego odchodzić?

Ten post edytował ixpack 25.10.2011, 12:57:12


--------------------
Łatwo jest być odważnym za murami własnego zamku.
Go to the top of the page
+Quote Post
wookieb
post 25.10.2011, 13:02:14
Post #8





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Cytat(cojack @ 25.10.2011, 13:08:49 ) *
Straszne rzeczy się będą działy w php...

Już się dzieją straszne rzeczy w php-cu nawet pomimo możliwości jaki oferuje. Ale to nie wynika koniecznie z języka ale naturalnego schematu "Wpadnięcia w sidła sukcesu". To tak samo jak z internetem i trollami.
Powód edycji: [wookieb]:


--------------------
Go to the top of the page
+Quote Post
cojack
post 25.10.2011, 13:13:29
Post #9





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


Nie dali wielodziedziczenia bo można byłoby burdel robić, to dają traitsy by robić jeszcze większy. Nie no dla mnie osom.


--------------------
cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena
Go to the top of the page
+Quote Post
scanner
post 25.10.2011, 13:17:04
Post #10





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Cytat(wookieb @ 25.10.2011, 13:51:57 ) *
Wymienię parę elementów, które tylko skorzystają na traitsach.(...) Zastanówcie się zanim zaczniecie wieszać psy nad rzeczami, które po prostu nie rozumiecie. (...)

Mogę Cię cytować?


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
wookieb
post 25.10.2011, 13:20:33
Post #11





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Cytat(scanner @ 25.10.2011, 14:17:04 ) *
Mogę Cię cytować?

Ale o co chodzi?


--------------------
Go to the top of the page
+Quote Post
hwao
post 25.10.2011, 13:22:27
Post #12


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




Pomysł połączenia interfejsu + traits (w jedno) to dopiero chory pomysł - interfejs powinien pozostać interfejsem, inaczej stal by się klasą.

Cytat("cojack")
Wiecie co, jak wejdą te Traitsy w php a to już nie długo, to jak najszybciej będę chciał się przebranżowić z php na inny język, najbliżej mi do c++ albo javy.

Przecież w Javie masz multidziedziczenie którego 'ulepszoną wersją' i rozwiązująca wiele problemów as własnie traits.
Ponadto:
"Traits class, a template class in the C++ programming language"
Więc proszę rozwiń jakoś swoją myśl.

A tak korzystając z traits możesz w klasie wskazać że korzystasz z konkretnego interfejsu (który jest już) i korzystając z triats zaimplementować go z głową.
Od jakiegoś czasu jest w PHP GoTo i jak była wprowadzana to ludzie też mówili że będzie masakra.
W gronie dobrych programistów Traits to świetne rozwiązanie w projektach, jeżeli myślisz ze czas zmienić język z tego powodu że ktoś będzie tego głupio używał, może powinieneś pomyśleć o zmianie ekipy?
Powód edycji: [hwao]:
Go to the top of the page
+Quote Post
scanner
post 25.10.2011, 13:25:19
Post #13





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Cytat(wookieb @ 25.10.2011, 14:20:33 ) *
Ale o co chodzi?

O to, że Twój post bardzo mi się spodobał i jełsi z kimś o traitsach będę dyskutował, to na pewno się na niego będę powoływał - obrazuje bowiem też moje zdanie na temat tego "ficzera"


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
wookieb
post 25.10.2011, 13:39:06
Post #14





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Cytuj cytuj smile.gif


--------------------
Go to the top of the page
+Quote Post
marcio
post 25.10.2011, 13:46:55
Post #15





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


poczytalem troche o tych traitsach i na pierwszy rzut oka to wydaja sie niepotrzebne jednak ten wpis http://blog.wsoczynski.pl/2011/03/22/jezyk...hp-pt-3-traits/ rozjasnil mi troche idee ciekawa ta roznica pomiedzy dziedziczeniem poziomym a pionowym


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
blooregard
post 25.10.2011, 13:48:05
Post #16


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




Cytat(wookieb @ 25.10.2011, 14:39:06 ) *
Cytuj cytuj smile.gif


Dodaj sobie do stopki: "@wookieb - cytowany przez najlepszych" biggrin.gif biggrin.gif biggrin.gif




--------------------
Life's simple... You make choices and don't look back...
Go to the top of the page
+Quote Post
by_ikar
post 25.10.2011, 13:56:30
Post #17





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

Ostrzeżenie: (0%)
-----


Nie no jak ktoś ma zamiar wszędzie, do każdej jednej klasy używać triatsa to będzie to przesada. Ale tak jak są podobne obiekty, które mają podobną funkcjonalność triats dla nich jest całkiem fajnym rozwiązaniem. No tak mamy dziedziczenie, klasy abstrakcyjne, problem w tym że nie da się więcej niż jednej klasy dziedziczyć. A ludzie co robią konkretne spaghetti to pewnie nawet nie będą wiedzieć o takiej funkcjonalności wink.gif
Go to the top of the page
+Quote Post
nrm
post 25.10.2011, 13:57:34
Post #18





Grupa: Zarejestrowani
Postów: 627
Pomógł: 33
Dołączył: 1.05.2005
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Boje się traitsów po phpcon... wink.gif -> https://twitter.com/#!/supernrm/status/...483177193943041


--------------------
Go to the top of the page
+Quote Post
marcio
post 25.10.2011, 14:03:54
Post #19





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


@normanos carpe diem

btw:
widze ze php idzie na dobra droge nawet type hinting wprowadzili nie jest zle

Ten post edytował marcio 25.10.2011, 14:05:26


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
blooregard
post 25.10.2011, 14:23:45
Post #20


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




Cytat(marcio @ 25.10.2011, 15:03:54 ) *
@normanos carpe diem

btw:
widze ze php idzie na dobra droge nawet type hinting wprowadzili nie jest zle



Przydałby się ten type hinting do każdego typu danych, a nie tylko Object i Array wink.gif
Ale to też podobno ma być.


--------------------
Life's simple... You make choices and don't look back...
Go to the top of the page
+Quote Post

4 Stron V   1 2 3 > » 
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 17.04.2024 - 00:15