Ang pagdidisenyo ng arkitektura ng iOS: Pagganyak

Lumapit sa paksa ng paglikha ng sariling arkitektura sa serye ng mga artikulo na ito.

Ano ang Architecture?

Ang arkitektura ay ang pinakamataas na antas ng isang disenyo ng system.

Ang disenyo ng system ay isang paraan upang mapadali ang paggawa ng code para sa isang aplikasyon.

Ang isang application ay isang daluyan na kinakailangan upang matupad ang isang (negosyo) layunin.

Maaari ko bang laktawan ito?

Kahit na hindi mo inihanda ang disenyo ng system bago gawin ang app, kailangan mo pa ring mag-isip bago isulat ang anumang code, at ito ay tinatawag na aksidenteng disenyo ng system, na humantong sa hindi sinasadyang arkitektura (AA).

Madaling makita ang hindi sinasadyang arkitektura:
T: Bakit ang pangit ng aming code?
A: Makasaysayang mga kadahilanan…

Ano ang makukuha ko?

Ang layunin ng pag-set up ng isang pormal na arkitektura sa halip na tumalon sa mga bagay na coding ay upang maitaguyod ang mga alituntunin, pagpilit, at mga pattern ayon sa kung saan lalago ang code.

Mag-isip ng pag-set up ng arkitektura bilang paglalagay ng isang riles ng tren para sa isang code upang ilipat ito tulad ng isang tren.

Bakit ko mapigilan ang sarili ko?

Ang mga gabay, hadlang, at mga pattern ay makakatulong upang:

  • pagsunod sa prinsipyo ng hindi bababa sa pagkagulat;
  • maunawaan kung paano gumagana ang isang umiiral na sistema;
  • iwasang muling likhain ang gulong;
  • kumakalat ng mga ideya sa pagtatrabaho sa komunidad.

Maaari ko bang gamitin ang isa sa mga mula sa internet?

Dapat mong malaman mula sa mga iyon, ngunit lahat sila ay nagdurusa mula sa maraming mga problema:

  • huwag magbigay ng mga diskarte sa paglago;
  • mahusay na akma para sa isang sukat lamang ng mga apps at koponan;
  • random na antas ng mga sangkap na abstraction at komunikasyon;
  • hindi malinaw na pamamahagi ng mga tungkulin (tinitingnan kita ng "Worker");
  • hindi mapagpatawad at panatiko;)

Mayroon ba akong sapat na kasanayan upang idisenyo ito?

Walang sinuman ang may sapat, ngunit mas marami ka, mas madali itong makita ang ilaw sa dulo ng isang lagusan.
Narito kung ano ang makakatulong sa iyo:

  • basahin ang mga lumang libro at puting papel tungkol sa disenyo at pattern ng system;
  • maiwasan ang mga bagong artikulo na sinusubukan mong ibenta sa iyo ng isang bullet na pilak;
  • alamin kung ano ang gumagana para sa iba sa paggawa;
  • gumamit ng iba pang mga platform bilang isang mapagkukunan ng inspirasyon;
  • subukan ang mga ideya sa bahay, kung magtrabaho, dalhin sila sa trabaho;
  • ipagpaliban ang desisyon kung may pagdududa ka (gumawa ng isang bagay na pipi);
  • talakayin ang mga ideya at pagpapatupad sa iba.

Saan magsisimula?

Dapat nating palaging magsimula sa pamamagitan ng pagsusuri sa mga kinakailangan (tulad ng anumang matandang pagpupunyagi) na nagmumula sa layunin.

Mga kinakailangan sa pagpapaandar.

Sa pinakamasamang kaso maaari kang makakuha ng isang mataas na antas ng pag-andar na pagtutukoy, tulad nito:

  • Application sa listahan ng pamimili;
  • Kakayahang makipagtulungan sa mga listahan;
  • Kakayahang gamitin nang walang koneksyon sa internet.

Sa yugtong ito, maaaring isipin ng negosyo na ang mga kinakailangan ay sapat na, at responsibilidad mong maghanap ng mga sagot sa mga pangkat ng mga katanungan na lumabas, halimbawa:

  • Paano magiging hitsura ang UI?
  • Aling mga aparato ang dapat suportahan ng app?
  • Kailangan ba kong gumawa ng server-side din?

Kapag hindi mo naisip ang iba pang mga katanungan na tanungin, oras na upang magpatuloy sa susunod na yugto.

Mga kinakailangan sa organisasyon.

Kung hindi ito isang proyekto sa greenfield maaaring maraming mga paghihigpit sa iyong pagpili ng arkitektura, kahit na subukang sagutin ang mga katanungang ito:

  • Sino ang aking koponan?
  • Ano ang inaasahan nila mula sa ating arkitektura?
  • Nagtatag ba tayo ng mga tool at wika?
  • Maaari ba nating magamit muli ang isang umiiral na arkitektura?

Maaari ba akong magsimula sa paggawa ng arkitektura?

Oo kaya mo! Sa pamamagitan ng pagsasama-sama ng mga kinakailangan sa pag-andar at pang-organisasyon, maaari mong simulan ang pagbalangkas ng iyong mga ideya at pagkatapos ay magbuo ng isang pormal na arkitektura! Ngunit ito ay isang ganap na naiibang kuwento upang sabihin ...

Maaari ba akong umuwi ngayon?

Bago mo isama ang iyong mga ideya, iminumungkahi ko sa iyo na subukan ang stress sa kanila laban sa isang komprehensibong checklist na naipon ko para sa iyong kaginhawaan.

Paano gamitin ang checklist?

Dalhin ang arkitektura ng iyong kandidato at magpanggap na tagataguyod nito sa pamamagitan ng pagsagot sa mga tanong tulad ng sa pagsubok (pag-isip ng isang hurado ng iOS komunidad na tumutulong).

Salamat sa pagbabasa!

Mag-message sa akin sa Twitter para sa feedback.

Saan pupunta dito?

Pangkalahatang-ideya ng umiiral na iOS Arkitektura.
Suriin ang pattern ng MVC.