Σχεδίαση αρχιτεκτονικής iOS: Κίνητρο

Ας προσεγγίσουμε το θέμα της δημιουργίας της δικής μας αρχιτεκτονικής σε αυτή τη σειρά άρθρων.

Τι είναι η Αρχιτεκτονική;

Η αρχιτεκτονική είναι το υψηλότερο επίπεδο σχεδιασμού συστήματος.

Ο σχεδιασμός του συστήματος είναι ένας τρόπος να διευκολυνθεί η παραγωγή κώδικα για μια εφαρμογή.

Μια εφαρμογή είναι ένα μέσο που χρειάζεται για να εκπληρώσει έναν (επιχειρηματικό) στόχο.

Μπορώ να το παρακάμψω;

Ακόμη και όταν δεν προετοιμάζετε το σχεδιασμό του συστήματος πριν κάνετε την εφαρμογή, θα πρέπει ακόμα να σκεφτείτε πριν γράψετε οποιοδήποτε κώδικα και αυτό ονομάζεται τυχαίο σχεδιασμό συστήματος, που οδηγεί σε τυχαία αρχιτεκτονική (AA).

Είναι εύκολο να εντοπιστεί τυχαία αρχιτεκτονική:
Ε: Γιατί ο κώδικας μας είναι τόσο άσχημος;
Α: Ιστορικοί λόγοι ...

Τι θα κερδίσω;

Ο σκοπός της δημιουργίας μιας επίσημης αρχιτεκτονικής και όχι άλμα στην κωδικοποίηση είναι η καθιέρωση κατευθυντήριων γραμμών, περιορισμών και μοτίβων σύμφωνα με τα οποία ο κώδικας πρόκειται να αναπτυχθεί.

Σκεφτείτε να ρυθμίσετε την αρχιτεκτονική ως την τοποθέτηση ενός σιδηρόδρομου για έναν κώδικα για να μετακινηθείτε μαζί της σαν ένα τρένο.

Γιατί θα περιοριστώ;

Οι οδηγίες, οι περιορισμοί και τα πρότυπα βοηθούν:

  • κώδικα ακολουθώντας την αρχή της ελάχιστης έκπληξης.
  • καταλάβετε πώς λειτουργεί ένα υπάρχον σύστημα.
  • αποφύγετε την επανεμφάνιση του τροχού.
  • διάδοση των ιδεών εργασίας στην κοινότητα.

Μπορώ να χρησιμοποιήσω ένα από αυτά από το Διαδίκτυο;

Θα πρέπει να μάθετε από αυτούς, αλλά ότι όλοι υποφέρουν από πολλά προβλήματα:

  • δεν παρέχουν στρατηγικές ανάπτυξης.
  • καλή εφαρμογή για ένα μόνο μέγεθος εφαρμογών και ομάδας.
  • τυχαίο επίπεδο αφαίρεσης και επικοινωνίας των συστατικών.
  • ασαφής διανομή ρόλων (σε κοιτάζω "Worker")?
  • απαράδεκτο και φανατικό ·)

Έχω αρκετές δεξιότητες για να το σχεδιάσω;

Κανείς δεν έχει αρκετό, αλλά όσο περισσότερο έχετε, τόσο πιο εύκολο είναι να δείτε το φως στο τέλος μιας σήραγγας.
Εδώ είναι αυτό που θα σας βοηθήσει:

  • να διαβάσετε παλιά βιβλία και λευκές εφημερίδες σχετικά με το σχεδιασμό και τα σχέδια του συστήματος.
  • αποφύγετε νέα άρθρα που προσπαθούν να σας πουλήσουν μια ασημένια σφαίρα.
  • μάθετε τι λειτουργεί για τους άλλους στην παραγωγή?
  • να χρησιμοποιούν άλλες πλατφόρμες ως πηγή έμπνευσης.
  • δοκιμάστε τις ιδέες στο σπίτι, εάν εργάζονται, τους φέρνετε στην εργασία.
  • να αναβάλλετε την απόφαση εάν είστε σε αμφιβολία (κάντε ένα χαζό πράγμα εν τω μεταξύ)?
  • συζητήστε ιδέες και υλοποιήσεις με άλλους.

Από πού να αρχίσω?

Πρέπει πάντα να ξεκινάμε με την ανάλυση των απαιτήσεων (όπως σε κάθε ώριμη προσπάθεια) που προέρχονται από το στόχο.

Λειτουργικές απαιτήσεις.

Στη χειρότερη περίπτωση μπορείτε να πάρετε μια λειτουργική προδιαγραφή υψηλού επιπέδου, όπως αυτή:

  • Εφαρμογή λίστας αγορών;
  • Δυνατότητα συνεργασίας σε λίστες.
  • Δυνατότητα χρήσης χωρίς σύνδεση στο διαδίκτυο.

Σε αυτό το στάδιο, η επιχείρηση μπορεί να πιστεύει ότι οι απαιτήσεις είναι επαρκείς και είναι δική σας ευθύνη να βρείτε απαντήσεις στο σμήνος των ερωτήσεων που προκύπτουν, για παράδειγμα:

  • Πώς θα μοιάζει το UI;
  • Ποιες συσκευές πρέπει να υποστηρίζει η εφαρμογή;
  • Πρέπει να κάνω και την πλευρά του διακομιστή;

Όταν δεν μπορείτε να σκεφτείτε άλλες ερωτήσεις που πρέπει να ρωτήσετε, ο χρόνος για να προχωρήσετε στο επόμενο στάδιο.

Οργανωτικές απαιτήσεις.

Εάν δεν πρόκειται για ένα έργο σε πράσινο περιβάλλον, μπορεί να υπάρχουν αρκετοί περιορισμοί στην επιλογή αρχιτεκτονικής σας, τουλάχιστον προσπαθήστε να απαντήσετε σε αυτά τα ερωτήματα:

  • Ποια είναι η ομάδα μου;
  • Τι περιμένουν από την αρχιτεκτονική μας;
  • Έχουμε καθιερώσει εργαλεία και γλώσσες;
  • Μπορούμε να επαναχρησιμοποιούμε μια υπάρχουσα αρχιτεκτονική;

Μπορώ τελικά να αρχίσω να κάνω αρχιτεκτονική

Ναι μπορείς! Τοποθετώντας τις λειτουργικές και οργανωτικές απαιτήσεις μαζί, μπορείτε να ξεκινήσετε να περιγράφετε τις ιδέες σας και στη συνέχεια να συνθέσετε μια επίσημη Αρχιτεκτονική! Αλλά μια εντελώς διαφορετική ιστορία για να πει ...

Μπορώ να πάω σπίτι τώρα;

Πριν πάρετε τις ιδέες σας σε άγρια ​​φύση, σας προτείνω να τους δοκιμάσετε με προσοχή ενάντια σε μια ολοκληρωμένη λίστα ελέγχου που συνέταξα για την ευκολία σας.

Πώς να χρησιμοποιήσετε τη λίστα ελέγχου;

Πάρτε την υποψήφια αρχιτεκτονική σας και προσποιείτε την υπεράσπισή της απαντώντας σε ερωτήσεις όπως σε δίκη (φαντάζοντας μια κριτική επιτροπή της κοινότητας iOS βοηθά).

Ευχαριστούμε που το διαβάσατε!

Στείλτε μου μήνυμα στο Twitter για σχόλια.

Πού να πάτε από εδώ;

Επισκόπηση των υφιστάμενων αρχιτεκτονικών iOS.
Ανασκόπηση του προτύπου MVC.