2.0 Cyflwyniad i Ran 2: Rhaglennu Meddalwedd
Mae Rhan 2 yn ymwneud â chrefft ddyddiol ysgrifennu meddalwedd y gall llawer o bobl ei darllen, ei newid, ac ymddiried ynddi dros oes hir. Gosododd Rhan 1 y sylfeini ar gyfer sut mae timau’n trefnu ac yn penderfynu. Mae’r rhan hon yn troi at y cod ei hun: y confensiynau rydych yn eu dilyn, y ffordd rydych yn siapio dyluniadau a rhyngwynebau, sut rydych yn profi ac yn adolygu eich gwaith, sut rydych yn rheoli hanes ffynhonnell, a sut rydych yn ysgrifennu pethau i lawr. Dyma’r arferion sy’n gwahaniaethu sylfaen cod sy’n cyflymu cyflenwi oddi wrth un sy’n ymladd yn erbyn pob newid.
Mewn tîm mawr, nid mater o chwaeth bersonol yw crefft. Dyma sut rydych yn cydgysylltu. Pan fydd cannoedd neu filoedd o beirianwyr, contractwyr, ac olynwyr yn cyffwrdd â’r un systemau, confensiynau a rennir a chontractau clir yw’r hyn sy’n gadael i bawb weithio’n gyfochrog heb wrthdrawiadau cyson. Cofiwch fod cod yn cael ei ddarllen yn llawer amlach nag y caiff ei ysgrifennu, a digwydd llawer o’r darllen hwnnw flynyddoedd yn ddiweddarach, gan bobl na fyddwch byth yn eu cyfarfod.
Mewn lleoliadau menter a llywodraeth, mae’r risgiau’n codi ymhellach. Mae systemau’n rheolaidd yn goroesi eu hawduron am ddegawd neu fwy. Mae rheoleiddio ac archwilio’n mynnu tystiolaeth ddogfennedig o reolaeth. Mae’n rhaid i wybodaeth drosglwyddo ar draws trosiant staff a ffiniau contract. Felly, mae’r penodau yma’n trin ansawdd nid fel arwriaeth ond fel priodwedd wedi’i pheiriannu, wedi’i hawtomeiddio i raddau helaeth, o sut mae’r tîm cyfan yn gweithio.
Penodau yn y rhan hon
2.1 Safonau ac arddull godio: Confensiynau a rennir, wedi’u gorfodi’n awtomatig, ar gyfer enwi, fformatio, ac idiomau sy’n gadael i lawer o awduron ysgrifennu fel pe bai un awdur gofalus wedi’i ysgrifennu, fel bod adolygwyr yn treulio eu sylw ar ddyluniad yn hytrach nag arddull.
2.2 Egwyddorion dylunio meddalwedd: Hewristigau fel SOLID (pum egwyddor dylunio gwrthrych-gyfeiriedig), DRY (peidiwch ag ailadrodd eich hun), cyplu a chydlyniad, a Dylunio a Yrrir gan Barth (modelu meddalwedd yn iaith y parth busnes), wedi’u trin fel offer â pharth cymhwysedd a modiau methiant hysbys yn hytrach na chyfreithiau i’w hufuddhau.
2.3 APIs a dylunio rhyngwyneb: Dylunio’r contractau y mae systemau a thimau’n cyfarfod drwyddynt, fel y gall timau annibynnol newid eu mewnbethau heb dorri defnyddwyr na gorfodi defnyddio ar y cyd.
2.4 Strategaeth profi: Dewisiadau bwriadol am beth i’w brofi, ar ba lefel, ac i ba hyder, gan adeiladu rhwyd ddiogelwch gyflym a dibynadwy sy’n gadael i sefydliad mawr ddefnyddio’n aml ac yn ddiogel.
2.5 Adolygu cod a chydweithio: Archwilio newidiadau cyn iddynt gyfuno i ddal diffygion, lledaenu gwybodaeth, gorfodi safonau, a bodloni rheolaethau cydymffurfiaeth, tra’n cadw adolygu’n gyflym ac yn adeiladol yn hytrach na seremonïol.
2.6 Rheolaeth fersiynau a rheoli ffynhonnell: Y system gofnod ar gyfer pob newid, a’r ddisgyblaeth canghennu, ystorfa, a chyflwyno sy’n cadw’r brif linell yn rhyddhadwy, hanes yn ddarllenadwy, a’r trywydd archwilio’n gyfan.
2.7 Dogfennaeth: Y wybodaeth ysgrifenedig, o ganllawiau cychwyn i lyfrau rhedeg (gweithdrefnau gweithredol cam-wrth-gam) a chofnodion penderfyniad, sy’n amddiffyn rhag risg person-allweddol, yn cyflymu sefydlu, ac yn trosglwyddo dealltwriaeth ar draws blynyddoedd a ffiniau contract.
2.8 Gofynion meddalwedd: Ennyn, manylu, dilysu, a rheoli beth y mae’n rhaid i’r feddalwedd ei wneud a pha mor dda, gyda’r olrheiniadwyedd y mae gwaith rheoledig a llywodraethol yn ei fynnu.
2.9 Adeiladu meddalwedd: Crefft adeiladu meddalwedd sy’n gweithio: lleihau cymhlethdod, adeiladu ar gyfer gwirio a newid, rhaglennu amddiffynnol, ac ailddefnydd disgybledig.
2.10 Rheolaeth ffurfweddiad meddalwedd: Adnabod, rheoli, ac archwilio pob eitem ffurfweddiad (unrhyw arteffact y mae’n rhaid olrhain a rheoli ei fersiynau) a newid, fel bod rhyddhadau’n atgynhyrchadwy a’r trywydd archwilio’n gyfan.
2.11 Ansawdd meddalwedd: Ansawdd fel priodwedd a reolir sy’n ehangach na phrofi: modelau ansawdd, sicrwydd yn erbyn rheolaeth, mesur, rheoli diffygion, a chost ansawdd.
2.12 Modelau a dulliau meddalwedd: Pryd a sut i fodelu, gan gwmpasu modelau strwythurol ac ymddygiadol, dulliau ffurfiol (manyleb a gwiriad wedi’u seilio’n fathemategol), prototeipio, a dulliau ystwyth, a phryd mae modelu’n wastraff.
2.13 Sylfeini cyfrifiadura, mathemategol, a pheirianyddol: Y sylfeini parhaol o dan yr arfer: algorithmau a strwythurau data, rhesymeg a thebygolrwydd, a’r dull peirianneg empeiraidd.
2.14 Strwythur prosiect ac ystorfa: Confensiynau cyson ar gyfer trefnu ateb a’i ystorfa, gan gynnwys ffolderi safonol, pwynt mynediad README, a ffurfweddiad a rennir, fel y gall unrhyw beiriannydd lywio unrhyw sylfaen cod.
2.15 Datrys nam a datrys problemau: Dod o hyd i ddiffygion a’u trwsio fel arfer ddisgybledig, addysgadwy o atgynhyrchu, ynysu drwy chwilio deuaidd, llunio a phrofi rhagdybiaethau, a chipio pob atgyweiriad fel prawf atchweliad, yn hytrach na dyfalu a newidiadau gwn-un-ergyd.
2.16 Peirianneg perfformiad: Gwneud meddalwedd yn ddigon cyflym yn fwriadol drwy osod cyllidebau perfformiad, mesur a phroffilio cyn optimeiddio, deall cost algorithmig ac oedi cynffon, a gwarchod rhag atchweliadau, y cyfan ar lefel cod a chydran.
2.17 Cydredeg a chyfochredd: Ysgrifennu cod cydredol cywir drwy ddiofyn i anhyblygedd a phasio negeseuon, deall rasys, marwddiflastodau, a gweladwyedd cof, dewis y cydamseriad a’r modelau lefel-uwch cywir, a phrofi ymddygiad ansicrwydd yn fwriadol.
2.18 Rheoli dibyniaeth a chadwyn gyflenwi: Rheoli’r cod trydydd parti sy’n gwneud y rhan fwyaf o system fodern drwy ddisgyblaeth fersiwn a ffeiliau clo, rythm diweddaru cyson, ôl-troed dibyniaeth lleiafswm a wiriwyd, a tharddiad a bil deunyddiau meddalwedd ar gyfer cadwyn gyflenwi ddibynadwy.
2.19 Ailffactora a dyled dechnegol: Gwella dyluniad mewnol cod sy’n gweithio y tu ôl i gyfres brofi ddibynadwy, adnabod arogleuon cod a chymhwyso ailffactoriadau bach a enwir, defnyddio’r ffigysbren tagfeydd ar gyfer newid mwy, a rheoli dyled dechnegol fel portffolio gweladwy, ariannedig yn hytrach na methiant moesol.
2.20 Trin gwallau a phatrymau cydnerthedd: Penderfynu’n fwriadol sut mae cod yn methu ac yn adfer, drwy gontractau gwall clir, dewisiadau methu-gyflym yn erbyn methu-diogel, ailgeisiadau â ôl-daliad ac idempotens, torwyr cylched a dirywiad graenus, a byth â llyncu gwall yn dawel.
2.21 Systemau math a dadansoddi statig: Dal dosbarthiadau cyfan o ddiffyg cyn i’r cod redeg, drwy deipio statig a graddol sy’n gwneud cyflyrau anghyfreithlon yn amhosibl eu cynrychioli, a rhaglenni glanhau (linters), gwirwyr math, a dadansoddwyr wedi’u gwifro i mewn i’r golygydd a’r biblinell.
Sut mae’r penodau hyn yn cydberthyn
Trywydd Rhan 2 yw newidioldeb ar raddfa. Mae pob arfer yma’n bodoli i adael i lawer o bobl newid system a rennir, hirhoedlog, gyda hyder. Mae safonau codio (2.1) ac egwyddorion dylunio (2.2) yn siapio’r cod fel y gallwch ei ddeall a’i addasu. Mae dylunio rhyngwyneb (2.3) yn tynnu’r ffiniau sy’n gadael i dimau newid eu mewnbethau’n annibynnol. Mae profi (2.4) yn darparu’r rhwyd ddiogelwch sy’n gwneud newid yn ddiogel. Mae adolygu cod (2.5) yn lle mae gwaith unigol yn cyfarfod â pherchnogaeth gyfunol, a lle caiff safonau eu gorfodi mewn gwirionedd. Mae rheolaeth fersiynau (2.6) yn sylfaen y mae adolygu, integreiddio, ac archwilio i gyd yn gorffwys arni. Ac mae dogfennaeth (2.7) yn cadw’r bwriad y tu ôl i’r cyfan ar gyfer y bobl sy’n dod yn ddiweddarach.
Mae’r penodau hyn hefyd yn bwydo gweddill y llawlyfr. Mae’r rhyngwynebau a’r egwyddorion dylunio yma’n dod yn adeiladfeini’r systemau yn Rhan 3, yn enwedig sylfeini pensaernïaeth (pennod 3.1). Mae strategaeth profi (2.4) a rheolaeth fersiynau (2.6) yn ddeunydd crai ar gyfer piblinellau cyflenwi awtomataidd ym mhennod 8.1. Mae arferion dogfennaeth (2.7) yn cysylltu’n uniongyrchol â llyfrau rhedeg ac arsylwadaeth gweithrediadau, fel pennod 9.2. Ac mae’r rhan gyfan yn adeiladu ar y gwerthoedd a’r sylfeini gwneud penderfyniadau a osodwyd yn Rhan 1, gan droi egwyddorion a rennir yn grefft ddyddiol bendant.