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.