Abstrakce u OOP

Re:Abstrakce u OOP
« Odpověď #75 kdy: 12. 06. 2020, 15:50:48 »
Jsem rád, že nejsem sám, kdo se v tom ztratil. Podotýkám, že nejsem javista a nevěnoval jsem tomu moc času, ale tohle mít ve firemním repozitáři, asi bych se dost vyděsil. Komentáře jsem nenašel prakticky žádné, když nepočítám 6 řádků copyright v každém souboru. A když ano, bylo to něco jako:


Kód: [Vybrat]
// REFACTOR The fixture path is really the only part of this
Taky nejsem Javista a taky jsem tomu nevěnoval až tak moc času. Na druhou stranu jsem nenarazil na jedinou konstrukci, které bych nerozuměl. Jednomu každému řádku rozumím, ale nějak nejsem schopný popsat, co se tam děje, na trochu vyšší úrovni. Težce mi tam chybí jakýkoliv kontext.

To ne, ale muj zamestavatel neni mym zakaznikem. Zamestnavatele mam staleho a zakazniky stridam tak cca kazde dva roky.
Navic jak rikam... tlacim na to aby to tak delali i ostatni v mem tymu.
Teď je otázka, jak se na váš samovysvětlující kód dívají ti, co ho po těch dvou letech mají převzít a dál udržovat.


Re:Abstrakce u OOP
« Odpověď #76 kdy: 12. 06. 2020, 15:57:29 »
To ne, ale muj zamestavatel neni mym zakaznikem. Zamestnavatele mam staleho a zakazniky stridam tak cca kazde dva roky.
Navic jak rikam... tlacim na to aby to tak delali i ostatni v mem tymu.
Teď je otázka, jak se na váš samovysvětlující kód dívají ti, co ho po těch dvou letech mají převzít a dál udržovat.

Vetsinou zustavam v kontaktu(kdyz to neni predavka do Indie a i tam obcas jo). A jeste mi nikdo nenadaval :-)

Re:Abstrakce u OOP
« Odpověď #77 kdy: 12. 06. 2020, 16:02:06 »
Jsem rád, že nejsem sám, kdo se v tom ztratil. Podotýkám, že nejsem javista a nevěnoval jsem tomu moc času, ale tohle mít ve firemním repozitáři, asi bych se dost vyděsil. Komentáře jsem nenašel prakticky žádné, když nepočítám 6 řádků copyright v každém souboru. A když ano, bylo to něco jako:


Kód: [Vybrat]
// REFACTOR The fixture path is really the only part of this

Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Tak tohle mi třeba došlo poměrně rychle. ;)

Problém je, že mi tam dost chybí ostatní druhy komentářů. Že něco programátor neudělal mi moc nepomůže, když nevím co se vůbec snažil udělat.

Re:Abstrakce u OOP
« Odpověď #78 kdy: 12. 06. 2020, 16:18:49 »
Jsem rád, že nejsem sám, kdo se v tom ztratil. Podotýkám, že nejsem javista a nevěnoval jsem tomu moc času, ale tohle mít ve firemním repozitáři, asi bych se dost vyděsil. Komentáře jsem nenašel prakticky žádné, když nepočítám 6 řádků copyright v každém souboru. A když ano, bylo to něco jako:


Kód: [Vybrat]
// REFACTOR The fixture path is really the only part of this

Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Tak tohle mi třeba došlo poměrně rychle. ;)

Problém je, že mi tam dost chybí ostatní druhy komentářů. Že něco programátor neudělal mi moc nepomůže, když nevím co se vůbec snažil udělat.

Me to prijde celkem evidentni... Mozna je tezky skocit do projektu o kterym nic nevim a vyznat se v nem...
Ale kdyz vim, ze je to bude poustet nejaky testy a ze mozna budu chtit nejaky vystupy tak uz to zacne davat smysl.

Re:Abstrakce u OOP
« Odpověď #79 kdy: 12. 06. 2020, 16:39:47 »
Jsem rád, že nejsem sám, kdo se v tom ztratil. Podotýkám, že nejsem javista a nevěnoval jsem tomu moc času, ale tohle mít ve firemním repozitáři, asi bych se dost vyděsil. Komentáře jsem nenašel prakticky žádné, když nepočítám 6 řádků copyright v každém souboru. A když ano, bylo to něco jako:


Kód: [Vybrat]
// REFACTOR The fixture path is really the only part of this

Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Tak tohle mi třeba došlo poměrně rychle. ;)

Problém je, že mi tam dost chybí ostatní druhy komentářů. Že něco programátor neudělal mi moc nepomůže, když nevím co se vůbec snažil udělat.

Me to prijde celkem evidentni... Mozna je tezky skocit do projektu o kterym nic nevim a vyznat se v nem...
Ale kdyz vim, ze je to bude poustet nejaky testy a ze mozna budu chtit nejaky vystupy tak uz to zacne davat smysl.
Jak možná? Je zatraceně těžký skočit do projektu o kterým nic nevím a vyznat se v něm. A když je každá třída jako dílek puzzle, o kterém nevím jak zapadá do zbytku, tak je to ještě výrazně obtížnější.

Že to pouští nějaké testy a generuje nějaké výstupy je jasné. Akorát jsem při tom letmém procházení toho projektu nenarazil na nic, co by vypadalo jako pouštění nějakých testů nebo generování nějakých výstupů. A u jednotlivých tříd jsem nebyl schopný odhadnout, jakou část toho pouštění testů nebo generování výstupů mají vůbec na starost. Asi je to namleté moc najemno. Proto jsem taky zmiňoval ten boilerplate kód.


Re:Abstrakce u OOP
« Odpověď #80 kdy: 12. 06. 2020, 16:50:49 »
Jak možná? Je zatraceně těžký skočit do projektu o kterým nic nevím a vyznat se v něm. A když je každá třída jako dílek puzzle, o kterém nevím jak zapadá do zbytku, tak je to ještě výrazně obtížnější.

Že to pouští nějaké testy a generuje nějaké výstupy je jasné. Akorát jsem při tom letmém procházení toho projektu nenarazil na nic, co by vypadalo jako pouštění nějakých testů nebo generování nějakých výstupů. A u jednotlivých tříd jsem nebyl schopný odhadnout, jakou část toho pouštění testů nebo generování výstupů mají vůbec na starost. Asi je to namleté moc najemno. Proto jsem taky zmiňoval ten boilerplate kód.

Jasny... jako cist knizku od prostredka. Ale zajimalo by me jakej komentar by tam mel bejt aby mi to pomohlo tu skladacku slozit....

Jestli proste nebude lepsi cist tu knizku od zacatku.

Re:Abstrakce u OOP
« Odpověď #81 kdy: 12. 06. 2020, 17:09:33 »
Otevrel sem si spring-boot a nahodne klikal az najdu nejakou tridu a jestli tam bude komentar a co se z nej dozvim:
Kód: [Vybrat]
/**
 * {@link HealthEndpointGroup} used to support availability probes.
 *
 * @author Phillip Webb
 * @author Brian Clozel
 */
class AvailabilityProbesHealthEndpointGroup implements HealthEndpointGroup

Podle me vim stejny nic jako kdyby tam ten komentar nebyl.

Ink

  • *****
  • 654
    • Zobrazit profil
    • E-mail
Re:Abstrakce u OOP
« Odpověď #82 kdy: 12. 06. 2020, 17:11:26 »
Jak možná? Je zatraceně těžký skočit do projektu o kterým nic nevím a vyznat se v něm. A když je každá třída jako dílek puzzle, o kterém nevím jak zapadá do zbytku, tak je to ještě výrazně obtížnější.

Že to pouští nějaké testy a generuje nějaké výstupy je jasné. Akorát jsem při tom letmém procházení toho projektu nenarazil na nic, co by vypadalo jako pouštění nějakých testů nebo generování nějakých výstupů. A u jednotlivých tříd jsem nebyl schopný odhadnout, jakou část toho pouštění testů nebo generování výstupů mají vůbec na starost. Asi je to namleté moc najemno. Proto jsem taky zmiňoval ten boilerplate kód.

Jasny... jako cist knizku od prostredka. Ale zajimalo by me jakej komentar by tam mel bejt aby mi to pomohlo tu skladacku slozit....

Jestli proste nebude lepsi cist tu knizku od zacatku.

Minimálně by tam měly být nějaké základní informace ke každé třídě. Perlička z kódu:

Kód: [Vybrat]
// class that needs to be globally accessible.
public class FixtureLoader {

O třídě mi to řekne kulový, akorát deklaruje to zjevnou věc, tedy že třída je (OK, musí být) k dispozici globálně. Jasně, mám to pochopit z názvu, takže máme třeba třídu Parse, která NĚCO parsuje, neříká co, jak ani proč. A když je tam komentář v metodách (tohle NEJSOU až tak triviální věci), tak v jednom případě ze tří proto, aby zakomentoval řádek kódu. A pak je tam ještě komentář k metodě, cituji:

Kód: [Vybrat]
/* Added by Rick Mugridge, Feb 2005 */
Když to nepochopím, zeptám se Ricka, jak to před 15 lety myslel.

Hele, fakt nechci rýpat, ale tohle mi nepřijde jako dobrý vzorový případ.

Re:Abstrakce u OOP
« Odpověď #83 kdy: 12. 06. 2020, 17:20:09 »
Jak možná? Je zatraceně těžký skočit do projektu o kterým nic nevím a vyznat se v něm. A když je každá třída jako dílek puzzle, o kterém nevím jak zapadá do zbytku, tak je to ještě výrazně obtížnější.

Že to pouští nějaké testy a generuje nějaké výstupy je jasné. Akorát jsem při tom letmém procházení toho projektu nenarazil na nic, co by vypadalo jako pouštění nějakých testů nebo generování nějakých výstupů. A u jednotlivých tříd jsem nebyl schopný odhadnout, jakou část toho pouštění testů nebo generování výstupů mají vůbec na starost. Asi je to namleté moc najemno. Proto jsem taky zmiňoval ten boilerplate kód.

Jasny... jako cist knizku od prostredka. Ale zajimalo by me jakej komentar by tam mel bejt aby mi to pomohlo tu skladacku slozit....

Jestli proste nebude lepsi cist tu knizku od zacatku.

Minimálně by tam měly být nějaké základní informace ke každé třídě. Perlička z kódu:

Kód: [Vybrat]
// class that needs to be globally accessible.
public class FixtureLoader {

O třídě mi to řekne kulový, akorát deklaruje to zjevnou věc, tedy že třída je (OK, musí být) k dispozici globálně. Jasně, mám to pochopit z názvu, takže máme třeba třídu Parse, která NĚCO parsuje, neříká co, jak ani proč. A když je tam komentář v metodách (tohle NEJSOU až tak triviální věci), tak v jednom případě ze tří proto, aby zakomentoval řádek kódu. A pak je tam ještě komentář k metodě, cituji:

Kód: [Vybrat]
/* Added by Rick Mugridge, Feb 2005 */
Když to nepochopím, zeptám se Ricka, jak to před 15 lety myslel.

Hele, fakt nechci rýpat, ale tohle mi nepřijde jako dobrý vzorový případ.

Fajn... dej lepsi.

Re:Abstrakce u OOP
« Odpověď #84 kdy: 12. 06. 2020, 17:30:47 »
Jak možná? Je zatraceně těžký skočit do projektu o kterým nic nevím a vyznat se v něm. A když je každá třída jako dílek puzzle, o kterém nevím jak zapadá do zbytku, tak je to ještě výrazně obtížnější.

Že to pouští nějaké testy a generuje nějaké výstupy je jasné. Akorát jsem při tom letmém procházení toho projektu nenarazil na nic, co by vypadalo jako pouštění nějakých testů nebo generování nějakých výstupů. A u jednotlivých tříd jsem nebyl schopný odhadnout, jakou část toho pouštění testů nebo generování výstupů mají vůbec na starost. Asi je to namleté moc najemno. Proto jsem taky zmiňoval ten boilerplate kód.

Jasny... jako cist knizku od prostredka. Ale zajimalo by me jakej komentar by tam mel bejt aby mi to pomohlo tu skladacku slozit....

Jestli proste nebude lepsi cist tu knizku od zacatku.

Minimálně by tam měly být nějaké základní informace ke každé třídě. Perlička z kódu:

Kód: [Vybrat]
// class that needs to be globally accessible.
public class FixtureLoader {

O třídě mi to řekne kulový, akorát deklaruje to zjevnou věc, tedy že třída je (OK, musí být) k dispozici globálně. Jasně, mám to pochopit z názvu, takže máme třeba třídu Parse, která NĚCO parsuje, neříká co, jak ani proč. A když je tam komentář v metodách (tohle NEJSOU až tak triviální věci), tak v jednom případě ze tří proto, aby zakomentoval řádek kódu. A pak je tam ještě komentář k metodě, cituji:

Kód: [Vybrat]
/* Added by Rick Mugridge, Feb 2005 */
Když to nepochopím, zeptám se Ricka, jak to před 15 lety myslel.

Hele, fakt nechci rýpat, ale tohle mi nepřijde jako dobrý vzorový případ.

BTW. rikal sem, ze tam jsou komentare navic... ktery bych dal pryc.
A nikdy sem netvrdil, ze ty co tam jsou tak jsou k necemu dobry...

Takze me nezajima to co tam "je", ale to co ti tam chybi....
Zajimaly by me ty "zakladni informace".

Nejakej dobre priklad kde to je a kde je to fakt uzitecny...

Co sem si vsimnul tak vetsina barevnych schemat do IDE a editoru se snazi nejak potlacit komentare aby nebyli tolik videt.
Rikam si... procpak asi?

Kit

  • *****
  • 704
    • Zobrazit profil
    • E-mail
Re:Abstrakce u OOP
« Odpověď #85 kdy: 12. 06. 2020, 17:43:42 »
Co sem si vsimnul tak vetsina barevnych schemat do IDE a editoru se snazi nejak potlacit komentare aby nebyli tolik videt.
Rikam si... procpak asi?

Nejen v IDE, komentáře mám potlačeny i ve Vimu. Nevzpomínám si, že by mi byly někdy k užitku. Pohled do kódu mi řekne mnohem víc, rychleji a na rozdíl od komentářů vidím přesně, co ten kód dělá a nedělá.


Ink

  • *****
  • 654
    • Zobrazit profil
    • E-mail
Re:Abstrakce u OOP
« Odpověď #87 kdy: 12. 06. 2020, 18:44:19 »
Takze me nezajima to co tam "je", ale to co ti tam chybi....
Zajimaly by me ty "zakladni informace".

Nejakej dobre priklad kde to je a kde je to fakt uzitecny...

Co sem si vsimnul tak vetsina barevnych schemat do IDE a editoru se snazi nejak potlacit komentare aby nebyli tolik videt.
Rikam si... procpak asi?

Základ jsou docstringy k metodám a třídám. U parseru jsem jasně psal, že bych chtěl vědět, co parsuje, ideálně proč je to tam naprasené natvrdo namísto použití nějaké osvědčené metody vytváření parserů.

U komentářů výše jasně píšu, že za normálních okolností jsou šum - když se člověk v nějakém kódu pohybuje denně. Pokud něco nemáš v hlavě a z kódu to snadno nevyčteš, je z šumu rázem signál. To je asi tak odpověď na Tvoje dvě otázky - proč jsou komentáře a proč jsou komentáře vizuálně potlačeny.

Všechno to v diskusi už zaznělo.

Re:Abstrakce u OOP
« Odpověď #88 kdy: 12. 06. 2020, 19:06:05 »
Hele, fakt nechci rýpat, ale tohle mi nepřijde jako dobrý vzorový případ.

Fajn... dej lepsi.

https://www.sqlite.org/src/file?name=src/bitvec.c&ci=tip
https://github.com/jupyter/notebook/blob/master/notebook/utils.py
https://github.com/servo/servo/blob/master/components/selectors/bloom.rs
https://doc.rust-lang.org/src/core/fmt/mod.rs.html

Ten BloomFilter je krasnej priklad...
Cekal sem, ze si prectu komentar a budu chapat co to teda treba filtruje a proc to neco pocita.... ale nemam paru...
Jsem prehlcen nejakymi implementacnim detaily a kontext nemam stejne zadnej....

Stejny jako v tom fitnesse... Taky kdyz nahodne nekam kouknu nevim nic...

v Utils.py se mi nejvic libi komentar:
Kód: [Vybrat]
def url_is_absolute(url):
    """Determine whether a given URL is absolute"""

Re:Abstrakce u OOP
« Odpověď #89 kdy: 12. 06. 2020, 19:10:54 »
Takze me nezajima to co tam "je", ale to co ti tam chybi....
Zajimaly by me ty "zakladni informace".

Nejakej dobre priklad kde to je a kde je to fakt uzitecny...

Co sem si vsimnul tak vetsina barevnych schemat do IDE a editoru se snazi nejak potlacit komentare aby nebyli tolik videt.
Rikam si... procpak asi?

Základ jsou docstringy k metodám a třídám. U parseru jsem jasně psal, že bych chtěl vědět, co parsuje, ideálně proč je to tam naprasené natvrdo namísto použití nějaké osvědčené metody vytváření parserů.

Mas nejakej priklad s tim parserem?

U komentářů výše jasně píšu, že za normálních okolností jsou šum - když se člověk v nějakém kódu pohybuje denně. Pokud něco nemáš v hlavě a z kódu to snadno nevyčteš, je z šumu rázem signál. To je asi tak odpověď na Tvoje dvě otázky - proč jsou komentáře a proč jsou komentáře vizuálně potlačeny.

Všechno to v diskusi už zaznělo.

To znamena, ze za normalnich okolnosti jsou komentare na obtiz?
Takze pisu komentare kvuli nenormalnim okolnostem protoze me to jednou vytahne z bryndy, i kdyz vim, ze se kvuli tomu musim denno denne brodit sumem?