MS STUDIO grupa Największa baza logotypów różnych firm Wybierz sobie jakiś fajny prezent...

Po co jakiś standard?

Po co jakiś standard?
Styl pracy nad projektem
Przygotowanie projektu
Tworzenie nazw
Komentarze
Nawiasy i spacje
Układ strony
Kodowanie HTML
Istotne warunki co do kodowania PHP
Kodowanie baz danych

A życie mogło być tak proste...

Wkład w powstanie niniejszej standaryzacji wnieśli (układ alfabetyczny): antyqjon, roodee, Sl@o

Podczas prac nad standaryzacją korzystano z opracowań:

oraz uwag z grupy dyskusyjnej pl.comp.lang.php i licznych gości na forum Skorosze.pl

Po co jakiś standard?

Niniejsze opracowanie opiera się na dyskusji grupy projektowej i jest częścią projektu Open Source. Niniejszym standaryzacja ma system otwarty, może być modyfikowana, rozbudowywana, skracana, etc, Autorzy liczą jednak na informowanie o naniesionych poprawkach w celu aktualizacji niniejszej standaryzacji.

Określenie to ma sprzyjać powstaniu łatwego do przeglądania i modyfikowania kodu PHP. Nie mniej ważnym celem jest konieczność określenie konwencji pisania aplikacji.

Niniejszy standard kodowania jest bliski tradycyjnej unixowej formule kodowania. Jednakże w wielu miejscach zdecydowano się na rozwiązania praktyczne, które stały w sprzeczności z podejściem tradycyjnym. Ale się będą wkurzać :-)).

Dlaczego nie warto stosować standaryzacji w oprogramowaniu Open Source?

Standaryzacja to straszna przeszkoda i same kłopoty.

A teraz już serio :-)))))


Styl pracy nad projektem

Z uwagi na tworzenie systemu Open Source:


Przygotowanie projektu


Tworzenie nazw

Nazwy są jednym z kluczowych elementów kodu PHP - sercem aplikacji.

Nazwy powinny opisywać to co nazywają i do czego służą w sposób jak najbardziej jednoznaczny.

Zaleca się unikanie w opisowej części więcej członów niż trzy, gdyż zazwyczaj utrudnia to zrozumienie kodu niż poprawę jego czytelność. Poza tym takie nazwy są bardziej przemyślane i rzadko potrzebują więcej członów niż 3.

Pakiety

Wszystkie, rozdzielane podkreśleniem, człony nazwy pakietu powinny być pisane wszystkim dużymi literami.

 Np.
  OPEN_SOURCE

Klasy

Klasy powinny być jak najdokładniejszymi ich opisami. Jeśli to możliwe to zaleca się unikanie skrótów. Każdy człon nazwy powinien być pisany z dużej litery, a człony powinny być rozdzielane za pomocą podkreślenia.

 Np.
  Logowanie, Logowanie_Uzytkownika, Wprowadzenie_Nowego_Szablonu

W przypadku korzystania z biblioteki klas, jako prefiksu należy użyć nazwy pakietu.

 Np.
  OPEN_SOURCE_Wprowadzenie_Nowego_Szablonu

Funkcje i Metody

System ten nazywany jest "camel caps". Nazwa pochodzi od wyglądu napisu, który przypomina garby wielbłąda. Pierwszy człon nazwy jest pisana z małej litery, a każdy następny wyraz z dużej, a dodatkowo brak jest znaku (spacja to też znak) rozdzielającego. W przypadku funkcji należy stosować (a przynajmniej się zaleca) prefiksów określających nazwę pakietu, z którego pochodzą funkcje, co zapobiegnie kolizji między pakietami.

 Np.
  polacz(), pobierzDane(), OPEN_SOURCE_specyfikujPotrzeby();

Zalecane skróty sufiksy

 Np.
  OdpowiedziMax - maksymalna liczba możliwych odpowiedzi,
  OdpowiedziCnt - aktualna wartość odpowiedzi

Zalecane skróty prefiksów (na początku duże litery!!!):

 Np.
  IsOdpowiedz - Czy jest odpowiedź?

Żaden z członów nie powinien składać się z dużych liter, nawet gdy ten człon jest skrótem, lub powszechnie uznawaną formą zapisu.

 Np.
  Poprawnie:    GetHtmlStatystyka
  Niepoprawnie: GetHTMLStatystyka

W przypadku funkcji w tzw. klasach prywatnych zaleca się je poprzedzać pojedynczym podkreśleniem.

 Np.
  _sortuj(), _inicjujDrzewko(), $this ->_status

Wartości stałe

Wszystkie człony nazwy powinny być pisane wszystkimi wielkimi literami łączonymi podkreśleniami. W przypadku, gdy wartość ma związek z nazwą klasy/pakietu to jej/jego nazwa powinna być zapisana wielkimi literami.

Zmienne

Wszystkie człony pisane małymi literami i rozdzielone podkreśleniem.

Elementy tablic

Pisane podobnie jak zmienne. Nigdzie nie używaj myślnika "-". Zawsze używaj apostrofów lub cudzysłowów do wyodrębnienia elementów.

 Kod:
  $myarr['foo_bar'] = 'Hello'		//poprawnie
  $myarr['foo-bar'] = 'Hello'		//niepoprawnie

Wartości globalne

W razie potrzeby definiowania wartości globalnych ich nazwa powinna być poprzedzona prefiksem w postaci pojedynczego podkreślenia, nazwy pakietu oraz kolejnego podkreślenia.

 Kod:
  $_OPEN_SOURCE_jaki_ladny_jest_swiat

Wartości predefiniowane

Takie wartości jak true, false, null powinny być pisane z małej litery.

Nazwy w bazach danych SQL

W przypadku nazw pól to nie jest istotny warunek, gdyż nazwy pól są zawsze poprzedzane prefiksem od nazwy tablicy.


Komentarze

Zazwyczaj, po przygotowaniu skryptu, gdy patrzymy na pięknie napisany kod widząc jego przejrzystość jesteśmy zafascynowani, że nawet nie potrzeba słowa komentarza. Wszystko jest oczywiste. Ale już tydzień później tak oczywistym to nie jest, a po miesiącu... Po trzech to już czara magia.

No cóż każdy przez to przeszedł.

Komentarze powinny opisać jak wszystko działa. W zasadzie nigdy komentarzy zbyt wiele, ale jak pominiesz to, że "obiecałeś zrobić coś z tym plikiem tydzień temu, ale, że zabalowałeś, to dopiero zabrałeś za niego trzy dni później a tak naprawdę to robisz dopiero dzisiaj i strasznie boli Cię głowa, etc... to chyba się nikt nie pogniewa.

Nagłówek

Każdy plik powinien zawierać informacje według poniższego wzoru, gdzie cześć:

Poniżej przedstawiam przykład takiego nagłówka:

 Kod:
/* nazwa edytora:
+-------------------------------------------------------------------+
| PHP version 4                                                     |
+-------------------------------------------------------------------+
| index.php                                                         |
+-------------------------------------------------------------------+
| Niniejszy plik jest częścią projektu System Obsługi Stron WWW     |
+-------------------------------------------------------------------+
| 1. Czynność pierwsza jaka robi niniejszy plik                     |
| 2. Czynność druga                                                 |
| 3. Czynność trzecia                                               |
| 4. Czynność czwarta                                               |
| 5. Czynność piąta                                                 |
+-------------------------------------------------------------------+
| Zmienne:                                                          |
|    $zmienna1 - ot taki przykład                                   |
|    $zmienna2 - ot taki przykład                                   |
|    $zmienna3 - ot taki przykład                                   |
+-------------------------------------------------------------------+
|    haselka.php - bardzo wazny plik                                |
+-------------------------------------------------------------------+
|          OPROGROMAWANIE MOŻNA STOSOWAC POD WARUNKIEM,             |
|        ZE UWAZA SIĘ I Z TY ZGADZA DO TEGO CO NASTEPUJE:           |
| Autorzy nie ponosza odpowiedzialnosci za dzialanie programu. Cala |
| odpowiedzialnosc spoczywa na osobach konfigurujacych aplikacje    |
| lub w inny sposob korzystajacy z kodu                             |
| Prawa autorskie: Grupa programistów pracujących społecznie i bez  |
| jakichkolwiek pieniedzy w ramach projektow OPEN SOURCE.           |
| Pozostawiane jest prawo do swobodnego kopiowania, zmieniania kodu |
| jego upowszechniania na zasadach licencji GNU GPL.                |
|                                                                   |
| UWAGA:                                                            |
|       W przypadku wykorzystania niniejszego oprogramowania lub    |
| jego czesci należy umiescic niniejsza uwage, ze nikt nie ma prawa |
| do wlaczania niniejszego kodu w calosci lub tylko jego czesci     |
| do aplikacji, za które będzie pobieral jakiekolwiek wynagrodzenie |
| Kod ten powinna być zawsze dostepna dla wszystkich bezplatnie     |
| Z tego ograniczenia sa zwolnieni wszyscy, którzy sa wskazani jako |
| autorzy w projekcie wskazanym w naglowku.                         |
+-------------------------------------------------------------------+
| Autorzy:                                                          |
|     rooddee <roodee.serwer.com>                                   |
|     ktos_inny <ktos_inny.polbox.com>                              |
+-------------------------------------------------------------------+
*/

Za autorów uważa się inicjatorów powstania kodu wraz z osobami, które dokonały przynajmniej od 10% do 20% zmian w kodzie. Prosta reorganizacja kodu i poprawienie błędów nie może być uważana za wystarczającą podstawę do dodania do listy autorów.

Komentarze w kodzie PHP:

 Kod:

  /* Jedna linia komentarza (zajmuje całą linię)  */

  Kod();		// Komentarz w tej samej linii, w której znajduje się linia.

  /*
    Bardzo ważna jedna linia komentarza
  */

  /*
    Wielowierszowy komentarz. Tutaj już mogą znaleźć całe
    zdania. Wyglądem swym przypominają paragraf
  */

Używany w perlu i shelu sposób komentowania przy pomocy # jest nie poprawny!!!

Słowa specjalne w komentarzach

W komentarzach stosuje się również słowa specjalne. Mogą one być pomocne w czasie parsowania skryptu.

 :TODO: topic
  Oznacza, to co jest do zrobienia, po to by o tym nie zapomnieć

 :BUG: [ID_bledu] topic
  tak wpisujesz zauważone błędy, wyjaśniasz co się tutaj dzieje oraz podajesz prawdopodobne przyczyny błędu - ewentualnie nadaj błędowi ID

 :KLUDGE:
  Jeśli nie jesteś zadowolony z wykonanej pracy, to poinformuj o tym i napisz co byś zmienił, gdybyś miał więcej czasu. Ale bez fałszywej skromności :-)

 :TRICKY:
  Poinformuj, że ta część kodu może kryć niespodzianki, tak, by jeśli ktoś chce zmieniać kod, najpierw dobrze to przemyślał.

 :WARNING:
  Ostrzeżenie przed czymś

 :PARSE:
  Czasami nie da się nic zrobić z kodem i trzeba obejść problem. Powiadom o tym.

 :ATTRIBUTE: value
  Możesz tworzyć własne atrybuty o nazwach stworzonych przez siebie.

W przypadku stosowania słów kluczowych w komentarzach wskazane jest by słowo kluczowe było pierwszym słowem komentarza, a następnie nazwa zapisującego komentarz i data wpisu w formacie YYMMDD oraz nazwa problemu. Poniżej należy opisać problem.

 Np.:
 /*
  * TODO: Sl@o 020907 dokończyć ten standard kodowania
  * Musze czym szybciej dokończyć ten system kodowania i umieścić
  * go na forum, by inni go skomentowali i nanieśli
  * własne poprawki. Mam nadzieje, ze nie skrzyczą.
 */

Nawiasy i spacje

Nawiasy klamrowe {}

Nawiasy ()


Układ strony

Najważniejszym celem standaryzacji jest pisanie czytelnego i zrozumiałego dla innych kodu.

  1. Szerokość strony

  2. Wcięcia:

  3. Jeśli istnieje konieczność złamania wiersza kodu ze względu na kod, to należy tak go złamać, by poniższa cześć kodu była dokładnie poniżej pierwszej zmiennej w wyższym wierszu.
 Kod:
  $rezultat = stworz_uzytkownika ($uzytkownik, $haslo, $nazwisko
				  $telefon, $email)

Kodowanie HTML

Kodowanie HTML opiera się na rekomendacji Konsorcjum W3 co do XHTML.


Istotne warunki co do kodowania PHP

Wskazania i preferencje co do kodowania PHP

Obsługa błędów


Kodowanie baz danych

Kodowanie PHP na styku z SQL i tablicami

Kod należy pisać tak, by łatwo było go modyfikować, a szczególnie odpluskwiać. Wyniki zapytań zawsze musza być sprawdzane pod względem zwracanych wyników i zgłaszanych wyników.


[ POCZĄTEK ] |  [ MENU ] |  [ KONIEC ]


Rozbierz laleczkę. Lalki dla dorosłych i dla dzieci

Jeżeli spodobały ci się nasze strony możesz je Dodać do Ulubionych lub ustawić tą stronę jako swoją Stronę główną. Możesz też wysłać swojemu znajomemu lub znajomej LINK do naszej strony.

Strona główna     Dodaj do ulubionych Dodaj do ulubionych     Ustaw jako stronę główną Ustaw jako stronę główną     Wyślij link znajomemu/znajomej

Z TEJ STRONY SKORZYSTAŁO JUŻ: OSÓB