Jak wiele linijek kodu generujecie w ciągu przeciętnego dnia w swojej pracy?

1

Bo dla mnie osoby z boku, wydaje się, że powinniście większość czasu spędzać nad dopisywaniem kodu/dodawaniem jakiś funkcjonalności. Czy może jest inaczej, większość czasu klikacie debugując coś itp. czy może właśnie 'piszecie'?

2

Myślę że tak samego pisania to może z 30-40% czasu. Reszta to czytanie istniejącego kodu, planowanie, czytanie dokumentacji itd.

5

Co myśmy ci zrobili że nie chcesz sobie pójść? Promy do szwecji nie pływają?

Jak dobrze idzie to kończe dzień na minusie jeśli chodzi o linijki kodu.
Większość czasu myśle i analizuje co już jest w kodzie.

2

Moduł, który robię od połowy września (prawie od zera, w pojedynkę przez większość czasu) ma na dzisiaj nieco ponad 22 tys. linii Scala, włączając w to komentarze, whitespace i testy. Jednak trzeba odjąć od tego ok. 7 tys. linii, bo zostało wziętych z innego projektu i przerobione. Czyli wychodzi jakieś 15 tys. nowych linii na pół roku i trochę innych zmian.

Przy czym były dni, kiedy napisałem 500 linii, były takie kiedy nic nie zmieniałem w projekcie, bo robiłem coś innego, albo takie kiedy usunąłem 100 linii, dopisałem 2 i kod dział lepiej niż przedtem. I te ostatnie, podobnie jak Shalom lubię najbardziej.

No i zanim projekt wystartował, przez 2-3 miesiące była faza planowania, kiedy nie powstała prawie ani jedna linijka kodu, za to 50 stron dokumentacji "wysokopoziomowej". Kto powiedział, że waterfall jest zły? :]

1
Shalom napisał(a):

Co myśmy ci zrobili że nie chcesz sobie pójść? Promy do szwecji nie pływają?

Jak dobrze idzie to kończe dzień na minusie jeśli chodzi o linijki kodu.
Większość czasu myśle i analizuje co już jest w kodzie.

Promy kosmiczne nie latają?

PS: http://sjp.pwn.pl/zasady/Jednowyrazowe-i-wielowyrazowe-nazwy-wlasne-panstw-regionow;629398.html

2

Projekt nad którym obecnie pracuję ma na dzień dzisiejszy ponad 26k linii - każda linijka pisana własnoręcznie (oprócz tych generowanych automatycznie, jak np. deklaracje klas formularzy, deklaracje i ramki zdarzeń); 6.5k pochodzi z osobnej biblioteki, którą też sam pisałem, więc wliczam do całości; Ukończony projekt będzie zajmował mniej więcej 45-50k LoC, więc jeszcze kilka miesięcy przede mną; Łącznie pracy było około 7-8 miesięcy (bez tej dodatkowej biblioteki);

Z początku było łatwiej i pisałem mniej więcej 200-300 linii na dzień, a potem zacząłem zwalniać; Coś trzeba było poprawić, jakiś "efekt" dodać, czasem bardziej skomplikowany problem pochłaniał dzień lub dwa, bez napisania ani jednej linijki; Za to stosik kartek się powiększał i już pół ryzy papieru do drukarki na schematy i algorytmy zużyłem (będzie biblia na pamiątkę, albo na podpałkę);

Z reguły na dzień średnio 100-200 linii, jak potrzebny jakiś komponent i dam radę go napisać w jeden dzień (bo przede wszystkim nikt nie przeszkodzi) to nawet 1000, o ile nie napotkam dziwactw; Problem jest taki, że im więcej kodu się naklepie, tym bardziej trzeba uważać, żeby nie zepsuć istniejącego; Do tego jeden kod służy mi do kompilacji pełnej wersji i demówki - różnica taka, że aby skompilować sobie demówkę, wystarczy zaremować w kilku modułach $DEFINE specjalnego symbolu; Wcale nie jest tak trudno - wystarczy myśleć nad tym, co się robi;

Tak więc odpowiedzi będą w tym stylu - od zera do tysięcy; Wszystko zależy od tego co się robi - czy pisze kod, czy go utrzymuje, czy robi się skomplikowane rzeczy, czy klepie formatki i oprogramowuje interfejs i jakieś inne bzdety.

1

Jestem początkujący i pracuję przy dość dużym projekcie (aplikacja webowa) i ilość linii zależy oczywiście od zadań na dany dzień. Gdy chodzi o jakieś bugi, to prawie cały czas poświęca się na debugowanie i analizowanie kodu, a co najwyżej dopisze się jedną linijkę albo kilka wytnie. Ostatnio robiliśmy natomiast nową rzecz, to kodu można było napisać dosyć dużo i dawało to sporo satysfakcji, bo można było sobie wszystko zaplanować od zera, a nie dopasować się do tego co jest.

Zauważyłem, że refactoring też sprawia mi przyjemności, a po nim faktycznie można być na minus z linijkami ;)

0

Odświeżam temat dzisiaj jestem na nogach gdzieś od 6:30 i pracowałem gdzieś 9:30 H i napisałem około 400 linii kodu już nawet nie wiem jak się nazywam.

2
pol90 napisał(a):

już nawet nie wiem jak się nazywam.

Spoko, ja dziś pracowałem 8h i też nie wiem jak się nazywasz.

0

Czasem bywa, że za jedną dniówkę pyknie się 1000-1500 linijek plus testowanie, z przerwami nie więcej niż 10h. Oczywiście bez kopiowania w kółko tego samego czy automatycznego generowania. Nie czuję się jakoś szczególnie wypompowany po tym.

Na szczęście częściej bywa tak, że liczba linijek kurczy się – to mnie bardziej cieszy.

pol90 napisał(a):

[…] pracowałem gdzieś 9:30 H i napisałem około 400 linii kodu już nawet nie wiem jak się nazywam.

Mięczak. :P

0

Zależy od projektu.
W poprzednim projekcie to było do ok 1k linii dizeń w dzień.
Teraz wychodzi jakieś 10 linii na miesiąc.

Nie wszystko jest pisaniem ficzerów/dokumentacji/skryptów

2

Od generowania linijek kodu są juniorzy/stażyści. Moje zadanie to redukcja tego co oni wygenerują. :]

1

Junior w naszym zespole wczoraj usunal baze danych i backup. To chyba teraz jest na minusie :)

4

@Settlement Agreement
Jeżeli junior ma uprawnienia do usunięcia backapów to problem jest znacznie głębszy niż to, że poleciała jedna baza.

0

Jak najmniej.

0
furious programming napisał(a):

Problem jest taki, że im więcej kodu się naklepie, tym bardziej trzeba uważać, żeby nie zepsuć istniejącego;

To chyba oznaka złych praktyk. Każdy antypattern do tego prowadzi. W projekcie dobrze utrzymanym, z czystym kodem tego problemu nie ma.

2

W takim razie w projekcie z czystym kodem testy nie są potrzebne, bo nie ma ryzyka regresji, więc nigdy nie wykryją żadnego błędu. :D

W praktyce jednak nieraz zachodzi potrzeba zmiany w module, z którego korzystają inne, więc coś można zepsuć. Niezależnie od dobrych praktyk i wzorców.

0
Biały Lew1 napisał(a):

To chyba oznaka złych praktyk.

To oznaka dawniej popełnionych błędów projektowych lub nieprzewidzianych wcześniej ficzerów, które teraz chciałbym dodać. Chcąc nie chcąc muszę poprawić stary kod, czasem wysoce abstrakcyjny, więc trzeba uważać na to co się robi.

Druga rzecz to nowe bugi w dostarczonej razem z IDE bibliotece komponentów czy w bibliotece standardowej. Aktualizuję środowisko i komponenty źle działają. W celu naprawy sięgam do najgłębiej osadzonych klas bazowych i aplikuję poprawkę. Trzeba uważać, bo dodanie kilku linijek kodu w klasie bazowej wpływa na działanie kilkudziesięciu mniej abstrakcyjnych klas dziedziczących, z których budowane są komponenty.

0

@furious programming: Pisałem w Visual Studio, teraz Android Studio i nigdy jeszcze nie spotkałem się z tym, o czym piszesz.

P.S. co to jest "biblioteka komponentów" i co ma wspólnego z IDE? Przecież projekt można skompilować nawet bez żadnego ide, np na Jenkinsie.

0
Szalony Krawiec napisał(a):

@furious programming: Pisałem w Visual Studio, teraz Android Studio i nigdy jeszcze nie spotkałem się z tym, o czym piszesz. […] Przecież projekt można skompilować nawet bez żadnego ide, np na Jenkinsie.

Ale nie pisałeś w Lazarusie. Ja w nim piszę, ty nie, więc komentujesz coś, o czym nic nie wiesz.

P.S. co to jest "biblioteka komponentów" i co ma wspólnego z IDE?

Google zbanowali?

Lazarus dostarcza własną bibliotekę komponentów (zwaną LCL) – ta biblioteka zawiera kupę klas bazowych oraz klasy końcowe standardowych (uniwersalnych) komponentów, widniejących na palecie. Wszystkie kontrolki które rozwijam, bazują na tych właśnie klasach bazowych1.

Ba, nawet samo środowisko zbudowane jest z tych komponentów, więc jeśli pojawi się w tej bibliotece błąd to nie dość, że moje komponenty będą działać źle, to jeszcze samo IDE będzie te błędy posiadać.


[1] Mowa głównie o komponentach, dlatego że mój pakiet kontrolek stanowi 2/3 kodu całego projektu.

0

Ok, wybacz, nie wiedziałem co to Lazarus i że on tak działa. Założyłem, że wszystkie nowoczesne technologie działają analogicznie.

P.S. nie wspomniałeś konkretnie w czym piszesz, a te problemy nie są znane w technologiach, z którymi ja akurat miałem styczność. Stąd zdziwienie.

0

To czego używam raczej nie jest tajemnicą – wystarczy wejść do mojego profilu i sprawdzić tagi lub wpis o sobie. Dodatkowo, o tym czego konkretnie używam, sam wielokrotnie piszę w swoich postach przy okazji odpowiadania. Ale wiem, nie każdy czyta moje posty czy w ogóle zagląda do kategorii Delphi/Pascal.

Szalony Krawiec napisał(a):

Założyłem, że wszystkie nowoczesne technologie działają analogicznie.

Lazarus działa zgrubsza tak samo jak Delphi – ono też dostarcza własną bibliotekę komponentów, zwaną VCL, a LCL jest jej odpowiednikiem, w większej części kompatybilnym (bo takie są jej założenia).

0

No ok, przyznałem się wszak do błędu - nie sprawdziłem. No to wesoło tam masz z tym Lazarusem, podziwiam że chce ci się tym bawić. W . net, javie, Androidzie nie musisz poprawiać kontrolek dostarczanych przez producenta i nie są one przyspawane do IDE (wydawałoby mi się to niewłaściwe).

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