Jen povzdech ....

Uživatelský avatar
pavel1tu
Příspěvky: 2054
Registrován: 26 říj 2017, 08:28
Reputation: 0
Bydliště: Trutnov
Kontaktovat uživatele:

Re: Jen povzdech ....

Příspěvek od pavel1tu » 09 úno 2020, 19:44

KamilV píše:
09 úno 2020, 19:16
Pánové, bez kávy a GITu se nedá programovat :)
Arduino a GIT ?
To je jako jít s kanonem na komára, ne ?

To je pro velké projekty, kde na kodu pracují stovky/tisíce lidí, jedinec to nevyužije ....
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"

KamilV
Příspěvky: 479
Registrován: 03 dub 2018, 15:27
Reputation: 0
Bydliště: Olomouc

Re: Jen povzdech ....

Příspěvek od KamilV » 09 úno 2020, 19:55

A to je právě mýtus a omyl. GIT člověk využije i tehdy, když pracuje sám. Není to jen o "mergování" úprav více lidí, i v jednom člověku jsi rád, když se třeba začneš ubírat jiným směrem a po čase zjistíš, že to byla chyba a že by ses potřeboval vrátit do verze před týdnem...

Uživatelský avatar
gilhad
Příspěvky: 778
Registrován: 07 bře 2018, 11:22
Reputation: 0

Re: Jen povzdech ....

Příspěvek od gilhad » 09 úno 2020, 22:04

KamilV píše:
09 úno 2020, 19:16
Pánové, bez kávy a GITu se nedá programovat :)
To mas naprostou pravdu :) Ale kdyby melo byt nejhur, tak se, ac nerad, driv vzdam te kavy :roll:
pavel1tu píše:
09 úno 2020, 19:44
Arduino a GIT ?
To je jako jít s kanonem na komára, ne ?
Pokud je ten kanon zdarma a vejde se v pohode jako privesek ke klicum a toho komara zarucene sunda aniz by nadelal colateral damage, tak je rozhodne jednodussi stisknout tlacitko a mit klid, nez smesne pokakovat po po mistnosti a tleskat rucickama, bez zadouciho efektu. Ze to stejne snadno sunda i tank ci orbitalni stanici je hezke, ale i na ty komary je to extremne uzitecna vec :twisted:
pavel1tu píše:
09 úno 2020, 19:44
To je pro velké projekty, kde na kodu pracují stovky/tisíce lidí, jedinec to nevyužije ....
Prvni pulka vety je pravdiva, druha rozhodne nikoli. Necitim se nikterak schizofrenne, ale gitovych repozitaru mam vyssi desitky.

Jakmile to ma vic jak dva radky, tak ma smysl to v gitu mit. Takze mam repozitare jak pro 4 radkove limericky, tak pro jednoradkove priklady na zajimave konstrukce v ruznych jazycich, tak pro projekty, ktere davno prekrocily pul milionu radku - a to na vsem tom vetsinou pracuju sam.

To pohodli mit moznost vydat se vic cestami naraz a az nasledne zahodit ty zcela slepe a ze zbytku vybrat to, co v nich je zajimave (a mezitim mezi nimi libovolne preskakovat, vracet se do minulosti (a klidne tam zakladat dali pokusne vetve), regrese automaticky hledat pulenim, to je proste priserne navykove. Pricemz samozrejme komituju po kazde vetsi zmene a pokud mam zrovna pripojeni rovnou to pushnu na domaci "server".) Samozrejme to jde cas od casu procistit, pokud se dana vec osvedci a je jassne, ze netreba se vracet. Ale ten pocit, ze pokud by mi ted prastil blesk do pocitace a spalil vsechno, tak na libovolny jiny to obnovim trivialne a prijdu jen o posledni rozepsanou vec, kterou mam stejne v pameti, tak ten pocit za to fakt stoji.

A samozrejme i konfiguraci pocitaci mam v gitu, takze staci natahnout minimalni system, pridat git, obnovit konfiguraci a nechat automaticky dotahnout vse ostatni a jsem zase zpatky na svem a nic jsem nezapomel, protoze git to obsahuje.


Takhle, jako jo, uz jsem psal programy tak, ze jsem proste presmeroval standardni vstup do souboru a psal jsem. Nebo jem rucne editoval sektory na disku. Dokonce jsem nektere veci delal tak, ze jsem je rucne prelozil do strojoveho kodu a primo nacpal, byte po bytu, do pameti a pak skocil na zacatek a doufal, ze jsem neudelal chybu.
Samozrejme i blby notepad/Arduino IDE jsou lepsi vyvojove prostredi, ackoli je to stejne zoufalost.
No a pak tu mame skutecne programatorske nastroje a to je holt radove jina trida.

Takze samozrejme bych mohl kopirovat soubory z blink1.ino na blink2.ino a blink2-zaloha.ino a jednou za mesic to ulozit na disketu a doufat, ze za dalsi mesic se v tom jeste vyznam.
No a nebo to proste vrazim do gitu, nic neresim, co se mi nelibi, to prepisu rovnou, stejne to muzu kdykoli obnovit a pak se zae vratit k te promazane verzi. Muzu si vyjet rozdily mezi libovolnyma dvema verzemi v cele historii. Kdyz chci pridat dalsi tlacitko, tak se kouknu na rozdil mezi verzi "pridani tlacitka" a predchozi a hned vim, ze nesmim zapomenout na tyhle #define na zacatku, setMode uprostred setupu a tamten blok na konci loopu.

Uživatelský avatar
pavel1tu
Příspěvky: 2054
Registrován: 26 říj 2017, 08:28
Reputation: 0
Bydliště: Trutnov
Kontaktovat uživatele:

Re: Jen povzdech ....

Příspěvek od pavel1tu » 10 úno 2020, 17:55

GIT jsem používal naposledy v projektu na GNU Linux.
To co jsi napsal mne docela zaujalo, a pro mne jako laika co se týče programování s metodou pokus omyl - to by možná bylo zajímavé.

Odesláno z mého Redmi Note 8T pomocí Tapatalk

UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"

Uživatelský avatar
gilhad
Příspěvky: 778
Registrován: 07 bře 2018, 11:22
Reputation: 0

Re: Jen povzdech ....

Příspěvek od gilhad » 11 úno 2020, 02:46

Rekl bych, ze by se to mel naucit pouzivat kazdy, kdo nejak programuje a pro zacatecniky s metodou pokus-omyl je to dvojnasob cenne, prave proto, ze se mohou beztrestne vracet k mene rozbite verzi, nebo proste zkouset radu ruznych pristupu a az nakonec i vybrat, co dava jeste tam nejvetsi ssmysl pro dopracovani do nejake zajimave podoby :)

Dulezite je si uvedomit, ze ackoli to skutecne je s kanonem na vrabce, tak ten kanon je zdarma a staci vyuzit jen zlomek jeho sily.

Samozrejme, ze git JE DISTRIBUOVANY verzovaci sysstem - ale klidne ho muzes pouzivat sam, i na singl pocitaci bez pripojeni k siti. (A nebo si na druhem pocitaci snadno vytvorit repozitar, kam to rutinne pushujes a kdyz si pak neco smazess, tak to z nej nadno obnovis)

Samozrejme, ze umoznuje spolupraci tisicu autoru - ale i jeden clovek ho muze pouzit jen sam pro sebe.

Samozrejme, ze umoznuje spravu tisicu souboru a adresaru, ale klidne se da pouzit i pro jediny adresar s jednim mrnavym souborem.

Kód: Vybrat vše

mkdir pokus
cd pokus
git init
echo "Tohle je pokusny soubor">README.txt
git add -A
git commit -am "Hura, zalozil jsem README :)"

echo "Cim vic radku, tim vic adidas">>README.txt
git commit -am "A jeste jsem ho rozsiril!"

git log --oneline
e3594e8 A jeste jsem ho rozsiril!
cdc4276 Hura, zalozil jsem README :)

proste zadny velky problem s nim zacit pracovat hned po instalaci a casem se to naucit lip ;)

Zejmena tam vrazit soubor .gitignore a nechat ignorovat vsechny nepotrebne veci, ktere se tam nejak pri beznem pouzivani dostanou - ruzne dumpy, prelozene soubory, zalozni kopie a tak
A pripadne psat delsi a popisnejsi komentare, abych se v tom casem neztratil
A naucit se pouzivat vetve pro kazdou blbost a kdyz funguje, tak ji pomoci --squash prevest na jeden genialni kommit do hlavni rady.
A tak dal a tak dal - ale to prijde casem, az to budes potrebovat.

Nacist se to da napriklad tady: https://git-scm.com/book/en/v2 (a je tam i castecny preklad do cestiny), nebo kdekoli jinde, navodu je plny internet :lol:

(Jo, pouzivam Linux protoze na lepsi se zvyka snadno, ale i na Window by to nemelo byt o moc slozitejsi, jen se asi mkdir jinak jmenuje a podobne drobnosti)

KamilV
Příspěvky: 479
Registrován: 03 dub 2018, 15:27
Reputation: 0
Bydliště: Olomouc

Re: Jen povzdech ....

Příspěvek od KamilV » 11 úno 2020, 10:10

A já snad jen doplním, že mocnost a síla GITu je hlavně ve "větvích". Mám větev se stabilním programem. Z ní si odbočím větev s vývojem nové funkcionality "A", ale po týdnu zjistím, že na to nemám všechny součástky.
Odbočím si tedy další větev a budu se věnovat funkcionalitě "B", na kterou mám součástky všechny. Práce mi má trvat měsíc, ale po 14 dnech zjistím, že ve stabilní verzi programu mám bug a nechci čekat dalších 14 dní, až dodělám "B". Zároveň ale opravený bug nechci smíchat s rozpracovaným "B", protože by mi to nadělalo paseku.
Takže si odbočím větev pro opravu bugu. Pak dokončím "B" a spojím se stabilní verzí. Pak dokončím "A" a spojím se stabilní verzí.

Pak si hodím nohy na stůl a řeknu si, jak jen jsem mohl bez GITu žít :)

A ještě, aby se někdo nezalekl, protože ne každý holduje konzoli, mnohé IDE umí s GITem pracovat ve formě nějakého pluginu, takže není potřeba psát příkazy ručně.
Já mám na GIT napasované klávesové zkratky, takže:
  • něco napíšu, Ctrl+S (lokální save souboru)
  • Alt+C (commit do GITu)
  • Alt+P (push do vzdáleného repozitáře)
Za 2 vteřiny mám kód naverzovaný.
Je mi jedno, zda jsem zrovna u PC, nebo někde na NTB, vždy si z GITu stáhnu aktuální verzi a na té pokračuju.

Axamith
Příspěvky: 530
Registrován: 09 srp 2017, 08:17
Reputation: 0
Kontaktovat uživatele:

Re: Jen povzdech ....

Příspěvek od Axamith » 11 úno 2020, 11:50

Zeptám se úplně blbě. Takže když programuji a využívám GIT, aktuálně data ukládám na cloud a ne na svůj HDD?

KamilV
Příspěvky: 479
Registrován: 03 dub 2018, 15:27
Reputation: 0
Bydliště: Olomouc

Re: Jen povzdech ....

Příspěvek od KamilV » 11 úno 2020, 20:02

GIT je distribuovaný verzovací systém, takže každý "client" má u sebe celou kopii "serveru". Pokud někomu shoří stanice, obnoví si GIT ze serveru, nebo od kteréhokoliv klienta. Pokud shoří server, obnoví se z kteréhokoliv klienta.

Data ukládáš normálně k sobě na HDD. Zde může tvá práce končit, budeš GIT využívat jen lokálně nad svým HDD. Nebo můžeš ještě změny odesílat do vzdáleného repozitáře. To může být třeba RPi v lokální síti, nebo vlastní git server, nebo veřejná služba jako je GitHub, GitLab, či BitBucket.
I v těchto veřejných službách lze mít projekty privátní, aby kód nikdo cizí neviděl.

Takže když bych si chtěl udělat výlet k Axamithovi, ale doma zapomněl notebook, půjčím si někde nějaký stroj, udělám si checkout do repozitáře a mám k dispozici vše, jako bych byl u sebe na NTB. Axamith mi poradí, že to a tamto bych měl změnit, já to upravím a udělám commit / push.
Když se vrátím domů, stáhnu si změny a ani nevím, že jsem někde neměl svůj NTB :)

Je tedy výhodné (ne však nutné) mít data i mimo svůj HDD.

Uživatelský avatar
gilhad
Příspěvky: 778
Registrován: 07 bře 2018, 11:22
Reputation: 0

Re: Jen povzdech ....

Příspěvek od gilhad » 11 úno 2020, 20:24

@ Axamith (KamilV pise rychleji a kratsi zpravy z jineho pohledu, ktery je take spravny)

Prave naopak.
Kdyz programujes, ukladas data na svuj hdd.

Kdyz pouzivas git, tak ten se o nejake programovani vlastne vubec nezajima, pracuje s jakymikoli daty na hdd dle nastaveni a klidne pracuje plne lokalne. (Jak jsem psal, muze ho klidne pouzivat na plne ostrovnim systemu bez jakehokoli spojeni se siti)

--------

Pokud touzis mit nekde zalohu, muzes si udelat i nekolik nezavislych instanci na tomtez hdd a synchronizovat je mezi sebou (neni duvod, proc by mussely byt na ruznych strojich)

--------

Az kdyz (pokud vubec) se rozhodnes polupracovat nejakymi ostatnimi pocitaci, tak te zacne zajimat i nejaka (ale klidne i jen lokalni) sit. (a co si budeme predstirat, jsou mezi nami taci, kteri maji doma desitky pocitacu, nemluve o tech, na ktere maji vzdaleny pristup.)

"Server" je pouze organizacni oznaceni, ktere vlastne nic neznamena, klidne muzes komunikovat i s "kolegy" naprimo, neni problem kdykoli rict, ze od ted je server zcela jiny stroj atd atd. Jen to nekdy usnadni prehlednost u vetsich skupin.

(Napriklad to, co ja pouzivam jako "server" je jeden z nejslabsich a nejmin zeroucich pocitacu, jen abych vedel, kde je snadno dotupna dost aktualni verze. Fyzicky je vzdaleny asi 40cm od hlavniho domaciho pocitace a o mitnot od NB, na kterem tohle ted pisu - a dalsi NB mi tu lezi assi 20 cm od nej. Abych mel nejcerstvejsi verze, je mnohem jednodussi si vssechny ty pocitace po jednom synchronizovat s tim "serververem", nez to zkouet kazdy s kazdym, i kdyz i to by slo. Ale je jednodusi kdyz prijdu z venku, tak syncnout NB co mam v ruce a kdyz sednu k pocitaci, tak syncnout ten, proti vzdy stejnemu bodu, nez rozpletat, co jsem delal v tramvaji cestou tam, co jsem delal prez vzdalene pripojeni domu, co jsem delal v tramvaji cestou zpet a co jem delal na tom kapesnim s kamarady v hopode a co tedy kde je a kde chybi)

Kdyz jdes s kamarady na pivo a oni maji zrovna zavreno a jeden z kamosu rekne "znam nedaleko prima hopodu" a druhy "tak teda ved" tak uz tu mas "vudce/server". to furt jeste neznamena, ze za chvili nekdo nerekne "no to je teda pajzl kam miris, pojdme jinam" a nestane se vudcem/serverem on, nebo se skupina nerozdeli, nebo ze nekteri proste odejdou - a i kdyz se rozdeli, tak se klidne muzou lidi mezi sebou volne vykecavat po mobilech, takze participuji a pretahuji drby z jedne casti do druhe a naopak.

Samozrejme velke projekty se obvykle nechovaji takto lehkovazne a maji nejakou organizacni strukturu a zvyky a kulturu, ale porad je to jen o dohode. Cokoli jde udelat na "serveru" jde stejne udelat i na libovolnem jinem zucastnenem pocitaci a pokud nahodou "server" lehne, tak ho muze zastoupit nekdo jiny, jen co i ucastnici dohodnou kdo, nebo se to proste bude resit zcela bez nej a veci budou kolovat dle potreby.

(A amozrejme, pokud dela jako zamestnanec ve firme, tak pro nektere projekty musis pouzivat firemni server, protoze to je soucasti tve prace, coz neznamena, ze pro jine nemuze pouzivat jako server neco zcela jineho a neco jet jen lokalne - pokud ti to nezakazuje firemni politika - coz neni technicke omezeni, ale zase v podstate jen "dohoda")

Hafajs
Příspěvky: 151
Registrován: 10 bře 2019, 10:19
Reputation: 0

Re: Jen povzdech ....

Příspěvek od Hafajs » 12 úno 2020, 11:59

Jj tyhle "plodné týdny" taky nemám rád :)

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 11 hostů