Eispéiris Clárúcháin Crua Android-Thuilleamh

Tá an post seo, mar a deir Kent Beck ina leabhar Cur i bhFeidhm Patrúin, “… bunaithe ar bhunús sách leochaileach go bhfuil tábhacht le cód maith…”. Ach tá a fhios againn go léir go bhfuil tábhacht le cód glan mar b’éigean dúinn déileáil chomh fada sin lena easpa. Agus mar sin a dhéanann Kent.

Kent Beck

Costas Iomlán Úinéireacht Teachtaireachta

Cúpla bliain ó shin, cosúil le gach forbróir naive Android a bhí ag obair i dtosach céim luath san India, rinne mé iarracht fadhbanna an tsaoil réadaigh a “hack”, “cur isteach ar an tionscal” agus “dent a chur sa chruinne”. Gan cúram ar domhan faoi dhea-dhearadh bogearraí nó ailtireacht, thosaigh mé ag scríobh cód chun aip Android a thógáil a bheadh ​​lá amháin ar cheann de na haipeanna cúram sláinte tomhaltóra is mó san India.

Sprint tar éis sprint, hack tar éis hack, tógadh gnéithe i Rush buile. Tógáil. Beart. Foghlaim. Bhí an t-am chun an mhargaidh tábhachtach agus bhí gach lá aibí. D'imigh an t-am thart, bhíomar ag fás de réir ráta 1 bhall foirne gach 6 mhí agus bhí an marc milliún íoslódála buailte ag an aip.

Íoslódálacha agus rátáil siopa Google Play ar aip.

Faoin am seo, bhí an aip stop a bheith fánach agus bhí sé ina chliant il-thionóntaí, más rud é sin fiú. Thóg sé laethanta, uaireanta seachtainí, ar ghnéithe a thógfadh uaireanta nuair a thosaíomar. Bhí 1000+ líne de chód spaghetti i ngach Gníomhaíocht toisc nach mbíonn Android go bunúsach ag déanamh iomarca imní faoi scaradh na n-imní. Mhoilligh an costas iomlán a bhaineann le praiseach a bheith againn go suntasach.

An Conundrum Android

Bhí cuma ghránna ar an gcód, Rinne Gníomhaíochtaí bainistíocht ar gach rud:

  • Snáithe
  • I / O.
  • Ríomh
  • Leagan amach
  • Athraigh cumraigh
  • Cad nach ea

Tar éis an tsaoil, is Rialaitheoirí Gníomhaíochtaí, ceart? Nó an Radhairc iad? Ní raibh a fhios agam níos mó.

MVC

An Athdhearadh Mór sa Spéir

Bhí orainn an aip a dhearadh ar bhealach nár bhris athrú líne cód áit éigin áit éigin eile. B'éigean don aip a bheith, mar a deir Uncail Bob, “láidir ach ní dolúbtha, solúbtha ach ní leochaileach”.

Robert “Uncail Bob” Martin

Seo nuair a tháinig mo mheantóir agus mo chara Kashif Razzaqui isteach ar an bhfoireann chun cabhrú linn an praiseach a mhaolú. Níor tharla an t-athdhearadh mór riamh, ach rinneamar an ifreann as ár gcód:

  • Chuireamar ciseal “seirbhíse” leis agus bhogamar an cód neamh-Chomhéadain go léir isteach iontu, seirbhís amháin ag an am.
  • Chuireamar AsyncTasks i dteagmháil linn agus bhogamar go ListenableFutures ag úsáid Guava.
  • Rinneamar AsyncHttpClient a dhumpáil le haghaidh OkHttp.
  • Ach níos tábhachtaí fós, thosaíomar ag léamh go leor: Cód Glan, Ailtireacht Ghlan, SOLID, DRY, An Ríomhchláraitheoir Pragmatach, Java Concurrency In Practice, Domain Driven Design, srl.

Go gairid thosaíomar ag féachaint ar na buntáistí a bhaineann lenár n-iarrachtaí. Mhéadaigh an táirgiúlacht, bhíomar ag scríobh rudaí níos gasta, bhí gach duine sásta.

Bhí sé seo go dtí go n-aontaíomar ár n-aipeanna agus go gcaillfí gach ifreann. Níor ghearr ach ciseal seirbhíse breise a bheith agat.

Cód Ealaín na Glan

Tar éis féachaint ar fhíseáin Uncail Bob ar Ailtireacht Ghlan arís agus arís eile agus go leor a léamh ar ailtireacht aipeanna Android, shocraigh mé triail a bhaint as patrún dearaidh MVP agus RxJava.

Cúpla lá isteach sa turgnamh, shocraigh muid aistriú go RxJava agus MVP a chur i bhfeidhm ag úsáid Ailtireacht Ghlan. Rinneamar cinnte go gcuimsíomar gach sraith taobh thiar de chomhéadain agus scaradh imní go maith.

  • Tá tagairt don láithreoir san Amharc, a chuireann Fragment i bhfeidhm de ghnáth. Is é an t-aon rud a dhéanfaidh an dearcadh ná modh a ghlaoch ón Láithreoir gach uair a dhéantar gníomh comhéadain.
  • Tá an Láithreoir freagrach as gníomhú mar an fear meánach idir View agus Model. Aisghabhann sé sonraí ón tSamhail agus cuireann sé ar ais iad go formáidithe chuig an Amharc. Ach murab ionann agus an MVC tipiciúil, socraíonn sé freisin cad a tharlaíonn nuair a bhíonn tú ag idirghníomhú leis an Amharc.
  • Níl sa tSamhail ach an geata chuig an gciseal fearainn nó an loighic ghnó.
  • Pléann an t-Idirghníomhaitheoir le I / O agus is é an soláthróir sonraí atá le taispeáint san Amharc.

Anois tá sé i bhfad níos éasca ciseal amháin a mhúchadh le cur i bhfeidhm go hiomlán nua. Tá sé i bhfad níos éasca an Chomhéadain a athdhearadh, cuid mhór d'fhorbairt aipeanna Android. Is féidir le rudaí bogadh go tapa sa deireadh gan briseadh.

Riail na Gasóga

Ní leor an cód a scríobh go maith, caithfear an cód a choinneáil glan le himeacht ama. Is é fírinne an tsaoil go bhfuil claonadh eantrópachta ag bogearraí. Chonaiceamar go léir an cód ag lobhadh agus ag díghrádú le himeacht ama agus mar sin fuaireamar riail na gasóga simplí ar iasacht: “Fág an campa níos glaine ná mar a fuair tú é."

Dá ndéanfaimis uile ár gcód a sheiceáil beagán níos glaine ná nuair a rinneamar seiceáil air, ní fhéadfadh an cód lobhadh. Ní gá go mbeadh rud éigin mór sa ghlanadh. Athraigh ainm athraitheach amháin chun feabhais, déan feidhm amháin atá beagáinín ró-mhór a bhriseadh suas, deireadh a chur le dúbailt bheag amháin, déan comhdhéanamh amháin a ghlanadh más ráiteas é.

Conclúid

B’fhéidir nach mbeadh ár mbealach chun aip inscálaithe a thógáil “ceart” agus b’fhéidir nach n-aontaíonn tú leis an bpost seo. Tar éis an tsaoil, ní aontaíonn gach ealaíontóir comhraic faoin ealaín chomhraic is fearr, nó faoin teicníc is fearr laistigh de cheann amháin;)

Tá go leor cineálacha cur chuige éagsúla ann i leith MVP agus go leor réitigh suimiúla chun é a chur in oiriúint do Android. Is é an t-aon fhíric nach féidir linn a shéanadh ná go bhfuil tábhacht le Cód Glan agus ní féidir leat é a scuabadh faoi ruga.

Faigheann an post seo iasachtaí móra ó Chód Glan Uncail Bob agus ghoid sé an teideal ó chaint Droidcon Kashif ó 2011.

Má bhaineann an Cód Glan leat, déanaimis comhrá :) Twitter: @_arunsasi LinkedIn: https://www.linkedin.com/in/arunsasidharan

Más maith leat an post seo, buail an croí beag le do thoil! ❤