Standardy kodowania [scanner] |
Standardy kodowania [scanner] |
2.06.2004, 14:23:38
Post
#41
|
|
Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław |
Naszym celem było przygotowanie standaru zaróno przejżystego, jak również przyjaznego piszącym. Wiązało się to z pójściem na ustępstwa zarówno w jedną jak i drugą strone.
Jest to jednak standard cały czas rozwijany, i po ostatniej rozmowie developerów ustaliliśmy, że zostanie wprowadzonych parę zmian. Klika z nich wymieniłem w poście odrobinę wyżej, dzięki czemu mamy nadzieję, że stanie się on jeszcze łątwiejszy do opanowania (a chcę również zauwazyć, że w dużej części wprowadzone zmiany są włąśnie ukłonem w kierunku Javy, więc i Ty, treewood, powinieneś być zadowolony ) Cytat Podobnie ma sie sprawa zmiennych. Super wyjscie jest z tymi przedrostkami ... ale sami wiecie, ze dlugosc zmiennych wplywa na czas realizacji skryptu. Wiec z jednej strony optymalizacja a z drugiej czytelnosc kodu ...
ee - tu już przesadziłeś. idąc tym tropem moglibyśmy dojść do wniosku, ze tabulatory i spacje też tak działają, a komentarze w kodzie do już czyste marnotrastwo. Oczywiście - nikt nikogo nie będzie zmuszał do niczego, ale ... my będziemy raczej pisać tak, jak podaliśmy -------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
2.06.2004, 14:29:04
Post
#42
|
|
Grupa: Zarejestrowani Postów: 215 Pomógł: 0 Dołączył: 18.01.2003 Ostrzeżenie: (0%) |
deyv napisal
"zostanie wprowadzonych parę zmian." i ciesze sie bardzo ... bo mialem naprawde mieszane uczucia apropo tych standardow. wiekszosc poza tymi funkcjami i klasami jest akceptowalna i cieszy mnie to, ze czytajac ten artykul wiedzialem, ze praktykuje to juz od dawna u siebie ... "Oczywiście - nikt nikogo nie będzie zmuszał do niczego, ale ... my będziemy raczej pisać tak, jak podaliśmy" masz racje (apropo nazewnictwa zmiennych) to juz traktuje jako wlasne widzimisie i TYLKO propozycje " idąc tym tropem moglibyśmy dojść do wniosku, ze tabulatory i spacje też tak działają, a komentarze w kodzie do już czyste marnotrastwo." nie obracaj kota ogonem i nie uwypuklaj sprawy ... bo wiadome jest, ze $sCos przy pewnych zalozeniach jest rownie czytelne jak $strCos ... a braki komentarzy, tabulacji to sprawy nadrzedne i tego chyba NIKT sie nie czepia. nawiasem mowiac ja jak udostepniam skrypt to albo: - zakodowany w np. turcku - przekonwertowany przez program np. phpcleaner, ktory usuwa wszystkie komentarze i skraca nazwy zmiennych (optymalizacja) -------------------- Działam w OpenSolution.org, autor Quick.Cms i Quick.Cart już od ponad 10 lat
|
|
|
3.06.2004, 00:30:56
Post
#43
|
|
Grupa: Zarejestrowani Postów: 26 Pomógł: 0 Dołączył: 15.05.2004 Skąd: Kraków Ostrzeżenie: (0%) |
Jak najbardziej zgadzam się z artykułem lecz stanowczo nie zgadzam sie ze stwierdzeniem:
Cytat Jako wcięć powinno się używać 4 (czterech) spacji. Niedozwolone jest używanie znaku tabulacji Nie wiem kto to wymyslił, ale wg. mnie jest to całkowity bezsens, mimo tej zaciekłej wojny Po 1 trzeba "celować"/liczyc spacje, aby zachować równowagę. Po 2 poruszając sie po liniach w poziomie trzeba stracic więcej czasu na przebycie drogi . Po 3 dokument zawierający 400 spacji jest większy niż dokument zawierający 100 tabulatorów. Po 4 czasami zachodzi potrzeba włączenia w edytorze oznaczania spacji, np. kropkami, wówczas w dokumencie gdzie są spacje zamiast tabulatorów kompletnie nic nie widać.
Troche też nie zgadzam się ze spacjami wszedzie, po nawiasach okrąłych. Ja ich uzywam tylko w if ( $zmienna ) natomiast w innych funkcjach je omijam i zostawiam tylko po przecinkach za zmiennymi. Generalnie używam lekko zmodyfikowanych standardów phpBB uważam, że są dobre. Bardzo dobrze, że powstał taki polski dokument, jednak każde zastosowanie powinno mieć wyjaśnienie, bo inaczej ludzie to zignoruja i dalej będą pisac po swojemu. |
|
|
7.06.2004, 09:22:10
Post
#44
|
|
Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław |
Ten temat był poruszany odrobinę wyżej.
Przyczyny wprowadzenia spacji zamiast tabulatorów: 1. zawsze wyświetlane są tak samo (czego nie można powiedzieć o tabulatorach) a przegladanie dokumentów, gdzie częśc wciąć jest robiona przez spacje, a pozostała przez tabulatory potrafi być straszna. 2. większość edytorów posiada funkcję zastępowania tabulatora odowiednią ilością spacji. Natomiast coraz przychylniej patrzę na propozycje wprowadzenia notacji węgierskiej, tj. oznaczania typów danych 1 a nie 3 literami. Będziemy musieli to przedyskutować. -------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
7.06.2004, 10:01:44
Post
#45
|
|
Grupa: Przyjaciele php.pl Postów: 701 Pomógł: 0 Dołączył: 26.06.2002 Skąd: Londyn Ostrzeżenie: (0%) |
Cytat Natomiast coraz przychylniej patrzę na propozycje wprowadzenia notacji węgierskiej, tj. oznaczania typów danych 1 a nie 3 literami.
Nie wydaje mi sie aby taki sposob notacji byl lepszy od 3 znakowych prefiksow. Gdyby pomyslec nad tym to uzytkownik moze przez taka notacje zaostac wprowadzony w blad. Poza tym jak bardzo moze wplynac na szybkosc kody prefix 3 a 1 znakowy, wg mnie bardzo niewiele. Pamietajcie, czytelnosci przede wszytskim. thanks = thx = t (!?) -------------------- |
|
|
7.06.2004, 10:09:40
Post
#46
|
|
Grupa: Zarejestrowani Postów: 521 Pomógł: 0 Dołączył: 3.11.2003 Skąd: 3city Ostrzeżenie: (0%) |
To ja dorzucę też swoje 2 grosze :wink: :
1. Notacja węgierska php to chyba jedyny język, w którym jestem za, z uwagi na ogólną "beztypiczność". Zdecydowanie popieram treewooda, odnośnie stosowania jednego znaku zamiast trzech. Nie tylko jest to krótsze, ale i bardziej przejrzyste. Bo bVar występuje nawet w MSDNie, a blnVar byłoby naszym autorskim wynalazkiem. Wyjątkiem są fragmenty typu [php:1:ed3c86cf7b]<?php for ($i=0; $i<10; $i++) { //... } ?>[/php:1:ed3c86cf7b] Nie ma sensu zamieniać $i na $iI, $intI, $iIndex, $iTemp czy inne potworki. 2. Klasy, obiekty, metody Klasy - obowiązkowo z wielkiej litery, CamelCaps. Tu chyba nie ma żadnych wątpliwości. Obiekty - wzorem innych języków proponowałbym jednak pisać z małej litery. Jak już stosujemy notację węgierską, to o na początku powinno być obowiązkowe. Metody- zdecydowanie z małej. Pisanie z wielkiej nie ma żadnego uzasadnienia, za to bardziej upodabnia się do nazwy klasy. 3. Tabulatory Nie ma rady - ja też wolę tabulatory, ale muszą być 4 spacje i koniec. Tak swoją drogą - nie ma narzędzia które potrafi zaaplikować to wszystko co wymyślimy? Niedoścignionym wzorcem jest JBuilder, który potrafił wszystko przeformatować. |
|
|
7.06.2004, 13:08:22
Post
#47
|
|
Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław |
Cytat nie ma narzędzia które potrafi zaaplikować to wszystko co wymyślimy?
Heh - Zend Studio większośc z tych rzeczy potrafi, ale jakoś nie wydaje mi się, by mógł sie stać obowiązkowym narzędziem każdego z developerów php.pl Cytat Obiekty - wzorem innych języków proponowałbym jednak pisać z małej litery. Jak już stosujemy notację węgierską, to o na początku powinno być obowiązkowe.
To jednak uważam za zbędne. Wydaje mi się, że warto by w tym miejscu odstąpić od notacj węgierskiej, i zostawić Obiekty bez 'o' na poczatku, i zaczynając od dużej litery, celem zwiększenia czytelności kodu. Nikt nie broni nam od czasu do czasu być prekursorami. Nie grozi nam przecież pomyłka "czy to klasa czy obiekt?" a taki zapis znacznie ułatwia odwoływanie się do innych obiektów wewnątrz danego (to o czym pisałem wcześniej $Core->View->CośTam ) -------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
7.06.2004, 13:51:59
Post
#48
|
|
Grupa: Zarejestrowani Postów: 90 Pomógł: 0 Dołączył: 3.04.2003 Skąd: Opole Ostrzeżenie: (0%) |
Cytat Obiekty - wzorem innych języków proponowałbym jednak pisać z małej litery. Jak już stosujemy notację węgierską, to o na początku powinno być obowiązkowe.
Bo w takiej Javie nie możesz mieć zmiennej Test jesli masz klasę Test. A w php możesz, ponieważ mamy znaczek $. Zwykłe zmienne zawsze koduję z małej litery, a zmienne obiektów z dużej. Przedrostek "o" jest zatem zbędny. Kod <?php
function connection( &$dsn, $persistent = false ) { if ( is_array( $dns ) ) { $dns_info = &$dns; } else { $dns_info = BD::parseDNS( $dns ); } if ( !( $dns_info ) || !( $dns_info['phpType'] ) ) { return $this->addError(); } return TRUE; } ?> Blee, ale mi się to nie podoba Preferuję: Kod <?php
function connection(&$dsn, $persistent = false) { if (is_array($dns)) { $dns_info = &$dns; } else { $dns_info = BD::parseDNS($dns); } if (!($dns_info) || !($dns_info['phpType'])) { return $this->addError(); } return true; } ?> O wiele bardziej przejrzyste, pozatym aż 7 linijek oszczedzamy w edytorze ! (20 / 13). Dzięki temu taki kod czyta się prawie 2 razy szybciej oraz w edytorze widzimy prawie 2 razy wiecej kodu, dzieki czemu mamy lepsze spojrzenie na to co się tak naprawdę w tym naszym kodzie dzieje .. Kodowaliście kiedyś w edytorze (z odpowiednia rozdzielczoscia i czcionka) w którym macie widocznych 80 linijek naraz ? Mówię wam, komfort kodowania jest po prostu nie do opisania .. porównując z edytowaniem z widocznymi 35 linijkami. Aktualnie mam 70 linijek w edytorze, nie stosuję dodatkowych enterów ktore wydluzaja kod dwukrotnie, ostatecznie mam 4 razy bardziej przejrzysty kod Fajne czcionki można zassać stąd: http://www.tactile3d.com/tristan/ , http://www.tobiasjung.net/profont/index.html Btw. dlaczego na początku funkcji "false" pisane jest z małej litery, a na końcu "TRUE" jest pisane dużymi ? -------------------- code.gosu.pl
|
|
|
7.06.2004, 13:55:32
Post
#49
|
|
Grupa: Zarejestrowani Postów: 245 Pomógł: 0 Dołączył: 9.09.2002 Ostrzeżenie: (0%) |
Kiedy, po długim czasie pisania "jak leci" zdecydowałem się na stosowanie (w C++) "Original Berkeley Style" czułem się nieco zdezorientowany składnią, ale teraz, po przyzwyczajeniu się, uważam, że nie jest istotne, czy będą 3 spacje, 1 czy 7 , czy nie jest istotne, jakiej notacji używam w nazwach, ważne, że jest konsystentna, czytelna i niezmienna.
-------------------- Nie ma nic stałego prócz zmiany...
|
|
|
7.06.2004, 14:16:41
Post
#50
|
|
Grupa: Zarejestrowani Postów: 866 Pomógł: 32 Dołączył: 2.06.2004 Skąd: Wrocław Ostrzeżenie: (0%) |
@cagrET: Co do przejrzystosci kodu nie sposób się nie zgodzic masz zupełną rację.
@shima: Tu też się zgadzam: - czytelna i niezmienna<-(to najważniejsze) -------------------- |
|
|
7.06.2004, 15:03:39
Post
#51
|
|
Grupa: Zarejestrowani Postów: 521 Pomógł: 0 Dołączył: 3.11.2003 Skąd: 3city Ostrzeżenie: (0%) |
Hmm, przyznaję się bez bicia że to co preferuje cagrET to jakby żywcem wyjęte z mojego stylu . Ja robię dokładnie tak samo. Tutaj jednak zaczynamy kwestię enterów i spacjowania. Polecam http://java.sun.com/docs/codeconv/. Sun pod tym względem jest bardzo dokładny i dobrze mi się tak pisze.
Więc, co przemyśleniu, dochodzę do wniosku że o przed nazwą obiektu można sobie podarować i pisać po prostu z małej. Przedrostki do innych typów zmiennych jednak mi się podobają, chociaż do tej pory nigdy nie używałem. |
|
|
8.06.2004, 11:45:54
Post
#52
|
|
Grupa: Zarejestrowani Postów: 215 Pomógł: 0 Dołączył: 18.01.2003 Ostrzeżenie: (0%) |
wassago napisal:
"thanks = thx = t (!?)" no nie ... walnales przyklad po prostu idealny ... hehehehe hawk napisal: "Więc, co przemyśleniu, dochodzę do wniosku że o przed nazwą obiektu można sobie podarować i pisać po prostu z małej. Przedrostki do innych typów zmiennych jednak mi się podobają, chociaż do tej pory nigdy nie używałem." No racja ... kazdy pisze jak chce ... lepsze to niz pisanie $objCosTam. juz blizszy bylbym $CosTam. Jednak ja nie lubie wyjatkow. Skoro wszystkie zmienne traktuje wg schematu to nie robie wyjatku, ze TYLKO objekty sa inaczej nazywane. Ale to juz dla mnie drobnostka z porownaniem z tym $objCosTam. -------------------- Działam w OpenSolution.org, autor Quick.Cms i Quick.Cart już od ponad 10 lat
|
|
|
2.05.2009, 12:00:14
Post
#53
|
|
Grupa: Zarejestrowani Postów: 87 Pomógł: 0 Dołączył: 27.02.2009 Ostrzeżenie: (0%) |
Chciałem zapytać jak najłatwiej osiągnąć te wcześniej wspomniane "4 spacje". No bo chyba nie przez 4 uderzenia klawisza spacji ? Da się to jakoś podbindować pod Tab ?
|
|
|
2.05.2009, 12:03:57
Post
#54
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) |
To zależy od edytora w jakim pracujesz. Większość w preferencjach ma coś takiego jak:
"Używaj prawdziwej tabulacji" I jest też możliwość określenia długości na jaką ma być wyswietlany tab - i w zależności od tego czy zaznaczysz to pole, albo w miejsce Taba wrzucane są X spacje, albo wcięcie robione tabem wygląda na tak długie btw: Osobiście odrazam używania spacji do robienia wcięć w kodzie - co najwyżej do wyrównywania jeżeli ktoś chce. |
|
|
2.05.2009, 14:33:27
Post
#55
|
|
Admin Techniczny Grupa: Administratorzy Postów: 2 071 Pomógł: 93 Dołączył: 5.07.2005 Skąd: Olsztyn |
a czemu odradzasz? o ile wiem to spacje wszedzie wyglądaja tak samo a tab co edytor to inaczej... no i np w yaml'u tylko spacje moga sluzyc za wciecia
|
|
|
2.05.2009, 14:43:53
Post
#56
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) |
Dlatego, że dla mnie akurat idealną długością wcięcia jest odległość czterech spacji. Dla znajomego jest to odległość dwóch.
Innymi słowy użycie tabulacji daje możliwość nieinwazyjnego dostosowania wyglądu kodu do własnych preferencji. |
|
|
11.08.2009, 01:27:35
Post
#57
|
|
Grupa: Zarejestrowani Postów: 999 Pomógł: 30 Dołączył: 14.01.2007 Skąd: wiesz ? Ostrzeżenie: (0%) |
Pozwolę sobie odgrzać tego zielonkawego już kotleta.
Crozin w złote ramki twoje słowa. - 5 Lat jak na standardy kodowania to jest już trochę czasu. Może można by było zaktualizować ten artykuł. Chociażby ten 3literowy prefix udający notację węgierską to mnie trochę zdziwił. |
|
|
11.08.2009, 06:19:21
Post
#58
|
|
Grupa: Zarejestrowani Postów: 1 863 Pomógł: 228 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) |
Wg. mnie w tym artykule powinno być zaznaczone że jeżeli jeżeli TABulator jest określeniem kilku spacji (np.4,5) to należy z niego skorzystać. A jeżeli tworzy taką przestrzeń ( ), w której kursor przeskakuje, to powinno się zakazać. Dobre edytory textowe posiadają tą funkcje że z automatu zamieniają TAB na spacje, tylko kwestia jest... na ile tych spacji. Mnie nurtuje takie pytanie: Dlaczego to ma być lepsze od
tego
Mówię tutaj dobitnie o takich krótkich funkcjach warunkowych. Ja uważam że coś takiego jest prawidłowe, szczególnie jeżeli klamry i nawiasy mienia sie w oczach. Więc powiedzcie, dlaczego to 1 ma być takie lepszego od tego mojego przykładu, nie zalecanego w artykule ? |
|
|
11.08.2009, 08:59:38
Post
#59
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów |
-------------------- ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
11.08.2009, 11:00:53
Post
#60
|
|
Grupa: Zarejestrowani Postów: 1 863 Pomógł: 228 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) |
No to powinien być jeszcze jeden taki podpunkt.
Aby grupa programistów starała się aby pisząc wspólnie jakiś produkt, korzystać z tych samych standardów. ja mam bolączkę z swoim kompanem... bo ma świetne pomysły przy pisaniu skryptów, ale ma zupełnie odmienny styl... ignoruje odstępy i potem ja musze to wszystko poprawiać, aby kod był przejrzysty i usuwać jakieś stare szkoły np.
ale teraz mogę mu pokazać taki artykuł niech się nauczy jak pisać NOWOCZEŚNIE i prawidłowo |
|
|
Wersja Lo-Fi | Aktualny czas: 27.09.2024 - 04:00 |