Cara meningkatkan keterampilan dalam arsitektur perangkat lunak [ditutup]

9

Apa cara terbaik untuk meningkatkan keterampilan Anda dalam arsitektur perangkat lunak? Kami diajari pola desain di universitas, dan saya melihat banyak buku dengan contoh sederhana dan langsung, tetapi selain itu, bagaimana Anda bisa belajar arsitektur yang baik? Dengan kata lain, bagaimana seseorang berkembang menjadi arsitek yang hebat? Apa saja prasyaratnya?

Adam Lear
sumber
4
Coba sekolah pukulan keras ... dengan serius.
Ayub

Jawaban:

20
  1. Jaringan . Kenali beberapa arsitek yang baik. Bicaralah pada mereka. Belajarlah dari mereka, dan bangkit ide dari mereka.

  2. Baca dengan lahap . Ada ratusan buku tentang arsitektur perangkat lunak (beberapa bahkan bagus). Baca topik, dan baca topik terkait (arsitektur bangunan, struktur manajemen, teknik elektro, arsitektur operasional, dll.).

  3. Belajar arsitektur . Ada ribuan platform dan produk di luar sana. Lihat mereka. Membedah bagian mereka. Beberapa pembelajaran terbaik saya sejak awal adalah dari melihat arsitektur yang hebat (lihat bahasa-bahasa kecil, file yang dikemas, dan struktur sederhana dalam sumber Doom asli, misalnya).

  4. Pikirkan, buat sketsa, coba . Latih keterampilan desain Anda pada masalah imajiner. Masalah menyenangkan. Masalah yang menarik.

  5. Lakukan . Bekerja pada sistem nyata. Kirimkan mereka. Rasakan rasa sakit yang disebabkan oleh keputusan Anda yang buruk, rasa sakit yang Anda sebabkan pada pengembang Anda, dan belajar darinya. Arsitektur yang baik adalah dalam menyeimbangkan apa yang Anda dapatkan, bagaimana Anda sampai di sana, dan berapa biayanya.

Bruce Alderson
sumber
Apa sumber daya terbaik menurut Anda?
Geek
Saya merekomendasikan orang belajar menilai sumber daya sendiri, karena menemukan materi yang baik (dan mengetahui apa itu) adalah masalah yang sulit. Saya dapat mengatakan bahwa Anda harus melihat buku teks kanonik pada suatu waktu (yang mendefinisikan domain), dan kemudian apa yang orang lain anggap sebagai arsitektur yang hebat. Anda mungkin tidak setuju dengan kanon atau arsitektur hebat yang diketahui, tetapi ini adalah tempat untuk memulai pemikiran Anda.
Bruce Alderson
6

Secara pribadi, saya akan mengatakan bahwa saya telah belajar lebih banyak dari coba-coba belaka daripada yang saya miliki dari membaca. Anda mungkin terkejut melihat betapa banyak ide gila yang Anda miliki ternyata bagus dan jumlah ide cemerlang yang ternyata mengerikan. Tetapi Anda tidak pernah tahu itu sampai Anda mencobanya. Ini sama benarnya ketika Anda pertama kali mulai menulis kode seperti ketika Anda setengah jalan melaluinya. Jangan berpegang teguh pada arsitektur yang tidak berfungsi hanya karena itulah yang sudah Anda putuskan.

Terakhir, habiskan waktu untuk memikirkan solusi Anda. Lakukan yang terbaik untuk tidak mendengarkan rekan kerja dan manajer yang menekan Anda untuk tidak memikirkan semuanya dan mulai mengkode.

Jason Baker
sumber
+1 Berpikir adalah yang terpenting, coba buat sketsa pemikiran Anda dengan UML. Mempertimbangkan masalah sekonkret mungkin. Saya pikir desain harus memakan waktu dua kali lebih banyak daripada coding
didxga
2

Seorang pembuat kode berpikir tentang menyelesaikan masalah; seorang arsitek berpikir tentang mempertahankan solusi, membatasi penerapan pada solusi, area implementasi untuk meningkatkan sesuai waktu, area implementasi yang dapat diabaikan atau dikurangi ruang lingkupnya jika jadwal tergelincir, ketergantungan (baik internal maupun eksternal ) yang dapat berdampak pada kinerja implementasi dan hal-hal yang dapat dilakukan untuk membatasi paparan risiko, pelatihan yang diperlukan untuk pengguna baru sistem, dokumentasi yang dikembangkan dan perubahan yang diperlukan karena implementasi menyimpang dari solusi yang dibayangkan, dan bagaimana pemegang saham merasa tentang kemajuan yang sedang dibuat dan penerapan penerapannya terhadap masalah aktual yang sedang dipecahkan.

Menjadi seorang arsitek mengharuskan Anda untuk dapat berkomunikasi secara efektif, mengatur pikiran dan rencana Anda ke dalam jadwal yang bisa diterapkan, menguraikan masalah menjadi bagian-bagian yang dapat diterapkan, membangun prototipe potongan-potongan yang menantang secara teknis, dan mengoordinasikan penerapan potongan-potongan sehingga semuanya selesai tepat waktu.

Pelajari cara membuat diagram solusi Anda menggunakan Arsitek Perusahaan , Visio , atau pensil dan kertas. Seperti disebutkan dalam jawaban lain, dapatkan mentor arsitek dan bagikan diagram solusi Anda dengan mereka untuk ditinjau. Dengarkan umpan balik dan perbaiki diagram Anda.

Belajarlah untuk membangun jadwal yang realistis. Mulailah melacak berapa lama Anda menerapkan hal-hal, dan catat seberapa dekat Anda dengan perkiraan dengan tepat berapa lama.

Hancurkan tugas Anda berikutnya menjadi potongan-potongan kecil sebelum Anda mulai coding dan melacak langkah-langkah yang Anda tinggalkan. Belajarlah untuk mengantisipasi area masalah dan membuat prototipe sebelum mulai mengkode solusi akhir.

Artikel yang ditautkan oleh Pierre 303 dalam jawaban atas pertanyaan serupa juga perlu ditambahkan di sini:

Siapa yang butuh arsitek dari Martin Fowler

Larry Smithmier
sumber