Indywidualny styl programowania

0

Witam, poszukuje materiałów lub książek na pewne zagadnienie. Chodzi mi mianowicie o wiadomości na temat pisania programów w swoim indywidualnym stylu lub korzystania z pewnych zabiegów. Po czym kod jest bardziej dla piszącego a dla innych jest mnie przejrzysty. Szukałem trochę na ten temat ale nie znalazłem nic szczególnego. Ciężko nawet sformułować o co mi chodzi ;p. Nie chodzi mi o zabieg zaciemniania kodu programu i korzystania z rożnych programów typu obfuskator. Może ktoś się spotkał z czymś o czym pisze? Chodzi mi o poszerzenie wiedzy a nie walkę z "poprawnymi" zasadami pisania programów :) Dziękuje za pomoc.

0

Jeśli znajdziesz w książce jakiś indywidualny styl programowania, który ma być czytelny, to znaczy, że więcej ludzi może go znać i używać ;) Zwłaszcza, że nie chcesz pisać niezgodnie ze sztuką.

Jeśli stosujesz jakieś optymalizacje kodu i nie udostępniasz innym programistom komentarzy, to można mieć trudności w zrozumieniu.

0

Ja mam swoj wlasny, jedyny i niepowtarzalny, styl: zawsze uzywam pre- zamiast post-inkrementacji. Np. zawsze pisze ++i zamiast i++. Takie zboczenie jeszcze z czasow c++, gdzie sie nauczylem przeciazac operatory i tam wytlumaczono ze post- jest najczesciej mniej wydajny niz pre- (uzywa dodatkowej zmiennej poniewaz musi zachowac 'stara' wartosc sprzed inkrementacji). Teraz jest to bez znaczenia ale jakos tak uzywam, i jak widze kawalek kodu gdzie cos takiego jest uzyte to niemal na 100% bez git annotate moge powiedziec ze ta linijka jest moja ;d

0

jak dla mnie na poziomie formatowania, nazewnictwa zmiennych, czy struktury plików itp. to nie ma co szaleć, tylko pisać raczej tak, jak się przyjęło w danym języku (ew. w danym projekcie, jak się dołącza do istniejącego projektu), tak jak jest zalecane. Czasem jest to wkur...jące (np. ostatnio się zmuszam, żeby zawsze pisać klamerki po if czy po for), ale dzięki temu jest jakaś spójność, jakieś standardy. Tak samo nie wiem, jakby ktoś w Pythonie zaczął używać camelCase do zmiennych zamiast snake_case, byłoby to dziwne.

edit: no chyba, że jakieś mało znaczące rzeczy, co do których środowisko jest podzielone, a które są kompletnie nieistotne (chociaż wtedy i tak jeśli bym pisał sam,to bym pisał po swojemu, ale jakbym pracował przy jakims projekcie, to dostosowałbym się do projektu, żeby zachować spójność.

Natomiast myślę, że i tak każdy ma jakiś tam swój styl na poziomie bardziej algorytmów, sposobu podejścia do problemów (ja np. lubię operować na listach, czyli w jakimkolwiek języku bym nie pisał, pewnie będę używał funkcji map, filter, reduce - podczas gdy ktoś inny być może rozwiąże ten sam problem za pomocą kilku pętli). Lubię też podejście data-driven, kiedy to dane sterują przebiegiem programu, a nie jest on na sztywno zapisany w kodzie (bo wystarczy wtedy podmienić dane, i program się inaczej zachowa). Natomiast mam świadomość, że ktoś inny by przysiadł i pewnie by zupełnie inaczej podszedł do problemu.

Po czym kod jest bardziej dla piszącego a dla innych jest mnie przejrzysty.

czyli failuje, bo usiądzie za miesiąc i nie będzie wiedział o co chodzi.
oto klasyk (i między innymi krytyka takiego podejścia): https://www.cs.utexas.edu/~EWD/transcriptions/EWD03xx/EWD340.html

0

@spartanPAGE: dzisiaj to dla mnie bez znaczenia poniewaz nie pisze w c++. Zdaje sobie sprawe ze dla wielu to moze miec znaczenie, moze nawet w javie zeby oszczedzic ten bytecode czy 2.

0

@spartanPAGE: ok, masz racje.

0

Po pierwsze używanie operacji pre- i post-inkrementacji związane jest nie bardziej ze stylem pisania ale już świadomym pisaniem pewnych operacji. I jedno i drugie może dać inne efekty obliczeniowe w pewnych przypadkach wiec trzeba o tym pamiętać ;/ Po drugie nie chce rozsadzać czy stosowanie norm pisania jest "lepsze" od tego jeżeli ktoś ma jakieś inne nawyki. I nie chce tutaj nic fejlować :P i to samego siebie. Słyszałem tylko na studiach od prowadzącego (chyba), że przy zastosowaniu pewnych operacji można nauczyć się pisać w sposób dla siebie zrozumiały po pewnych ćwiczeniach a dla innych staje się kod trudniejszy. Nie chce tu mówić o plusach takich sytuacji ale jestem racze ciekaw czy są jakieś książki lub materiały powiązane z tym tematem? Czy to raczej jakiś mój wymysł pseudonaukowy?

0
KryptoPtr napisał(a):

Po pierwsze używanie operacji pre- i post-inkrementacji związane jest nie bardziej ze stylem pisania ale już świadomym pisaniem pewnych operacji.

Jak juz napisalem, a moze i nie, nie znam nikogo kto by pisal ++i zamiast i++. Mam do czynienia z programistami Java, Objective-C, Python, wiec moze inni mistrzowie klasy @spartanPAGE jedna tak robia. W tym kontekscie uzaje to za styl ;d

0
KryptoPtr napisał(a):

Po czym kod jest bardziej dla piszącego a dla innych jest mnie przejrzysty. Szukałem trochę na ten temat ale nie znalazłem nic szczególnego. Ciężko nawet sformułować o co mi chodzi ;p.

Zacznij czytać książki Wujka Boba, czyli - Robert C. Martin np. Czysty kod.

0

a więc dobra, krótkie wyjaśnienie: różnica między ++i, a i++ jest taka że jeśli i = 1, to ++i zwróci 2, a i++ zwróci... 1 (może to wiesz, ale piszesz w ten sposób, jakbyś tego nie wiedział)

Jezus, a ja moja cala dotychczasowa kariere myslalem inaczej i dlatego mialem zawsze bledy off-by-one w petlach. Dzieki, chlopaki!

Powaznie, chodzilo mi o ++i lub i++ w petlach. W miejscach gdzie post- lub pre- robi roznice kazdy napisze to poprawnie. Inna sprawa, ze zapis int d = ++i + 1; jest bardzo nieczytelny, i w niektorych (wersjach) kompilatorach nie jest zdefiniowane jakas wartosc bedzie miala zmienna d (C++, wink, wink).

1 użytkowników online, w tym zalogowanych: 0, gości: 1