3.1 Sylfeini pensaernïaeth
Trosolwg a chymhelliant
Mae pensaernïaeth meddalwedd yn set o benderfyniadau dylunio arwyddocaol sy’n ddrud i’w newid: strwythur y prif gydrannau, y berthynas rhyngddynt, a’r priodweddau y mae’n rhaid i’r system gyfan eu harddangos. Meddyliwch amdano fel y model meddyliol a rennir sy’n gadael i lawer o bobl adeiladu un cynnyrch cydlynol. Mewn tîm bach, gall pensaernïaeth fyw mewn ychydig o bennau ac esblygu wrth i chi fynd. Mewn sefydliad mawr (cannoedd o beirianwyr, dwsinau o dimau, cynhyrchion lluosog, blynyddoedd o fap ffordd), mae pensaernïaeth yn dod yn beth sy’n cadw pawb yn gydgysylltiedig. Pan fydd yn glir, mae timau’n symud yn annibynnol heb wrthdaro. Pan fydd yn amwys, mae pob dibyniaeth traws-tîm yn troi’n drafodaeth, a phob digwyddiad yn troi’n brosiect archaeoleg.
I fentrau a llywodraeth, mae’r sylfeini’n bwysicach fyth, oherwydd bod y systemau’n hirhoedlog, wedi’u rheoleiddio’n drwm, ac yn cael eu rhannu ar draws adrannau. Bydd system dreth, platfform budd-daliadau, cofnod iechyd cenedlaethol, neu brif lyfr banc yn goroesi gyrfaoedd y bobl a’i hadeiladodd. Mae’r penderfyniadau rydych chi’n eu gwneud heddiw am gyplu, perchnogaeth data, a phriodweddau ansawdd yn cyfyngu ar yr hyn sy’n bosibl am ddegawd neu fwy. Mae rheoleiddwyr ac archwilwyr yn cynyddol yn disgwyl pensaernïaeth wedi’i dogfennu, y gellir ei hamddiffyn: tystiolaeth bod dibynadwyedd, diogelwch, preifatrwydd, a hygyrchedd wedi’u dylunio i mewn, nid eu bolltio ymlaen. Nid yw cael y sylfeini’n gywir yn academaidd. Dyma’r gwahaniaeth rhwng platfform sy’n addasu i fandadau newydd ac un y mae’n rhaid ei ailadeiladu o’r dechrau.
Mae’r bennod hon yn ymdrin â’r sylfeini gwydn sy’n goroesi ffasiwn technoleg: priodweddau ansawdd (yr “-oldebau”), gofynion sy’n arwyddocaol yn bensaernïol, ffwythiannau ffitrwydd a phensaernïaeth esblygiadol, dogfennaeth ysgafn gyda C4 ac arc42, a dadansoddiad cyfaddawd strwythuredig. Dyma’r offer sy’n gadael i dîm mawr resymu am bensaernïaeth yn fwriadol yn hytrach na ar hap.
Egwyddorion allweddol
- Mae pensaernïaeth yn ymwneud â chyfaddawdau, nid atebion cywir. Mae pob penderfyniad arwyddocaol yn cyfnewid un ansawdd am un arall; y gwaith yw gwneud y cyfnewidiadau hynny’n fwriadol ac yn dryloyw.
- Mae priodweddau ansawdd yn ofynion. Rhaid nodi perfformiad, argaeledd, diogelwch, a chynaladwyedd gyda’r un trylwyredd â nodweddion, neu byddant yn cael eu haberthu dan bwysau terfyn amser.
- Nid yw pob gofyniad yn arwyddocaol yn bensaernïol. Canolbwyntiwch sylw dylunio prin ar y gofynion sy’n siapio strwythur, sy’n anodd eu newid, neu sy’n cario risg uchel.
- Rhaid i bensaernïaeth allu esblygu. Mae dylunio mawr ymlaen llaw’n methu oherwydd bod gwybodaeth ar ei isaf ar y dechrau; dyluniwch yn gynyddrannol a diogelwch briodweddau allweddol â gwiriadau awtomataidd.
- Dogfennwch benderfyniadau, nid dim ond diagramau. Mae’r rhesymu y tu ôl i ddewis (a’r opsiynau a wrthodwyd) yn fwy gwerthfawr na llun o’r canlyniad.
- Gwnewch y bensaernïaeth yn ddarllenadwy i’r rhai na wnaeth ei chreu. Rhaid i ymunwyr newydd, archwilwyr, a chynhalwyr y dyfodol allu ailadeiladu bwriad.
- Gohiriwch y penderfyniadau y gallwch, penderfynwch y rhai y mae’n rhaid i chi. Cadwch opsiynau’n agored lle mae newid yn rhad; ymrwymwch yn gynnar dim ond lle mae ymrwymiad hwyr yn ddrud.
Argymhellion
Nodwch briodweddau ansawdd fel senarios mesuradwy
Ni ellir profi na gorfodi nodau amwys fel “dylai’r system fod yn gyflym” neu “yn hynod argaeledd”. Yn hytrach, ysgrifennwch bob priodwedd ansawdd fel senario diriaethol gyda symbyliad, cyd-destun, ac ymateb mesuradwy: “Pan fydd defnyddwyr cydamserol brig yn cyrraedd 50,000, mae 95% o geisiadau chwilio’n cwblhau o fewn 300 ms.” Cwmpaswch y priodweddau sy’n bwysig i’ch parth: argaeledd, perfformiad, graddadwyedd, diogelwch, cynaladwyedd, arsylladwyedd, hygyrchedd, cludadwyedd, ac effeithlonrwydd cost. Rhestrwch nhw’n uchel, oherwydd ni allwch eu macsimeiddio i gyd ar unwaith. Ni fydd system wedi’i thiwnio ar gyfer cysondeb mwyaf hefyd yn arddel argaeledd mwyaf.
Nodwch ofynion sy’n arwyddocaol yn bensaernïol (ASRs)
Neilltuwch amser i wahanu ASRs oddi wrth ofynion cyffredin. Mae gofyniad yn arwyddocaol yn bensaernïol os yw’n cyffwrdd â llawer o gydrannau, yn ddrud i’w fodloni, yn gosod cyfyngiad llym, neu’n dechnegol beryglus. Fel arfer mae mandadau rheoleiddiol (preswyliad data, cadw, archwiliadwyedd), senarios llwyth uchel, integreiddio â systemau cofnodion etifeddol, a ffiniau diogelwch caled yn ASRs. Cadwch restr fyr, fyw ohonynt, ac olrheiniwch benderfyniadau dylunio mawr yn ôl at y rhestr honno, fel y gall adolygwyr weld pam mae’r bensaernïaeth yn edrych fel y mae.
Mabwysiadwch bensaernïaeth esblygiadol a ffwythiannau ffitrwydd
Triniwch bensaernïaeth fel rhywbeth sy’n newid gam wrth gam mewn cyfeiriadau wedi’u harwain, nid fel glasbrint sefydlog. Mae ffwythiant ffitrwydd yn brawf awtomataidd, gwrthrychol bod nodwedd bensaernïol benodol yn dal i fyny: gwiriad amser-adeiladu nad oes unrhyw fodiwl yn mewnforio o haen waharddedig, prawf perfformiad sy’n methu’r biblinell os yw oedi p99 yn dirywio, sgan diogelwch sy’n rhwystro dibyniaethau sy’n hysbys yn agored i niwed, prawf sy’n cadarnhau nad oes gan unrhyw wasanaeth gysylltiad uniongyrchol â chronfa ddata gwasanaeth arall. Mae ffwythiannau ffitrwydd yn troi bwriad pensaernïol yn glwydi diogelwch sy’n cael eu gorfodi’n barhaus: yr unig ffordd o gadw’r bwriad hwnnw’n fyw ar draws tîm mawr, sy’n newid.
Dogfennwch gyda C4 ac arc42
Defnyddiwch y model C4 i ddisgrifio strwythur ar bedwar lefel chwyddo (Cyd-destun System, Cynwysyddion, Cydrannau, a Chod) fel bod pob cynulleidfa’n darllen y lefel sy’n ei siwtio a bod dim un diagram sengl yn gorfod dweud popeth. Defnyddiwch arc42 fel y templed ar gyfer y naratif amgylchynol: nodau, cyfyngiadau, cyd-destun, strategaeth ateb, blociau adeiladu, senarios amser rhedeg, defnyddio, pryderon traws-dorri, penderfyniadau, a risgiau. Cofnodwch benderfyniadau unigol fel Cofnodion Penderfyniad Pensaernïol (ADRs) byr: cyd-destun, penderfyniad, statws, a chanlyniadau, un ffeil fesul penderfyniad, wedi’i fersiynu ochr yn ochr â’r cod. Os mabwysiadwch un arferiad dogfennaeth yn unig, gwnewch iddo fod yn ADRs: maent yn talu ar eu canfed yn fwy nag unrhyw beth arall i dimau mawr.
Cynhaliwch ddadansoddiad cyfaddawd strwythuredig a gyrrwch ddylunio yn ôl risg
Ar gyfer systemau risg uchel, defnyddiwch ddull megis y Dull Dadansoddi Cyfaddawd Pensaernïol (ATAM) i bwyso pensaernïaethau ymgeisiol yn erbyn senarios priodwedd ansawdd wedi’u blaenoriaethu. Mae’n datgelu pwyntiau sensitifrwydd (lle mae penderfyniad yn effeithio’n gryf ar un briodwedd) a phwyntiau cyfaddawd (lle mae’n effeithio ar sawl un). Am gyffyrddiad ysgafnach, mabwysiadwch ddylunio wedi’i yrru gan risg: treuliwch ymdrech dylunio yn gymesur â risg. Nid oes angen fawr o seremoni ar rannau risg isel, sydd wedi’u deall yn dda. Mae penderfyniadau newydd, effaith uchel, neu anwrthdroadwy’n haeddu prototeipiau, sbeigiau, ac adolygiad ffurfiol.
Cyfaddawdau: manteision ac anfanteision
| Dull | Manteision | Anfanteision |
|---|---|---|
| Pensaernïaeth drwm ymlaen llaw | Eglurder cydgysylltu; llai o synnau hwyr mewn rhaglenni cwmpas sefydlog | Penderfyniadau wedi’u gwneud pan fydd gwybodaeth ar ei isaf; araf; brau i newid |
| Pensaernïaeth ymddangosol/esblygiadol | Yn addasu i ddysgu; llai o wastraff; yn cefnogi cyflenwi cyflym | Risg o ddrifft heb ffwythiannau ffitrwydd; angen disgyblaeth beirianyddol gref |
| Gwerthusiad ffurfiol arddull ATAM | Trylwyr, archwiliadwy, yn datgelu gwrthdaro cudd | Yn ddwys o ran amser ac arbenigedd; gormodedd i newidiadau bach |
| ADRs ysgafn + C4 | Rhad, darllenadwy, cynyddrannol, yn graddio i lawer o dimau | Cystal yn unig â’r ddisgyblaeth i’w cadw’n gyfredol |
Y tensiwn canolog yw rhwng sicrwydd ac addasadwyedd. Mae rhaglenni llywodraeth pris sefydlog a systemau critigol-i-ddiogelwch yn tueddu tuag at fwy o drylwyredd ymlaen llaw a gwerthusiad ffurfiol, oherwydd bod cost newid hwyr neu fethiant yn enfawr. Mae sefydliadau cynnyrch sy’n symud yn gyflym yn tueddu tuag at ddulliau esblygiadol wedi’u gwarchod gan awtomeiddio. Mae angen y ddau ar y rhan fwyaf o sefydliadau mawr: llywodraethu trymach ar y penderfyniadau anwrthdroadwy, effaith uchel a phryderon traws-dorri, a dylunio ysgafnach, ymddangosol ym mhobman arall. Mae’r ddau begwn yn methu yn eu ffordd eu hunain: mae gor-bensaernïo’n gwastraffu blynyddoedd ac yn cyflenwi dim, tra bod tan-bensaernïo’n cynhyrchu clymau na ellir eu graddio na’u harchwilio.
Cwestiynau i’w trafod gyda’ch tîm
Pan fydd dau o’ch priodweddau ansawdd yn gwrthdaro dan lwyth, pa un sy’n ennill, ac a ydych wedi ysgrifennu’r drefn flaenoriaeth honno i lawr? Mae pob pensaernïaeth yn gorfodi cyfaddawdau: mae cysondeb mwyaf yn tanseilio argaeledd, mae diogelwch tynn yn ychwanegu oedi, mae storio dros dro ymosodol yn ymladd yn erbyn archwiliadwyedd. Ar dîm mawr y perygl yw bod gwahanol sgwadiau’n tybio’n dawel wahanol flaenoriaethau, felly mae un yn optimeiddio ar gyfer trwygyrch tra bod un arall yn gwarchod cysondeb llym, ac mae’r gwrthdaro ond yn ymddangos yn ystod digwyddiad. Mewn lleoliadau menter a llywodraeth bydd rheoleiddiwr yn gofyn pa briodwedd a warchodwyd a pham, felly mae’n rhaid i’r drefn fod yn glir ac y gellir ei hamddiffyn yn hytrach na bod yn llên gwerin. Dewch â’ch senarios priodwedd ansawdd a’u rhestru’n uchel yn erbyn ei gilydd, bâr wrth bâr, nes bod y drefn yn ddiamwys. Yna amgodiwch yr enillydd fel ffwythiant ffitrwydd fel bod y flaenoriaeth yn dal dan bwysau terfyn amser yn hytrach na erydu.
Pa rai o’ch penderfyniadau diweddar oedd yn ddrysau unffordd, ac a gawsant fwy o graffu na’r drysau dwyffordd? Mae dylunio wedi’i yrru gan risg yn dweud wrthych am dreulio ymdrech dylunio’n gymesur â pha mor anodd yw penderfyniad i’w wrthdroi, ac eto mae’r rhan fwyaf o dimau’n adolygu pob newid gyda thua’r un seremoni. Mae hynny’n gwastraffu sylw ar ddewisiadau rhad, gwrthdroadwy tra bod rhai anwrthdroadwy (model data wedi’i bobi mewn cofnod cyfreithiol, contract API cyhoeddus, storfa ddata graidd) yn llithro heibio gyda gormod bach o her. Tynnwch benderfyniadau arwyddocaol y chwarter diwethaf a’u trefnu yn ôl gwrthdroadwyedd, yna gofynnwch a gafodd y rhai anwrthdroadwy brototeipiau, sbeigiau, neu adolygiad ffurfiol. Mewn systemau menter a llywodraeth hirhoedlog mae cost drws unffordd anghywir yn cyfansymu am ddegawd, felly mae’r trylwyredd ychwanegol yn talu’n ôl droeon lawer. Paru pwysau eich proses â gwrthdroadwyedd y penderfyniad, nid maint y gwahaniaeth.
Ar gyfer eich penderfyniad risg uchel, anodd ei wrthdroi nesaf, pwy sydd angen bod yn yr ystafell, ac yn erbyn pa senarios y byddwch chi’n sgorio’r opsiynau? Mae adolygiad cyfaddawd strwythuredig ar arddull ATAM yn ennill ei gost pan fydd penderfyniad yn anwrthdroadwy ac yn cyffwrdd â sawl priodwedd ansawdd ar unwaith, ac mae ei bŵer yn dod o’r bobl sy’n bresennol: cyflenwi, diogelwch, gweithrediadau, a pherchnogion polisi neu fusnes sy’n teimlo’r canlyniadau. Hepgorwch un o’r lleisiau hynny a byddwch yn darganfod y gwrthdaro ar ôl yr adeiladu, yn yr un modd ag y gall dewis storio dros dro dorri gofyniad archwiliadwyedd yn dawel. Dewch â’r senarios priodwedd ansawdd wedi’u blaenoriaethu fel y rwbrig sgorio, a chwiliwch am bwyntiau sensitifrwydd lle mae un opsiwn yn siglo un briodwedd yn galed a phwyntiau cyfaddawd lle mae’n symud sawl un. Yr allbwn rydych ei eisiau yw ADR byr sy’n cofnodi’r opsiynau a wrthodwyd a pham, fel bod y rhesymu’n goroesi’r bobl a’i gwnaeth. Os na ymddengys bod unrhyw benderfyniad sydd ar ddod yn cyfiawnhau hyn, mae hynny ei hun yn werth ei wirio, oherwydd fel arfer nid yw rhaglen fawr heb unrhyw benderfyniadau anwrthdroadwy ar y gorwel yn edrych ddigon pell ymlaen.
Pe bai gan ymunwr newydd neu archwiliwr allanol eich pensaernïaeth ysgrifenedig yn unig, a allent ailadeiladu pam mae’r system wedi’i siapio fel y mae, a phryd wnaethoch chi brofi hynny ddiwethaf? Mae pensaernïaeth sy’n byw mewn ychydig o bennau uwch yn bwynt methiant sengl: pan fydd y bobl hynny’n symud ymlaen, mae’r rhesymu y tu ôl i bob penderfyniad anodd ei wrthdroi’n symud gyda nhw, ac mae’r tîm nesaf yn ei ailddysgu trwy ddigwyddiadau. I sefydliad mawr, darllenadwyedd y bensaernïaeth (diagramau C4 sy’n cyfateb i realiti, naratif arc42, ADRs sy’n cofnodi opsiynau a wrthodwyd) yw’r hyn sy’n gadael i ddwsinau o dimau resymu am yr un system heb gyfarfod. Dewch ag ADR diweddar a diagram cyfredol, eu rhoi i rywun na wnaeth adeiladu’r gydran, a gwylio pa mor bell y maent yn mynd cyn i chi orfod gofyn i berson. Mewn lleoliadau menter a llywodraeth bydd archwiliwr yn gwneud yn union yr ymarfer hwn, ac mae dogfennaeth sy’n disgrifio system y llynedd yn waeth na dim oherwydd ei bod yn camarwain yr union bobl sy’n gorfod ei ardystio. Triniwch ffresni’r cofnod ysgrifenedig fel priodwedd fesuradwy, a rhowch ffwythiant ffitrwydd neu gyflymder adolygu y tu ôl i’w gadw’n wir.
Pa rai o’ch nodweddion pensaernïol sy’n cael eu diogelu gan ffwythiant ffitrwydd awtomataidd heddiw, a pha rai sy’n dal i ddibynnu ar bawb yn cofio’r rheol? Mae bwriad sy’n byw mewn tudalen wici neu gof adolygwr yn unig yn erydu’r eiliad y daw terfyn amser, oherwydd mai’r rheol haenu, y ffin dim-cronfa-ddata-a-rennir, a’r gyllideb oedi yw’n union yr hyn y mae timau’n eu torri pan fyddant dan bwysau. Ar sylfaen cod mawr, sy’n newid yn gyflym, dim ond y bwriad y mae adeiladwaith yn ei orfodi sy’n goroesi, felly’r bwlch rhwng y nodweddion rydych chi’n eu honni a’r rhai rydych chi wir yn eu gwirio yw eich gwir risg bensaernïol. Rhestrwch eich nodweddion arwyddocaol, marciwch bob un fel un a orfodir, un a adolygir â llaw, neu un heb ei warchod, a dewch â’r tair gwaith diwethaf i adolygiad ddal drifft y byddai ffwythiant ffitrwydd wedi gallu ei ddal yn gynharach. Mewn systemau rheoledig a chyhoeddus mae hyn yn bwysig ddwbl, oherwydd ni fydd rheoleiddiwr yn gofyn a oeddech chi’n bwriadu preswyliad data neu archwiliadwyedd ond sut rydych chi’n profi ei fod wedi dal yn barhaus, ac mae piblinell werdd yn ateb llawer cryfach na dogfen bolisi. Blaenoriaethwch awtomeiddio’r nodweddion y mae eu methiant yn debygol ac yn ddrud fel ei gilydd, a derbyniwch y bydd rhai’n aros yn â llaw.
Pan fyddwch chi’n penderfynu a yw gofyniad yn arwyddocaol yn bensaernïol, pwy sy’n gwneud y penderfyniad hwnnw, a sut ydych chi’n cadw’r rhestr ASR rhag dod naill ai’n bopeth neu’n ddim byd? Mae gwerth enwi gofynion sy’n arwyddocaol yn bensaernïol yn dod o ddetholusrwydd: triniwch bob gofyniad fel un arwyddocaol a bydd dylunio’n llethu i stop, triniwch ddim yn arwyddocaol a bydd y rhai strwythurol, peryglus, anodd eu newid yn llithro heibio heb eu gwarchod. Ar dîm mawr y demtasiwn yw gadael i bob sgwad benderfynu’n lleol, sy’n cynhyrchu bariau anghyson a synnau traws-dîm pan fydd dewis “bach” un grŵp yn cyfyngu ar strwythur un arall. Dewch â’ch rhestr ASR gyfredol, y meini prawf a ddefnyddioch (yn cyffwrdd â llawer o gydrannau, drud i’w fodloni, cyfyngiad llym, technegol beryglus), a rhai gofynion ffiniol i brofi’r ffin yn uchel. I fentrau a llywodraeth, mae mandadau rheoleiddiol megis preswyliad data, cadw, ac archwiliadwyedd bron bob amser yn arwyddocaol ac yn anhrafodadwy, felly enwch pwy sy’n berchen ar y rhestr, sut y caiff ei hadolygu, a sut y cofnodir penderfyniad i ychwanegu neu ollwng ASR, oherwydd mae ASR nad oes neb yn ei lywodraethu’n ofyniad na fydd neb yn ei amddiffyn dan graffu.
Lens sector
Cwmni newydd. Cadwch y seremoni’n agos at sero a’r cofnod bron yn gyflawn. Hepgorwch weithdai ATAM ffurfiol a themledi trwm, ond ysgrifennwch ddwsin o ADRs byr o hyd ar gyfer y dewisiadau a fyddai’n boenus i’w dadwneud (storfa ddata, monolith yn erbyn gwasanaethau, darparwr dilysu), a phiniwch y ddwy neu dair senario priodwedd ansawdd y mae eich cwsmeriaid cynharaf yn eu teimlo mewn gwirionedd. Eich adnodd prin yw sylw peirianyddol, felly diogelwch dim ond y nodweddion y byddai eu methiant yn eich suddo, megis ynysu tenantiaid, a gadewch i bopeth arall aros yn ymddangosol ac yn rhad i’w newid.
Busnes bach. Heb bensaer penodedig a chyllideb dynn, pwyswch ar y sylfeini sy’n costio bron dim: enwch eich llond llaw o briodweddau ansawdd fel rhifau diriaethol, ysgrifennwch ADRs ar gyfer unrhyw beth y byddech chi’n cael trafferth ei wrthdroi, a gadewch i’ch platfform neu werthwr dewisedig gario’r penderfyniadau strwythurol trwm. Ffafriwch brynu stac â chefnogaeth dda dros adeiladu seilwaith pwrpasol, a thriniwch bensaernïaeth ddogfennedig y gwerthwr fel cyfyngiad rydych chi’n ei etifeddu yn hytrach nag un y mae’n rhaid i chi ei awduro o’r dechrau.
Menter. Yr her yw cydlyniad ar draws llawer o dimau a blynyddoedd o fap ffordd, felly buddsoddwch mewn peirianwaith a rennir: gild bensaernïaeth, set gyffredin o senarios priodwedd ansawdd, ADRs wedi’u storio wrth ymyl y cod, a ffwythiannau ffitrwydd mewn CI sy’n gorfodi ffiniau na allai unrhyw adolygwr sengl eu plismona ar raddfa. Defnyddiwch ddadansoddiad cyfaddawd strwythuredig ar gyfer y penderfyniadau anwrthdroadwy, traws-dorri, cadwch ddiagramau C4 fel y map a rennir mewn adolygiadau dylunio, a llywodraethwch y rhestr ASR yn ganolog fel bod grwpiau’n peidio â gwneud dewisiadau rhesymol yn lleol sy’n gwrthdaro’n fyd-eang.
Llywodraeth. Mae systemau hirhoedlog, rheoledig yn gwneud pensaernïaeth ddogfennedig, y gellir ei hamddiffyn, yn ofyniad caffael ac atebolrwydd, nid yn beth braf i’w gael. Triniwch breswyliad data, cadw, archwiliadwyedd, a hygyrchedd fel gofynion sy’n arwyddocaol yn bensaernïol wedi’u hysgrifennu mewn disgrifiad arc42 y gall archwilwyr ei ddarllen yn uniongyrchol, a chynhaliwch weithdai cyfaddawd ysgafn sy’n cynnwys swyddogion polisi a diogelwch fel bod gwrthdaro (megis storio dros dro yn erbyn archwiliadwyedd) yn ymddangos ar bapur cyn cod. Cadwch y llwybr rhesymu’n ddigon cyflawn fel y gall swyddog atebol ddangos diwydrwydd dyladwy, a ffafriwch bensaernïaethau â dewisiadau ymadael clir dros rai sy’n clymu corff cyhoeddus i un gwerthwr am ddegawd.
Enghreifftiau
Cwmni newydd. Mae tîm SaaS chwe pherson ar gam had yn cadw ei bensaernïaeth mewn dogfen a rennir yn hytrach na phroses ffurfiol, ond mae’n dal i ysgrifennu i lawr y penderfyniadau a fyddai’n boenus i’w gwrthdroi. Maent yn cofnodi tua dwsin o ADRs (pam Postgres dros storfa ddogfen, pam monolith modiwlaidd dros wasanaethau, pam y dewison nhw eu darparwr dilysu) ac yn piniwch ddwy senario priodwedd ansawdd sy’n wirioneddol bwysig i gwsmeriaid cynnar: “mae cofrestriad yn cwblhau mewn llai na dwy eiliad” a “ni all yr un cwsmer byth ddarllen data tenant arall.” Pan fyddant yn cyflogi eu seithfed a’u hwythfed peiriannydd, mae’r nodiadau hynny’n gadael i’r newydd-ddyfodiaid anfon yn eu hwythnos gyntaf yn lle torri ar draws pawb i ofyn pam mae pethau fel y maen nhw.
Menter. Mae banc rhyngwladol yn cyfuno deuddeg system daliadau rhanbarthol, felly mae’n sefydlu gild bensaernïaeth fach. Mae’r gild yn diffinio wyth senario priodwedd ansawdd (gan gynnwys “prosesu 10,000 o drafodion yr eiliad gyda sero trafodion coll” ac “adfer rhanbarth o fewn 15 munud”), yn dal tua deugain ADR, ac yn gorfodi ffwythiannau ffitrwydd mewn CI (integreiddio parhaus): ni chaiff unrhyw wasanaeth ysgrifennu i gronfa ddata parth arall, rhaid olrhain pob galwad rhwng gwasanaethau, ac mae unrhyw ddibyniaeth â CVE critigol (Common Vulnerabilities and Exposures) yn methu’r adeiladwaith. Mae diagramau cyd-destun a chynhwysydd C4 yn dod yn fap a rennir ym mhob adolygiad dylunio, ac mae anghydfodau integreiddio traws-dîm yn gostwng yn sylweddol.
Llywodraeth. Mae asiantaeth genedlaethol yn moderneiddio platfform budd-daliadau, ac mae’r gyfraith yn ei gwneud yn ofynnol iddi warantu preswyliad data, archwiliadwyedd saith mlynedd, a chydymffurfiaeth hygyrchedd. Mae ei phenseiri’n trin y rhain fel ASRs ac yn eu hysgrifennu mewn disgrifiad arc42 y mae archwilwyr yn ei adolygu’n uniongyrchol. Maent yn cynnal gweithdy ATAM ysgafn gyda thimau cyflenwi, diogelwch, a swyddogion polisi i gymharu dwy bensaernïaeth ymgeisiol, ac yn darganfod bod strategaeth storio dros dro’r dyluniad a ffefrir yn gwrthdaro â’r gofyniad archwiliadwyedd. Mae dal y cyfaddawd hwnnw ar bapur, cyn llinell o god, yn arbed misoedd o ail-waith ac yn rhoi tystiolaeth ddogfennedig o ddiwydrwydd dyladwy i’r gweinidog atebol.
Achos busnes: cymhellion, ROI, a TCO
Mae’r enillion ar sylfeini pensaernïaeth yn bennaf yn gost a osgowyd, sy’n ei gwneud yn hawdd ei tanariannu ac yn ddrud ei hepgor. Mae’r gost i’w fabwysiadu’n gymedrol: amser llond llaw o benseiri profiadol, ychydig weithdai, templed dogfennaeth, a rhywfaint o fuddsoddiad CI mewn ffwythiannau ffitrwydd, fel arfer canran un digid fach o gyllideb rhaglen. Mae cost peidio â’u mabwysiadu’n cyrraedd yn ddiweddarach, ac am bremiwm: ail-waith pan fydd priodwedd ansawdd heb ei nodi’n methu mewn cynhyrchu, ail-blatfformio brys pan fydd cyplu heb ei ddogfennu’n rhwystro newid mandadol, digwyddiadau hirfaith oherwydd nad oes neb yn deall y system, ac archwiliadau a fethodd sy’n atal cyflenwi neu’n sbarduno dirwyon.
I arweinyddiaeth, fframiwch yr achos o amgylch opsiynolrwydd a risg. Mae sylfeini pensaernïaeth da’n gostwng cost newid yn y dyfodol (lifer uniongyrchol ar gyflymder cyflenwi a chyfanswm cost perchnogaeth dros oes system o ddegawd o hyd), yn lleihau pa mor aml a pha mor hir y mae digwyddiadau difrifol yn para, ac yn cynhyrchu’r llwybr dogfennaeth y mae rheoleiddwyr ac archwilwyr bellach yn ei fynnu. Mae’r arferiad ADR ar ei ben ei hun yn talu amdano’i hun y tro cyntaf y mae tîm arweinyddiaeth newydd yn gofyn “pam wnaethon ni ei adeiladu fel hyn?” ac yn cael ateb mewn munudau yn lle ymchwiliad fforensig. Rhowch rifau arno lle gallwch: pwyswch gost un ailbensaernïo mawr a osgowyd, neu un archwiliad wedi methu a osgowyd, yn erbyn cost fach barhaus yr arferion.
Gwrth-batrymau a pheryglon
- Pensaernïaeth twr ifori. Penseiri sy’n cynhyrchu diagramau ond byth yn cyffwrdd â chod na siarad â thimau cyflenwi; anwybyddir eu dyluniadau neu ni ellir eu hadeiladu.
- Priodweddau ansawdd fel ansoddeiriau. “Graddadwy, diogel, dibynadwy” heb rifau, heb senarios, ac felly heb ffordd o wirio na chyfaddawdu.
- Dylunio mawr ymlaen llaw. Ymrwymo pob manylyn cyn y llinell gyntaf o god, gan gloi penderfyniadau i mewn pan fydd dealltwriaeth wannaf.
- Dogfennaeth sy’n dweud celwydd. Diagramau sy’n disgrifio system y llynedd; gwaeth na dim oherwydd eu bod yn camarwain.
- Dylunio wedi’i yrru gan CV. Dewis technolegau i adeiladu gyrfaoedd yn hytrach na bodloni ASRs.
- Aur-blatio. Peiriannu ar gyfer graddfa, hyblygrwydd, neu gyffredinolrwydd na ofynnodd y gofynion amdanynt erioed, gan ychwanegu cost a chymhlethdod yn barhaol.
- Dim clwydi diogelwch pensaernïol. Dibynnu ar fwriadau da yn lle ffwythiannau ffitrwydd i gadw strwythur ar draws tîm mawr.
Model aeddfedrwydd
- Lefel 1: Cychwyn. Mae pensaernïaeth yn ymhlyg ac yn byw ym mhennau unigolion. Dim priodweddau ansawdd wedi’u dogfennu, dim ADRs, dim diagramau a rennir. Darganfyddir strwythur yn ystod digwyddiadau, ac ail-drafodir pob dibyniaeth traws-dîm o’r dechrau.
- Lefel 2: Datblygu. Mae rhai timau’n ysgrifennu i lawr y penderfyniadau a fyddai’n brifo i’w gwrthdroi ac yn braslunio diagramau allweddol, ond mae’r arfer yn anghyson: mae un sgwad yn cadw ADRs tra nad yw un arall yn cadw dim, enwir priodweddau ansawdd fel ansoddeiriau yn hytrach na senarios mesuradwy, ac mae dogfennaeth yn drifftio’n hen rhwng prosiectau.
- Lefel 3: Safoni. Mae senarios priodwedd ansawdd a gofynion sy’n arwyddocaol yn bensaernïol wedi’u nodi a’u blaenoriaethu i safon ddogfennedig, ar draws y sefydliad. Mae ADRs yn rheolaidd ac wedi’u storio wrth ymyl y cod, cynhelir dogfennaeth C4 ac arc42 i dempled cyffredin, ac mae adolygiadau cyfaddawd strwythuredig yn ofynnol ar gyfer penderfyniadau arwyddocaol ar draws pob tîm.
- Lefel 4: Rheoli. Mae’r bensaernïaeth yn cael ei mesur yn erbyn llinellau sylfaen yn hytrach na’i honni. Mae ffwythiannau ffitrwydd mewn CI yn adrodd ar nodweddion megis oedi p99, torriadau haenu, galwadau heb eu holrhain, a dibyniaethau agored i niwed; olrheinir cwmpas ADR a ffresni dogfennaeth fel metrigau; mae adolygiadau cyfaddawd yn sgorio opsiynau yn erbyn y senarios wedi’u blaenoriaethu; ac mae drifft yn erbyn llinellau sylfaen y cytunwyd arnynt yn sbarduno ymateb diffiniedig yn lle syndod. Gall archwilwyr ddibynnu ar dystiolaeth wedi’i mesur yn hytrach na naratif yn unig.
- Lefel 5: Cydgordio. Mae pensaernïaeth yn esblygu’n barhaus ac yn addasol ar draws y sefydliad cyfan. Mae data ffwythiant ffitrwydd a digwyddiadau’n bwydo’n ôl i mewn i ba nodweddion sy’n bwysig a lle mae ymdrech dylunio’n mynd; ailgwmpesir rhestrau ASR, blaenoriaethau priodwedd ansawdd, a chlwydi diogelwch wrth i fandadau a risg newid; ac mae’r arfer wedi’i integreiddio â chynllunio cyflenwi, diogelwch, a risg fel bod y platfform yn addasu i ofynion newydd yn lle cael ei ailadeiladu o’r dechrau.
Syniadau ar gyfer trafodaeth
- Pa dair priodwedd ansawdd sy’n wirioneddol anhrafodadwy i’ch system fwyaf critigol, ac a allwch nodi pob un fel senario mesuradwy heddiw?
- Sut ydych chi’n penderfynu pryd mae penderfyniad yn “arwyddocaol yn bensaernïol” ddigon i gyfiawnhau ADR yn erbyn ei wneud yn unig?
- Ble fyddai ffwythiannau ffitrwydd yn dal drifft y mae eich adolygiad cod cyfredol yn ei fethu?
- A yw eich sefydliad yn gor-bensaernïo neu’n tan-bensaernïo, a pha dystiolaeth sy’n dweud wrthych pa un?
- Pwy sy’n atebol am bensaernïaeth mewn strwythur tîm-o-dimau, a sut ydych chi’n osgoi twr ifori ac anarchiaeth lwyr fel ei gilydd?
- Sut fyddai archwiliwr allanol yn ailadeiladu bwriad eich pensaernïaeth o’r hyn sydd wedi’i ysgrifennu i lawr heddiw?
Prif gasgliadau
- Pensaernïaeth yw’r set o benderfyniadau sy’n ddrud eu gwrthdroi; gwnewch y cyfaddawdau hynny’n fwriadol a’u cofnodi.
- Nodwch briodweddau ansawdd fel senarios mesuradwy a nodwch y gofynion sy’n arwyddocaol yn bensaernïol sy’n siapio strwythur.
- Dyluniwch yn gynyddrannol a diogelwch nodweddion pensaernïol allweddol â ffwythiannau ffitrwydd awtomataidd.
- Dogfennwch yn ysgafn ond yn onest gan ddefnyddio diagramau C4, naratif arc42, ac ADRs fesul penderfyniad a gedwir wrth ymyl y cod.
- Parwch drylwyredd â risg: dadansoddiad trwm ar gyfer penderfyniadau anwrthdroadwy, effaith uchel; proses ysgafn ym mhobman arall.
- Yr achos busnes yw ail-waith a osgowyd, digwyddiadau byrrach, newid cyflymach yn y dyfodol, a thystiolaeth barod-ar-gyfer-archwiliad.
Cyfeiriadau a darllen pellach
- Len Bass, Paul Clements, a Rick Kazman, Software Architecture in Practice
- Neal Ford, Rebecca Parsons, a Patrick Kua, Building Evolutionary Architectures
- Simon Brown, Software Architecture for Developers (a’r model C4)
- Mark Richards a Neal Ford, Fundamentals of Software Architecture
- George Fairbanks, Just Enough Software Architecture: A Risk-Driven Approach
- Michael Nygard, “Documenting Architecture Decisions” (y patrwm ADR)
- Gernot Starke a Peter Hruschka, templed dogfennaeth arc42
- Paul Clements et al., Evaluating Software Architectures: Methods and Case Studies (ATAM)
- ISO/IEC 25010, Systems and software quality models