|
Reg
|
 |
« : Czerwiec 11, 2006, 15:35:54 » |
|
Jeżeli uznacie ten temat za strasznie lamerski to usuńcie go, ale ciekaw jestem, jak wy piszecie swój kod? Macie jakąś stała konwencję? Czy identyfikatory (nazwy zmiennych, funkcji itd.) macie po polsku, po angielsku czy tak w cały świat? W jakim języku piszecie komentarze? W jakim dokumentację techniczną (jeśli w ogóle ją piszecie  )? Dlaczego (jakie macie argumenty)? (Chciałem założyć sondę ale widzę, że się nie da, więc tylko zakładam zwykły temat) EDIT: Jeśli o mnie chodzi, to identyfikatory piszę po angielsku, a komentarze po polsku.
|
|
|
|
|
Zapisane
|
|
|
|
|
Złośliwiec
|
 |
« Odpowiedz #1 : Czerwiec 11, 2006, 16:02:08 » |
|
Najlepsze są nazwy typu CreateCzcionka  . Czemu? Bo tak. Ktoś powiedział kiedyś, że nuda jest wrogiem programistów. Myślę, że można te słowa rozumieć także w ten sposób  .
|
|
|
|
|
Zapisane
|
"Jedynym dowodem na istnienie pozaziemskiej inteligencji jest to, że się z nami nie kontaktują" (A. Einstein) Untitled - nowa wersja: llllllllllllllllllll 17%
|
|
|
|
Xion
|
 |
« Odpowiedz #2 : Czerwiec 11, 2006, 16:07:35 » |
|
Ja piszę identycznie jak Regedit, chociaż nie zawsze tak było. Na samym początku (a było to dość dawno temu) zwykłem nazywać zmienne, funkcje klasy itd. wyłącznie po polsku. Potem zacząłem używać języka jako jeszcze jednego sposobu na odróżnienie pojęć. I tak np. nazwy typów i klas były u mnie angielskie, zaś zmiennych i funkcji - polskie. Ślad tego postępowania widać na przykład w megatutorialu. Ponadto kodując w Delphi nazwy komponentów (typu edName czy btnOK) nazywałem zawsze po angielsku, zaś nazwy własnych zmiennych i obiektów już nie. Obecnie wszystkie elementy programu, niezależnie od ich kategorii a także języka programowania, opartuję nazwami angielskimi. Przyczyna? Z pewnością na początku kariery programistycznej po prostu łatwiej mi było obcować z nazwami w bardziej znanym języku  Potem doszedł ten rozdział jako sposób rozróżnienia. A przyczynami całkowitego porzucenia polskich identyfikatorów były zapewne: 1) ich niejednoznaczność lub długość. Aby wyrazić coś w programowaniu po polsku, trzeba zwykle używać dłuższych nazw niż po angielsku; jeśli tego nie zrobimy, nazwa będzie z kolei niejednoznaczna i nie całkiem odzwierciedlać to co chcemy wyrazić. 2) fakt, że nazwy muszą spełniać pewne wymagania, np. nie można stosować w nich spacji, więc używa się znaków_podkreślenia albo StyluWielbłądziego, a poza tym nie powinny też zawierać znaków diakrytycznych. Ostatecznie więc wyglądają one sztucznie, ale wrażenie to jest mniejsze, jeśli te kombinacje dotyczą słów z języka, którym nie posługuję się jako naturalnym (przynajmniej nie co dzień). Zaś komentarze mają wyjaśniać znaczenie kodu i być przede wszystkim zrozumiałe, zatem piszę je po polsku. Wyjątkiem byłby program od początku pomyślany do rozpowszechniania na licencji GNU GPL - wtedy raczej starałbym się komentować po angielsku. A dokumentacją techniczną jest to co zostaje zebrane z komentarzy przez odpowiednie programy (typu javadoc czy doxygen), więc ona też jest oczywiście po polsku. // Edit: Złośliwiec: Właśnie takie coś nazywam sztuczną nazwą 
|
|
|
|
« Ostatnia zmiana: Czerwiec 11, 2006, 16:15:45 wysłane przez Xion »
|
Zapisane
|
|
|
|
|
Silther
|
 |
« Odpowiedz #3 : Czerwiec 11, 2006, 16:10:49 » |
|
Ja piszę kod po polsku. Nazwy zmiennych zaczynam od małej litery, a funkcji od dużej. Każdy nawias klamrowy jest w osobnej linii. Komentarze po polsku. Dokumentacji technicznej nie piszę. Argumenty: - tak było w niektórych książkach, z których się uczyłem - tak mi wygodnie 
|
|
|
|
|
Zapisane
|
|
|
|
|
nadult
Gość
|
 |
« Odpowiedz #4 : Czerwiec 11, 2006, 16:21:10 » |
|
Ja ostatnio staram się wszystko pisać po angielsku. Wcześniej komentarze pisałem po polsku ale stwierdziłem, że przy okazji mogę sobie jeszcze szlifować angielski  .
|
|
|
|
|
Zapisane
|
|
|
|
|
Koshmaar
|
 |
« Odpowiedz #5 : Czerwiec 11, 2006, 16:25:02 » |
|
Ja piszę zarówno kod, dokumentację jak i komentarze wyłącznie po angielsku. Czemu? 1. Trening języka - tego nigdy nie za wiele. 2. Wszystkie większe projekty umieszczam w internecie na jakich GPLowych licencjach, ludzie czasami to ściągają, oglądają, niektórzy może nawet zajrzą do źródeł. Dobrze by było gdyby nie musieli przedzierać się przez zastępy krzaczków / dziwnych, niezrozumiałych wyrazów. W końcu angielski to uniwersalny język programistów, więc mamy pewność że przy odpowiedniej motywacji, każdy będzie w stanie zrozumieć dany kawałek kodu. Sam miałem kilka razy nieprzyjemność czytać kod napisany po angielsku, którego komentarze był po niemiecku/szwedzku - strasznie to wyglądało. 3. IMHO polskie nazwy zmiennych, funkcji itp. wyglądają bardzo dziwnie... nie wiem czemu, po prostu tak mam. Natomiast komentarze zazwyczaj pisane są po "polskawemu", bez interpunkcji, znaków diaktrycznych, na odwal - widziałem trochę takiego kodu (przez pewien czas sam tak pisałem...) i teraz nie mam już siły patrzeć na takie wynalazki. Dodatkowo, angielskie słownictwo umożliwia opisanie programistycznych konstrukcji w sposób bardziej zwięzły, przejrzysty. Najlepsze są nazwy typu CreateCzcionka Smiley. Czemu? Bo tak. Ktoś powiedział kiedyś, że nuda jest wrogiem programistów. Myślę, że można te słowa rozumieć także w ten sposób Wink. Tym kimś jest Bjarne Stroustrup. Ale nawet on nie chciałby widzieć kodu stworzonego przez tych programistów, którym za bardzo się nudziło... :->
|
|
|
|
|
Zapisane
|
|
|
|
|
novo
|
 |
« Odpowiedz #6 : Czerwiec 11, 2006, 16:25:18 » |
|
Witam,
Ja pisze wszystko po angielsku. Juz sie tlumacze. Po pierwsze jakos przyzwyczailem sie do kodu po angielsku(duzo wiecej tutkow po ang przeczytalem). Mialem co prawda krotki epizod z pisaniem po polsku(daaawno temu, jak sie C++ z symfonii uczylem). Poza tym docelowo planuje w miare mozliwosci publikowac kod, a angielski jest raczej standardem. Komantarze pisze po angielsku z dwoch powodow. Pierwszy jest taki jak w przypadku kodu. Mam zamiar go w odpowiednim czasie opublikowac i komentujac go w jezyku angielskim jest szansa na wieksza ilosc odbiorcow. Drugi powod jest banalny. Piszac komentarze po angielsku automatycznie cwicze sie w tym jezyku. Niestety 90% mojej stycznosci z angielskim odbywa sie poprzez tutoriale i rozne artykuly w internecie. Oczywiscie trudniej mi komentowac po angielsku niz po polsku, czasami trzeba zajrzec do slownika, ale uwazam ze w przyszlosci mi sie to zwroci.
Co do dokumentacji, to generuje ja z komentarzy, wiec automatycznie jest ona po angielsku.
Pozdr! novo.
|
|
|
|
|
Zapisane
|
From all the things I've lost I miss my mind the most. devblog
|
|
|
|
SirMike
|
 |
« Odpowiedz #7 : Czerwiec 11, 2006, 16:52:29 » |
|
Angielski i tylko angielski. Tak jest wygodniej. Poza tym w tym jezyku jest wiele slow, ktore nie maja dobrych (krotkich) technicznych odpowiednikow w jezyku polskim. Staram sie kod pisac jak najbardziej przejrzyscie. Zawsze gdy popatrzy na niego ktos inny to latwiej bedzie mu sie polapac.
|
|
|
|
|
Zapisane
|
|
|
|
|
skalniak
|
 |
« Odpowiedz #8 : Czerwiec 11, 2006, 17:01:25 » |
|
czesc, ja mieszam polski z angielskim , zazwyczaj wybieram krotsze slowo (choc to nie jest raczej dobre tak patrzac z perspektywy, trudno potem sie polapac czy point czy punkt np). Nazwy zmiennych zawsze mam z malej litery a jesli sa zlozone z dwoch slow to te drugie slowo zaczyna sie wielka litera. Nazwy funkcji mam zazwyczaj wielka litera pisane co pozwala odroznic zmienne od nazw funkcji:)
Pozdr. skalniak
//edit jak juz ktos pyta:) //edit moze przerobie na angielski kiedys zeby bylo w jednym jezyku a co do komentarzy to albo ich wogole nie mam a potem poldnia zastanawiam sie co dana funkcja robila:P:P albo pisze po polsku i dosc krotkie - i chyba to tez zmienie, zaczne je pisac w koncu bo im wiecej linijek tym trudniej sie polapac
czy jest jakis oglny standard nazewnictwa np stosowany w STL'u ? Chetnie bym przyzwyczail sie do takiego standardu bo pozniej latwiej interpretowac kod w tutkach.
|
|
|
|
« Ostatnia zmiana: Czerwiec 11, 2006, 17:07:04 wysłane przez skalniak »
|
Zapisane
|
 "Nie przejmuj się, gdy zarzucą ci że budujesz zamki w powietrzu. To jest właśnie miejsce, w którym powinno się je stawiać. Potem wystarczy że dobudujesz im fundamenty." Henry David Thoreau http://skalniak.gamedev.pl
|
|
|
|
Xion
|
 |
« Odpowiedz #9 : Czerwiec 11, 2006, 17:11:33 » |
|
Najbardziej charakterystyczną kwestią, którą można odnieść do nazw z STLa (a także z reszty biblioteki standardowej C(++) i Boosta) jest używanie wyłącznie małych liter w nazwach identyfikatorów oraz stosowanie podkreślenia jako seperatora słów.
|
|
|
|
|
Zapisane
|
|
|
|
|
Wyszo
|
 |
« Odpowiedz #10 : Czerwiec 11, 2006, 20:01:21 » |
|
Ja również piszę kod po angielsku, jeśli chodzi o komentarze, to zazwyczaj wcale ich nie używam, ponieważ nazwy funkcji i zmiennych są tak łopatologiczne (przez co niestety przydługawe), że komentarze nie są potrzebne. Ponieważ często długie zmienne zaciemniają kod, zdarza mi się tworzyć sporo nadmiarowych wskaźników w zasięgu lokalnym funkcji o nazwach w stulu "pTex" lub "fTempX". Jednak robię to na tyle zręcznie, że imho mój kod nadal jest jasny i czytelny. Ponadto w nazwach zmiennych występują u mnie bardzo często 'podkreślniki', np. "Renderer_Base". Tak na prawdę napisałem tego posta, ponieważ w temacie tym brakuje mi informacji o waszym sposobie notacji zmiennych. Trochę to odbiega od tematu, ale pamiętam, że jak byłem bardzo początkujący, to mój sposób zapisu zmiennych był hmmm... chaotycznie kreatywny  Dlatego specjalnie dla beginner'ów: Podstawowym i najczęściej używanym typem jest notacja węgierska: http://pl.wikipedia.org/wiki/Notacja_w%C4%99gierskaużywana bardzo często w uproszczonej formie. Z drugiej strony jest ona bardzo silnie krytykowana przez rzesze programistów. Wg. mnie zapobiega przed głupimi pomyłkami, więc ja przeważnie się do niej stosuje. Chciałem napisać jeszcze o nawykach podobnych do dawania przedrostka "C" przed interface'm funcji (class CMainWindow, itp.) ale nie bardzo wiem pod jakim hasłem szukać na ten temat informacji.
|
|
|
|
|
Zapisane
|
Większość ludzi drzemie w nocy. Ci, którzy śnią na jawie są niebezpieczni, bo ich determinacja może przekształcić marzenia w rzeczywistość...
|
|
|
|
Xion
|
 |
« Odpowiedz #11 : Czerwiec 11, 2006, 20:34:56 » |
|
"C" dodaję przed nazwą zwyczajnej klasy, "T" przed nazwą klasy szablonowej, "I" przed nazwą klasy abstrakcyjnej lub wykorzystywanej jako interfejs. Enumy i struktury nazywam WIELKIMI LITERAMI, zaś typedefy jedynie rozpoczynam od wielkich liter.
Notację węgierską stosuję dość dowolnie, acz używam np. m_ do odróżnienia pól klasy od lokalnych zmiennych w metodzie.
Podkreślniki stosuję bardzo rzadko, zwykle wtedy gdy StylWielbłądzi już nie wyrabia przy zbyt dużej ilości podobnych nazw. Specjalne sytuacje to np. pewne podgrupy składowych klasy, przykładowo metody zaczynające się od Parse_ mogą wystąpić w klasie parsera i służą do próby odczytania poszczególnych elementów analizowanego dokumentu. W ten sposób czasami grupuję też funkcje globalne.
|
|
|
|
|
Zapisane
|
|
|
|
|
Reg
|
 |
« Odpowiedz #12 : Czerwiec 11, 2006, 20:51:01 » |
|
Jeśli chodzi o nazwy identyfikatorów, to ja używam dużych liter, a podkreśleń raczej nie - np. SetPlayerPos. Zaczynanie pierwszego słowa z małej litery - jak setPlayerPos - jest dla mnie dziwne i nieładne. Z kolei pisanie małymi literami i stosowanie podkreśleń, jak w bibliotece standardowej, wydłuża identyfikatory i wymaga naciśnięcia więcej klawiszy (trzeba Shift+_ i potem litera, zamiast Shift+duża litera  ), a stosuję to czasem kiedy taki zbity identyfikator niezbyt ładnie wygląda. Stosowałem też kiedyś coś takiego jak str2int, bool2str, ale teraz pozmieniałem na StrToInt, BoolToStr. Natomiast notacji węgierskiej po prostu nie znoszę. Stosuję m_ do składowych klas i g_ do zmiennych globalnych, ale w językach z kontrolą typów takich jak C++ nie ma sensu powtarzać typu w nazwie identyfikatora - wiadomo że zmienna x typu int jest typu int a klasa Player jest klasą. Co innego w PHP.
|
|
|
|
|
Zapisane
|
|
|
|
|
Hadrian W.
|
 |
« Odpowiedz #13 : Czerwiec 12, 2006, 15:02:55 » |
|
Ja ogolnie prawie od zawsze kod pisalem po angielsku i czasem zatrzymywalem sie z pisaniem tylko dlatego, ze nie znalem wlasciwego slowka. Komentarze robie poki co niestety zdawkowe najczesciej po polsku ale czasem uniwersalnym jezykiem  Polskie glownie dla siebie w miejscu gdzie wiem ze cos ma sie zmienic lub mam cos sobie dopisac, te komentarze w miare pisania znikaja. Co do notacji to jeszcze ja wyrabiam. Ogolnie nazwy wlasnych klas czy typow zaczynam od charakterystycznych literek dla danego projektu. Nie stosuje dodatkowych wiekszych rozroznien, ale jak juz wspomnialem szukam zlotego srodka  Stosuje malaLitere na poczatku metod i dalej wielbladem i samego wielblada do zmiennych. Male litery do argumentow i duze litery do define'ow/enumow/itp.
|
|
|
|
|
Zapisane
|
|
|
|
|
novo
|
 |
« Odpowiedz #14 : Czerwiec 12, 2006, 15:36:07 » |
|
Widze ze standardowo zachaczylismy o notacje  . Ja uzywam wielkich liter do wszelkich typow(klasy, struktury, typedefy), wyjatkiem sa typedefy na standardowe typy, jak np unsigned char=byte itd. Do nazw klas nie stosuje przedrostka C bo uwazam ze to zmniejsza czytelnosc nazwy. Za to stosuje I przed interfejsami. Ostatnio zamiast i zaczalem dopisywac na koncu nazwy klasy po prostu Interface, ale to strasznie dlugie i chyba wroce do I. Nazwy wszystkich funkcji z malej literki i dalej wielblad. Do pol stosuje przedrostek m_, a do zmiennych globalnych g_. Pozatym nie stosuje notacji wegierskiej, bo po co:). Podkreslen uzywam tylko w jednym wypadku, jezeli dana metoda/f-cja jest implementacja jakiejs komendy konsoli to dodaje do niej przedrostek conCmd_[Nazwa], np. conCmd_VidRestart(); odrazu wiem ze jest to komenda konsoli o nazwe vidrestart. Dodatkowo jeszcze przy strukturach do nazwy dopisuje _t, ale nazwa nadal pozostaje z duzej litery. Pozdr! novo.
|
|
|
|
|
Zapisane
|
From all the things I've lost I miss my mind the most. devblog
|
|
|
|