Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Standardy kodowania [scanner]
scanner
post 26.04.2004, 22:37:32
Post #1





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




Dyskusje na temat artykułu http://wortal.php.pl/phppl/wortal/artykuly...dardy_kodowania


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post 22.08.2009, 23:34:31
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Osobiście uważam, że standardy są od tego, by się do nich stosować. Sam "wychowywałem się" na C++ i na studiach wiele z nich mi wtłoczono. Czy to tyczących składni, czy też pisania dokumentacji projektowej itp. Wiele z nich po czasie stało się podświadomych i trudniej mi się połapać w "radosnej twórczości". Co do spacji i tabulatorów, to tak naprawdę wychodzi ten drobiazg przy komentowaniu kodu zazwyczaj, bo tam głównie dba się o to by pewne informacje były w określonym miejscu i tam tabulacja zawodzi w głównej mierze.
Spacje pomiędzy nawiasami przy liście parametrów funkcji to już standard dla mnie bo czytanie jednolitych bloków w momencie gdy do funkcji jako parametr przesyłam wartości zwracane przez inną kilkukrotnie czasem zagłębioną (wiem... tracę przy tym na wydajności, ale czasem już tak jest) to potworki w stylu
  1. funkcja(funkcja2(argument2_1,funkcja3()),parametr2,funkcja3())

są mniej czytelne niż
  1. funkcja( funkcja2( argument2_1, funkcja3() ), parametr2, funkcja3() )

Nawiasy klamrowe po funkcji przejąłem wrzucać zaraz po liście argumentów, bez przechodzenia do nowej linii, co dla mnie wygodniejsze zresztą, bo późniejsze zagłębianie sprawia, że taki kod jest nieco czytelniejszy, gdyż widać więcej kodu na tym samym poziomie zagnieżdżenia.
  1. if( warunek ) {
  2. if( warunek ) {
  3. instrukcje;
  4. } else {
  5. instrukcje;
  6. }
  7. } elseif {
  8. instrukcje;
  9. } else {
  10. instrukcje;
  11. }

  1. if( warunek )
  2. {
  3. if( warunek )
  4. {
  5. instrukcje;
  6. }
  7. else
  8. {
  9. instrukcje;
  10. }
  11. }
  12. elseif
  13. {
  14. instrukcje;
  15. }
  16. else
  17. {
  18. instrukcje;
  19. }
A teraz wyobrazić sobie trzeba, że tych instrukcji warunkowych, pętli itp., jest w kodzie znacznie więcej. Łatwiej ogarnąć całość przy pierwszej szkole zapisu, gdyż jest on zwięźlejszy. Ten kto stosuje skrótowe zapisy instrukcji warunkowych rozumie
  1. echo ( warunek) ? instrukcja : instrukcja;

, ale gdy ktoś zobaczy coś takiego pierwszy raz zapewne nie przyjdzie mu do głowy, ze jest to odpowiednik znanego mu
  1. if( warunek) {
  2. echo instrukcja;
  3. } else {
  4. echo instrukcja;
  5. }

Zresztą sam jestem zwolennikiem stosowania skrótów tam gdzie to możliwe i nieraz stosuję formę
  1. if( warunek )
  2. echo instrukcja;
  3. else
  4. echo instrukcja;

a gdy nie ma else, po prostu
  1. if( warunek ) echo instrukcja;

które to formy są dopuszczalne i w przypadku jednej instrukcji skracają kod, bez utraty jego czytelności. W końcu po coś te formy skrótowe zostały wymyślone. Albo by zmniejszyć kod w określonych przypadkach, albo dla zachowania zgodności składniowej z innymi językami.

Z C++ wyniosłem też pisanie obiektów z małej oraz klas z dużej. Dopiero PHP wniósł dodatki związane z opisem typu w zmiennej. Jako że akurat pod tym względem C++ wymusza jawne podawanie tego podczas tworzenia kodu, a niemal każda konwersja musi być jawna, nie musiałem tego wcześniej stosować. Do tej pory mam odruchy w PHP by robić rzutowania, nawet dla typów wbudowanych winksmiley.jpg Inna sprawa, że PHP mi na to także pozwala. Dlatego, mimo różnic w pewnych rzeczach, dobrze mi się pracuje z wersją 5.

Jak dla mnie pominięto w artykule choćby:
a) stosowanie spacji podczas wyrażeń arytmetycznych. Wiele osób całkowicie to ignoruje, co prowadzi do jego zlewania się w jeden wielki ciąg, który fatalnie się czyta,
cool.gif stosowanie podkreślenia na początku zmiennej by oznaczyć ją jako tymczasową (w obrębie funkcji wewnętrznej, pętli czy tego typu sytuacjach), co pozwala na szybsze połapanie się w tym, które są ważne. Wiem, że kłóci się to trochę z $_POST, $_GET i innymi ale te akurat zawsze są z dużych i znane każdemu więc się nie pomyli nikt raczej winksmiley.jpg
c) nie stosowanie podwójnego podkreślenia, bo te w wielu językach są zarezerwowane dla słów specjalnyc, co może spowodować pomyłki przy odbiorze kodu,
d) jednolitość pisowni zmiennych bool, bo stosuje się warianty: TRUE, true, True.

Oczywiście można by dodać jeszcze kilka innych winksmiley.jpg


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post

Posty w temacie
- scanner   Standardy kodowania [scanner]   26.04.2004, 22:37:32
- - Wankster   Czy komentarze phpDoc'a nie zaczynają się od /**?   26.04.2004, 22:49:45
- - Seth   Jest maly blad w wygladzie komentarzy. Nie tak: Ko...   26.04.2004, 23:17:22
- - PMadej   a ja myslalem ze moj kod jest w miare standaryzowa...   26.04.2004, 23:23:56
- - Dawid Pytel   Mnie zaciekawiła kwestia tabulator vs spacje. Jaki...   27.04.2004, 00:11:47
- - Bakus   Artykuł coudwny i jak widzę nie wiele się standard...   27.04.2004, 02:09:30
- - scanner   Poprawiłem literówki w opisie "Komentarzy".   27.04.2004, 06:19:14
- - wassago   Artykul podoba mi sie, choc mam nieco inne przyzwy...   27.04.2004, 08:04:15
- - HaRy   ciekawy art. teraz nic, tylko sie przyzwyczajac do...   27.04.2004, 08:39:59
- - kszychu   Co do struktur kontrolnych: standart PEAR zaleca, ...   27.04.2004, 09:38:04
- - DavidPL   Wszystko okej, ale dlaczego nie ma nic wspomniane ...   27.04.2004, 11:31:27
- - DeyV   co do standardów - tworząc ten dokument - staraliś...   27.04.2004, 11:39:04
- - shima   Możecie napisać, czemu tabulatory są zabronione?   27.04.2004, 13:12:26
- - wassago   hmm.. po prostu uzywa sie jako wciec spacji - zaws...   27.04.2004, 13:19:37
- - shima   Cytathmm.. po prostu uzywa sie jako wciec spacji -...   27.04.2004, 14:02:22
- - lukaswoj   Odnosnie Tab'ow Wg mnie tak na zdrowy rozum powod...   27.04.2004, 14:27:37
- - shima   CytatOdnosnie Tab'ow Wg mnie tak na zdrowy rozum ...   27.04.2004, 14:57:34
- - DeyV   a ja mam ustawione tak, by naciśnięcie tam, wstawa...   27.04.2004, 15:29:01
- - shima   Cytata ja mam ustawione tak, by naciśnięcie tam, w...   27.04.2004, 15:36:59
- - Bonhart   a Polacy gesi   29.04.2004, 08:37:26
- - scanner   Re: a Polacy gesi   29.04.2004, 08:43:12
- - Bonhart   Re: a Polacy gesi   29.04.2004, 11:25:25
- - wassago   @shima: jeszcze cos dla Ciebie http://www.jwz.org/...   30.04.2004, 08:04:50
- - shima   Cytat@shima: jeszcze cos dla Ciebiehttp://www.jwz....   30.04.2004, 13:54:33
- - szafranek.net   Bardzo fajny artykuł, na pewno wykorzystam niektór...   2.05.2004, 12:12:22
- - Bora   Spoko artykulik ale brakuje paru rzeczy Bardzo faj...   4.05.2004, 22:47:15
- - invx   ja niewiem po co przy nazwach zmiennych pisac jej ...   5.05.2004, 17:35:36
- - scanner   Po to, żeby się nie pogubić i uczynić kod czytelni...   5.05.2004, 17:42:58
- - wassago   CytatSpoko artykulik ale brakuje paru rzeczy Bardz...   5.05.2004, 19:02:17
- - Bora   bajer. phpdoc jest bardzo fajnym standardem koment...   5.05.2004, 20:20:10
- - treewood   ja troszeczke inaczej definiuje zmienne. szkoda mi...   1.06.2004, 11:56:56
- - DeyV   tak przygladając się różnym standardom, również do...   1.06.2004, 12:30:31
- - treewood   ad2. fakt nie zauwazylem ... ja nie praktyktuje cz...   1.06.2004, 12:38:15
- - sztosz   Nie mam może duzego doswiadczenia ale dla mnie o w...   2.06.2004, 12:34:18
- - scanner   Ja może powtórzę jeszcze raz, bo chyba nie wszyscy...   2.06.2004, 12:49:20
- - wassago   Cytat[...]Przy okazji, pragniemy ustandaryzować ni...   2.06.2004, 13:08:06
- - sztosz   Zgadzam się z tym, że jest to standard który jest ...   2.06.2004, 13:22:33
- - Sh4dow   Panowie, co ma spacja do czytelnosci kodu ? No ta...   2.06.2004, 13:59:17
- - treewood   Scanner napisal: "Każdy ma jakies swoje przyzwycza...   2.06.2004, 14:17:12
- - wassago   @sztos to jest tylko i wylacznie Twoje subiektywne...   2.06.2004, 14:20:08
- - DeyV   Naszym celem było przygotowanie standaru zaróno pr...   2.06.2004, 14:23:38
- - treewood   deyv napisal "zostanie wprowadzonych parę zmian." ...   2.06.2004, 14:29:04
- - Przemo`   Jak najbardziej zgadzam się z artykułem lecz stano...   3.06.2004, 00:30:56
- - DeyV   Ten temat był poruszany odrobinę wyżej. Przyczyny...   7.06.2004, 09:22:10
- - wassago   CytatNatomiast coraz przychylniej patrzę na propoz...   7.06.2004, 10:01:44
- - hawk   To ja dorzucę też swoje 2 grosze :wink: : 1. Nota...   7.06.2004, 10:09:40
- - DeyV   Cytatnie ma narzędzia które potrafi zaaplikować to...   7.06.2004, 13:08:22
- - cagrET   CytatObiekty - wzorem innych języków  propono...   7.06.2004, 13:51:59
- - shima   Kiedy, po długim czasie pisania "jak leci" zdecydo...   7.06.2004, 13:55:32
- - sztosz   @cagrET: Co do przejrzystosci kodu nie sposób się ...   7.06.2004, 14:16:41
- - hawk   Hmm, przyznaję się bez bicia że to co preferuje ca...   7.06.2004, 15:03:39
- - treewood   wassago napisal: "thanks = thx = t (!?)" no nie ....   8.06.2004, 11:45:54
- - kodereq   Chciałem zapytać jak najłatwiej osiągnąć te wcześn...   2.05.2009, 12:00:14
- - Crozin   To zależy od edytora w jakim pracujesz. Większość ...   2.05.2009, 12:03:57
- - kwiateusz   a czemu odradzasz? o ile wiem to spacje wszedzie w...   2.05.2009, 14:33:27
- - Crozin   Dlatego, że dla mnie akurat idealną długością wcię...   2.05.2009, 14:43:53
- - orglee   Pozwolę sobie odgrzać tego zielonkawego już kotlet...   11.08.2009, 01:27:35
- - Tomplus   Wg. mnie w tym artykule powinno być zaznaczone że ...   11.08.2009, 06:19:21
- - erix   czytelność jest większa (sam kolor nie wystarczy, ...   11.08.2009, 08:59:38
- - Tomplus   No to powinien być jeszcze jeden taki podpunkt. A...   11.08.2009, 11:00:53
- - lars_91   Trochę od siebie. 1. Wcięcia - jak dla mnie wcinan...   17.08.2009, 10:41:00
- - erix   Cytat2. Nawiasy klamrowe - Wg. mnie czytelniejsze ...   17.08.2009, 11:38:33
- - thek   Osobiście uważam, że standardy są od tego, by się ...   22.08.2009, 23:34:31
- - albrzykowski   Witam, Tutaj też jest trochę o standardach kodowa...   5.12.2009, 12:01:53
- - orglee   Wydaje mi się że to już nie ma co się czepiać, tyl...   5.12.2009, 20:02:02
- - emp   Standard kodowania jest jeden. Netbens. Prawy przy...   5.02.2010, 01:43:59
- - erix   A przeczytałeś ten wątek? Ja akurat NetBeans/Eclip...   5.02.2010, 18:46:08
- - Volume   Ja nie uwazam zeby watek archiwizowac wg mnie prob...   9.05.2010, 18:36:26
|- - pitbull82   Cytat(Volume @ 9.05.2010, 19:36:26 ) ...   9.11.2010, 15:01:15
- - kulczycki   CytatStandard kodowania jest jeden. Netbens. Prawy...   30.12.2010, 00:27:03
|- - phpion   Cytat(kulczycki @ 30.12.2010, 00:27:0...   3.01.2011, 13:08:16
- - kulczycki   Phpion to nie z javyscript a z c++. I nie wiem co ...   3.01.2011, 22:53:40
- - phpion   Nie mówię skąd się wywodzi CamelCase - odniesienie...   4.01.2011, 07:26:39
- - kulczycki   A masz na myśli nazwy zwykłych funkcji czy też met...   4.01.2011, 07:37:47
- - Crozin   @phpion: Nie podawaj tutaj PHP jako przykładu języ...   4.01.2011, 12:47:29
|- - Dejmien_85   Cytat(Crozin @ 4.01.2011, 13:47:29 ) ...   8.10.2014, 23:26:21
- - darko   Odkurzam. W zalinkowanym artykule w temacie lista ...   4.05.2011, 22:22:19
- - irekk   StudlyCaps znam jako PascalCase. snake_case czesci...   2.11.2014, 18:07:53
|- - Dejmien_85   Cytat(irekk @ 2.11.2014, 18:07:53 ) S...   5.11.2014, 08:52:48
- - com   Wiem że troche odgrzebuje, ale wisi od lat jako os...   23.06.2022, 23:27:20
- - Salvation   PSR-12. Każdy inny standard użyty w kodzie, to ...   24.06.2022, 12:44:34
- - com   @Salvation tak do tej pory było to PSR-12 ale obec...   14.07.2022, 15:07:11


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

 



RSS Wersja Lo-Fi Aktualny czas: 19.04.2024 - 00:42