Docker for Developers

Salutare!

Cu ceva timp in urma, in octombrie 2017, entuziasmat de facilitățile oferite de catre Docker in ceea ce priveste crearea si recrearea unui mediu de lucru foarte rapid pentru a simula cat mai bine anumite conditii ce privesc aspecte ale parti de environment setup pentru development, am avut ocazia sa le prezint colegilor cateva lucruri din cele descoperite.

De unde a plecat totul?

Pentru o aplicație de android ce o dezvoltam aveam nevoie de un mod de lucru in care orice modificare ce eu o aduceam aplicației si era push-uita in “repository-ul central” sa fie rulate anumite teste si mai apoi aplicația sa fie push-uita in store (in varianta alpha).

Căutând zile in sir după extensii de Gradle ce îmi permit sa fac aceasta operațiune am găsit ceva ce intr-adevar ma ajuta in problema respectiva. Toate bune, totul funcționa perfect când cream build-ul local. Cum rămâne cu partea de continuous integration?

Alte zile alte căutări și de încercări am ajuns sa cunosc mai bine Docker-ul încât am creat o imagine ce va invit o folositi si de ce nu extindeti: https://hub.docker.com/r/vladvesa/android-ci/

 

Ce este Docker?

Daca nu sunteti deja in tema puteti citi despre Docker si despre modul in care poate fi folosit chiar aici.

Progresul tehnologiei a permis treptat trecerea de la crearea manuala a environmentului de lucru de fiecare data cand doreai sa incepi dezvoltarea pentru un anumit proiect la crearea unui setup ce permite generarea de imagini ce contin deja toate resursele initiale iar in prezent la folosirea Docker-ului care permite optimizarea consumului de resurse s.a.m.d.

Daca ne referim strict la programarea web am avea XAMPP (WAMP sau MAMP) mai apoi Vagrant iar in cele din urma Docker.

Pentru cei familiari cu programarea orientata pe obiecte puteti vedea abstractizarile din Docker (Imagini si Containere) ca si Clase si Obiecte. Mai pe scurt Imaginile sunt clasele din programare iar instantierea lor da nastere la Obiecte care sunt alternativele containerelor.

 

Ce facilitati ofera?

O imagine ce prezinta avantajele Docker ar fi urmatoarea:

Poti trece ușor de la realizarea unui setup in ore chiar zile in doar câteva secunde. Tot cu ce trebuie sa fie confortabil e:

  • partea de port forwarding
  • comenzi linux pentru instalare/configurare de tool-uri
  • umpic de retelistica
  • umpic de gestionarea volumelor la nivel de docker

Prezentarea?

Un link catre prezentare il gasiti aici: https://docs.google.com/presentation/d/e/2PACX-1vSmaf84DhUP251RUv_Oa8m1wq0tcMvC8X-25wufc9ZkZqrl9czcP2-6BVwjrGPTQe1En-9zlaSF7fMX

 

GITLab workflow

Gitlab

Asa cum va povesteam in postarea anterioara anul trecut am avut placuta sansa ca alaturi de colegii de serviciu sa dezbatem subiectul sistemelor de versionare. Folosind zilnic platformele opensource github, gitlab, bitbucket si cunoscand destul de bine subiectul am creat niste prezentari pentru git.

Cand vine vorba de utilitare ce vin in ajutorul programatorului pentru dezvoltarea software si decuplarea contextelor, gitlab este un utilitar foarte puternic.

Am pregatit o scurta prezentare a acestuia. Bafta la vizionat!

GITLab workflow

[slideshare id=70773992&doc=gitlabworkflow-170107164022]

Branching can change your (programming) life

Branch,context

Asa cum va povesteam in postarea anterioara anul trecut am avut placuta sansa ca alaturi de colegii de serviciu sa dezbatem subiectul sistemelor de versionare. Folosind zilnic platformele opensource github, gitlab, bitbucket si cunoscand destul de bine subiectul am creat niste prezentari pentru git.

Nu stiu cati dintre voi v-ati pus problema lucrului in echipa, ce inseamna ce presupune si cum ati putea sa va organizati mai bine astfel incat fiecare sa poata sa lucreze linistit la partea lui stiind ca intr-un final lucrurile se vor imbina armonios.

Atunci cand lucram in echipa fiecare membru va da nastere unui asa zis context, context care va conduce la lucrul in paralel cu un alt coleg in remedierea unor probleme.

Ganditi-va cum ar trebui sa fie organizate task-urile astfel incat cei doi coechipieri sa nu se calce pe picioare.

Prezentarea ce urmeaza prezinta niste metode ce sper sa va vina in ajutor in negocierea mult mai buna a unei astfel de situatii.

Branching can change your life

[slideshare id=70718305&doc=banchingcanchangeyourlife-170105180624]

Getting started with Git

git, colegi, prezentare

Anul trecut am avut placuta sansa ca alaturi de colegii de serviciu sa dezbatem subiectul sistemelor de versionare. Folosind zilnic platformele opensource github, gitlab, bitbucket si cunoscand destul de bine subiectul am creat niste prezentari pentru git.

Acestea sunt:

  • Getting started with git
  • Branching can change your life
  • GitLab workflow

Getting started with git

[slideshare id=70616784&doc=gettingstarted-170103074410]

Rezumat

Principalele subiecte discutate au fost:

  • setting up a repository (comenzi, mod de lucru),
  • saving changes (how to do it in a better way, add vs commit and the mighty staging area),
  • inspecting a repository (git status, git log),
  • viewing old commits (the better checkout command),
  • undoing changes (revert vs reset vs clean),
  • rewriting history (amend a commit or rebase the branch)