“JavaScript er let!” De fortalte mig ?

Juniorudvikler: Ok, nu lærer jeg at programmere i JavaScript! Hvor skal jeg starte?

"Senior" udvikler: Det er meget let, du behøver ikke engang at skrive en masse kode! Gå bare til npm, installer Zebra og Koala Open Source-modulerne, så er du færdig!

Juniorudvikler: Cool!

npm: Hej lille græshoppe, hvordan kan jeg være til hjælp?

Junior Developer: Giv mig modulerne Zebra og Koala.

npm: Selvfølgelig er de her.

Juniorudvikler: Alt bundet. Nu er mit arbejde færdigt!

* En dag senere *

Juniorudvikler: Nu skal jeg tilføje denne funktion. Hvor skal jeg starte?

”Senior” -udvikler: Det er meget let, du behøver ikke engang at skrive en masse kode! Gå bare til Zebras Github-arkiv og bed dem om at implementere det!

Juniorudvikler: Hej Zebra, jeg skal tilføje denne nye funktion, vil du hjælpe mig?

Zebra: Opret selvfølgelig en Pull Request.

Juniorudvikler: Her er det.

* 2 dage senere *

Zebra: Din Pull-anmodning er ikke god, du skal rette et par ting.

Juniorudvikler: Her er det.

* 2 dage senere *

Zebra: Nu er din Pull-anmodning god, jeg er fusioneret.

Juniorudvikler: Tak. Nu er mit arbejde færdigt!

* 3 timer senere *

Juniorudvikler: Nu skal jeg rette denne fejl. Hvor skal jeg starte?

”Senior” -udvikler: Det er meget let, du behøver ikke engang at skrive en masse kode! Gå bare til Koalas Github-arkiv og rapporter det!

Juniorudvikler: Hej Koala, der er en fejl i dit modul.

* 2 dage senere *

Juniorudvikler: Hej Koala, er du der?

* 1 uge senere *

Juniorudvikler: Vedligeholder nogen dette modul?

* 1 uge senere *

Juniorudvikler: Jeg forkæler og ordner det. Færdig.

* 6 måneder senere *

Juniorudvikler: Nu skal jeg tilføje denne anden funktion. Lad os se på, hvilket modul jeg skal ændre først:

Juniorudvikler: Fejl ... Jeg gætter på, at noget gik rigtig galt ... JavaScript er så hårdt og kompliceret! Hvad skal jeg gøre nu?

Rigtig udvikler: Problemet er ikke JavaScript.

En ekstern afhængighed har tendens til at være for generisk og har derfor meget kompleksitet til at tage højde for kanttilfælde, som du sandsynligvis ikke har.

Som et princip skal du reducere din afhængighed af en ekstern kode så meget som muligt. Over tid afhængigheder vil medføre omkostninger til ændringer, hvis du stoler på dem til det centrale formål med dit projekt.

Evaluer deres behov kritisk.

Det er muligt at skrive din egen kode for ting, som et generisk modul allerede kan gøre for dig uden at skulle genopfinde hjulet, så længe du designer det korrekt. Det inkluderer (men er ikke begrænset til) ingen bivirkninger, lav kobling, høj samhørighed, korrekt grænseflade, tilstrækkelig overkommelighed, ingen crap-testværktøjer, kode, der kan slettes, ingen "over-engineering", ingen kopi / indsæt, streng , små og uden falske positive tests.

Hvis du ikke designer det korrekt, ender du i det samme rod eller endnu værre.

Hvis du er blikkenslager, og røret lækker, er det dit ansvar at ordne det. Ikke en andens.

Det handler om at anvende softwareprincipper og teknikker. Det handler om at lære at programmere.

Giv ikke skylden på skalpellen.

Juniorudvikler: Ok, nu lærer jeg at programmere. Kan du hjælpe mig?

Rigtig udvikler: Ja.

* 7 år senere *

Ny juniorudvikler: Ok, nu lærer jeg at programmere på dette populære sprog! Hvor skal jeg starte?

Tidligere Junior Developer: Jeg kan lære dig, men det er ikke let.

Jeg har været igennem dette.

Sid ned.

Lad os tale.

Tak for læsningen. Hvis du har feedback, så kontakt mig på Twitter, Facebook eller Github.

Vil du chatte personligt? Du kan finde mig i Sydney Software Crafters-mødet .