ABONAMENTE VIDEO REDACȚIA
RO
EN
NOU
Numărul 150
Numărul 149 Numărul 148 Numărul 147 Numărul 146 Numărul 145 Numărul 144 Numărul 143 Numărul 142 Numărul 141 Numărul 140 Numărul 139 Numărul 138 Numărul 137 Numărul 136 Numărul 135 Numărul 134 Numărul 133 Numărul 132 Numărul 131 Numărul 130 Numărul 129 Numărul 128 Numărul 127 Numărul 126 Numărul 125 Numărul 124 Numărul 123 Numărul 122 Numărul 121 Numărul 120 Numărul 119 Numărul 118 Numărul 117 Numărul 116 Numărul 115 Numărul 114 Numărul 113 Numărul 112 Numărul 111 Numărul 110 Numărul 109 Numărul 108 Numărul 107 Numărul 106 Numărul 105 Numărul 104 Numărul 103 Numărul 102 Numărul 101 Numărul 100 Numărul 99 Numărul 98 Numărul 97 Numărul 96 Numărul 95 Numărul 94 Numărul 93 Numărul 92 Numărul 91 Numărul 90 Numărul 89 Numărul 88 Numărul 87 Numărul 86 Numărul 85 Numărul 84 Numărul 83 Numărul 82 Numărul 81 Numărul 80 Numărul 79 Numărul 78 Numărul 77 Numărul 76 Numărul 75 Numărul 74 Numărul 73 Numărul 72 Numărul 71 Numărul 70 Numărul 69 Numărul 68 Numărul 67 Numărul 66 Numărul 65 Numărul 64 Numărul 63 Numărul 62 Numărul 61 Numărul 60 Numărul 59 Numărul 58 Numărul 57 Numărul 56 Numărul 55 Numărul 54 Numărul 53 Numărul 52 Numărul 51 Numărul 50 Numărul 49 Numărul 48 Numărul 47 Numărul 46 Numărul 45 Numărul 44 Numărul 43 Numărul 42 Numărul 41 Numărul 40 Numărul 39 Numărul 38 Numărul 37 Numărul 36 Numărul 35 Numărul 34 Numărul 33 Numărul 32 Numărul 31 Numărul 30 Numărul 29 Numărul 28 Numărul 27 Numărul 26 Numărul 25 Numărul 24 Numărul 23 Numărul 22 Numărul 21 Numărul 20 Numărul 19 Numărul 18 Numărul 17 Numărul 16 Numărul 15 Numărul 14 Numărul 13 Numărul 12 Numărul 11 Numărul 10 Numărul 9 Numărul 8 Numărul 7 Numărul 6 Numărul 5 Numărul 4 Numărul 3 Numărul 2 Numărul 1
×
▼ LISTĂ EDIȚII ▼
Numărul 74
Abonament PDF

Global Day of Code Retreat

Georgiana Jora
C# Developer @ Itiviti



PROGRAMARE

Orice programator trebuie să se fi întrebat asta. Există întotdeauna un echilibru între calitatea codului și viteza de implementare. Pentru că mereu se poate șlefui ceva, mereu se poate încerca un alt design, mereu apar librării și tooluri noi care ne-ar putea face codul mai mentenabil. Dar orice bucată de cod trebuie livrată pentru a fi utilă.

Code Retreat invită programatorii să-și răspundă la această întrebare. Scopul evenimentului este de exersare. Fiecare dintre participanți exersează tehnici prin care poate să scrie cod mai bun, mai curat și mai mentenabil, astfel încât atunci când revine la munca sa poate să scrie în mod natural cod mai bun.

Ce este Code Retreat?

Code Retreat este un eveniment care simulează mediul ideal în care timpul nu este un factor în deciziile luate în timpul programării.

În general, evenimentele din zona IT-ului și programării se împart în două categorii: conferințele și concursurile. Conferințele, meet-upurile, chiar și workshopurile se bazează pe transferul de cunoștințe, mai ales teoretice de la persoane care au mai multe informații dintr-o anumită nișă către ceilalți participanți. Concursurile se bazează mai mult pe practică, dar implică concentrarea pe rezolvarea problemelor, în defavoarea practicilor de îmbunătățire a calității. Code Retreat-ul este o altă categorie: participantul își îmbunătățește setul de skilluri prin exercițiu.

La Code Retreat programatorii se întâlnesc pentru a-și exersa abilitățile de a scrie cel mai bun cod care rezolvă parțial o problemă predefinită.

Ce este GDCR?

Global Day of Code Retreat este, după cum îi spune și numele evenimentul anual la care participă programatori din toată lumea. În 2017 s-au organizat 136 de Code Retreat-uri simultane. În Cluj, GDCR se ține în fiecare an din 2012.

Problema care trebuie abordată este aceeași în fiecare an: Conway's Game of Life. Cei mai mulți participanți la Code Retreat nu o rezolvă niciodată, deși am auzit în fiecare an pe cineva la sfârșitul zilei: mă duc acasă și rezolv problema, nu poate să rămână nerezolvată de mine. Sunt oameni care participă an de an și în fiecare an spun lucrul acesta. Motivul este că, deși problema rămâne nerezolvată integral, la sfârșitul zilei senzația de împlinire este acolo: codul pe care l-am scris a fost mai bun, mai lizibil, mai ușor de întreținut, mai acoperit de unit teste decât în orice altă zi din an.

De ce este Code Retreat un eveniment aparte?

Code Retreat facilitează îmbunătățirea unor skilluri care nu sunt legate de obicei, de limbajul sau mediul de programare, dar care stau la baza creării codului de bună calitate, ușor de întreținut, cu costuri minime pe termen lung. În lumea profesională nu există mediul de exersare, în care să se codeze fără presiunea rezultatului final. Pentru că scopul nu e de a produce cod, ci de a produce instrumente software. Dan North susține că orice cod, oricât de bine scris, este o povară, dacă ceva se poate rezolvă fără producerea de cod, așa ar trebui făcut: Microservices: Software that fits in your head. În cadrul Code Retreat, scopul programării se mută de la crearea unui produs bun, la crearea unui cod cât mai aproape de perfecțiune.

Code Retreat are la bază principiile care guvernează și problema din fiecare an: regulile sunt foarte simple, dar pot duce la o evoluție a situației foarte complexă.

Ziua este împărțită în șase sesiuni de câte 45 de minute. După fiecare sesiune se șterge codul. Fiecare sesiune vine cu reguli noi menite să îl facă pe programator să iasă din zona de confort și să exerseze practici cu care nu este obișnuit, dar care sunt metode dovedite de a obține cod de calitate mai bună.

Sesiunile se desfășoară în perechi. Deși fiecare este responsabil de evoluția și revelațiile proprii pe parcursul zilei, programarea în echipe de doi ajută la deschiderea perspectivelor, dezvoltarea exprimării argumentelor, învățarea anumitor trucuri. Frumusețea formatului constă în faptul ca aceste beneficii vin natural. De obicei oamenii nu se cunosc între ei. Perechile sunt formate relativ aleatoriu și oricum se schimbă pe parcursul zilei de cinci-șase ori. Fiecare are soluția lui și crede că e cea mai bună. Fiecare trebuie să scrie și unit teste și cod, nu este recomandat să scrie doar un participant. Există și reguli pe care participanții trebuie să le respecte uneori: unul trebuie să scrie codul care să facă testele celuilalt să treacă; nu au voie să vorbească între ei; nu se poate folosi mouse-ul sau scurtăturile de la tastatură; trebuie să scrie un test și codul care face testul să treacă în 30 de secunde, altfel nu pot salva codul și o iau de la început; la jumătatea sesiunii se schimbă calculatorul cu altă echipă. Toate aceste constrângeri duc la o altfel de atitudine față de cod și de cei din jur. La sfârșitul zilei, oamenii se bucură că au scris mai multe teste, că au reușit să facă refactoring, că au înțeles ce înseamnă TDD cu adevărat. Sunt aceiași oameni care în aceeași dimineață erau convinși că EI vor rezolvă problema și doar după aceea se vor gândi la calitate.

După fiecare sesiune există cinci minute în care se discută impactul pe care l-au avut ultimele 45 de minute asupra participanților: cum au abordat de data aceasta problema, ce s-a schimbat, ce a fost ieșit din comun. Aici, în cercul de la sfârșitul sesiunilor se extrag concluzii revelatoare uneori: "nu credeam că unit testele scrise înainte pot dicta rezolvarea problemei", "nu credeam că metodele mele sunt atât de greșit denumite până când am fost constrâns să vorbesc cu perechea mea", "nu credeam că pot să am doar metode de cinci linii", "cel mai greu a fost să alegem o soluție", "unit testele ne-au ajutat să alegem soluția", "cel mai greu este să programezi pe alt calculator sau alt sistem de operare".

După toate sesiunile se mai face o retrospectivă în care se răspunde la trei întrebări: "Ce ai învățat azi? Ce te-a surprins? Ce vei aplică în viitor?". Se învață cum se scriu unit teste, cum se programează în alt limbaj, cum se folosește un tool într-un mod mai bun, cum e să-ți dispară codul căruia i-ai dedicat toate ultimele trei sferturi de oră, cum e să trebuiască să găsești tu soluția de compromis ca lucrurile să meargă mai departe. Ne uimește cum se scurtează 45 de minute de la o sesiune la altă pentru că suntem mai implicați, cât de greu e să nu folosim copy/paste, cât de complexă e totuși problema, cât de greu este să scriem cod fără propoziții condiționale, cum o simplă schimbare de cerințe (de exemplu: să avem celule cu șase vecini în loc de patru) îți poate da toată rezolvarea peste cap. Vom încerca să aplicăm TDD sau măcar să scriem unit teste, să scriem metode mai scurte, să folosim alte limbaje de programare. În cazul mea, participarea la un code retreat, m-a condus la decizia că trebuie să îmi schimb jobul pentru că mi-am dat seama că mă plafonam.

Code Retreat are abilitatea pe care o promit toate workshopurile de succes: într-un mediu sigur, te poate scoate din zona de confort pentru a te obliga să evoluezi. La fiecare ediție, la fiecare sesiune înveți ceva, uneori despre coding, alteori despre tine.

Te așteptăm și în acest an în Cluj la Global Day of Code Retreat pe 17 Noiembrie! Până atunci ne poți urmări pe

https://www.facebook.com/gdcr.cluj/

NUMĂRUL 149 - Development with AI

Sponsori

  • Accenture
  • BT Code Crafters
  • Accesa
  • Bosch
  • Betfair
  • MHP
  • BoatyardX
  • .msg systems
  • P3 group
  • Ing Hubs
  • Cognizant Softvision
  • Colors in projects