The Grand Old Duke of York

chmood
The Grand Old Duke of York Disebut Juga Sebagai: Semua orang Biaya Up the Hill, Kurangnya Arsitektur Instinct, Pelukis abstrak vs Biaya Pelaksanaan Bukti anekdotal: Para ahli melaporkan bahwa hanya 1 dari 5 pengembang perangkat lunak yang mampu mendefinisikan abstraksi yang baik Mendengar hal ini, perangkat lunak berlatih arsitek balas, "Ini lebih seperti 1 dari 50."

Latar belakang
Β Β Β 
The abstractionist istilah berasal dari komunitas seni rupa, di mana abstractionist adalah seorang seniman ekspresionis, yang menggambarkan atau emosi dan sikap nya melalui seni nonrepresentational. Dalam konotasi kami, sebuah abstractionist adalah seorang arsitek atau pengembang perangkat lunak yang memiliki naluri arsitektur.

Antipattern Masalah
Β Β Β 
Keterampilan pemrograman tidak sama dengan keterampilan dalam mendefinisikan abstraksi. Tampaknya ada dua kelompok yang berbeda yang terlibat dalam pengembangan perangkat lunak: Pelukis abstrak dan rekan-rekan mereka (yang kita sebut man pelaksanaan) Pelukis abstrak nyaman mendiskusikan konsep desain software tanpa menggali ke rincian implementasi.

Β Β Β 
Sebagaimana dinyatakan, mereka memiliki naluri arsitektur, kemampuan untuk mendefinisikan dan menjelaskan abstraksi perangkat lunak yang baik. Implementationists, di sisi lain, sering membutuhkan contoh kode sumber sebelum mereka dapat memahami konsep-konsep abstrak; mereka tidak terlalu mahir mendefinisikan abstraksi baru yang dapat mudah dipahami oleh pengembang lain.

Β Β Β 
Banyak proses berorientasi objek yang egaliter; keputusan desain yang dibuat dalam proses pertemuan disetujui oleh konsensus (lihat Desain oleh Komite antipattern). Menurut para ahli, implementationists melebihi Pelukis abstrak sekitar 4-1 demikian, sayangnya, Pelukis abstrak sering kalah suara.

Β Β Β 
Pelukis abstrak tahu secara naluriah bahwa manajemen kompleksitas adalah kekuatan desain kunci. Abstraksi yang baik sering terganggu karena begitu beberapa pengembang menghargai signifikansi mereka.

Β Β Β 
Konsekuensi utama adalah desain perangkat lunak dengan kompleksitas yang berlebihan, yang membuat sistem sulit untuk mengembangkan, memodifikasi, memperpanjang, dokumen, dan tes. Software kegunaan dan pemeliharaan sistem dipengaruhi oleh kegagalan untuk menggunakan prinsip-prinsip abstraksi yang efektif.

Β Β 
Pendekatan egaliter untuk berorientasi obyek pembangunan telah agak tidak efektif dalam praktek; itu mengingatkan sekelompok orang pengisian atas bukit secara bersamaan.
Setiap orang harus memahami dan setuju pada berbagai keputusan, dan meskipun mungkin ada anggota canggih, kecanggihan keseluruhan kelompok berkurang untuk common denominator terendah dan dihambat oleh proses komunikasi.

Solusi refactored
Β Β Β 
Pendekatan yang lebih efektif melibatkan beberapa peran yang berbeda dalam sebuah organisasi pengembangan perangkat lunak. Arsitek Pelukis abstrak dengan pengalaman yang signifikan di sebagian besar teknologi kunci.

Β Β Β 
Mereka memfasilitasi komunikasi antara pengguna akhir dan pengembang; mereka bertanggung jawab untuk mengelola kompleksitas dan memastikan adaptasi dari sistem. Untuk melakukan hal ini, arsitek perlu mengelola komputasi arsitektur atau sistem-tingkat antarmuka pemrograman.
Pengembang komponen yang programmer sangat terampil. Mereka bekerja dengan sistem bahasa pemrograman seperti C, C ++, dan Java; mereka membuat infrastruktur perangkat lunak dan komponen perangkat lunak dapat digunakan kembali.

Β Β Β 
Pengembang aplikasi yang programmer lain yang mengintegrasikan komponen ini untuk membuat sistem bekerja. Mereka terutama menggunakan bahasa scripting seperti Visual Basic, JavaScript, Python, Tcl, dan Perl. Sifat-tingkat yang lebih tinggi dari bahasa scripting memungkinkan jangkauan yang lebih luas dari keterampilan pemrograman untuk menjadi produktif.

Variasi
Β Β Β 
Spesialisasi peran pengembangan perangkat lunak menunjukkan bahwa ada beberapa disiplin ilmu yang dibutuhkan untuk membangun sistem perangkat lunak yang aman dan efektif. Sertifikasi adalah mekanisme potensial untuk membangun dan memvalidasi kemampuan profesional. Sertifikasi diperlukan untuk banyak profesional, misalnya, cosmetologists, sopir, pengacara, dan akuntan publik bersertifikat. Mengapa tidak untuk arsitek software?


Komentar