V jaké verzi Visual Studia vyvíjíte komerčně?

dustin

Re:V jaké verzi Visual Studia vyvíjíte komerčně?
« Odpověď #90 kdy: 03. 05. 2015, 13:12:47 »
v každé metodě 2-4 lokální proměnné. Copak na jejich rozlišení jsou nutná dlouhá slova typu klapkoBřinkoStroj nebo nosoČistoPlena?

Sorry, ale to je přesně ten přístup. Nejde o rozlišení proměnných od sebe, ale o jejich skutečný význam. Pak stačí špatně pojmenovaný název metody (ve stejném stylu, tedy pravidlo v takovém kódu) a neděláš nic jiného, než se snažíš pochopit, co tím vlastně autor mínil.


Kit

Re:V jaké verzi Visual Studia vyvíjíte komerčně?
« Odpověď #91 kdy: 03. 05. 2015, 13:19:08 »
S tím si dovolím nesouhlasit. Nikdo nedělá 80znakové popisné názvy, ale zpravidla si vystačí s 5-30 znaky. A takové výrazy se do 80 sloupců v pohodě vejdou.
Vejdou, ale vůbec ne v pohodě a přehledně, v javě bude každý druhý řádek zlomený. Nevidím důvod si znečitelnit kód úplně zbytečným omezením.

Kupodivu moc těch zlomených řádek nemívám. Raději zalomím řádek než abych vkládal prázdné řádky dovnitř metod.

Na 5 znaků ve většině případů nedáš popisnou proměnnou, to bude akorát tak nesrozumitelná nekompletní zkratka.

To se mýlíš. Zkratky (kromě běžně užívaných) zásadně nepoužívám. Co máš proti názvům proměnných model, name, group, child, users, key nebo value, pokud jsou lokální? A co řídící proměnné cyklů i, j, k - ty ti také vadí?

Re:V jaké verzi Visual Studia vyvíjíte komerčně?
« Odpověď #92 kdy: 03. 05. 2015, 13:26:32 »
Hezké, to má přínos. A je ten předmět pro nějaký SW směr povinný?

Softwarové systémy ho mají jako povinně volitelný.

Kit

Re:V jaké verzi Visual Studia vyvíjíte komerčně?
« Odpověď #93 kdy: 03. 05. 2015, 13:28:24 »
v každé metodě 2-4 lokální proměnné. Copak na jejich rozlišení jsou nutná dlouhá slova typu klapkoBřinkoStroj nebo nosoČistoPlena?

Sorry, ale to je přesně ten přístup. Nejde o rozlišení proměnných od sebe, ale o jejich skutečný význam. Pak stačí špatně pojmenovaný název metody (ve stejném stylu, tedy pravidlo v takovém kódu) a neděláš nic jiného, než se snažíš pochopit, co tím vlastně autor mínil.

Však ten skutečný význam se dá většinou vystihnout jediným slovem. Pokud působnost takové proměnné je omezena na třídu nebo dokonce metodu, tak v tom fakt problém nevidím. Navíc taková třída bývá lépe znovupoužitelná, protože potřeba víceslovných názvů proměnných indikují porušení SRP a to tě navede na injekci těchto závislostí.

dustin

Re:V jaké verzi Visual Studia vyvíjíte komerčně?
« Odpověď #94 kdy: 03. 05. 2015, 15:50:11 »
Jestli je to users, to vidím na první pohled - kolekce objektů User. Ale ti uživatelé jsou většinou něčím typičtí, a to je právě potřeba popsat názvem proměnné. To z žádného typu nevyčtu. Pouhé users je ve většině případů k ničemu.

Delší kód je potřeba rozpadnout do metod a většina metod má tedy jen právě jedno volání. Nerozpadám do metod primárně kvůli reuse of code, ale hlavně kvůli čitelnosti a přehlednosti. Takže v té metodě chci vědět, co přesně je to za uživatele. A pokud ji budu chtít použít později i jinde (IDE mi při vytažení metody samozřejmě rovnou nabídne další místa nahrazení, ale mluvím o pozdější době, až přijde nový požadavek), přejmenuji proměnnou na aktuálně správný název. V dobrém IDE je to jedna klávesová zkratka. A o tom tu celou dobu mluvím, je potřeba mít jasně popisné názvy. Obecné názvy jsou většinou na houby.

Již několik let refaktoruji kód řady vývojářů a velice přesně vím, o čem mluvím. Min. 80% času je refaktoring, zbytek nové featury.

Dám příklad.

Někdo žádá o účast na nějaké akci. Někdo to schvaluje.

Takže user, approver

OK, jeden vývojář použije approver ve významu schvalovatele. Jenže kdo je schvalovatel - ten kdo má schválit nebo ten kdo schválil? Přijde další a použije stejné slovo (samozřejmě field v DTO) ve významu toho, kdo zažádal jménem účastníka a rovnou mu to schválil. A po pár kolech je v tom akorát pěkný bordel, který je peklo rozmotávat. Přitom stačí přesné názvosloví:

participant, requestedBy, toBeDecidedBy, decidedBy (approved ne, protože to významově vylučuje možnost "zamítnul"). Všichni jsou to samozřejmě users.

A o tom mluvím. Na 5 znaků se nevejdeš ani náhodou.


Kit

Re:V jaké verzi Visual Studia vyvíjíte komerčně?
« Odpověď #95 kdy: 03. 05. 2015, 16:14:36 »
participant, requestedBy, toBeDecidedBy, decidedBy (approved ne, protože to významově vylučuje možnost "zamítnul"). Všichni jsou to samozřejmě users.

A o tom mluvím. Na 5 znaků se nevejdeš ani náhodou.

Psal jsem 5-30 znaků. Do toho se vejdou všechny názvy, které jsi uvedl.

Nevím, k čemu máš to "By" na konci. Tím sémanticky vylučuješ uložení data a času podání, termínu či schválení do těchto objektů.

perceptron

Re:V jaké verzi Visual Studia vyvíjíte komerčně?
« Odpověď #96 kdy: 03. 05. 2015, 16:29:14 »
Citace
Obvykle stačí místo všech setterů použít jeden notify() a místo getterů jeden toString(). Jenže to bychom museli programovat objektově, že[/quote

priklad?

pokud nemate objekt, tak tam dejte string a pokud nemate string, tak tam nedejte nic

oop jak prase

Re:V jaké verzi Visual Studia vyvíjíte komerčně?
« Odpověď #97 kdy: 03. 05. 2015, 16:29:39 »
 ;D  ;D  ;D  ;D  ;D

Po bambilionosmé ...

Kit

Re:V jaké verzi Visual Studia vyvíjíte komerčně?
« Odpověď #98 kdy: 03. 05. 2015, 16:38:14 »
pokud nemate objekt, tak tam dejte string a pokud nemate string, tak tam nedejte nic

Vida, už ses naučil přetěžování metod!

perceptron

Re:V jaké verzi Visual Studia vyvíjíte komerčně?
« Odpověď #99 kdy: 03. 05. 2015, 16:39:08 »
priklad na triedu s notify() je opat nad vase schopnosti blabolit?

Kit

Re:V jaké verzi Visual Studia vyvíjíte komerčně?
« Odpověď #100 kdy: 03. 05. 2015, 16:43:21 »
priklad na triedu s notify() je opat nad vase schopnosti blabolit?

Všichni přece známe Observer, ne?

Kitice

Re:V jaké verzi Visual Studia vyvíjíte komerčně?
« Odpověď #101 kdy: 03. 05. 2015, 17:11:41 »
Když nemáte getery, tak tam dejte observer.

Kit

Re:V jaké verzi Visual Studia vyvíjíte komerčně?
« Odpověď #102 kdy: 03. 05. 2015, 17:16:18 »
Když nemáte getery, tak tam dejte observer.

Umíš také něco jiného než blábolit a provokovat? Zatím jsi toho moc nepředvedl a navíc si pleteš getter se setterem.

Kitice

Re:V jaké verzi Visual Studia vyvíjíte komerčně?
« Odpověď #103 kdy: 03. 05. 2015, 17:25:15 »
Trolling? Tohle je přece přesně otázka pro tebe.

Když nemáte nápady, tak tam dejte nesmysly!

dustin

Re:V jaké verzi Visual Studia vyvíjíte komerčně?
« Odpověď #104 kdy: 03. 05. 2015, 17:27:35 »

Psal jsem 5-30 znaků. Do toho se vejdou všechny názvy, které jsi uvedl.

30 znaků proměnná - jak bude pak vypadat řádek s limitem 80 znaků? 30 znaků už je pěkně dlouhý popisný název. Ale proč ne, ničemu neškodí, daleko lepší než nepřesný krátký.

Citace
Nevím, k čemu máš to "By" na konci. Tím sémanticky vylučuješ uložení data a času podání, termínu či schválení do těchto objektů.

Víš, to je další problém. Pro přehledný kód (psaný v angličtině) je potřeba umět anglicky, aby se nepoužívaly matoucí či vysloveně nesprávné názvy. Každý den takové proměnné opravuji. Občas to nemá s angličtinou nic společného. To By znamená "kým". Pro ještě větší přehlednost bych to mohl doplnit o User - decidedByUser, requestedByUser. Jenže v IDE najedu na proměnnou a vidím datový typ, tudíž to User tam není nezbytné. Ale být by tam klidně mohlo.