IOS నిర్మాణ రూపకల్పన: ప్రేరణ

ఈ వ్యాసాల శ్రేణిలో సొంత నిర్మాణాన్ని సృష్టించే అంశాన్ని చేరుకుందాం.

ఆర్కిటెక్చర్ అంటే ఏమిటి?

ఆర్కిటెక్చర్ అనేది సిస్టమ్ డిజైన్ యొక్క అత్యున్నత స్థాయి.

సిస్టమ్ డిజైన్ అనేది ఒక అప్లికేషన్ కోసం కోడ్ ఉత్పత్తిని సులభతరం చేయడానికి ఒక మార్గం.

అనువర్తనం (వ్యాపార) లక్ష్యాన్ని నెరవేర్చడానికి అవసరమైన మాధ్యమం.

నేను దాటవేయవచ్చా?

అనువర్తనాన్ని రూపొందించడానికి ముందు మీరు సిస్టమ్ డిజైన్‌ను సిద్ధం చేయకపోయినా, ఏదైనా కోడ్ రాయడానికి ముందు మీరు ఇంకా ఆలోచించాలి మరియు దీనిని యాక్సిడెంటల్ సిస్టమ్ డిజైన్ అని పిలుస్తారు, ఇది ప్రమాదవశాత్తు ఆర్కిటెక్చర్ (AA) కు దారితీస్తుంది.

ప్రమాదవశాత్తు నిర్మాణాన్ని గుర్తించడం సులభం:
ప్ర: మా కోడ్ ఎందుకు అగ్లీగా ఉంది?
జ: చారిత్రక కారణాలు…

నేను ఏమి పొందగలను?

కోడింగ్ స్టఫ్‌లోకి దూసుకెళ్లడం కంటే ఫార్మల్ ఆర్కిటెక్చర్‌ను ఏర్పాటు చేయడం యొక్క ఉద్దేశ్యం ఏమిటంటే, మార్గదర్శకాలు, అడ్డంకులు మరియు నమూనాలను ఏర్పాటు చేయడం, దీని ప్రకారం కోడ్ పెరుగుతుంది.

ఒక రైలు లాగా దాని వెంట వెళ్ళడానికి ఒక కోడ్ కోసం రైల్‌రోడ్డు వేయడం వంటి నిర్మాణాన్ని ఏర్పాటు చేయడం గురించి ఆలోచించండి.

నన్ను నేను ఎందుకు నిగ్రహించుకుంటాను?

మార్గదర్శకాలు, అడ్డంకులు మరియు నమూనాలు దీనికి సహాయపడతాయి:

  • కనీసం ఆశ్చర్యం యొక్క సూత్రాన్ని అనుసరించే కోడ్;
  • ఇప్పటికే ఉన్న సిస్టమ్ ఎలా పనిచేస్తుందో అర్థం చేసుకోండి;
  • చక్రం తిరిగి ఆవిష్కరించకుండా ఉండండి;
  • సమాజంలో పని ఆలోచనలను వ్యాప్తి చేయండి.

నేను ఇంటర్నెట్ నుండి వచ్చిన వాటిలో ఒకదాన్ని ఉపయోగించవచ్చా?

మీరు వారి నుండి నేర్చుకోవాలి, కానీ వారందరూ అనేక సమస్యలతో బాధపడుతున్నారు:

  • వృద్ధి వ్యూహాలను అందించవద్దు;
  • అనువర్తనాలు మరియు బృందం యొక్క ఒకే పరిమాణానికి మాత్రమే సరిపోతుంది;
  • భాగాల సంగ్రహణ మరియు కమ్యూనికేషన్ యొక్క యాదృచ్ఛిక స్థాయి;
  • పాత్రల అస్పష్టమైన పంపిణీ (నేను మిమ్మల్ని “వర్కర్” వైపు చూస్తున్నాను);
  • క్షమించరాని మరియు మతోన్మాదం;)

దీన్ని రూపొందించడానికి నాకు తగినంత నైపుణ్యాలు ఉన్నాయా?

ఎవరికీ సరిపోదు, కానీ మీకు ఎక్కువ, సొరంగం చివరిలో కాంతిని చూడటం సులభం.
మీకు సహాయపడేది ఇక్కడ ఉంది:

  • సిస్టమ్ డిజైన్ మరియు నమూనాల గురించి పాత పుస్తకాలు మరియు శ్వేతపత్రాలను చదవండి;
  • మీకు వెండి బుల్లెట్ విక్రయించడానికి ప్రయత్నిస్తున్న కొత్త కథనాలను నివారించండి;
  • ఉత్పత్తిలో ఇతరులకు ఏమి పని చేస్తుందో తెలుసుకోండి;
  • ప్రేరణ యొక్క మూలంగా ఇతర ప్లాట్‌ఫారమ్‌లను ఉపయోగించండి;
  • ఇంట్లో ఆలోచనలను ప్రయత్నించండి, అవి పని చేస్తే, వాటిని పనికి తీసుకురండి;
  • మీకు అనుమానం ఉంటే నిర్ణయాన్ని వాయిదా వేయండి (ఇంతలో మూగ పని చేయండి);
  • ఆలోచనలు మరియు అమలులను ఇతరులతో చర్చించండి.

ఎక్కడ ప్రారంభించాలి?

లక్ష్యం నుండి వచ్చే అవసరాలను (ఏదైనా పరిణతి చెందిన ప్రయత్నంలో వలె) విశ్లేషించడం ద్వారా మనం ఎల్లప్పుడూ ప్రారంభించాలి.

క్రియాత్మక అవసరాలు.

చెత్త సందర్భంలో మీరు ఈ విధంగా ఉన్నత-స్థాయి ఫంక్షనల్ స్పెసిఫికేషన్ పొందవచ్చు:

  • షాపింగ్ జాబితా అప్లికేషన్;
  • జాబితాలలో సహకరించే సామర్థ్యం;
  • ఇంటర్నెట్ కనెక్షన్ లేకుండా ఉపయోగించగల సామర్థ్యం.

ఈ దశలో, అవసరాలు సరిపోతాయని వ్యాపారం అనుకోవచ్చు మరియు తలెత్తే ప్రశ్నల సమూహానికి సమాధానాలు కనుగొనడం మీ బాధ్యత, ఉదాహరణకు:

  • UI ఎలా ఉంటుంది?
  • అనువర్తనం ఏ పరికరాలకు మద్దతు ఇవ్వాలి?
  • నేను సర్వర్ వైపు కూడా చేయాలా?

మీరు అడగవలసిన ఇతర ప్రశ్నల గురించి ఆలోచించలేనప్పుడు, తదుపరి దశకు వెళ్ళే సమయం.

సంస్థాగత అవసరాలు.

ఇది గ్రీన్ ఫీల్డ్ ప్రాజెక్ట్ కాకపోతే, మీ ఆర్కిటెక్చర్ ఎంపికపై చాలా పరిమితులు ఉండవచ్చు, కనీసం ఈ ప్రశ్నలకు సమాధానం ఇవ్వడానికి ప్రయత్నించండి:

  • నా జట్టు ఎవరు?
  • మా వాస్తుశిల్పం నుండి వారు ఏమి ఆశించారు?
  • మేము సాధనాలు మరియు భాషలను స్థాపించారా?
  • మేము ఇప్పటికే ఉన్న నిర్మాణాన్ని తిరిగి ఉపయోగించవచ్చా?

చివరకు నేను ఆర్కిటెక్చర్ తయారీని ప్రారంభించవచ్చా?

మీరు చెయ్యవచ్చు అవును! క్రియాత్మక మరియు సంస్థాగత అవసరాలను కలిపి ఉంచడం ద్వారా, మీరు మీ ఆలోచనల రూపురేఖలను ప్రారంభించవచ్చు మరియు చివరికి అధికారిక నిర్మాణాన్ని కంపోజ్ చేయవచ్చు! కానీ చెప్పడానికి ఇది పూర్తిగా భిన్నమైన కథ…

నేను ఇప్పుడు ఇంటికి వెళ్ళవచ్చా?

మీరు మీ ఆలోచనలను అడవిలోకి తీసుకెళ్లేముందు, మీ సౌలభ్యం కోసం నేను సంకలనం చేసిన సమగ్ర చెక్‌లిస్ట్‌కు వ్యతిరేకంగా వాటిని ఒత్తిడి చేయమని నేను సూచిస్తున్నాను.

చెక్‌లిస్ట్‌ను ఎలా ఉపయోగించాలి?

ట్రయల్ వంటి ప్రశ్నలకు సమాధానం ఇవ్వడం ద్వారా మీ అభ్యర్థి నిర్మాణాన్ని తీసుకోండి మరియు దాని న్యాయవాదిగా నటించండి (iOS సంఘం యొక్క జ్యూరీని ining హించుకోవడం సహాయపడుతుంది).

చదివినందుకు ధన్యవాదములు!

అభిప్రాయం కోసం ట్విట్టర్‌లో నాకు సందేశం పంపండి.

ఇక్కడి నుండి ఎక్కడికి వెళ్ళాలి?

ఇప్పటికే ఉన్న iOS ఆర్కిటెక్చర్ల అవలోకనం.
MVC నమూనా యొక్క సమీక్ష.