Merancang arsitektur iOS: Motivasi

Mari kita mendekati topik membuat arsitektur sendiri di seri artikel ini.

Apa itu Arsitektur?

Arsitektur adalah tingkat tertinggi dari desain sistem.

Desain sistem adalah cara untuk memfasilitasi produksi kode untuk suatu aplikasi.

Aplikasi adalah media yang dibutuhkan untuk memenuhi tujuan (bisnis).

Bisakah saya lewati saja?

Bahkan ketika Anda tidak menyiapkan desain sistem sebelum membuat aplikasi, Anda masih harus berpikir sebelum menulis kode apa pun, dan ini disebut desain sistem tak disengaja, yang mengarah pada arsitektur tak disengaja (AA).

Mudah untuk mendeteksi arsitektur yang tidak disengaja:
T: Mengapa kode kami sangat jelek?
A: Alasan historis ...

Apa yang akan saya dapatkan?

Tujuan pengaturan arsitektur formal daripada melompat ke hal-hal pengkodean adalah untuk membangun pedoman, batasan, dan pola yang sesuai dengan kode akan tumbuh.

Pikirkan membangun arsitektur sebagai meletakkan kereta api untuk kode untuk bergerak seperti kereta.

Mengapa saya menahan diri?

Panduan, batasan, dan pola membantu untuk:

  • kode yang mengikuti prinsip paling tidak heran;
  • memahami cara kerja sistem yang ada;
  • hindari menciptakan kembali roda;
  • menyebarkan ide-ide kerja di komunitas.

Bisakah saya menggunakan salah satunya dari internet?

Anda harus belajar dari itu, tetapi mereka semua menderita banyak masalah:

  • jangan memberikan strategi pertumbuhan;
  • cocok hanya untuk satu ukuran aplikasi dan tim;
  • tingkat acak komponen abstraksi dan komunikasi;
  • distribusi peran yang tidak jelas (Saya melihat Anda "Pekerja");
  • tak kenal ampun dan fanatik;)

Apakah saya memiliki keterampilan yang cukup untuk mendesainnya?

Tidak ada yang cukup, tetapi semakin banyak yang Anda miliki, semakin mudah untuk melihat cahaya di ujung terowongan.
Inilah yang akan membantu Anda:

  • membaca buku-buku lama dan buku putih tentang desain dan pola sistem;
  • hindari artikel baru yang mencoba menjual peluru perak kepada Anda;
  • pelajari apa yang bekerja untuk orang lain dalam produksi;
  • gunakan platform lain sebagai sumber inspirasi;
  • coba ide di rumah, jika berhasil, bawa ide itu bekerja;
  • tunda keputusan jika Anda ragu (buatlah hal yang bodoh);
  • mendiskusikan ide dan implementasi dengan orang lain.

Mulai dari mana?

Kita harus selalu memulai dengan menganalisis persyaratan (seperti dalam setiap upaya matang) yang berasal dari tujuan.

Persyaratan fungsional.

Dalam kasus terburuk Anda bisa mendapatkan spesifikasi fungsional tingkat tinggi, seperti ini:

  • Aplikasi daftar belanja;
  • Kemampuan untuk berkolaborasi dalam daftar;
  • Kemampuan untuk digunakan tanpa koneksi internet.

Pada tahap ini, bisnis mungkin berpikir bahwa persyaratan sudah mencukupi, dan Anda bertanggung jawab untuk menemukan jawaban atas sekumpulan pertanyaan yang muncul, misalnya:

  • Seperti apa tampilan UI?
  • Perangkat apa yang harus didukung aplikasi?
  • Apakah saya harus membuat sisi server juga?

Ketika Anda tidak dapat memikirkan pertanyaan lain untuk ditanyakan, saatnya untuk beralih ke tahap berikutnya.

Persyaratan organisasi.

Jika ini bukan proyek greenfield, mungkin ada banyak batasan pada pilihan arsitektur Anda, setidaknya cobalah untuk menjawab pertanyaan-pertanyaan ini:

  • Siapa tim saya?
  • Apa yang mereka harapkan dari arsitektur kita?
  • Apakah kita sudah membuat alat dan bahasa?
  • Bisakah kita menggunakan kembali arsitektur yang ada?

Bisakah saya mulai membuat arsitektur?

Ya kamu bisa! Dengan menyatukan persyaratan fungsional dan organisasi, Anda dapat mulai menjabarkan ide-ide Anda dan kemudian menyusun Arsitektur formal! Tapi itu cerita yang sama sekali berbeda untuk diceritakan ...

Bisakah saya pulang sekarang?

Sebelum Anda membawa ide-ide Anda ke alam liar, saya sarankan Anda melakukan stress test terhadap daftar periksa lengkap yang telah saya susun untuk kenyamanan Anda.

Bagaimana cara menggunakan daftar periksa?

Ambil kandidat arsitektur Anda dan berpura-puralah menjadi penasihatnya dengan menjawab pertanyaan seperti di uji coba (membayangkan juri dari komunitas iOS membantu).

Terima kasih telah membaca!

Kirimi saya pesan di Twitter untuk mendapat tanggapan.

Ke mana harus pergi dari sini?

Ikhtisar Arsitektur iOS yang ada.
Ulasan pola MVC.