Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Spacje czy tabulatory jak wcięcie, Oraz inne zasady Coding Style
wookieb
post
Post #1





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




Witajcie

Od lat używam znaku tabulacji do robienia wcięć w kodzie. Dlaczego TAB? Ponieważ wg mnie jest to klawisz do robienia właśnie tego typu rzeczy, czyli wcięć i odstępów.
Wielkość TAB-a można bez problemu zmienić nawet w VIM-ie
Taby łatwo zaznaczyć. Kopiowanie kodu z TAB-ami do innego kodu z TAB-ami jest łatwe. W przeciwnym wypadku jesteś zależny od preferencji poprzedniego autora kodu oraz jego rozmiaru monitora.
Dla mnie powyższe argument są niezbywalne. Mam wrażenie, że używam właściwego narzędzia do właściwych rzeczy.

Problem narodził się wtedy gdy chciałem zacząć używać PHP_CodeSniffer to sprawdzania składni kodu. Zassałem sobie standard Symfony2 i BUM. Nie można używać tabulatorów jako wcięć.
Noż cholera... chciałem w swoim projekcie użyć standardu Symfony2 i nie chcę zbytnio odbiegać od reszty ale spacje jako wcięcia? Dlaczego?
Czy wy stosujecie spacje? A może tabulatory?

Inne ciekawe standardy, których używam i nie zmienię:

Znak _ przed nazwami właściwości, metod prywatnych oraz chronionych -
Jak czytam kod to od razu wiem, że metoda jest prywatna albo chroniona i nie obchodzi mnie jej użycie publicznym API.
W dodatku metody ze znakiem "_" na początku są wygodnie sortowane w oknie podpowiedzi.

[i] Każdy if, switch i inne blokowe elementy zawsze posiadają klamry [i]
Wg poniższego schematu
  1. if ($someCondition === $anotherVariable) {
  2.  
  3. }

Ma to ogromne znaczenie dla Xdebug-a przy generowaniu pokrycia kodu

Jak u was ze standardami Coding Style?


--------------------
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Ja też używam TABów.

Raz mnie przekonywali, że to zły pomysł bo coś tam i coś tam. No za cholerę nie mogłem skumać w czym jest gorszy TAB od piętnastu spacji. Coś tam mówili właśnie o edytorach.... no ale sorki, jak edytor nie rozpoznaje TABa to znaczy, że to edytor jest do 4 liter a nie TAB.

Także nie przekonano mnie w żaden sposób do spacji. Na grzyba mój kod ma rosnąć w bajty, bo jakiś edytor TABa nie rozpoznaje poprawnie...


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

"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
wookieb
post
Post #3





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




Zapewne chodzi im o VIM w konsoli i nie znają polecenia
Kod
:set ts=4


--------------------
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Akurat mówiono o innym edytorze...chyba.... tak czy siak paranoja jakaś smile.gif

Zachęcam zwolenników spacji do wypowiadania się - może w końcu zrozumiem, dlaczego ja i wookieb jesteśmu "durni" używając TABa smile.gif


A wookieb, padał też cud argument, że w edytorach mogę sobie przecież ustawić, by edytor sam intpretował wciskany TAB jako 4 spacje. Normalnie bajka....


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

"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
Theqos
post
Post #5





Grupa: Zarejestrowani
Postów: 49
Pomógł: 8
Dołączył: 5.12.2008

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


http://www.codinghorror.com/blog/2009/04/d...e-infidels.html

Cytat
Choose tabs, choose spaces, choose whatever layout conventions make sense to you and your team. It doesn't actually matter which coding styles you pick. What does matter is that you, and everyone else on your team, sticks with those conventions and uses them consistently.

That said, only a moron would use tabs to format their code.
Go to the top of the page
+Quote Post
pedro84
post
Post #6





Grupa: Nieautoryzowani
Postów: 2 249
Pomógł: 305
Dołączył: 2.10.2006

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


No to dołączam do szacownego grona "durnych" biggrin.gif

Spacje sracje. Używam TABów. Próbowałem się przekonać w Symfony 2, nie wyszło i już chyba nie wyjdzie smile.gif


--------------------
Google knows the answer...
Go to the top of the page
+Quote Post
lobopol
post
Post #7





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

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


Czyli będę dziwny, używam spacji. Jakie są moje powody?
1. W firmie wszyscy używają
2. Mniejsze problemy przy uruchamianiu kodu na cudzych edytorach (nie zawsze mam ze sobą komputer u znajomych, a mam coś pokazać, a osoba akurat ma dziwny edytor)
3. Ludzie nie będą z moim kodem takich cyrków jakie ja miałem z kodem jednej osoby (używała tabów, ale w swoim edytorze miała ustawioną długość wyświetlania taba na 1-2 spacje i po przejęciu kodu miałem bardzo szerokie okno edycji)



--------------------
Go to the top of the page
+Quote Post
wookieb
post
Post #8





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




2) Nie spotkałem jeszcze edytora dla programistów, który nie obsługuje tabulatorów. Notatnik to nie edytor dla programistów
3) i własnie wtedy sobie ustawiasz, że tab to 4 spacje i po kłopocie.


--------------------
Go to the top of the page
+Quote Post
lobopol
post
Post #9





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

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


wowkieb
2Teraz to już rzadkość, ale częściej potrafi się zdarzyć dziwna konfiguracja długości tabów
3. tylko co mi to daje jak dostaje kod który ma taby użyte dosłownie jak spacje? Nie będę przecież do każdego cudzego kodu przestawiał sobie edytora. Szczególnie, że nie działam na jednym projekcie naraz.


--------------------
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
tylko co mi to daje jak dostaje kod który ma taby użyte dosłownie jak spacje?
No i właśnie dlatego TABa powinno się używać jak TABa a nie jak x spacji smile.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
#luq
post
Post #11





Grupa: Zarejestrowani
Postów: 589
Pomógł: 91
Dołączył: 22.05.2008
Skąd: Gliwice

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


Cytat(nospor @ 18.02.2012, 16:23:41 ) *
No i właśnie dlatego TABa powinno się używać jak TABa a nie jak x spacji smile.gif


Dokładnie. Ustawiacie edytor żeby interpretował taba jako X spacji.
Żaden argument za używaniem spacji nie przekona mnie do korzystania z niej do wcięć bo wszystkie argumenty bije jeden:
[tab] to jedno naciśnięcie na wcięcie, [spacja] to przynajmniej 2 naciśnięcia na wcięcie.


Co do stylu pisania korzystam jeszcze z 2 ciekawych rzeczy:

1. Zawsze piszę:

  1. if(true == $foo)
  2. // nie if($foo == true)


wtedy jak się walne o jedno "=" mam wypluwanego errora.

2. Odwrócenie warunku & return

Mając taki kod w jakiejś metodzie

  1. if($foo == $bar){
  2. // duzo linijek kodu
  3. }
  4. else{
  5. $zar = true;
  6. }


Odwracam go i wale returna, tj:

  1. if($foo != $bar){
  2. $zar = true;
  3. return;
  4. }
  5.  
  6. // duzo linijek kodu


o wiele czytelniejsze

Ten post edytował #luq 18.02.2012, 16:51:04


--------------------
Moja gra - scraby.io
Go to the top of the page
+Quote Post
lobopol
post
Post #12





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

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


nospor co do tego to jest to oczywiste, ale problem się pojawia gdy ktoś robi takie numery, przy spacjach by tego już nie zrobił smile.gif.

Co do takich nietypowych rzeczy to przy zmiennych używam przedrostki określające typ zmiennej np.
  1. $iNumber = 10;
  2. $sString = 'string';
  3. $aArray = array();
  4. $oObject = new object();
  5. .itd


--------------------
Go to the top of the page
+Quote Post
wookieb
post
Post #13





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




Masz na myśli notację węgierską. Aktualnie niestosowaną. Jak zmienisz typ zmiennej to masz niezły refactoring w którym żadne narzędzie Ci nie pomoże.
Zrób to w teamie, gdzie chociaż jeden programista jest troszkę bardziej leniwy... pozamiatane.


--------------------
Go to the top of the page
+Quote Post
Crozin
post
Post #14





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


#luq: Porządny edytor powinien wyświetlić Ci ostrzeżenie o przypisaniu wartości w IF-ach, pętlach czy argumentach dla funkcji. Jakoś nigdy nie przekonam się do "waunków Yody" wink.gif

PS. Oczywiście do wcięć wyłącznie TAB.
Go to the top of the page
+Quote Post
lobopol
post
Post #15





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

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


wookieb na szczęście w pracy wszyscy stosują ten układ smile.gif.


--------------------
Go to the top of the page
+Quote Post
vokiel
post
Post #16





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


Tylko TAB, chociażby ze względu na ilość wcięć. Nie rozumiem osób, które podnoszą kwestię długości wcięcia przy tab'ach, argumentując to tym, że na innym komputerze, w innym edytorze wygląda gorzej - właśnie dzięki stosowaniu TAB'a można to ustawić zgodnie z indywidualnymi potrzebami. Za to zamiana ze spacji na tabulator już takiej możliwości nie daje.
Kolejna kwestia to edycja kodu ze spacjami w przypadku, gdy nie korzysta się z auto-formatowania i używa się tabulatorów. Mając element wysunięty za daleko, chcąc go "cofnąć" trzeba usunąć kilka znaków zamiast jednego.
Tabulator jest też wygodniejszy przy formatowaniu pionowych bloków, kolumn kodu.
  1. $krotka_zmienna = '2 tab';
  2. $bardzo_dluga_zmienna = '1 tab - nie liczę spacji';


Jeśli chodzi o klamry otwierające - zawsze na końcu linii nie w nowej. Chyba głównie przyzwyczajenie z JavaScript, ale przy okazji oszczędność linii, więcej widać na ekranie.

Ten post edytował vokiel 18.02.2012, 18:13:49


--------------------
Go to the top of the page
+Quote Post
#luq
post
Post #17





Grupa: Zarejestrowani
Postów: 589
Pomógł: 91
Dołączył: 22.05.2008
Skąd: Gliwice

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


Cytat(Crozin @ 18.02.2012, 17:34:02 ) *
#luq: Porządny edytor powinien wyświetlić Ci ostrzeżenie o przypisaniu wartości w IF-ach, pętlach czy argumentach dla funkcji. Jakoś nigdy nie przekonam się do "waunków Yody" wink.gif


Niestety WebStorm tego nie robi, ale mnie jakoś to nie przeszkadza, kwestia nawyku. Co do ostżeżenie przy przypisaniu w pętlach to ja bym miał takie często tongue.gif
  1. for($i = 0, $cnt = count($arr); $i < $cnt; $i++){

Więc mogłoby mnie to wkurzać, chyba że da się takie rzeczy konfigurować w IDE

Ten post edytował #luq 18.02.2012, 18:18:39


--------------------
Moja gra - scraby.io
Go to the top of the page
+Quote Post
Fifi209
post
Post #18





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Też używam tabulatorów, znacznie szybciej niż cykanie x razy spacji

Ostatnio zmieniłem też styl pisania z:
  1. if () {
  2.  
  3. }else{
  4.  
  5. }


na :
  1. if ()
  2. {
  3.  
  4. }
  5. else
  6. {
  7.  
  8. }


Kod staje się moim zdaniem bardzo czytelny, mimo że jest kilka linii więcej. Poza tym taki styl narzuca mi IDE do C# i się przyzwyczaiłem, piszę teraz tak we wszystkim.

I oczywiście to o czym pisał wookieb, czyli znak _ przed prywatnymi i chronionymi

Ten post edytował Fifi209 18.02.2012, 18:47:28


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
wookieb
post
Post #19





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




Czy tylko dla mnie wydaje się żenujące to jak mówicie, że aby uzyskać odstęp "4 spacji" to naciskacie spacje 4 razy? Na czym wy piszecie - na maszynie do pisania?
Przecież każdy edytor (nawet taki stary KED2) ma opcje ustawiania, że wcięcie to "spacje" albo "tabulator".

Jesteście ignorantami czy jak?
Powód edycji: [wookieb]:


--------------------
Go to the top of the page
+Quote Post
lobopol
post
Post #20





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

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


Ja mam w netbeans właśnie 4 spacje na taba ustawione, a Fifi zapewne nie wiedział, że tak można smile.gif


--------------------
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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 Aktualny czas: 21.08.2025 - 12:37