Komentarze

do: Interfejs czy abstrakcja?

Komentarze:

  • ulqq
    m
    Użytkownik DI ulqq (1)

    Bardzo Ciekawy artykuł na temat
    http://www.pilc.pl/interfejs.php, można się ciekawych rzeczy dowiedzieć ;D

    19-02-2011, 09:40

    Odpowiedz
    odpowiedz
  • ~pracownik

    Bardzo Ciekawy artykuł na temat
    www.pilc.pl/interfejs.php, można się ciekawych rzeczy dowiedzieć ;D

    19-02-2011, 09:31

    Odpowiedz
    odpowiedz
  • thek
    m
    Użytkownik DI thek (461)

    Oczywiście. Wystarczy, że jakiś hosting udostępnia wersje developerskie do testów :) A te wbrew pozorom są jak najbardziej do znalezienia w sieci. Tak więc zadając pytanie retoryczne należy się wcześniej zorientować nieco. Tylko nie należy szukać w ogromnych hostingach, które nawet mają z 5.3 problemy i siedzą na gałęziach 5.1 lub 5.2 z racji możliwości przez 5.3 dawanych, które potrafią zaskoczyć nieprzygotowanych. W 5.3 zaszło bowiem nieco zmian także w znanych i często używanych funkcjach, przez co ich działanie może się skończyć innymi wynikami niż te, które były dotychczas.

    Zamiast brnąć dalej w zaparte zorientuj się czym są traits i dopiero porównuj z agregacją/kompozycją oraz dziedziczeniem, które mają pewne cechy wspólne. Traits w pewnym przybliżeniu można nazwać bardziej rozbudowanymi interfejsami, które posiadają cechy klas abstrakcyjnych. Dobrym porównaniem posłużył się Maciej Wilgucki, który także minusy tego rozwiązania zauważył. Powstaną "roje cech", wbijane gdzie będą akurat potrzebne. Tu nie chodzi więc o eg,o ale nie pisanie głupot przez Ciebie, które tylko MYLĄ początkujących we właściwym zrozumieniu. To, że po Twoim szkoleniu ktoś myśli tak jak Ty nie znaczy, że myśli dobrze. Czemu? Wystarczy, że Ty rozumiesz coś źle i każdy kto zrozumie to identycznie też będzie powtarzał Twoje głupoty.

    Jeśli więc uważasz, że mistrzowie nie potrafią nauczyć czegoś dobrze, bo są profesjonalistami, to zajrzyj do swoich komentarzy i oceń streszczenia całych Twoich artykułów przeze mnie czy Dariusza P., a ja nie uważam się za geniusza czy wymiatacza. Tymczasem cały twój bełkot i zalew kodu w opisie isset i empty skróciłem do kilku zdań, które zawierają dokładnie tę samą wiedzę w pigułce! Zwyczajnie tłumacząc i nieco skracając manual php dostępny dla każdego.

    Jeśli miałbym się uczyć to wolałbym sam z manualem za darmo, niż z Tobą za kasę i jeszcze nie mając pewności, czy nie wprowadza się mnie w błąd. A patrz na komentarze pod swoimi postami. Co chwile są jakieś obiekcje ze strony zaawansowanych w programowaniu osób. Chyba nie ma artykułu Twojego tutaj bez zastrzeżeń :)

    Mam przyjemność znać i pisać z programistami znanymi w polskim świecie php i bywa nieraz, że mamy różne zdania o określonych rzeczach. Ale za coś takiego jak tutaj prezentujesz to by po prostu albo zgrzytali zębami, albo leżeli ze śmiechu. Przykłady są bowiem bardzo nieintuicyjne, mylą w sprawie podejścia do elementów języka i ich zastosowania. Znasz podstawowe przykazanie lekarzy? "Przede wszystkim nie szkodzić".

    Pytanie teraz o kim piszesz mówiąc "początkujący"? Bo siedzę na forum dla programistów i 90% wypowiedzi można streścić jako "zróbcie to za mnie bo ja nie mam czasu i nie chcę się tego nauczyć a mi potrzebne". Takich się po prostu wysyła na drzewo słusznie. Pozostałe 10% ma zapewnioną pomoc zarówno z wyjaśnianiem zawiłości rozwiązań, wytłumaczeniem nawet dokumentacji czy podaniem właściwych linków do przeczytania. Im taka pomoc w zupełności wystarcza do rozwiązania problemu.

    Zajrzyj sobie może czasem na te profesjonalne fora, bo chyba znasz je tylko z opowiadań. Tam pomoc uzyskuje każdy kto chce się nauczyć, a nie każdy kto chce rozwiązania. Raptem kilka dni temu widziałem fajny problem algorytmiczny związany z wyszukiwaniem dominujących kolorów w obrazie, kiedyś był problem z analizą sekwencji zdjęć kamery internetowej by określić stopień natężenia ruchu drogowego. Rozwiązanie znaleziono w obu przypadkach, bo znalazły się osoby mające fajne pomysły i autor też nie siedział na tyłku tylko szukał i kombinował. W tym drugim przypadku algorytm był odporny na światła lamp czy refleksy samochodów na mokrej nawierzchni. Zarówno oni jak i początkujący jeśli mają chęci i zapał dostaną odpowiedź, ale muszą chcieć, a nie czekać jedynie na gotowca. Wiem, bo jestem na jednym z wspomnianych przeze mnie for jednym z najbardziej aktywnych użytkowników i na fakt, że nie mówię głupot świadczy ich ocena mojej działalności i pomocy im udzielonej. A nie jestem lizusem i niejednego użytkownika zdarzyło mi się ochrzanić za wypisywanie głupot lub zwykłe lenistwo. By było śmieszniej... Na jednym z for jest moderatorem nastolatek :D Ma on jednak wiedzę taką, że prowadzi prelekcje na ogólnopolskich spotkaniach programistów od niego i o 10 lub więcej lat starszych :) Dlatego dla mnie wyznacznikiem programisty nie jest wiem, ale to co i ile potrafi on przekazać innym. Tobie tutaj idzie to kiepsko z powodu błędów, które nie są literówkami, ale wynikają ze złego zrozumienia. Zauważ, że przykładowo nie znam Dariusza P. (może znam go gdzieś pod innym nickiem, choć tego nie wiem) ale komentarze jego artykułów nie zawierają informacji gdzie walnął on byka, ale co mógłby dodać lub rozwinąć.

    Uwierz, że problem z przeklejeniem abstract do metod klasy potomnej jest jednym z mniejszych zarzutów wobec tego co piszesz.

    21-12-2010, 09:51

    Odpowiedz
    odpowiedz
  • ~Autor

    "Do rozwiązania problemu wielokrotnego dziedziczenia powstały takie mechanizmy jak Mixins/Traits."

    Traits to dopiero PHP 5.4. Czy ktoś z tu obecnych słyszał może o jakimś hostingu wykorzystującym PHP 5.4? A może u kogoś w firmie się z niego korzysta? Raczej wątpię, bo jest chyba jeszcze w fazie alfa.

    Jeszcze bym zrozumiał, gdybyście napisali coś o agregacji/kompozycji. Ale nie. Trzeba napisać Mixins/Traits. Lepiej brzmi. Może bardziej podbudowuje ego?

    Domyślam się, że zaglądają tu również mistrzowie programowania, ale nie tylko oni. Natomiast moje teksty adresowane są do początkujących. Używam przykładów, które do nich trafią i które są odpowiedzią na ich problemy, na które nie znajdują rozwiązania na waszych forach, bo nie chcecie do nich mówić, tak by zrozumieli. To właśnie dzięki takiej postawie jaką tu prezentujecie ja mam co robić.

    To że wielokrotne dziedziczenie sprawia problemy nie oznacza, że nigdy nie powinno być wykorzystywane. Hasło "Problem programowania" ma w Google znacznie więcej wyników niż "Problem wielokrotnego dziedziczenia". Czy to znaczy, że nie powinno się programować?

    Do jednego błędu się przyznaję i mam nadzieję na szybkie jego usunięcie. Kopiując metody z klas abstrakcyjnych do interfejsów nie usunąłem słowa abstract. Nie powinno go tam być i mam nadzieję, że wkrótce zostanie usunięte.

    20-12-2010, 23:26

    Odpowiedz
    odpowiedz
  • thek
    m
    Użytkownik DI thek (461)

    Owszem... Wspomina się o traits na internalsach, ale to tak naprawdę tylko proteza na faktyczne wielodziedziczenie w php. Inna sprawa, że jego występowanie w tym języku nie uważam za jakiś mus. Bez niego także da się żyć i program wcale nie cierpi.

    Moim zdaniem idealnym podsumowaniem artykułu jest post DariuszaP. Zawiera on to co powinien wiedzieć programista o tych dwóch rzeczach. Czytając je w zasadzie zna się już całą ideę tych dwóch elementów języka i wcale nie trzeba przykładów. No może poza tym, by było widać jakie słowa kluczowe trzeba użyć by stworzyć je w języku php :)

    Innymi słowy KOLEJNY mierny artykuł tego autora, który jeszcze bardziej gmatwa i uczy złych praktyk oraz słabo tłumaczy. Dużo kodu, mało konkretów, pomylone pojęcia lub brak ich właściwego zrozumienia przez samego autora. Innymi słowy porażka na całej linii. czy pan Leszek nie zauważył, że pisze na portalu gdzie jest wielu doświadczonych programistów i pisanie tu czegoś z bykami wywoła szybki odzew z ich strony i krytykę, która będzie poparta argumentami?

    Pragnę więc poinformować, że serwis czytają osoby, które w branży siedzą od lat, internalsy dla nich to lektura poranna zamiast gazety, udzielają się w takich serwisach jak webhelp.pl czy php.pl jako naprawdę doświadczeni i naprawdę już wiele widzieli. Nie tylko w PHP, ale i innych językach, niekoniecznie webowych. Ja zanim zacząłem w tym języku dłubać miałem już kilka lat życia z C/C++, liźniętą Javą, żeby wymienić tylko te z obiektówką związane.

    Myślę, że braki autora w tym względzie teraz się mszczą. Poczytał coś, nie do końca zrozumiał, nie miał wcześniej styczności i wziął swoją interpretację mechanizmu utworzył. Bez doczytania z czym ma właściwie do czynienia. No i teraz sobie kolejnym artykułem warzy piwa Podpisywanie się jeszcze pod tym imieniem i nazwiskiem to już prawie jak amen w pacierzu ;) Po prostu wiadomo kto pisze głupoty.

    20-12-2010, 10:03

    Odpowiedz
    odpowiedz
Brak danych. Sprawdź później :)
RSS  
Chwilowo brak danych. Sprawdź później :)


Partnerzy