Dokumen spesifikasi teknis "Architecture.md (2021)"
(matklad.github.io)Rekomendasi penulisan ARCHITECTURE.md
- Sangat disarankan agar maintainer proyek open source menambahkan dokumen
ARCHITECTUREdi sampingREADMEdanCONTRIBUTING. - Dokumen ini menjelaskan arsitektur tingkat tinggi proyek, dan karena harus dibaca oleh para kontributor yang berulang kali berkontribusi, sebaiknya dibuat singkat.
- Dokumen
ARCHITECTUREsebaiknya hanya memuat hal-hal yang tidak sering berubah, dan alih-alih mencoba menyelaraskannya dengan kode, lebih baik meninjaunya beberapa kali dalam setahun.
Tujuan dan pentingnya dokumen
- Pengetahuan tentang arsitektur fisik proyek merupakan perbedaan terbesar antara kontributor umum dan pengembang inti.
- Jika belum akrab dengan proyek, menulis patch membutuhkan waktu 2 kali lebih lama, dan mencari tahu lokasi yang perlu diubah dalam kode membutuhkan waktu 10 kali lebih lama.
- File
ARCHITECTUREadalah cara yang efektif untuk menutup kesenjangan ini, sekaligus memberi kesempatan untuk merefleksikan struktur proyek.
Susunan dokumen
- Dokumen harus dimulai dengan ikhtisar dari sudut pandang baru terhadap masalah, lalu memberikan peta kode terperinci yang menjelaskan hubungan antar modul.
- Sebutkan file, modul, dan tipe yang penting, tetapi alih-alih menautkannya secara langsung, dorong pembaca untuk mencarinya berdasarkan nama agar tidak memerlukan pemeliharaan.
- Invarians arsitektural perlu ditunjukkan secara eksplisit, dan batas antar lapisan harus dijelaskan.
Invarians arsitektural dan batas
- Invarians penting sering kali dinyatakan sebagai ketiadaan sesuatu, sehingga sulit dipahami hanya dengan membaca kode.
- Batas antar lapisan atau sistem secara implisit memuat informasi tentang implementasi sistem dan membatasi semua implementasi yang mungkin.
Concern lintas-ujung
- Setelah menyelesaikan peta kode, perlu ditambahkan bagian terpisah untuk concern lintas-ujung.
- Contoh yang baik untuk dokumen
ARCHITECTUREadalah architecture.md milik rust-analyzer.
GN⁺ berpendapat:
- Dokumen
ARCHITECTUREberperan penting dalam membantu pemahaman proyek dan membuat kontributor baru lebih cepat terbiasa dengan codebase. - Dokumen ini memperjelas struktur proyek serta menyoroti prinsip dan batas arsitektur yang penting, sehingga membantu pengembang memahami sistem dengan lebih baik.
- Adopsi dokumen
ARCHITECTUREdi komunitas open source dapat berkontribusi pada pertumbuhan dan pemeliharaan proyek yang berkelanjutan, dan ini merupakan pendekatan yang sangat bermanfaat serta menarik bagi para pengembang.
1 komentar
Komentar Hacker News