Jak se neztratit ve vlastním kódu?

OTO

Jak se neztratit ve vlastním kódu?
« kdy: 22. 11. 2017, 16:32:30 »
Ahoj, když děláte fakt velký projekt, jak si zapamatovat celou strukturu kódu? Neexistuje nějaká grafická aplikace, ve které by se daly vytvořit třeba názvy souborů s propojením? Děkuji za tip. O.


Ondrej.T

Re:Jak se neztratit ve vlastním kódu?
« Odpověď #1 kdy: 22. 11. 2017, 16:41:33 »
Doporucuji opustit Vim a pouzivat poradne IDE  8)

Kit

Re:Jak se neztratit ve vlastním kódu?
« Odpověď #2 kdy: 22. 11. 2017, 16:55:32 »
Ahoj, když děláte fakt velký projekt, jak si zapamatovat celou strukturu kódu? Neexistuje nějaká grafická aplikace, ve které by se daly vytvořit třeba názvy souborů s propojením? Děkuji za tip. O.

Napsal jsem si skript, který mi generuje diagram tříd z dostupných zdrojáků. Není to nic složitého.

Hodně však pomáhá správná organizace namespace, tedy současně i adresářové struktury. Na to se hodí např. Freemind. Jistě, většina IDE to umí, ale podstatné je, jak to zvládá architekt aplikace.

Vykook

  • ***
  • 135
    • Zobrazit profil
    • homepage
    • E-mail
Re:Jak se neztratit ve vlastním kódu?
« Odpověď #3 kdy: 22. 11. 2017, 17:48:18 »
Doporucuji opustit Vim a pouzivat poradne IDE  8)
Naprasit a ať se s tím popere IDE za mě. Chce se mi plakat.

Re:Jak se neztratit ve vlastním kódu?
« Odpověď #4 kdy: 22. 11. 2017, 17:53:07 »
Ja pouzivam IntelliJ Idea, ale prevazne se hrabu v Java, Scala nebo node.js. Taky uz jsem stal pred podobnym problemem, kterej ale neprichazi ve chvili tvoreni, to mam vsechno v hlave, ale az kdyz se k tomu mam po par mesicich vratit a treba delat upravy. Pak se ptam, kdo tohle kurva psal :-)))

Ja si na vsechno pisu i minimalisticky knihovny, nebo projekt rozdelim do maven modulu. Kazdopadne celkove mi to pripada, ze si stavim lego kosticky (kdyz jsem byl malej, tak u nas byla cenove dostupna Cheva, tu jsem miloval) a pak z nich nekde slozim vetsi celky, atd. Koncept lega je pri psani kodu uplne stejnej a funguje vytecne.


andy

Re:Jak se neztratit ve vlastním kódu?
« Odpověď #5 kdy: 22. 11. 2017, 19:15:15 »
Popozeram co su tam priblizne za package/classy, potom pouzivam eclipse call hierarchy, object hierarchy atd. Obcas kreslim na stary dobry papier. Skusal som aj xmind, ale nevyhovuje mi to, lebo papier mozem mat polozeny vedla klavesnice a nemusim ho hladat medzi 30 oknami..

Re:Jak se neztratit ve vlastním kódu?
« Odpověď #6 kdy: 22. 11. 2017, 19:58:05 »
Doporucuji opustit Vim a pouzivat poradne IDE  8)
Naprasit a ať se s tím popere IDE za mě. Chce se mi plakat.

Ale houby - pouzivat vyhod IDE k tomu, aby byl kod co nejlepsi.

Kit

Re:Jak se neztratit ve vlastním kódu?
« Odpověď #7 kdy: 22. 11. 2017, 20:15:03 »
Doporucuji opustit Vim a pouzivat poradne IDE  8)
Naprasit a ať se s tím popere IDE za mě. Chce se mi plakat.

Ale houby - pouzivat vyhod IDE k tomu, aby byl kod co nejlepsi.

No jo, ale kdo to dělá? IDE klidně připustí, že třída Controller je třeba potomkem třídy Config. Od takových a podobných hovadin nás ani IDE nezachrání.

aaa158

  • ***
  • 238
    • Zobrazit profil
    • E-mail
Re:Jak se neztratit ve vlastním kódu?
« Odpověď #8 kdy: 22. 11. 2017, 20:40:36 »
man cscope

Re:Jak se neztratit ve vlastním kódu?
« Odpověď #9 kdy: 22. 11. 2017, 20:42:32 »
Doporucuji opustit Vim a pouzivat poradne IDE  8)
Naprasit a ať se s tím popere IDE za mě. Chce se mi plakat.

Ale houby - pouzivat vyhod IDE k tomu, aby byl kod co nejlepsi.

No jo, ale kdo to dělá? IDE klidně připustí, že třída Controller je třeba potomkem třídy Config. Od takových a podobných hovadin nás ani IDE nezachrání.

A hasicí přístroj ti nepomůže při vaření. Ergo hasicí přístroj je k ničemu.

Prostě je IDE jeden z řady nástrojů a technik, co programátor používá, aby dosáhnul nějakých výsledků. Že to neumíš je tvůj problém, ne problém IDE.

Re:Jak se neztratit ve vlastním kódu?
« Odpověď #10 kdy: 22. 11. 2017, 20:45:07 »
Doporucuji opustit Vim a pouzivat poradne IDE  8)
Naprasit a ať se s tím popere IDE za mě. Chce se mi plakat.

Ale houby - pouzivat vyhod IDE k tomu, aby byl kod co nejlepsi.

No jo, ale kdo to dělá? IDE klidně připustí, že třída Controller je třeba potomkem třídy Config. Od takových a podobných hovadin nás ani IDE nezachrání.

1. SonarQube - tuna checku out-of-the box a muzes si psat svoje
2. Muzes si vytvorit nejaky project archetype jako sablonu
3. Muzes pouzit sablony - ja jsem to pouzival na generovani completni generovani plne funkcnich REST API nad entitama - FreeMarker, nebo low-level -> JavaPoet na githubu
4. Muzes si napsat vlastni quality checking parsovanim zdrojovyho kodu -> javaparser na githubu
apod.

Kit

Re:Jak se neztratit ve vlastním kódu?
« Odpověď #11 kdy: 22. 11. 2017, 21:31:35 »
Prostě je IDE jeden z řady nástrojů a technik, co programátor používá, aby dosáhnul nějakých výsledků. Že to neumíš je tvůj problém, ne problém IDE.

Problém je v tom, že uživatelé IDE ho považují za "silver bullet", který vyřeší problémy s architekturou aplikace. Nevyřeší, pouze je zamaskuje a zašmodrchá. Proč nepoužít čtyřnásobnou dědičnost, když to IDE umožňuje? Vůbec je netrápí, že to nemá logiku a aplikaci to činí nepřehlednou. Výsledkem jsou polofunkční aplikace, které pak musím po nich opravovat.

Kit

Re:Jak se neztratit ve vlastním kódu?
« Odpověď #12 kdy: 22. 11. 2017, 21:37:45 »
No jo, ale kdo to dělá? IDE klidně připustí, že třída Controller je třeba potomkem třídy Config. Od takových a podobných hovadin nás ani IDE nezachrání.

1. SonarQube - tuna checku out-of-the box a muzes si psat svoje
2. Muzes si vytvorit nejaky project archetype jako sablonu
3. Muzes pouzit sablony - ja jsem to pouzival na generovani completni generovani plne funkcnich REST API nad entitama - FreeMarker, nebo low-level -> JavaPoet na githubu
4. Muzes si napsat vlastni quality checking parsovanim zdrojovyho kodu -> javaparser na githubu
apod.

5. Napsat testy

RDa

  • *****
  • 2 465
    • Zobrazit profil
    • E-mail
Re:Jak se neztratit ve vlastním kódu?
« Odpověď #13 kdy: 22. 11. 2017, 21:39:47 »
Jak klasifikujes "vetsi projekt" ? Ve svych neco pres 600k LoC se porad dokazi orientovat (one man show), staci to pojmenovavat logicky a nemusim veci pak hledat - vzdy vim kde by co mohlo byt.

Pokud jsi ale neporadny sam, tak ti zadny tool nepomuze.

Re:Jak se neztratit ve vlastním kódu?
« Odpověď #14 kdy: 22. 11. 2017, 22:00:36 »
Prostě je IDE jeden z řady nástrojů a technik, co programátor používá, aby dosáhnul nějakých výsledků. Že to neumíš je tvůj problém, ne problém IDE.

Problém je v tom, že uživatelé IDE ho považují za "silver bullet", který vyřeší problémy s architekturou aplikace. Nevyřeší, pouze je zamaskuje a zašmodrchá. Proč nepoužít čtyřnásobnou dědičnost, když to IDE umožňuje? Vůbec je netrápí, že to nemá logiku a aplikaci to činí nepřehlednou. Výsledkem jsou polofunkční aplikace, které pak musím po nich opravovat.

Ano, testy mi sice nepomuzou k tomu, abych se v kodu neztratil a udrzel nejakou stabni kulturu, ale jasne, souhlasim. Exituji napr. EvoSuite nebo randoop jako generatory unit testu, ale ani v kombinaci nepokryjou vice nez ~60% funkcionality.

Take doporucuju se kouknout na AspectJ, typicky pres to resim genericke logovani a error handling, takze tim nezasiras kod, ale aktivujes to typicky pres anotace, nebo bez anotaci enforcujes vsude. AOP je uz posledni dobou spise out hlavne v high performance java architekturach a spis se to resi pres. tzv "event middlewary"

Dalsi toolou pro zprehledneni kodu je urcite Lombok - zadny get/set, zadny konstruktory, zadny equeal, gethash, apod. Lombok dogenerovava kod on background, ale v *.java souboru ho nevidis, dynamicky generuje boiler-plate.