Warsztat - Programowanie gier

Wrzesień 03, 2010, 04:06:34 *
Witamy, Gość. Zaloguj się, lub zarejestruj proszę.

Zaloguj się podając nazwę użytkownika, hasło i długość sesji
Aktualności: Warsztat, Regulamin forum, #warsztat, Wiki, FAQ, NoPaste, Mapa
 
   Strona główna   Pomoc Szukaj Zaloguj się Rejestracja  
Strony: 1 [2] 3
  Drukuj  
Autor Wątek: Zaawansowani a komentarze w kodzie  (Przeczytany 5028 razy)
Charibo
Member2000
*******

wiadomości: 2401



Zobacz profil WWW
« Odpowiedz #15 : Maj 13, 2007, 18:00:48 »

Jesli linuxowcy naprawde sie do tego stosuja, to juz wiem dlaczego opensource'owy kod jest taki nieczytelny Smiley
Zapisane

Now these points of data make a beautiful line
And we're out of beta we're releasing on time.

Blogassek.
Chester2000
Full Member
***

wiadomości: 137


Zobacz profil
« Odpowiedz #16 : Maj 13, 2007, 18:46:28 »

Komentarze powinny być (oczywiście tam gdzie jest to dla nas konieczne). Ważne jest poprawne nazewnictwo funkcji i zmiennych. A długość kodu w funkcji  Cheesy - bezsens czasem trzeba przekazać do obiektu kilka zmiennych i co jak się nie zmieszczą to mam ich nie przekazywać tylko przerabiać cały kod  Huh albo nazwać zmienne w funkcji -  a, b, c, d, e ,f itd ? . Czytelność kodu jest ważna ale dobry komentarz przy bardziej rozbudowanych funkcjach (bądź realizujących skomplikowane zadanie ) wypadało by dać - ułatwi to korzystanie np: z metody silnika który jako parametr potrzebuje takich danych w takiej postaci a zwraca obiekt lub dane w takiej postaci. Zmniejsza to ilość błędów podczas tworzenia kodu z wykorzystaniem metod a także oszczędza czas jaki musielibyśmy stracić na sprawdzanie ciała klasy silnika która to zadanie realizuje.   
Zapisane
k_b
Hero Member
*****

wiadomości: 968


Świr i dziwoląg


Zobacz profil WWW
« Odpowiedz #17 : Maj 13, 2007, 19:01:00 »

Owa "zasada" to oczywiście jest żart, który należy traktować w kategoriach żartu, dlatego bez przesady Chester2000. Ja sam w ciałach funkcji stosuję komentarze tylko do rozdzielenia poszczególnych jej sektorów (oraz na początku ogólny opis, czyli co robi, do czego służy, itd.) i nie możliwe byłoby u mnie przestrzeganie tego zdania.
Zapisane

GG: 6346008 (często na niewidocznym)
Jam samuraj, zdobywający wiedzę lecz oszczędny w słowach, pełen pogardy dla śmierci lecz w każdej chwili gotowy na koniec Drogi...
Chester2000
Full Member
***

wiadomości: 137


Zobacz profil
« Odpowiedz #18 : Maj 14, 2007, 12:38:15 »

k_b - wiem, wiem spokojnie Wink Może trochę za "mocno "to skomentowałem .
Zapisane
Moriturius
Hero Member
*****

wiadomości: 755


What You See Is What The F*ck


Zobacz profil WWW
« Odpowiedz #19 : Maj 18, 2007, 17:31:16 »

Poza tym byla taka anegdota linuksowska [wiele razy wspominana], ze jak kod funkcji nie miesci sie na ekranie, to znaczy, ze nalezy napisac go od nowa.

Albo wziąć większy monitor Grin
Zapisane

__*̡͌l̡*̡̡ ̴̡ı̴̴̡̡|̲͡▫ ̲͡ ̲͡π̲ ̲̲͡▫̲ ̲|̡̡̡ ̴̡ı̴̡̡ *̡͌l̡*__
@strona:   http://moriturius.wordpress.com/
@grafika:  http://moriturius.deviantart.com/gallery/
@projekt:  AGE - niestety wstrzymany na dłużej Wink
counterClockWise
Hero Member
*****

wiadomości: 804



Zobacz profil
« Odpowiedz #20 : Czerwiec 18, 2007, 17:18:21 »

Poza tym byla taka anegdota linuksowska [wiele razy wspominana], ze jak kod funkcji nie miesci sie na ekranie, to znaczy, ze nalezy napisac go od nowa.

Albo wziąć większy monitor Grin


Albo zwiększyć rozdzielczość Grin

Co do komentarzy - to zależy od charakteru projektu i ile osób potencjalnie będzie musiało to czytać. Ale osobiście zastraszającą mało komentuje (chociaż uwielbiam wszelkiego rodzaju dokumentacje - i to najlepiej ładnie wyglądającą, antyaliasing tekstu, dużo obrazków, jeśli jakieś wzorki to TeX...
W zasadzie podobnie jak inni w kodzie komentuje głownie przy deklaracji klas - np. lubie w .NET komentarze /// przed deklaracją metody - że widać przy wywoływaniu krótki opis parametrów, zwracanego wyniku itd.
Zapisane
Asmodeusz
Sr. Member
****

wiadomości: 409


Asmodeusz.NET


Zobacz profil WWW
« Odpowiedz #21 : Czerwiec 18, 2007, 17:44:15 »

Jeśli funkcja wymaga podziału na części logiczne, należy ją podzielić na mniejsze funkcje. Komentarzy w kodzie unikam jak ognia - jeśli coś wymaga skomentowania, oznacza to zły projekt. Dlatego też dokładny opis modułu (z datą powstania, datą aktualizacji, opisem działąnia, wymienionymi używanymi modułami, stosowanymi namespaces itp.), do tego opis klasy (zasady użycia, co zawiera, z czym jest związana, gdzie wykorzystywana), opis każdej z metod (działąnie metody, rzucane wyjątki, opis parametrów wraz z wartościami granicznymi, złożoność obliczeniowa (jeśli jest potrzebna) oraz obszerna dokumentacja główna z założenia wystarczają. Kod zamierzam opublikować na licencji edukacyjnej public domain (kod może być wykorzystywany do nauki i analizy, ale nie można go użyć we własnych produkcjach - nawet niekomercyjnych), więc i okomentowanie powinno być czytelne. A dokumentacja poza komentarzami to tylko UMLowe diagramy, które traktuję jako integralną część projektu.
Zapisane

Riddlemaster
SuperHero Member
******

wiadomości: 1626


Dive now, work later


Zobacz profil WWW
« Odpowiedz #22 : Czerwiec 18, 2007, 17:47:27 »

Cytuj
Komentarzy w kodzie unikam jak ognia - jeśli coś wymaga skomentowania, oznacza to zły projekt.
Nie zgodzę się z tym. Wystarczy wyobrazić sobie krótką ale skomplikowaną funkcję (np. jakieś hardcore'owe optymalizacje w asmie Wink ). Nie oznacza to, że projekt jest zły, a jednocześnie bez umieszczenia komentarzy ktoś kto będzie ten kod konserwował będzie musiał się przegryźć przez każdą jego linię.
Zapisane

Liosan
SuperHero Member
******

wiadomości: 1506



Zobacz profil
« Odpowiedz #23 : Czerwiec 18, 2007, 18:53:46 »

A ja uważam, że prawda jest tam gdzie komu wygodnie :] Spójrzmy na duże, profesjonalne firmy. Z jednej strony są takie, które trzymają się zasady max 1 ekran/funkcję, piszą więcej komentarzy niż kodu i więcej dokumentacji niż komentarzy. Z drugiej strony, taki np. Comarch (konkretnie jego warszawski oddział research&development) ZABRANIA komentowania kodu - tak jak mówi Asmodeusz, jeśli komentarz jest potrzebny to znaczy, że coś jest nie tak. Zresztą, oni dokumentacji też unikają Tongue

Liosan
Zapisane

Cytuj z: toxic
w ich zylach plynie praslowianska krew - oni musza wiedziec jak sie robi software
Demo WG RC2!
Gravell
Full Member
***

wiadomości: 194



Zobacz profil WWW
« Odpowiedz #24 : Czerwiec 18, 2007, 19:11:38 »

Gdzieś czytałem, że przy pisaniu Windows 98 komentarze (ich waga) kilkukrotnie przewyższały wagę (MB) samego programu Tongue
Zapisane

Shakes&Fidget
Toouudi! Gdzie są moje ogry?!?
Teyan
teyan.co.cc
Reg
Member2000
*******

wiadomości: 3839



Zobacz profil WWW
« Odpowiedz #25 : Czerwiec 19, 2007, 09:29:59 »

Hej, przydałoby się napisać program liczący stosunek komentarzy do kodu :) Przy okazji jeszcze średnią długość nazw zmiennych, funkcji itp.

Nie wiem jak można zabraniać pisać komentarze. Rozumiem, że bez sensu jest pisać:

Kod:
// Ta pętla przebiega po całej tablicy
for (uint i = 0; i < Rozmiar; i++)
  ...

Ale jak checie bez komentarza zaznaczyć, że dany parametr wskaźnikowy w C++ jest wyjściowy a nie wejściowy albo wejściowo-wyjściowy, że ma być z zakresu od 0 do 1 albo że może/nie może być NULL???
Zapisane

vashpan
SuperHero Member
******

wiadomości: 1647


Zobacz profil WWW
« Odpowiedz #26 : Czerwiec 19, 2007, 09:41:59 »

Co do komentarzy w C::B jest fajny plubin ( standardowo ) liczacy statystyki kodu w projekcie - ilosc linijek kodu, komentarzy, bialych znakow i procentowy udzial tego wszystkiego....

Naprawde nie rozumiem jak mozna zabraniac pisania komentarzy... Czlowiek to nie komputer - a co jezeli zapomniesz pewnego triku, w bardzo waznym fragmencie kodu, poza tym nawet jezeli kod bedzie w miare prosty to i tak szybciej jest przeczytac komentarz niz zastanawiac sie - nawet krotko - jak to dziala.... Przy prjektach wielkich gdzie sa setki tysiecy linijek kodu nei wyobrazam sobie zeby nie pisac objasnien, chocby po to zeby nie zapomniec... O dokumentacji juz nei wspominam.......
Zapisane

RageX
Gość
« Odpowiedz #27 : Czerwiec 19, 2007, 10:31:01 »

Właściwie... pytanie należałoby rozciagnąć o hasło "dokumentacja", nawet błacha.
Dokumentacja to mus jeśli nie piszesz czegos sam, albo jeśli jesteś przekonany że kod będzie długo leżał. Do dokumentacji śmiało można zaliczyć komentarze.

Ja mam tak - oczywiście minimalizuje ilość komentarzy dopóki nie stworzę prototypu kodu, ale jak już dany fragment kodu, idzie na "półkę", to dopisuje co nieco komentarzy + Info w głównej dokumentacji.

Ważnym też jest aby nie śmiecić komentarzami, minimalizować rozsądnie linijki kodu.
Zapisane
bies
Gość
« Odpowiedz #28 : Czerwiec 19, 2007, 10:58:23 »

Ale jak checie bez komentarza zaznaczyć, że dany parametr wskaźnikowy w C++ jest wyjściowy a nie wejściowy albo wejściowo-wyjściowy, że ma być z zakresu od 0 do 1 albo że może/nie może być NULL???
Nie nadużywać wskaźników, od tego są stałe i zwykłe referencje. Użyć typu range<float, 0, 1> lub asercji. Użyć referencji gdy nie może być NULL, wskaźnika gdy NULL jest dopuszczany, lub asercji.
Zapisane
Liosan
SuperHero Member
******

wiadomości: 1506



Zobacz profil
« Odpowiedz #29 : Czerwiec 19, 2007, 11:01:43 »

Ale jak checie bez komentarza zaznaczyć, że dany parametr wskaźnikowy w C++ jest wyjściowy a nie wejściowy albo wejściowo-wyjściowy, że ma być z zakresu od 0 do 1 albo że może/nie może być NULL???

Asercje, konwencje nazewnictwa, i zasada "wszyscy wiedzą jak wszystko działa" ? Smiley

@góra: no właśnie Smiley

Dokumentacja to mus jeśli nie piszesz czegos sam, albo jeśli jesteś przekonany że kod będzie długo leżał. Do dokumentacji śmiało można zaliczyć komentarze.

Przesadzasz... ostatnio modne jest programowanie agilne (ble, obrzydliwa konstrukcja językowa) - ostatnio pojawił się art Riddlemastera w tym temacie. Ta metodologia nie wymusza dokumentacji ani zbytnio nie zachęca Smiley Po prostu uznaje się ją za zbędną, czyli w nadmiarze szkodliwą.
Zapisane

Cytuj z: toxic
w ich zylach plynie praslowianska krew - oni musza wiedziec jak sie robi software
Demo WG RC2!
Strony: 1 [2] 3
  Drukuj  
 
Skocz do:  

Hosting: Polska Strefa - Ogłoszenia
Powered by SMF 1.1.7 | SMF © 2006, Simple Machines LLC