Išmokite koduoti? Pirmiausia išmokite išspręsti problemą.

Vaizdas iš „Unspalsh“

Daugelis vadovėlių, kuriuos anksčiau perskaitėte ar žiūrėjote, dažniausiai daro vieną dalyką - maitina šaukštais.

Tai „gerai“, jei norite išmokti naują dalyką, bet negerai, kai reikia išspręsti realią užduotį.

Paprastai užduotis apima tikslo pasiekimą įveikiant problemą. Šis įrašas atskleidžia svarbiausią patarimą visiems pradedantiesiems programinės įrangos inžinieriams.

TL; DR

Pirmiausia išspręskite problemą. Tada parašykite kodą. - Johnas Johnsonas

Kitaip tariant, žingsnį išspausdinkite tirpalą ant popieriaus. Tada pradėkite rašyti jo kodą. Pirmiausia nesusipainiokite su kodu ir programinės įrangos dizainu.

Taigi, kas atsitiks?

Daugybę kartų girdžiu pradedančiuosius ir jaunesniuosius programinės įrangos inžinierius sakant: „Aš galėjau sekti mokymo programą ir maniau, kad suprantu sąvoką. Bet kai bandžiau padaryti panašų dalyką vykdydamas savo augintinio projektą, to negalėjau padaryti. “

Tai atsitinka dėl dviejų priežasčių.

Pirma, jūs kažkur pametėte minties traukinį ir negalėjote užmegzti grandinės.

Antra, jūs buvote taip įsipainioję į kodą, kad pagrindinė problema, kurią bandėte išspręsti, iškrito iš dėmesio.

Ši problema taip pat iškyla programinės įrangos inžinieriams ir net vyresniems programinės įrangos inžinieriams.

Gerai tai, kad turėdami patirties jūs žinote, kada sustoti ar atsipūsti. Tada grįžkite prie problemos, gavę kitokį receptą, ir greičiau raskite sprendimą.

Daugelis iš jūsų gali tai sieti: Jūs taip stengėtės kelias valandas išspręsti problemą. Padarėte pertrauką arba miegojote per ją, o kitą sesiją sprendimas ten rasdavo per kelias minutes.

Tai nėra magija. Žvelgiama į problemą kitu požiūriu.

Pavaizduokime pavyzdį

Turite atlikti užduotį - pavyzdžiui, susikurti grąžinamąją išmoką su mokėjimais.

Jums suteikiama duomenų bazės schema. Tai yra užpakalinė užduotis, todėl turite sukurti POST / grąžinimo API, galinčią sukurti grąžinamąją išmoką ir su ja susijusius mokėjimus. Duomenų bazės struktūra yra tokia:

Grąžinimas visada turi priežastį, pavyzdžiui, „sugadintos prekės“ arba „pavėluotas pristatymas“.

Galite aptarti API naudingumą su vienu iš komandos narių. Galite susitarti dėl žemiau pateikto JSON krovinio:

Įprastas scenarijus

Tai, ką padarys dauguma pradedančiųjų programinės įrangos inžinierių, yra pradėti nuskaityti kodų bazę, jei jos yra. Jie iškart pradės rašyti kokį nors kodą. Jei yra kokia nors testavimo kultūra, galbūt jie parašo automatinį bandymo kodą.

Čia paslysta dauguma pradedančiųjų ir net keletas patyrusių programinės įrangos inžinierių. Nerašykite kodo, kai neišsprendėte problemos.

Tinkamas žingsnis

Tinkamiausias žingsnis yra atsisėsti ir išspręsti problemą popieriuje žingsniais.

Taigi jūs klausiate savęs, ką turite padaryti. Jūs sugalvojate planą žingsniais ir jį patobulinate.

Jei jūsų komandoje yra kažkas vyresnio amžiaus, galite patvirtinti savo veiksmus ir gauti grįžtamąjį ryšį.

Tai taip pat sutrumpins kodo peržiūros laiką. Abu jau sutarėte dėl sprendimo būdo.

Taigi kaip tai padaryti

Anksčiau aprašyta užduotis yra parašyti kūrimo / POST API, kur galima sukurti lėšų grąžinimą su mokėjimais.

Kiekviena grąžinamoji išmoka gali būti ne daugiau kaip dvi išmokos. Vienas iš jų yra „grynieji“, o kiti - „kreditiniai“. Tai taip pat gali būti viena grąžinimas sumokėjus tik vieną grynųjų pinigų arba kredito sumą. Štai kaip aš būčiau parašęs šiuos veiksmus popieriuje:

  1. Sukurkite metodą, kaip gauti duomenis iš vartotojo siunčiamo valdiklio
  2. Patvirtinkite visas įvestas vertes, grąžinimo tipus ir priežastis.
  3. Jei visi patvirtinimai praeina, sugeneruokite atsitiktinį raidinį ir skaitmeninį ilgį 10, kurio nėra grąžinamųjų išmokų lentelėje (rekursinis patikrinimas).
  4. Jei dėl patikrinimo nepavyksta atsakyti pateikus tinkamą patikrinimo klaidos pranešimą, nuspręskite dėl atsakymo struktūros
  5. Pradėkite duomenų bazės operaciją
  6. Į grąžinamųjų išmokų lentelę įtraukite su grąžinimu susijusias „refund_nr“, priežasties priežastis, priežastis „is_premium_customer“.
  7. Sėkmingai įterpdami gaukite paskutinio įdėklo ID
  8. Naudodami „refund_id“, į mokėjimo lentelę įtraukite su „fk_refund“, „fk_item“, suma, grynaisiais pinigais susijusias vertes
  9. Jei viskas gerai, atlikite duomenų bazės operaciją
  10. Jei kilo problemų, atšaukite duomenų bazės operaciją
  11. Atsakykite naudodami sėkmės ar nesėkmės pranešimą, atsižvelgiant į duomenų bazės operacijos sėkmę ir tinkamą struktūrą
  12. Prijunkite valdiklį ir šį metodą

Vykdykite planą žingsniais, dabar parašykite kodą

Turėdami žingsnis po žingsnio planą, galite pradėti rašyti kodą. Tada galite išsamiau susipažinti su metodų pavadinimais, kaip gauti duomenų bazės ryšį ir kitą informaciją.

Atsižvelgiant į kalbą ir struktūrą, taip pat galite nuspręsti, kur turėtų būti patvirtinimo kodas.

Jūs netgi galite parašyti testus, jei įmonė ir kultūra tai palaiko ir skatina.

Kai jūsų sprendimas akivaizdus jūsų galvoje ir turite žingsnis po žingsnio veiksmų planą popieriuje, dabar galite rašyti kodą.

Jūs netgi galite suskaidyti dalis taip, kad jas būtų lengviau baigti ir sujungti.

Pavyzdžiui, testavimo logika gali būti kažkas, ką galima parašyti atskirai ir išbandyti atskirai. Galvojama apie nepriklausomas dalis, kurias galima sujungti kartu, kad būtų sukurtas sprendimas.

Išvada

Kai susidursite su kita užduotimi, nepradėkite rašyti kodo iš „get-go“.

Pirmiausia suimkite problemą, tada sugalvokite žingsnį. Tai geriausia padaryti atokiau nuo ekrano ant popieriaus.

Tada patikslinkite savo sprendimą ir aptarkite su kuo nors. Kai būsite patenkinti, išverskite tą sprendimą į kodą. Tai šiek tiek metodika, bet labai efektyvu.

Kodas visada yra sprendimo būdas, o ne pats sprendimas.

Jei jūs jau pasiekėte tokį atstumą, palikite man keletą „klupų“ :).

Ačiū už skaitymą!

Iš pradžių paskelbta geshan.com.np.