Sut i ddarllen a thrwsio 100,000 o linellau o god mewn wythnos

Sut i ddarllen a thrwsio 100,000 o linellau o god mewn wythnos
Ar y dechrau mae bob amser yn anodd deall prosiect mawr a hen. Mae pensaernïaeth yn un o weithgareddau asesiad pensaer. Fel arfer mae'n rhaid i chi weithio gyda phrosiectau mawr, hen, a rhaid cyflwyno'r canlyniadau mewn wythnos.

Sut i werthuso prosiect o 100k neu fwy o linellau cod mewn wythnos tra'n dal i ddarparu canlyniadau sy'n wirioneddol ddefnyddiol i'r cleient.

Mae'r rhan fwyaf o benseiri ac arweinwyr technegol wedi dod ar draws asesiadau prosiect tebyg. Gall hyn edrych fel proses lled-ffurfiol neu fel gwasanaeth ar wahân fel y gwneir yn ein cwmni, un ffordd neu'r llall mae'r rhan fwyaf ohonoch wedi delio â hyn.

Mae'r gwreiddiol yn Saesneg ar gyfer eich ffrindiau nad ydynt yn siarad Rwsieg yma: Asesiad Pensaernïaeth mewn wythnos.

Dull ein cwmni

Byddaf yn dweud wrthych sut mae'n gweithio yn ein cwmni a sut yr wyf yn gweithredu mewn sefyllfaoedd tebyg, ond gallwch chi newid y dull hwn yn hawdd yn unol ag anghenion eich prosiect a'ch cwmni.

Mae dau fath o asesiad pensaernïaeth.

Tu mewn – rydym fel arfer yn ei wneud ar gyfer prosiectau o fewn y cwmni. Gall unrhyw brosiect ofyn am asesiad pensaernïaeth am sawl rheswm:

  1. Mae'r tîm yn meddwl bod eu prosiect yn berffaith ac mae hyn yn amheus. Rydym wedi cael achosion o'r fath, ac yn aml mewn prosiectau o'r fath mae popeth ymhell o fod yn ddelfrydol.
  2. Mae'r tîm am brofi eu prosiect a'u hatebion.
  3. Mae'r tîm yn gwybod bod pethau'n ddrwg. Efallai y byddant hyd yn oed yn rhestru'r prif broblemau ac achosion, ond eisiau rhestr gyflawn o broblemau ac argymhellion ar gyfer gwella'r prosiect.

Allanol yn broses fwy ffurfiol nag asesiad mewnol. Dim ond mewn un achos y daw'r cleient bob amser, pan fydd popeth yn ddrwg - yn ddrwg iawn. Fel arfer mae'r cleient yn deall bod yna broblemau byd-eang, ond ni all adnabod yr achosion yn gywir a'u rhannu'n gydrannau.

Mae gwerthuso pensaernïaeth ar gyfer cleient allanol yn achos mwy cymhleth. Dylai'r broses fod yn fwy ffurfiol. Mae'r prosiectau bob amser yn fawr ac yn hen. Mae ganddyn nhw lawer o broblemau, bygiau a chod cam. Dylai adroddiad ar y gwaith a wnaed fod yn barod ymhen ychydig wythnosau, a ddylai gynnwys y prif broblemau ac argymhellion ar gyfer gwella. Felly, os ydym yn ymdrin ag asesiad allanol y prosiect, yna bydd yr asesiad mewnol yn ddarn o gacen. Gadewch i ni ystyried yr achos anoddaf.

Asesiad pensaernïaeth prosiect menter

Mae prosiect nodweddiadol i'w werthuso yn brosiect menter mawr, hen gyda llawer o broblemau. Mae cleient yn dod atom ac yn gofyn i ni drwsio ei brosiect. Mae fel gyda mynydd iâ, dim ond blaen ei broblemau y mae'r cleient yn ei weld ac nid oes ganddo unrhyw syniad beth sydd o dan y dŵr (yn nyfnder y cod).

Problemau y gall y cwsmer gwyno amdanynt ac y gallai fod yn ymwybodol ohonynt:

  • Materion Perfformiad
  • Materion defnyddioldeb
  • Defnydd hirdymor
  • Diffyg profion uned a phrofion eraill

Problemau nad yw’r cleient yn fwyaf tebygol o fod yn ymwybodol ohonynt, ond y gallent fod yn bresennol yn y prosiect:

  • Problemau diogelwch
  • Problemau dylunio
  • Pensaernïaeth anghywir
  • Gwallau algorithmig
  • Technolegau amhriodol
  • Dyled dechnegol
  • Proses ddatblygu anghywir

Proses adolygu pensaernïaeth ffurfiol

Mae hon yn broses ffurfiol yr ydym yn ei dilyn fel cwmni, ond gallwch ei haddasu yn dibynnu ar eich cwmni a'ch prosiect.

Cais gan gleient

Mae'r cleient yn gofyn am werthuso pensaernïaeth y prosiect cyfredol. Mae'r person cyfrifol ar ein hochr ni yn casglu gwybodaeth sylfaenol am y prosiect ac yn dewis yr arbenigwyr angenrheidiol. Yn dibynnu ar y prosiect, gall y rhain fod yn arbenigwyr gwahanol.

Pensaer Datrysiad – y prif berson sy’n gyfrifol am asesu a chydgysylltu (a’r unig un yn aml).
Pentyrru arbenigwyr penodol – .Net, Java, Python, ac arbenigwyr technegol eraill yn dibynnu ar y prosiect a thechnolegau
Arbenigwyr cwmwl – gall y rhain fod yn benseiri cwmwl Azure, GCP neu AWS.
Isadeiledd - DevOps, gweinyddwr y system, ac ati.
Arbenigwyr eraill – megis data mawr, dysgu peiriannau, peiriannydd perfformiad, arbenigwr diogelwch, arweinydd SA.

Casglu gwybodaeth am y prosiect

Dylech gasglu cymaint o wybodaeth â phosibl am y prosiect. Gallwch ddefnyddio technegau gwahanol yn dibynnu ar y sefyllfa:

  • Holiaduron a dulliau eraill o gyfathrebu drwy'r post. Y ffordd fwyaf aneffeithiol.
  • Cyfarfodydd ar-lein.
  • Offer arbennig ar gyfer cyfnewid gwybodaeth megis: Google doc, Confluence, ystorfeydd, ac ati.
  • Cyfarfodydd “byw” ar y safle. Y ffordd fwyaf effeithiol a drutaf.

Beth ddylech chi ei gael gan y cleient?

Gwybodaeth Sylfaenol. Beth yw pwrpas y prosiect? Ei ddiben a'i werth. Prif nodau a chynlluniau ar gyfer y dyfodol. Nodau a strategaethau busnes. Prif broblemau a chanlyniadau dymunol.

Gwybodaeth am y prosiect. Technoleg stac, fframweithiau, ieithoedd rhaglennu. Defnydd ar y safle neu ar y cwmwl. Os yw'r prosiect yn y cwmwl, pa wasanaethau a ddefnyddir. Pa batrymau pensaernïol a dylunio a ddefnyddiwyd.

Gofynion anweithredol. Mae'r holl ofynion yn ymwneud â pherfformiad, argaeledd, a rhwyddineb defnydd o'r system. Gofynion diogelwch, ac ati.

Achosion defnydd sylfaenol a llif data.

Mynediad i god ffynhonnell. Y rhan bwysicaf! Yn bendant, dylech gael mynediad i'r ystorfeydd a'r dogfennau ar sut i adeiladu'r prosiect.

Mynediad i seilwaith. Byddai'n braf cael mynediad i'r llwyfan neu'r seilwaith cynhyrchu i weithio gyda'r system fyw. Mae'n llwyddiant mawr os oes gan y cleient offer ar gyfer monitro seilwaith a pherfformiad. Byddwn yn siarad am yr offer hyn yn yr adran nesaf.

Cofnodion. Os oes gan y cleient ddogfennaeth mae hwn yn ddechrau da. Efallai ei fod yn hen ffasiwn, ond mae'n ddechrau da o hyd. Peidiwch byth ag ymddiried yn y ddogfennaeth - profwch ef gyda'r cleient, ar seilwaith go iawn ac yn y cod ffynhonnell.

Proses Werthuso Pensaernïaeth

Sut gall rhywun brosesu cymaint o wybodaeth mewn cyfnod mor fyr? Yn gyntaf oll, cyfochrog â'r gwaith.

Dylai DevOps edrych ar y seilwaith. Tech yn arwain i mewn i'r cod. Peiriannydd perfformiad i weld metrigau perfformiad. Dylai arbenigwr cronfa ddata gloddio'n ddyfnach i strwythurau data.

Ond mae hwn yn achos delfrydol pan fydd gennych lawer o adnoddau. Yn nodweddiadol, mae un i dri o bobl yn gwerthuso prosiect. Gallwch hyd yn oed gynnal yr amcangyfrif eich hun, sy'n aml yn wir os oes gennych y wybodaeth a'r profiad priodol ym mhob maes o'r prosiect. Yn yr achos hwn, mae angen i chi awtomeiddio'r holl brosesau cymaint â phosibl.

Yn anffodus, bydd yn rhaid i chi ddarllen y ddogfennaeth â llaw. Gyda'r profiad cywir, gallwch chi ddeall ansawdd y ddogfennaeth yn gyflym. Yr hyn sy'n wir a'r hyn sy'n amlwg nad yw'n cyd-fynd â realiti. Weithiau efallai y byddwch chi'n gweld pensaernïaeth mewn dogfennaeth na fydd byth yn gweithio mewn bywyd go iawn. Mae hyn yn sbardun i chi feddwl am sut y cafodd ei wneud mewn gwirionedd yn y prosiect.

Offer defnyddiol i awtomeiddio gwerthusiad prosiect

Mae gwerthuso cod yn ymarfer syml. Gallwch ddefnyddio dadansoddwyr cod statig a fydd yn dangos i chi faterion dylunio, perfformiad a diogelwch. Dyma ychydig ohonyn nhw:

Strwythur 101 yn arf gwych i bensaer. Bydd yn dangos y darlun mawr i chi, y dibyniaethau rhwng modiwlau a meysydd posibl ar gyfer ailffactorio. Fel pob offer da, mae'n costio arian da, ond gallwch chi fanteisio ar fersiwn prawf 30 diwrnod.

sainQube - hen arf da. Offeryn ar gyfer dadansoddi cod statig. Yn eich galluogi i nodi cod gwael, chwilod a phroblemau diogelwch ar gyfer mwy nag 20 o ieithoedd rhaglennu.

Mae gan bob darparwr cwmwl offer monitro seilwaith. Bydd hyn yn eich galluogi i werthuso effeithiolrwydd eich seilwaith yn gywir o ran cost a pherfformiad. Ar gyfer AWS mae hyn cynghorydd dibynadwy. Mae'n hawdd i Azure Cynghorydd Azure.

Bydd monitro perfformiad a chofnodi ychwanegol yn helpu i ddod o hyd i faterion perfformiad ar bob lefel. Gan ddechrau o gronfa ddata gydag ymholiadau aneffeithiol, yr ôl-wyneb ac yn gorffen gyda'r blaen. Hyd yn oed os nad yw'r cleient wedi gosod yr offer hyn o'r blaen, gallwch eu hintegreiddio i'r system bresennol yn weddol gyflym i nodi materion perfformiad.

Fel bob amser, mae offer da yn werth chweil. Gallaf argymell cwpl o offer taledig. Wrth gwrs gallwch chi ddefnyddio ffynhonnell agored ond bydd yn cymryd mwy o amser i chi. A dylid gwneud hyn ymlaen llaw, nid yn ystod y broses asesu pensaernïol.

New Relic – offeryn ar gyfer asesu perfformiad ceisiadau
Ci Data - gwasanaeth monitro system cwmwl

Mae yna lawer o offer ar gael ar gyfer profi diogelwch. Y tro hwn byddaf yn argymell offeryn sganio system am ddim i chi.

OWASP ZAP – offeryn ar gyfer sganio cymwysiadau gwe i weld a ydynt yn cydymffurfio â safonau diogelwch.

Gadewch i ni roi popeth at ei gilydd yn un cyfanwaith.

Paratoi adroddiad

Dechreuwch eich adroddiad gyda'r data a gasglwyd gennych gan y cleient. Disgrifio nodau'r prosiect, cyfyngiadau, gofynion anweithredol. Ar ôl hyn, dylid crybwyll yr holl ddata mewnbwn: cod ffynhonnell, dogfennaeth, seilwaith.

Cam nesaf. Rhestrwch unrhyw broblemau y daethoch o hyd iddynt â llaw neu gan ddefnyddio offer awtomataidd. Rhowch adroddiadau mawr a gynhyrchir yn awtomatig ar y diwedd yn yr adran ceisiadau. Dylai fod tystiolaeth fer a chryno o'r problemau a ganfuwyd.
Blaenoriaethwch y problemau a geir ar y raddfa gwall, rhybudd, gwybodaeth. Gallwch ddewis eich graddfa eich hun, ond dyma'r un a dderbynnir yn gyffredinol.

Fel pensaer go iawn, eich cyfrifoldeb chi yw darparu argymhellion i gywiro'r problemau a ganfuwyd. Disgrifiwch y gwelliannau a'r gwerth busnes y bydd y cwsmer yn eu derbyn. Sut i ddangos gwerth busnes o ailffactorio pensaernïaeth a drafodwyd gennym yn gynharach.

Paratowch fap ffordd gydag iteriadau bach. Dylai pob iteriad gynnwys amser i'w gwblhau, disgrifiad, faint o adnoddau sydd eu hangen ar gyfer gwelliant, gwerth technegol a gwerth busnes.

Rydym yn cwblhau'r asesiad pensaernïaeth ac yn darparu adroddiad i'r cleient

Peidiwch byth â phostio adroddiad yn unig. Efallai na chaiff ei ddarllen o gwbl, neu efallai na chaiff ei ddarllen a'i ddeall heb esboniad priodol. Yn fyr, mae cyfathrebu byw yn helpu i ddileu camddealltwriaeth rhwng pobl. Dylech drefnu cyfarfod gyda'r cleient a siarad am y problemau a ganfuwyd, gan ganolbwyntio ar y rhai mwyaf arwyddocaol. Mae'n werth tynnu sylw'r cleient at broblemau efallai nad yw hyd yn oed yn ymwybodol ohonynt. Megis materion diogelwch ac eglurwch sut y gallent effeithio ar y busnes. Dangoswch eich map ffordd gyda gwelliannau a thrafodwch opsiynau gwahanol sy'n fwy addas i'r cleient. Gallai hyn fod yn amser, adnoddau, maint y gwaith.

Fel crynodeb o'ch cyfarfod, anfonwch eich adroddiad at y cleient.

I gloi

Mae gwerthuso pensaernïaeth yn broses gymhleth. Er mwyn cynnal yr asesiad yn iawn mae angen digon o brofiad a gwybodaeth.

Mae'n bosibl rhoi canlyniadau defnyddiol iddo ef a'i fusnes i'r cleient mewn dim ond wythnos. Hyd yn oed os gwnewch hynny ar eich pen eich hun.

Yn seiliedig ar fy mhrofiad, cafodd llawer o welliannau eu llwytho i lawr yn y canol, ac weithiau ni ddechreuwyd erioed. Fe wnaeth y rhai a ddewisodd y cymedr euraidd drostynt eu hunain a gwneud dim ond rhan o'r gwelliannau a oedd fwyaf defnyddiol i'r busnes gyda chostau llafur isel wella ansawdd eu cynnyrch yn sylweddol. Gallai'r rhai na wnaeth unrhyw beth gau'r prosiect yn gyfan gwbl ar ôl ychydig o flynyddoedd.

Eich nod yw dangos y gwelliannau mwyaf posibl i'r cleient am yr isafbris.

Erthyglau eraill o'r adran pensaernïaeth gallwch ddarllen yn eich hamdden.

Rwy'n dymuno cod glân a phenderfyniadau pensaernïol da ichi.

Ein grŵp facebook - Pensaernïaeth a Datblygu Meddalwedd.

Ffynhonnell: hab.com

Ychwanegu sylw