Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V  < 1 2  
Reply to this topicStart new topic
> Przejrzystość kodu
LBO
post
Post #21





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


@batman, ja nie piszę, że się nie da. Ja piszę, że ten przykładowy kod jest gówniany i każdy programista, który żongluje tak typami (ponieważ się da, phi) byłby u mnie skreślony.

Podobnie jest na wyższym poziomie abstrakcji - dajmy na to OOP. Wiele rzeczy można tam zrobić, ale nie oznacza to, że się powinno. Jeden wzorzec pasuje do rozwiązania z dziedziny problemu.. inny nie.

Zdaje sobie sprawę, że ze ścisłym typowaniem PHP byłoby lepszym językiem, ale radzę sobie bez tego.
Go to the top of the page
+Quote Post
batman
post
Post #22





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Cytat(LBO @ 27.06.2009, 16:05:24 ) *
@batman, ja nie piszę, że się nie da. Ja piszę, że ten przykładowy kod jest gówniany i każdy programista, który żongluje tak typami (ponieważ się da, phi) byłby u mnie skreślony.
Daleko szukać: mysql_query - zwraca albo zasób albo false. Podobnych funkcji jest cała masa. Bez okrętek nie da się napisać dobrze kodu i nie zależy to od poziomu programisty, tylko od poziomu języka, z którego on korzysta.
Go to the top of the page
+Quote Post
LBO
post
Post #23





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


To są naleciałości i tutaj, faktycznie stoi się na przegranej pozycji. Podobnie jest z niekonsekwentnym nazewnictwem w API.

Różnica w tym, że np ja projektując obiekty już tych błędów nie popełniam.
Go to the top of the page
+Quote Post
batman
post
Post #24





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Cytat(LBO @ 27.06.2009, 16:30:55 ) *
Różnica w tym, że np ja projektując obiekty już tych błędów nie popełniam.
Nie Ty jeden. I z tego właśnie względu powstały różne notacje, między innymi wspomniana notacja węgierska.
Go to the top of the page
+Quote Post
LBO
post
Post #25





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


I wracamy do tego, że posiadając potężne IDE tej notacji używać nie muszę ( nie wspominając o meaningful names dla zmiennych).

Tylko proszę nie wspominać znów o kodowaniu na komórce, czy na 5 maszynach na raz. Programista narzędzia i zaplecze mieć musi, a nie w... notatniku.
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #26





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Cytat(LBO @ 27.06.2009, 16:42:00 ) *
Tylko proszę nie wspominać znów o kodowaniu na komórce, czy na 5 maszynach na raz. Programista narzędzia i zaplecze mieć musi, a nie w... notatniku.


Tzn usprawniajmy sobie prace z narzedziem z ktorego korzystamy w 99% czasu a nie 1%.

Cytat(batman)
Daleko szukać: mysql_query - zwraca albo zasób albo false. Podobnych funkcji jest cała masa. Bez okrętek nie da się napisać dobrze kodu i nie zależy to od poziomu programisty, tylko od poziomu języka, z którego on korzysta.

A jak mysql_query() ma wskazac ze polaczenie sie nie udalo - i nie ma do dyspozycji wyjatkow. Takich funkcji jest multum. Pewnie ze lepiej kaby byly obiekowe + korzystaly z wyjatkow, ale tak nei jest.

Cytat
// z jakiegos powodu w zmiennej jest false, a nie tablica
$aMyArray = false;
echo implode('.', $aMyArray);


1. Funkcja ktora ustawila $aMyArray na false, nie mogla inaczej wskazac nieprawidlowego wykonania (nie korzysta przeciez z wyjatkow), zwracanie pustej tablicy moglo by byc niewskazane bo moglo by oznaczac np. plik jest pusty (dla file()) zamiast plik nie istnieje, itd.

2. Jesli funkcja moze ci zwrocic false, to Ty, powinienes sprawdzic czy pozniej ta wartosc moze isc do funkcji implode().

Cytat
Przy ścisłej kontroli typów nie byłoby to możliwe

Przy scislej kontroli typow mozesz dostac null'a - czyli jest to mozliwe, ale sie rzuca wyjatkiem.
Go to the top of the page
+Quote Post
batman
post
Post #27





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Cytat
Przy scislej kontroli typow mozesz dostac null'a - czyli jest to mozliwe, ale sie rzuca wyjatkiem.
Oczywiście przy założeniu, że jest to PHP. Jak na razie nie spotkałem się jeszcze z sytuacją, w której C# zwraca mi null, a nie rzuca wyjątkiem.

Cytat
2. Jesli funkcja moze ci zwrocic false, to Ty, powinienes sprawdzic czy pozniej ta wartosc moze isc do funkcji implode().
I tak też robię, jednak jest to klepanie dodatkowego kodu, który rak naprawdę nic nie wnosi do aplikacji.

Różne notacje powstały po to, by pomóc programistom w takich sytuacjach. Notacja węgierska najlepiej nadawała się do PHP, ponieważ jasno dawała do zrozumienia (przy poprawnie napisanym kodzie) co w zmiennej piszczy. Jednak z nadejściem epoki IDE podpowiadających składnię, zapis węgierski nie jest już potrzebny, ponieważ IDE pokaże co znajduje się w zmiennej.

Nie zmienia to jednak faktu, że PHP nie jest user frienly i to edytor musi korygować błędy języka.
Go to the top of the page
+Quote Post
erix
post
Post #28





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Daleko szukać: mysql_query - zwraca albo zasób albo false.

A ktoś używa czystej implementacji tych funkcji...? Zawsze jest jakiś sterownik albo PDO. No czasem mysqli, ale cóż...
Go to the top of the page
+Quote Post
batman
post
Post #29





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Cytat(erix @ 27.06.2009, 20:27:46 ) *
A ktoś używa czystej implementacji tych funkcji...? Zawsze jest jakiś sterownik albo PDO. No czasem mysqli, ale cóż...
To był tylko przykład. Takich funkcji jest cała masa.
Go to the top of the page
+Quote Post
ndx
post
Post #30





Grupa: Zarejestrowani
Postów: 17
Pomógł: 6
Dołączył: 11.11.2005

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


Cytat(batman @ 27.06.2009, 09:04:47 ) *
I tutaj dochodzimy do największej wady PHP - brak ścisłej kontroli typów. Pół biedy, gdyby funkcje zwracały zawsze ten sam tym danych, a nie raz zasób, a raz bool.

PHP jest językiem typowanym dynamicznie, więc to nie jest wada języka...
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 11.12.2025 - 21:34