cubells.io

Sóc un desenvopulador mediocre


Personalment, conec alguns desenvolupadors amb molt de talent i que poden crear peces meravelloses de programari sense cap o poc de treball. Per culpa d'aquests individus dotats, la nostra indústria està plena d'expectatives. Però la trista realitat és la següent: no tothom és un desenvolupador ninja, un guru, o una estrella del rock.

I això és exactament el que sóc: un desenvolupador mediocre. Aquest article us guiarà per sobreviure a la indústria si no sou un geni.

Cerco a Google les coses més senzilles tot el temps

No recordo moltes coses. Com ara les funcions i mètodes de les biblioteques estàndard, les posicions dels arguments, els noms de paquets, el codi repetitiu, etc.

Per tant, he d'anar a Google. I ho faig diàriament. També reutilitzo el codi de projectes antics. De vegades, fins i tot copio i pego respostes de StackOverflow o Github. Sí, en realitat és: desenvolupament des de StackOverflow.

Però no sóc l'únic També ho fan molts altres desenvolupadors. Hi ha una discussió a Twitter famosa que va ser iniciada pel creador de Ruby on Rails.

Però, per què és tan dolent? Bé, hi ha diversos desavantatges al respecte:


Però no crec que sigui un gran problema. Fins i tot pot servir com a arma secreta. Tinc alguns consells a seguir per disminuir els efectes negatius.

Com sobreviure:


Mantingueu les coses senzilles

Les màquines sempre fan el que les diem. De vegades se'ls acaba de dir que ho facin malament. Per tant, el problema principal del desenvolupament de programari no són les màquines, sinó la capacitat mental dels desenvolupadors. És molt limitada. Així que, nosaltres - desenvolupadors mediocres - no podem perdre-la per crear abstraccions complexes, algoritmes foscos o blocs il·legibles de codi llarg. Feu-ho senzill.

Però, com podem dir que aquest codi és senzill i aquell és complex? Hem d'utilitzar el mètode de malediccions/minut per mesurar la qualitat del codi.

El principi és molt fàcil i clar d'entendre. Sempre que trobeu alguna cosa al codi que no enteneu, és massa complexa. Què podem fer?


Com escriure coses senzilles des del principi:

No confio en mi mateix

Alguns desenvolupadors han demostrat oferir codi d'alta qualitat. Igual que aquesta dona: Margaret Hamilton, enginyera en cap de del Projecte Apollo.

Però, sempre que escric qualsevol codi, no confio en mi mateix. Puc fer malbé les coses fins i tot en les parts més fàcils del projecte. Això pot incloure:


I no hi ha cap llibre màgic del tipus "aprendre a escriure codi lliure d'errors". I és perfectament normal. Tot el programari té errors. Excepte aquest projecte, però. Pegueu-li una ullada.

El cas és que ningú no hauria d'estar autoritzat a escriure codi amb errors evidents. Almenys, hauríem de provar. Però, com puc protegir el projecte de mi mateix? Hi ha diverses maneres de fer-ho.

Com sobreviure:


No hauria de funcionar només al meu ordinador

Quan el meu equip va desenvolupar el nostre primer gran projecte de programari fa gairebé deu anys, l'enviarem com a fitxers font de Java. I no es va poder compilar al servidor de destinació. Això va ser diverses hores abans de la presentació al client. Fou un gran fracàs! D'alguna manera vam aconseguir posar-lo en funcionament, però va ser una experiència que ens va canviar la vida.

Això va succeir perquè hi havia molta configuració i molta complexitat en el moment de construir-ho. I no poguérem gestionar correctament la complexitat d'aquest sistema. Des d'aquest dia per reduir la complexitat en aquest pas, intento empaquetar els meus programes en entorns aïllats. Per provar-los en aquest entorn abans que succeeixi el desplegament real.

En els últims anys, amb l'ascensió del Docker (i els contenidors en general), es va fer tan fàcil com mai. Docker us permet executar el desenvolupament, les proves i la producció en un mateix entorn aïllat. Per tant, mai no perdreu res important en el camí.

No? Parlant de mi mateix, sempre oblido alguna cosa en crear servidors, en la configuració inicial o en enllaçar-los. Hi ha tantes coses a tenir en compte!. Amb sort, encara podem automatitzar-lo. Hi ha diferents eines increïbles per automatitzar el procés de desplegament. Com ara: terraform, ansible i packer. Llegiu sobre ells per trobar quina eina necessiteu en realitat per a les tasques.

També intento configurar el CI/CD el més aviat possible. Així doncs, es notificarà si la meva compilació ha fallat en la prova o en la implementació.

Com sobreviure:


Després de la implementació de l'aplicació, encara no confio en mi mateix

Ah, per fi, la meva aplicació està en producció. Ara està funcionant. Puc tenir una breu migdiada, res no es trencarà. Espera, no! Tot es trencarà. I sí, ho dic: tot.

De fet, hi ha algunes eines que faciliten la cerca i la resolució de problemes existents.


Per resumir-ho, hem de controlar l'aplicació en producció. De vegades fem servir totes aquestes eines, de vegades només les parts més necessàries.

Constantment aprenent

Uau!, hi ha moltes coses per aprendre. Però així funciona. Si volem escriure un bon programari, necessitem aprendre constantment com fer-ho. No dreceres curtes o trucs màgics. Solament aprendre a ser millor cada dia.

En conclusió, hem d'entendre dues coses bàsiques:


I no té res a veure amb la nostra capacitat mental o actitud.