Wpis z mikrobloga

#naukaprogramowania
#informatyka
#programowanie

Od czego zaczynacie gdy dostajecie jakis duzy projekt? Niby cos tam umiem ale jak sciagam src jakies indie gierki i widze po 20 plikow i kazdy po 500-1k linii kodu to autentycznie nic nie rozumiem, nie wiem co za co odpowiada, czy dana klasa ma wplyw na jakas inna polozona nie wiadomo gdzie

Jak wy sobie z tym radzicie? Powiedzmy ze dostajecie taki source i co robicie na poczatku? Jak sie polapac w tym wszystkim?

Jeszcze jak widze np. jakas klase gdzie jest parenascie metod i if'ow z innymi metodami to juz wgl rozkladam rece
  • 19
@Krawdg: team leader powinien Ci omówić data flow w projekcie i później dać jakieś taski (prostsze na początek) i powoli zaczniesz ogarniać i coraz swobodniej poruszać się po projekcie. 20 plików po 500-1k linii to nie jest jeszcze tak dużo, a nawet mało.
@Krawdg: 20 plików po 500-1000 linijek to jest raczej malutki projekt ( ͡° ͜ʖ ͡°)
Skoro piszesz że są to gry to pewnie korzystacie z Unity albo UE. Wystarczy odpalić edytor, sprawdzić jaki skrypt jest przypisany do jakiego obiektu i już masz mały podgląd jak to ma działać. Na dokumentacje w tego typu projektach niestety nie ma co liczyć.
Przynajmniej już wiemy, że pracujesz w jakiejś gówno firmie, albo z gówno programistami, skoro ktoś w jednym pliku, klasie umieszcza aż 500 linijek. Widać brak pojęcia o wzorcach.


@cevilo: Zacznij pracować przy prawdziwych projektach, i przestań rzucać takimi sloganami. Hurr, 500 linii, durr, to nie jest czysty kod!.
@fegwegw: Pracuję przy prawdziwych projektach, które takim januszom jak ty się nie śniły, ale w dużym projekcie tym bardziej trzeba umieć programować i przestrzegać wzorców. Jeśli tego nie rozumiesz, to po prostu jesteś słaby, więc zamiast mędrkować, do nauki.
Pracuję przy prawdziwych projektach, które takim januszom jak ty się nie śniły


@cevilo: Ehe. Widząc częstotliwość #!$%@? o wzorcach wnioskuję, że przerabialiście to na ostatnim wykładzie z Podstaw Programowania.
@cevilo: Wypadałoby jednak to jakoś wypośrodkować. Czasem lepiej napisać jedną klasę 500 linii, niż 10 klas po 50 linii (+ do tego interfejsy, fabryki itp.). Po co Ci te wszystkie nadmiarowe klasy i obiekty, skoro wiesz, że tak naprawdę będzie tylko jedna właściwa implementacja, a cała reszta to klasy wynikające z zastosowania wzorców?
@fegwegw: @tomp3: chłopaki... zobaczcie sobie na jakikolwiek kod napisany przez profesjonalistów, np. kod serwera jbossa i przestańcie się kompromitować.
Nie wiem o czym mu tutaj rozmawiamy, ok potraficie wklepywać kod, ale nie potraficie programować, bo to między innymi umiejętność nie sadzenia klas po 500 linijek.
@cevilo: W bardziej zaawansowanych procesach biznesowych czasem naprawdę nie opłaca się rozbijać kodu na kilkanaście - kilkadziesiąt klas. Zwróć jeszcze uwagę na to, że ktoś później taki kod będzie utrzymywał i ma to być przede wszystkim czytelne. Czym innym jest tworzenie API, gdzie ma to ogromne znaczenie i kod ma być jak najłatwiej modyfikowalny, i generyczny (wspomniany przez Ciebie JBoss), a czym innym jest implementowanie procesów biznesowych dostosowanych pod konkretnego klienta
@tomp3: No to sprawdź sobie jak jest napisany jBPM, jeden z popularniejszych silników stosowany w procesach biznesowych. Wszystko da się zrobić byle jak, wbrew standardom, byleby działało, modlić się, że autor nigdy nie odejdzie z pracy, że nikt tego nie będzie musiał wspierać, rozwijać itd, ale nie o to chodzi.
Myślę, że jest zupełnie na odwrót niż ktoś pisał wyżej. Jeśli program jest na zaliczenie, albo w jakiejś małej firmie, to
@cevilo: No to zajrzyj sobie do kodu źródłowego Oracle EBS i zobaczysz, jak to pięknie jest tam napisane. Projekt wspierany od kilkunastu lat, jeden z największych ERPów na świecie, ale jakość kodu dużo poniżej przeciętnej. Swoją drogą, dobrze, że produktów bazodanowych Hindusom nie przekazali. :)

Przeszedłem przez kilka projektów, gdzie zespoły liczyły po 50 do 120 osób i niestety, w kilku z nich, narzucany był wzorzec projektowy "ch**owo, ale jednakowo".
Dodatkowo,
Dodatkowo, masz presję czasu - trzeba na za 2 dni oddać dużą modyfikację.


@tomp3: No i właśnie, jeśli ktoś umie programować, to nawet pod presją czasu robi to dobrze, sensownie, a nie siada i nie klepie jednej dużej klasy na tysiące linijek.
Z czasem dobre nawyki przychodzą naturalnie i nie spowalniają.
@cevilo: Też tak myślałem, gdy zaczynałem programować.
Niestety, jakość zastanego kodu, do którego przychodzi mi robić modyfikacje, czasem pozostawia mi albo przerobienie całego modułu (co może również skutkować niestabilnością całej aplikacji, wymaga gruntownych testów biznesowych i zdecydowanie przekracza wyznaczony czas), albo dostosowanie się do kiepskiego stylu i zrobienie modyfikacji na czas.

I nie mówię tu o tysiącach linijek, bo za takie klasy to wszystkich linczujemy - mówię o dobijających do 500