Portál AbcLinuxu, 23. října 2026 02:19


Dotaz: Styly programování

novomente avatar 23.8. 04:41 novomente | blog: novomente
Styly programování
Přečteno: 1831×
Odpovědět | Admin

Když jsem se učil z knížek programovat, autoři ve vztahu k syntaxi většinou říkali, aby si programátor zvolil svůj styl a toho se pak držel. Programovací jazyky však dovolují nejen styl syntaxe, ale i styl programování. Existují však konvence anebo doporučení, jak programovat v tom či onom jazyce.

Nejsem profesionální programátor, ale zajímalo by mě, jestli se těchto doporučení držíte, anebo máte raději (i kromě těchto doporučení) nějakou volnost a svobodu rozhodnout se, jak budete programovat. Zajímá mě praxe jak freelancerů, tak profesionálů v týmu malém i velkém.

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

23.8. 16:51 X
Rozbalit Rozbalit vše Re: Styly programování
Odpovědět | | Sbalit | Link | Blokovat | Admin
S cim potrebujes poradit?
23.8. 19:50 Peter Golis | skóre: 65 | blog: Bežné záležitosti | Bratislava
Rozbalit Rozbalit vše Re: Styly programování
Chce vedieť ako formulovať dotazník do google dokumentov, a následne ako ho zverejniť aby mu to vyplnili ľudia nech má zápočet na ekonomickej učňovke, fakulta managementu.

Keby už vo svojom živote dokázal napísať akýkoľvek text (hoci aj počítačový program) počte viacej ako 42 riadkov, tak by vedel že sa pýta zbytočnosť.
novomente avatar 23.8. 20:45 novomente | blog: novomente
Rozbalit Rozbalit vše Re: Styly programování
Navrhuji techniku programování, kde jsou užity již hotové technologie, ale ta technika zatím vyžaduje určitá doporučení, která by se měla dodržovat. Chtěl bych zjistit, jestli profesionální vývojáři dávají přednost svobodě v programování, nebo jestli je praxe dosti omezuje ve způsobu, jak programují.
23.8. 21:44 X
Rozbalit Rozbalit vše Re: Styly programování
Tak to je velice jednoduche. a] Muze genialni programator psat jako prase. Muze. b] Muze profesional psat jako prase? Nemuze.

Svoboda programovani? Si se probudil z minulosti? Mas inteligentni editory, highlighting, auto-korekci, AI. Dnes uplne kazdy kod vypada dobre, i kdyz neches ;).
novomente avatar 24.8. 03:02 novomente | blog: novomente
Rozbalit Rozbalit vše Re: Styly programování
To je samozřejmě všechno pravda. Neměl jsem však na mysli syntaktický styl, ale osobní styl co kdo jak programuje. Existují třeba návrhové vzory. To jsou ta doporučení. To, co mě zajímá je, jestli se profi programátoři striktně těch návrhových vzorů drží, nebo mají jiný osobní styl. To je ta svoboda - programovat něco svým vlastním způsobem. A zajímá mě to, jak to funguje u freelancerů (tam bych čekal svobodu větší) a jak v malých anebo velkých týmech.

U AI tam nevím, programuje to ona, tak snad jestli té AI někdo dává direktivy, jakým stylem programovat, nebo se to nechává celé na ní?
24.8. 10:35 Kit | skóre: 46 | Brno
Rozbalit Rozbalit vše Re: Styly programování
V podstatě nevidím důvod k tomu, aby se vývojář nedržel návrhových vzorů a to včetně soukromých projektů. Jsou jednoduché a účinné, zavádí očekávané názvy metod, chování je obvyklé. Svobodu vidím spíš ve výběru vhodného vzoru a jeho implementaci.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
24.8. 12:23 rastos | skóre: 63 | blog: rastos
Rozbalit Rozbalit vše Re: Styly programování
Odpovědět | | Sbalit | Link | Blokovat | Admin
zajímalo by mě, jestli se těchto doporučení držíte,
Hlavne jedného: KISS
24.8. 16:48 Zadejte vaše jméno
Rozbalit Rozbalit vše Re: Styly programování
Odpovědět | | Sbalit | Link | Blokovat | Admin

Каždý projekt má nejaký štýl, ktorý by sa mal dodržiavať, aby bol kód čitateľnejší.
napr. https://github.com/mixxxdj/mixxx/wiki/Coding%20Guidelines

24.8. 20:04 Kit | skóre: 46 | Brno
Rozbalit Rozbalit vše Re: Styly programování
Nejjistější je zakomponování pravidel formátování kódu přímo do Gitu. Odpadnou dohady a jejich vynucování.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
24.8. 20:34 Olaf
Rozbalit Rozbalit vše Re: Styly programování
Odpovědět | | Sbalit | Link | Blokovat | Admin
Kdysi jsem přešel od vysokoúrovňových programovacích jazyků k Pythonu. Člověku dával volnou ruku. Kdo chtěl, psal procedurálně a funkcionálně, jiný objektově, cílem bylo dodat funkční kód. A šlo poznat, kdo je psal, protože ano -- každý měl svůj nějaký styl. Po letech si Pythonu kvůli jeho oblíbenosti a bohatým knihovnám všimli kravaťáci z Javy a veškeré neduhy v podobě přílišné abstraktizace přenesli do Pythonu, takže kódy už nejdou ani přečíst, protože i sebevětší blbost je rozdrolená do N modulů. A na pohovorech to vypadá jako zkoušce z Javy se syntaxí Pythonu. Jsem z toho otráven a lidé jako populární Arjan by už neměli být připuštěni ke kameře.
24.8. 22:30 Kit | skóre: 46 | Brno
Rozbalit Rozbalit vše Re: Styly programování
Kdysi jsem v MHD viděl kód v Pythonu s asi 9 úrovněmi odsazení. Fuj, hanba, hnus. Python je krásný jazyk, ale takhle ho prznit? Vždyť se mu metoda ani nevešla na obrazovku.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
24.8. 23:19 Olaf
Rozbalit Rozbalit vše Re: Styly programování
Viděl jsem podobné prasárny, třeba (class) proměnné s rovnítky zarovnané dle nejdelšího názvu. Naštěstí tohle řeší IDE a člověku po stisknutí ctrl+s to automaticky srovná (ruff apod.). Ale co jsem viděl (v tutoriálu!), byl třeba výpočet faktoriálu přes třídu s využitím dunder metod. Takže místo obyčejné funkce (třeba uvedené -- a zrychlené -- dekorátorem @njit) autor použil třídu s __init__, __iter__, __next__... Hnůj. A co přišlo v posledních dvou letech, je ještě větší hrůza (ne kvůli vývoji samotného Pythonu, ale kvůli Java evangelistům, kteří chtějí, aby lidé psali kódy podle jejich mustru).
26.8. 14:08 Kit | skóre: 46 | Brno
Rozbalit Rozbalit vše Re: Styly programování
Javisté jsou takovou masochistickou skupinou. Místo postupů podle Clean Code a SOLID vytváří různé gettery, settery, singletony a další nesmysly. Java je skvělým programovacím jazykem, ale je spousta evangelizátorů, kteří ji statečně degradují. A když někdo vytvoří konkurenční elegantní jazyk, tak se nacpou i tam.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
novomente avatar 3.10. 09:50 novomente | blog: novomente
Rozbalit Rozbalit vše Re: Styly programování
Odpovědět | | Sbalit | Link | Blokovat | Admin
Máte rádi, když na stejný elementární problém můžete použít více způsobů, jak ho dosáhnout? Mám na mysli, když máte více ekvivalentních konstrukcí kódu, ze kterých si můžete vybrat.
3.10. 12:13 X
Rozbalit Rozbalit vše Re: Styly programování
Napriklad?
novomente avatar 3.10. 13:09 novomente | blog: novomente
Rozbalit Rozbalit vše Re: Styly programování
Napriklad:

a++ vs. a += 1

nebo:

pseudokód:

void getJmeno()
{
  String jmeno = ""
  while(true)
  {
    jmeno = input("Zadej sve jmeno: ");
    if (jmeno)
      {
        break;
      }
  }
  printf("Ahoj %s", jmeno);
}

vs.

void getJmeno()
{
  String jmeno = "";
  while((jmeno = input("Zadej sve jmeno: ")) == "")
    ;
  printf("Ahoj %s", jmeno);
}
3.10. 15:55 Kit | skóre: 46 | Brno
Rozbalit Rozbalit vše Re: Styly programování
Ještě na to můžeš použít do .. while
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
novomente avatar 3.10. 16:14 novomente | blog: novomente
Rozbalit Rozbalit vše Re: Styly programování
JJ to se da :-)
3.10. 20:12 X
Rozbalit Rozbalit vše Re: Styly programování
Napriklad:

a++ vs. a += 1
To neni stejne..
3.10. 22:43 Kit | skóre: 46 | Brno
Rozbalit Rozbalit vše Re: Styly programování
V čem je rozdíl, pokud se jedná o int?
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
4.10. 10:12 X
Rozbalit Rozbalit vše Re: Styly programování
Vazne? Pokud se nepletu, tak sytakticky je "++" inkrementacni operator, "+=" je ekvivalent prirazeni. Zaroven "a++" je post-inkrement => v 'a' je porad puvodni hodnota:
int a = 0;
int b;

b = a + 1
b: 1

b = a++
b: 0
Tedy, neni to to same a nemuzes to pouzit podle libosti.
4.10. 12:10 novomente
Rozbalit Rozbalit vše Re: Styly programování
Vím, že bys mohl dát příklad s:

a += 1 namísto a + 1

ale chci se zeptat, jestli máš rád dělat různé věci různými způsoby. Tedy jazyk, který tě nenutí udělat věc jen jedním správným způsobem. Příklad nemám, ale jistě bys ho sám našel.
4.10. 14:35 pavele
Rozbalit Rozbalit vše Re: Styly programování
Vím, že bys mohl dát příklad s:

a += 1 namísto a + 1

ale chci se zeptat, jestli máš rád dělat různé věci různými způsoby. Tedy jazyk, který tě nenutí udělat věc jen jedním správným způsobem. Příklad nemám, ale jistě bys ho sám našel.
Jsi člověk nebo bot?
novomente avatar 4.10. 16:07 novomente | blog: novomente
Rozbalit Rozbalit vše Re: Styly programování
Jsem člověk. Bot nemá nohy a tak nemůže nosit boty a chodit :-) To byl vtip, abys věděl, že bot fakt nejsem. A ta otázka, co jsem položil, mě opravdu zajímá.
4.10. 15:18 Kit | skóre: 46 | Brno
Rozbalit Rozbalit vše Re: Styly programování
Ekvivalenty:
a = a + 1;
a += 1;
a++;
Druhý je zkrácenou verzí prvního, třetí je zkrácenou verzí prvního. Někdy se využívá jeho vedlejšího efektu, ale pak to zhoršuje čitelnost.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
4.10. 16:36 X
Rozbalit Rozbalit vše Re: Styly programování
Ne, taky nemam rad Perl. To je jazyk pro tebe ;).
4.10. 18:16 Kit | skóre: 46 | Brno
Rozbalit Rozbalit vše Re: Styly programování
Bohužel je v Perlu napsána významná část linuxových operačních systémů, tak s ním musíme nějak žít.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
5.10. 12:55 Vtipnéř | skóre: 39 | blog: Vtipnéřův blog | Brno
Rozbalit Rozbalit vše Re: Styly programování
Napriklad:

a++ vs. a += 1

nebo:

pseudokód:

void getJmeno()
{
  String jmeno = ""
  while(true)
  {
   ......
  }
  printf("Ahoj %s", jmeno);
}

vs.

void getJmeno()
{
  String jmeno = "";
  while((jmeno = input("Zadej sve jmeno: ")) == "")
    ;
  printf("Ahoj %s", jmeno);
}

Všechny zdravím.

Zkusil jsem, co udělá s prvním příkladem kompilátor. Vyrobil jsem prográmek v C

int pricti_1(int a)
{
    a++;
    return a;
}
a přeložil ho do assembleru, pak jsem inkrementaci nahradil ++a, následně jsem použil a+=1 a nakonec a=a+1. Ve všech čtyřech případech jsem dostal stejný výsledek. Samozřejmě, že kdybych použil nějaká přiřazení jako b=a++ a b=++a, musel by tam být rozdíl, jak píše pan X.

Co se týče podmínky v cyklu, to asi záleží na vkusu. while(true) nemám vůbec rád a ta dlouhá podmínka s přiřazením u druhého příkladu se mi taky nelíbí, nemám složité podmínky rád, ale někdy to jinak nejde nebo je to ještě složitější. Ale jak říkám, je to asi věc vkusu.

Jirka

Opening Windows is better than washing them. Clearing Windows (e.g. erasing or deleting) is even much better.

Založit nové vlákno • Nahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.