Jak píšete kód?

PetrM

Re:Jak píšete kód?
« Odpověď #75 kdy: 15. 09. 2017, 19:29:50 »
Vsiml jsi si ze je rok 2017 ? Mi rekni KDO uz programuje DNES v terminalu a jeste k tomu ve VI* ? Jeden z tisice a i ten ma poruchu osobnosti... Timhle pokladam tema Vi za vycerpane a ukoncene, howgh.

Všiml jsem si že je rok 2017. Proto používám VIM a ne VI.

Jestli ti to totiž neuniklo, náplní práce sofťáka je i použití vzdálených toolů - unit testy (u embeďáka, co dělá desku na Linuxu bez GUI, se bez konzoly nedá), konfigurace pana Jenkinse (taky přes konzolu někde na serveru), konfigurace repozitáře, povolení si portu na firewallu,... Tam je VI/VIM jistota.

A náhodou, konzola je super vynález. Víš, jak efektivně urychlí práci sofťáka? V minulé práci jsme měli výrobek, kde bylo několik mikrokontrolérů na jedné desce a byl požadavek udělat balík pro instalaci, ve kterým byla nějaká hlavička ohledně produktu, pak binárky rozšířený o jejich hlavičky. No a paralelně k tomu samostatný binýárky, co se pálily do výrobku na lince. Vývoj toho nástroje, co to balil, dostal na starost frikulín jako ty.  Dopadlo to nejhůř, jak mohlo. Klikací bestie v C#. A víš proč?
- Než člověk udělal release, musel si ten bazmek dostat do komplu. To znamenalo sehnat nejenom binárku, ale i .NET správné verze.
- Embeďáci neměli plnou verzi toho M$VS, co měl on, a v jiné verzi to po něm nešlo buildovat a když byl problém, musel člověk čekat, než jeho frikulínstvo hne zadekí a fixne to.
- Marketing záhy přišel s několika variantama toho produktu (lišící se například jazykem, logem odběratele při bootu,...) a bylo potřeba je do toho toolu přidat. Myslíš, že to hovado se obtěžovalo s nějakým XMLkem nebo aspoň starým dobrým INI? Ne, všechno natvrdo v kódu. Viz bod 2. Mezi 30 vývojářama  byli dva schopní toho, aby upravili "toolu pro všeobecný použití", jak tomu před managerama říkali, konfiguraci hlavičky.
- Před spuštěním bylo potřeba naklikat asi 20 parametrů (ohledně typu MCU, verze jednotlivých SW, vybrat produkt, sdělit cesty,...). Frikulína nenapadlo mít možnost uložit konfiguraci do souboru, takže se všechno naklikávalo ručně.
- Frikulín neznal parsování, přece není debil, aby tam zadal nějakou blbou hodnotu. A výjimky pro něho byly sprostý slovo. Takže když člověk nezadal cestu k souboru, protože se teprve buildovalo, a chtěl zatím vyplnit verzi SW, zbuchlo to, protože soubor neexistoval a hurá od začátku.
- Možnost spustit updatebuilder.exe s parametry nebyla, uráželo to jeho víru  GUI widlí
- Následkem toho všeho trvala konfigurace 30 minut, build binárek taky 30 minut. Sama práce prográmku byla na 5s.

Při pěti variantách produktu to bylo pět hodin, kdy u toho musel člověk sedět, protože musel klikat jak debil. Místo toho, aby člověk prostě v GITu přidal změny do větve pro release, Jenkins to v noci zbuildoval a následně spustil něco z command line a rovnou zahlásil, že balíček pro update byl úspěšně sestaven. To je totiž to pravý řešení pro rok 2017 - nech rutinní práci na automatice, jenom zkontroluj výsledek. A ani nemusí vědět, že pracuje s GITem - ony se ty příkazy dají hodit do shell scriptu, takže stačí napsat "release" do konzoly a odentrovat. A za 4h je v mailu zpráva, jak to dopadlo. Jenom poslat soubory ze serveru, kam patří.

A bez toolů jako make, kompilátor, linker, ... uděláš prd i v lokále. I ty softy na střih videa koneckonců často používají ffmpeg apod. A všechno je to ovládaný z toho fujtajbl příkazovýho řádku, jenom to před tebou IDE nebo softy s GUI úspěšně tají.

Jak chceš nepoužívat konzolu, když jsi připojen přes SSH k serveru, na kterém není Xclient?

A to je programovani? Vzdyt si to stahnu z gitu, programuji lokalne, pushnu, deploy. Teda aspon tak to delaj normalni programatori a ne amatersti pristipkari pres ssh.

Jo, ale ten push spustí nějakou akci na serveru, která spouští po sobě jeden CLI program za druhým, dokud nedojde do požadovanýho cíle. Ty to jenom nevidíš, ale bez command line bys byl v pr... Tak se laskavě neposmívej těm, kdo ti to ve VIMu tak krásně připravili, nebo ti jednoho krásnýho dne přes SSH změní jedno písmenko v těch skriptech a máš vymalováno.


jpu

Re:Jak píšete kód?
« Odpověď #76 kdy: 15. 09. 2017, 19:37:40 »
kolko ludi sa pripaja cez ssh a pouziva VIM cez ktory programuje? robite tu z toho, ako keby je to normalne a robi sa to vo velkom

Kit

Re:Jak píšete kód?
« Odpověď #77 kdy: 15. 09. 2017, 20:06:04 »
kolko ludi sa pripaja cez ssh a pouziva VIM cez ktory programuje? robite tu z toho, ako keby je to normalne a robi sa to vo velkom

Uznávám, že těch cca 10 % programátorů, kteří používají Vim, není zrovna programováním ve velkém.

shemale

Re:Jak píšete kód?
« Odpověď #78 kdy: 15. 09. 2017, 23:55:11 »
  • Jaky font pouzivate pri programovani? - záleží na platformě, Mac + Linux mám DejaVu Sans Mono / Menlo 12px), ve Windows Consolas 12px
  • Za kterym sloupcem zalamujete? - samozřejm 80, ale kód formátuji pomocí Prettier
  • Mate monitor s editorem otoceny na vysku? - ne, mám 2x 4k na Linuxu a Win. Na Macku mi stačí Retina
  • Tema - dark/light? - dark + nightshit
  • Pripadne shell prikazy spoustite z editoru/IDE nebo terminalu? - primárně terminál, ale záleží na IDE v kterém jsem -
     JetBrains mají dobrý, Visual Code + Atom je katastrofa, o VS raději nemluvím :D
  • Vyuzivate numericky blok klavesnice? - ne, k čemu :-D. Od doby co mám Mac, nepotřebuji ani myš
  • Tab nebo space a kolik znaku? - mezera, ale jak jsem psal, používám Prettier
  • blokovou { davate pod prikaz nebo vedle nej ? - na stejnou řádku a otazník dávám bez mezery... ;-)

Na podobné téma, tj. code standards jsem se účastnil již mnoho debat. Každý člověk má svůj názor a je to nekonečná debata. Od doby, co jsem objevil Prettier mě absolutně nezajímá co a jak píše kód. Po uložení souboru se prostě přeformátuje podle standardu a konec diskuzí. Pak se nestane, že jeden používá mezery a jiný taby, jeden chlupaté závorky na nové řádce atd. Prostě mají všichni stejně formátovaný kód a je klid. Nehledě na to, že žabomyší války o mezeře / tabu jsou k ničemu.

Obecně si myslím, a také to ve firmě zastávám, že je mi jedno, v čem mi programátoři píší (jsou tu lidé s Mackem, s Win, s Linuxem), ale zajímá mě produktivita a je mi úplně jedno, jestli má IDE nebo Vim (á třeba programoval ve Vimu 8 let a byl jsem spokojený).

noef

  • *****
  • 897
    • Zobrazit profil
    • E-mail
Re:Jak píšete kód?
« Odpověď #79 kdy: 16. 09. 2017, 07:42:26 »
... Velkým nešvarem uživatelů dnešních IDE jsou pleonasmy v názvech souborů. Vidím to skoro v každém projektu, který je ve více podadresářích. Kdyby používali Vim, tak by je to rovnou praštilo přes nos a takové hlouposti by nedělali.

To jako protoze Vim ma problem s navigaci, tak je problem s ostatnimi programatory pouzivajicimi IDE? Co si vzpominam, tak treba v Angularu byla best practise poradne pojmenovavat komponentu, prestoze to jmeno uz bylo v ceste (napr. components/page/about/about-page.component.ts). A teda myslim, ze se to stejne razi i v Jave.

Posledne, co sme tu v nejakem vlakne srovnavali Vim a IDEA praci v Jave, z toho vysel Vim dost slabe - neumnel ani zakladni refaktorovani (prejmenovani tridy/fieldu, ktery v projektu existuje v ruznych kontextech) a myslim mel i problem s opravdovou navigaci.

At si kazdy pouziva co chce. Ale hlasat jak je Vim nejlepsi nastroj na vyvoj a pak neumi ani triviality, ktere umely opravdova IDE roky (desetileti spis) zpet a reagovat tim, ze to neni potreba, protoze prece opravdovy programator to pise tak, ze to nikdy nebude treba refaktorovat a ze se nikdy nezmeni zadani a dalsi podobne bludy... To mozna funguje na malych projektech v jednom cloveku, i tak si myslim, ze to akorat povede k prasecimu kodu, protoze se nepouziva nastroj, ktery refaktorovani pohodlne zvlada, takze to programator rucne delat nebude a nejak si to ospravedlni.

...

Jeden uzivatel IDE prasi, takze vsichni uzivatele IDE prasi? Nebo co se tim snazite rict? Ja pouzivam IDE a napr. z IDE pracuji s Gitem, protoze to je rychlejsi, nez z konzole (vidim diff s formatovanim, mohu z jakehokoliv mista diffu skocit do zdrojaku v IDE a pripadne upravit, snad na vsechny akce existuje klavesova zkratka [pripadne lze nastavit], takze rozdil v rychlosti tam nebude; mozna bude naopak cista konzole pomalejsi). Co ma smysl, to pouzivam z konzole (v mem pripade treba spousteni testu, sprava baliku), rozhodne tedy neplati "uzivatel IDE == nepouziva na nic konzoli". Stejne tak neplati, ze "uzivatel IDE == pouziva Windows" (muj hlavni OS je Tux).


PetrM

Re:Jak píšete kód?
« Odpověď #80 kdy: 16. 09. 2017, 10:22:26 »
... Velkým nešvarem uživatelů dnešních IDE jsou pleonasmy v názvech souborů. Vidím to skoro v každém projektu, který je ve více podadresářích. Kdyby používali Vim, tak by je to rovnou praštilo přes nos a takové hlouposti by nedělali.
To jako protoze Vim ma problem s navigaci, tak je problem s ostatnimi programatory pouzivajicimi IDE? Co si vzpominam, tak treba v Angularu byla best practise poradne pojmenovavat komponentu, prestoze to jmeno uz bylo v ceste (napr. components/page/about/about-page.component.ts). A teda myslim, ze se to stejne razi i v Jave.

Ten princip tahání cesty k suboru d ozdrojáku je na blití. Vždycky. Kód je kód. Soubor s kódem je soubor s kódem. Cesta k souboru je cesta k souboru. Při překladu nesmí záležet na tom, jak a kam to bylo uloženo.

S tím mícháním mě vždycky tak nechutně vytáčel už Pascal - ukazatel POpenDialog, třída TOpenDialog, instance OpenDialog a jak nazvat soubor, když to není case sensitive a opendialog.pas hodí chybu duplicitního identifikátoru? Jak u blbečků na dvorečku. Jenom proto, aby to měl kompilátor jednodušší :(

Úplně jiná kategorie jsou pak kreténi, kteří udělají nějaký IDE a když člověk přidává soubor, musí přes absolutní cestu (C::B například). Takže já si udělám v /home/petr/projekty/abc/xzy.c, commitnu to včetně projektovýho souboru a Lojza, protože to má v /home/lojza/projekty/abc/, to neotevře a řeší konflikt v projektovým souboru... Resp. ho řeší při každým pull requestu, nabo musí být projektový soubor v .gitignore, nebo hledat další řešení... Tam by si zasloužil autor toho nesmtyslu takovou po papuli, že se bude týden na židli točit. A jak se dotočí, tak druhou, stejně silnou na druhou stranu, aby si uvědomil, že to trochu přepískl.

...

Jeden uzivatel IDE prasi, takze vsichni uzivatele IDE prasi? Nebo co se tim snazite rict? Ja pouzivam IDE a napr. z IDE pracuji s Gitem, protoze to je rychlejsi, nez z konzole (vidim diff s formatovanim, mohu z jakehokoliv mista diffu skocit do zdrojaku v IDE a pripadne upravit, snad na vsechny akce existuje klavesova zkratka [pripadne lze nastavit], takze rozdil v rychlosti tam nebude; mozna bude naopak cista konzole pomalejsi). Co ma smysl, to pouzivam z konzole (v mem pripade treba spousteni testu, sprava baliku), rozhodne tedy neplati "uzivatel IDE == nepouziva na nic konzoli". Stejne tak neplati, ze "uzivatel IDE == pouziva Windows" (muj hlavni OS je Tux).

Chci tím říct, že
a) bez command line se neobejdeme, ani kdyby se frikulíni s jejich klikátkma na přirození stavěli
b) program, co nemá možnost ovládání přes CLI, jako tool pro vývoj neobstojí ani náhodou
c) že moje osobní zkušenost je taková, že kdo nemá mentální kapacitu na zapamatování pár klávesových zkratek a pár příkazů na konzole, ten nemá na 99% mentální kapacitu ani na to, aby napsal program dobře (chybí výjimky, validace, ...). Což ale samozřejmě neznamená, že zdatný uživatel command line napíše dobrý programy.
d) nikdy nenechávej narcistu programovat něco, co budou používat ostatní.

Kit

Re:Jak píšete kód?
« Odpověď #81 kdy: 16. 09. 2017, 11:26:37 »
... Velkým nešvarem uživatelů dnešních IDE jsou pleonasmy v názvech souborů. Vidím to skoro v každém projektu, který je ve více podadresářích. Kdyby používali Vim, tak by je to rovnou praštilo přes nos a takové hlouposti by nedělali.

To jako protoze Vim ma problem s navigaci, tak je problem s ostatnimi programatory pouzivajicimi IDE? Co si vzpominam, tak treba v Angularu byla best practise poradne pojmenovavat komponentu, prestoze to jmeno uz bylo v ceste (napr. components/page/about/about-page.component.ts). A teda myslim, ze se to stejne razi i v Jave.

Vim nemá problém s navigací, ale IDE tyhle problémy mají a proto používají zkriplené názvy souborů i tříd.

Podstatné je, že se ty zkriplené názvy blbě čtou. Namespace je namespace a v názvu třídy nemá co pohledávat. Pokud ti chybí, používej fullpath - ušetříš tím řádek v importech. Hezky to má vyřešeno například Haskell, ale ani PHP není pozadu.

Posledne, co sme tu v nejakem vlakne srovnavali Vim a IDEA praci v Jave, z toho vysel Vim dost slabe - neumnel ani zakladni refaktorovani (prejmenovani tridy/fieldu, ktery v projektu existuje v ruznych kontextech) a myslim mel i problem s opravdovou navigaci.

Hlavně jsme se neshodli v tom, že uvedený příklad není refaktorování, ale redesign. Rozhraní tříd by mělo být svaté. Dle OCP ho můžeš rozšířit, ale nesmíš ho měnit. Jinak zaděláváš na problémy ostatním kolegům.

At si kazdy pouziva co chce. Ale hlasat jak je Vim nejlepsi nastroj na vyvoj a pak neumi ani triviality, ktere umely opravdova IDE roky (desetileti spis) zpet a reagovat tim, ze to neni potreba, protoze prece opravdovy programator to pise tak, ze to nikdy nebude treba refaktorovat a ze se nikdy nezmeni zadani a dalsi podobne bludy... To mozna funguje na malych projektech v jednom cloveku, i tak si myslim, ze to akorat povede k prasecimu kodu, protoze se nepouziva nastroj, ktery refaktorovani pohodlne zvlada, takze to programator rucne delat nebude a nejak si to ospravedlni.

Ať si každý používá co chce. Ale hlásat, jak je IDE nejlepším nástrojem na vývoj a pak neumí triviality, které uměly opravdové editory roky (spíš desetiletí) a reagovat tím, ře to není potřeba, protože opravdový programátor píše tak, že takový redesign může dělat každou chvíli a že se každou chvíli změní zadání a další podobné bludy...

Přejmenování třídy nebo metody opravdu není refaktorování. To jen autoři IDE nám věší bulíky na nos.

jpu

Re:Jak píšete kód?
« Odpověď #82 kdy: 16. 09. 2017, 11:51:01 »
Citace
Ale hlásat, jak je IDE nejlepším nástrojem na vývoj a pak neumí triviality
Urcite IDE zjednodusuje pracu a to vo velkom.

Re:Jak píšete kód?
« Odpověď #83 kdy: 16. 09. 2017, 12:01:58 »
Chci tím říct, že
a) bez command line se neobejdeme, ani kdyby se frikulíni s jejich klikátkma na přirození stavěli
b) program, co nemá možnost ovládání přes CLI, jako tool pro vývoj neobstojí ani náhodou
c) že moje osobní zkušenost je taková, že kdo nemá mentální kapacitu na zapamatování pár klávesových zkratek a pár příkazů na konzole, ten nemá na 99% mentální kapacitu ani na to, aby napsal program dobře (chybí výjimky, validace, ...). Což ale samozřejmě neznamená, že zdatný uživatel command line napíše dobrý programy.
d) nikdy nenechávej narcistu programovat něco, co budou používat ostatní.
To je všechno hezké, ale úplně mimo téma. Jo, chápu že tě evidentně Winowsáci točí, ale nevšiml jsem si že by se tady takový objevil (koneckonců - co by tu dělal, že).

A nebo si fakt myslíš že platí ekvivalence (nebo i implikace) mezi "používá IDE pro psaní kódu" a "nepoužívá command line"? Mimo Windows svět rozhodně ne - a i tam se už časy hodně mění (už jenom z toho důvodu, že automatizace buildů a testů je dnes v podstatě standard).

pb.

Re:Jak píšete kód?
« Odpověď #84 kdy: 16. 09. 2017, 14:26:18 »
Jak chceš nepoužívat konzolu, když jsi připojen přes SSH k serveru, na kterém není Xclient?

A to je programovani? Vzdyt si to stahnu z gitu, programuji lokalne, pushnu, deploy. Teda aspon tak to delaj normalni programatori a ne amatersti pristipkari pres ssh.

Dělám sběr dat na elektrárnách v Rumunsku, Srbsku, na Ukrajině a v Polsku u Baltického moře. K dispozici tam mám počítač výkonem cosi pod úrovní maliny a přístup jen přes SSH. Pokud mám štěstí, jsem připojený drátem a ne přes  geostacionární satelit. Proprietární protokol je pokaždé nějaký jiný, bez přímé komunikace se zařízením se to udělat nedá, za obrovskou standardizaci se dá považovat modbus. Mám si teda nechat přivézt elektrárnu k sobě do kanceláře? Nebo bude lepší zajet třeba na Ukrajinu, usadit se s notebookem uprostřed rozbahněného pole a programovat tam? A v Rumunsku jak? Pravou rukou budu klikat myší a levou klackem odhánět místní magnetické obyvatelstvo?

rumun

Re:Jak píšete kód?
« Odpověď #85 kdy: 16. 09. 2017, 14:47:42 »
Možná si najít něco na západě za pořádné peníze 8)

Jinak nechápu, proč pořád reagujete na Kitovo trollení. VIM se na vývoj nepoužívá, protože je to neefektivní. Pokud si on doma něco patlá a je každému jedno, jestli to dělá 10 nebo 100 hodin, protože jeho hodina je stejně max za 600,-, tak proč ne. Ale dnešní vývoj musí mít trochu rychlost a tohle jsou tak osmdesátky, kde i kvalita vývoje byla odlišná.

Kit

Re:Jak píšete kód?
« Odpověď #86 kdy: 16. 09. 2017, 15:32:35 »
Jinak nechápu, proč pořád reagujete na Kitovo trollení. VIM se na vývoj nepoužívá, protože je to neefektivní. Pokud si on doma něco patlá a je každému jedno, jestli to dělá 10 nebo 100 hodin, protože jeho hodina je stejně max za 600,-, tak proč ne. Ale dnešní vývoj musí mít trochu rychlost a tohle jsou tak osmdesátky, kde i kvalita vývoje byla odlišná.

DNFTT!

Kvalita vývoje jde s IDE brutálně dolů, protože v něm dělá i kdejaký patlal.

rumun

Re:Jak píšete kód?
« Odpověď #87 kdy: 16. 09. 2017, 15:54:17 »
Jinak nechápu, proč pořád reagujete na Kitovo trollení. VIM se na vývoj nepoužívá, protože je to neefektivní. Pokud si on doma něco patlá a je každému jedno, jestli to dělá 10 nebo 100 hodin, protože jeho hodina je stejně max za 600,-, tak proč ne. Ale dnešní vývoj musí mít trochu rychlost a tohle jsou tak osmdesátky, kde i kvalita vývoje byla odlišná.

DNFTT!

Kvalita vývoje jde s IDE brutálně dolů, protože v něm dělá i kdejaký patlal.

Takže pokud dělám v IDE a jsem cca desekrát rychlejší než ty, tak pokud nějaký patlal dělá v IDE, tak mě to také zpomaluje? WTF?

jpu

Re:Jak píšete kód?
« Odpověď #88 kdy: 16. 09. 2017, 16:19:58 »
Kvalita vývoje jde s IDE brutálně dolů, protože v něm dělá i kdejaký patlal.
v com ide kvalita dole? Co napr. take pripojenie na DB, otestovanie konekcie, vytvorenie objektov z DB, to vsetko ide cez VS na par klikov. VIM nepouzivam, ale neviem si celkom predstavit, ako by tam bolo nieco taketo mozne realizovat. Ale stavim sa, ze v tom IDE VS to spravim ovela rychlejsie.

Kit

Re:Jak píšete kód?
« Odpověď #89 kdy: 16. 09. 2017, 16:21:01 »
Jinak nechápu, proč pořád reagujete na Kitovo trollení. VIM se na vývoj nepoužívá, protože je to neefektivní. Pokud si on doma něco patlá a je každému jedno, jestli to dělá 10 nebo 100 hodin, protože jeho hodina je stejně max za 600,-, tak proč ne. Ale dnešní vývoj musí mít trochu rychlost a tohle jsou tak osmdesátky, kde i kvalita vývoje byla odlišná.

DNFTT!

Kvalita vývoje jde s IDE brutálně dolů, protože v něm dělá i kdejaký patlal.

Takže pokud dělám v IDE a jsem cca desekrát rychlejší než ty, tak pokud nějaký patlal dělá v IDE, tak mě to také zpomaluje? WTF?

Když píšeš v IDE 10× rychleji než já, napíšeš i 10× víc zbytečného kódu a víc než 10× více chyb. Čtení tvého kódu zabere 10× víc času, než toho mého. Kód se čte 10× častěji než se píše. Kde je ta efektivita?