blog Detail

Mari Kenali Architecture Styles dan Patterns sebagai Blueprint untuk Mendesain Sebuah Sistem

Architecture styles dan patterns mempunyai peranan yang sangat penting dalam pengembangan perangkat lunak, merupakan sebuah blueprint untuk mendesain sistem yang menjabarkan bagaimana komponen berinteraksi satu sama lain untuk membentuk sebuah fungsionalitas tertentu. Dengan banyaknya architecture styles dan patterns yang tersedia saat ini, mungkin akan membutuhkan waktu untuk menentukan pendekatan mana yang paling sesuai dengan proyek atau sistem tertentu. Lantas apa saja variasi konsep architecture styles dan patterns tersebut? Pendekatan architecture manakah yang sesuai dengan proyek yang akan anda kembangkan?

Sebelum membahas mengenai berbagai variasi pendekatan architecture, sangat penting untuk diketahui bahwa architecture styles dan architecture patterns merupakan dua hal yang berbeda. Karena kedua istilah ini sering digunakan secara bergantian namun memiliki arti yang berbeda.

 

Architecture Styles

Merupakan strategi tingkat tinggi yang menyediakan kerangka kerja abstrak untuk sebuah family of systems. Architecture styles meningkatkan partisi dan mendorong design reuse dengan sering memecahkan permasalahan yang kerap muncul. 

Architecture styles dapat dianggap sebagai tema atau estetika yang memandu desain bangunan atau rumah. Contoh: Layered, Event-Driven, dan Microservices.

 

Architecture Patterns

Architecture patterns memiliki sifat yang lebih konkret dan spesifik untuk menangani masalah atau modul tertentu di dalam sistem. Memberikan solusi terstruktur untuk masalah arsitektur, menjabarkan secara rinci bagaimana komponen dan interaksi harus disusun untuk fungsionalitas tertentu. Architecture patterns ini mirip dengan software design patterns namun bekerja pada tingkat abstraksi yang lebih tinggi. Contohnya adalah Model-View-Controller (MVC), Publish-Subscribe, and Serverless.

Sementara architecture styles memberikan kerangka kerja yang luas dan dapat dilihat sebagai filosofi umum dari desain sistem, architecture patterns adalah solusi konkret untuk masalah desain spesifik dalam kerangka kerja ini. 

 

Dengan kata lain, architecture styles menggambarkan struktur menyeluruh dari sistem, sementara architecture patterns membahas masalah desain spesifik yang mungkin timbul dalam struktur ini.

Setelah Anda mengetahui perbedaan architecture styles dan architecture patterns, berikut ini merupakan pembahasan pola, prinsip, kekuatan, kelemahan, dan implementasi dari 10 architecture styles utama.

 

1. Layered Architecture Style

Arsitektur berlapis adalah salah satu pola arsitektur yang paling umum. Pola ini sering digunakan untuk aplikasi web tradisional dan aplikasi perusahaan.
Prinsip: Gaya arsitektur ini memisahkan berbagai hal ke dalam beberapa lapisan yang berbeda. Contoh umumnya adalah arsitektur 3 tingkat: presentasi, logika bisnis, dan lapisan penyimpanan data.
Kekuatan: Mudah dipahami, diuji, dan dipelihara; setiap lapisan dapat dikembangkan dan diperbarui secara independen.
Kelemahan: Hal ini dapat menyebabkan overhead kinerja; perubahan yang mempengaruhi beberapa lapisan dapat menjadi tantangan untuk diterapkan.
Penerapan: Aplikasi web, aplikasi perusahaan.
Antipola: Dependensi melingkar, melompati lapisan.

 

Layered (n-tier) pattern

Arsitektur n-tier membagi sistem menjadi n-lapisan, masing-masing dengan tanggung jawab tertentu. Pembagian yang paling umum adalah menjadi tiga lapisan: presentasi, logika bisnis, dan penyimpanan data.
1. Layered (n Tier) Architecture Pattern
Layered (n-tier) Architecture Pattern

 

Clean / Onion Pattern

Clean Architecture, juga dikenal sebagai Onion Architecture, adalah filosofi desain perangkat lunak yang menekankan pada pemisahan masalah di dalam sistem. Arsitektur ini mengatur perangkat lunak ke dalam lapisan-lapisan konsentris, dengan model domain sebagai intinya, dikelilingi oleh lapisan-lapisan khusus aplikasi. Lapisan luar bergantung pada lapisan dalam, tetapi tidak sebaliknya, sehingga mendorong pemisahan dan isolasi yang tinggi. Hal ini memungkinkan perubahan dalam infrastruktur, UI, atau agensi eksternal memiliki dampak minimal pada logika bisnis. Ini sangat ideal untuk sistem yang membutuhkan pemeliharaan, pengujian, dan kemandirian yang tinggi dari UI, basis data, atau kerangka kerja eksternal.
2. Clean Onion Architecture Pattern
Clean / Onion Architecture Pattern

 

2. Component-Based Architecture Style

Gaya ini menekankan pada pemisahan perhatian terhadap berbagai macam fungsionalitas yang tersedia di seluruh sistem perangkat lunak.

Prinsip: Gaya arsitektur ini mengatur sistem sebagai komponen yang digabungkan secara longgar dan dapat digunakan kembali.
Kekuatan: Tingkat penggunaan ulang, fleksibilitas, dan pemeliharaan yang tinggi.
Kelemahan: Kerumitan dalam mengelola komponen dan interaksinya.
Penerapan: Aplikasi web, aplikasi desktop, sistem terdistribusi.
Antipola: Komponen yang terlalu besar, komponen yang berlebihan.

 

Object-oriented Pattern

Pola ini merupakan paradigma yang didasarkan pada "objek", yang dapat berisi data dan kode: data dalam bentuk field (sering disebut atribut), dan kode dalam bentuk prosedur (sering disebut metode). Pola ini mendukung enkapsulasi, pewarisan, dan polimorfisme, sehingga membuat perancangan, implementasi, dan pemeliharaan sistem yang kompleks menjadi lebih mudah.

 

Microkernel Pattern

Pola ini memisahkan inti fungsional minimal (microkernel) dari fungsionalitas yang diperluas dan bagian khusus pelanggan. Mikrokernel berisi fungsionalitas inti, sedangkan fitur-fitur lainnya diimplementasikan sebagai plugin ke mikrokernel. Hal ini memungkinkan sistem untuk diperluas dengan mudah tanpa memodifikasi inti.

3. Microkernel Architecture Pattern
Microkernel Architecture Pattern

 

Plug-in Pattern

Pola ini memungkinkan penambahan fungsionalitas baru ke aplikasi dengan menambahkan modul atau plugin baru. Modul-modul baru diintegrasikan ke dalam aplikasi melalui antarmuka standar, yang memungkinkan aplikasi diperluas dan disesuaikan. Pola ini biasanya digunakan dalam browser web, pemutar media, dan sistem manajemen konten.

 

3. Service-Oriented Architecture Style

Gaya ini mendesain perangkat lunak sebagai kumpulan layanan yang berkomunikasi satu sama lain. Setiap layanan berdiri sendiri dan mewakili aktivitas bisnis tertentu dengan hasil yang ditentukan.

Prinsip: SOA mendesain aplikasi sebagai kumpulan layanan yang berkomunikasi melalui jaringan.
Kekuatan: Fleksibilitas, skalabilitas, dapat digunakan kembali, dan sambungan yang longgar.
Kelemahan: Peningkatan kompleksitas, ketergantungan pada jaringan, dan potensi masalah kinerja.
Penerapan: Sistem perusahaan, layanan web, layanan mikro.
Antipola: Mengabaikan kebutuhan bisnis, menggunakan SOA di tempat yang tidak diperlukan.

 

Service-Oriented Architecture Pattern (SOA)

Pola ini mendesain perangkat lunak sebagai kumpulan layanan terpisah yang digunakan dalam beberapa sistem. Setiap layanan dalam model SOA dibangun untuk menjalankan fungsi bisnis tertentu, seperti memeriksa skor kredit pelanggan, menghitung pembayaran, atau memproses hipotek. Layanan-layanan ini berkomunikasi satu sama lain melalui jaringan untuk mencapai aktivitas tertentu, seperti memproses aplikasi hipotek. SOA mendorong penggunaan ulang, karena beberapa aplikasi dan fleksibilitas dapat menggunakan layanan, karena layanan dapat dimodifikasi atau diganti tanpa mempengaruhi layanan lainnya.
4. Service Oriented Architecture Architecture Pattern (soa)
Service-Oriented Architecture Architecture Pattern (SOA)

 

Broker Pattern

Dalam pola arsitektur Broker, komponen-komponen sistem dikomunikasikan melalui entitas broker. Broker mengoordinasikan komunikasi, seperti meneruskan permintaan dan mengirimkan hasil dan pengecualian. Pola ini menyusun sistem perangkat lunak terdistribusi dengan komponen terpisah yang berinteraksi dengan panggilan layanan jarak jauh.

 

Microservice Pattern

Pola ini mendesain aplikasi perangkat lunak sebagai serangkaian layanan kecil, masing-masing berjalan dalam prosesnya dan berkomunikasi dengan mekanisme yang ringan, biasanya HTTP. Layanan ini dibangun di sekitar kemampuan bisnis dan dapat digunakan secara independen oleh mesin penerapan yang sepenuhnya otomatis. Pola ini memungkinkan pengiriman aplikasi yang kompleks dengan cepat, sering, dan dapat diandalkan.
5. Microservice Architecture Pattern
Microservice Architecture Pattern

 

Serverless (Function as a Service or FaaS) Pattern

Dalam pola ini, aplikasi dibangun dan dijalankan di lingkungan cloud tanpa mempertimbangkan server. Penyedia cloud secara dinamis mengelola alokasi sumber daya mesin, dan pengembang dapat fokus hanya pada fungsi individual dalam kode aplikasi mereka. Pola ini ideal untuk aplikasi yang dapat diskalakan dan digerakkan oleh peristiwa.

 

4. Distributed System Architecture Style

Gaya ini mengacu pada sistem di mana komponen yang berada di komputer jaringan berkomunikasi dan mengoordinasikan tindakan mereka dengan mengirimkan pesan. Komponen-komponen tersebut berinteraksi satu sama lain untuk mencapai tujuan bersama.

Prinsip: Arsitektur ini melibatkan beberapa sistem yang bekerja bersama melalui jaringan untuk tampil sebagai satu sistem bagi pengguna akhir.
Kekuatan: Skalabilitas, toleransi kesalahan, dan berbagi sumber daya.
Kelemahan: Peningkatan kompleksitas, ketergantungan jaringan, dan masalah yang berkaitan dengan konsistensi data.
Penerapan: Basis data terdistribusi, komputasi awan, jaringan telekomunikasi.
Antipola: Tidak mempertimbangkan kegagalan jaringan, mengabaikan tantangan konsistensi data.

 

Space-Based Pattern

Pola ini, yang juga dikenal sebagai Tuple Space atau Cloud Architecture, dirancang untuk menghindari satu titik kegagalan atau hambatan kinerja dengan mendistribusikan layanan dan sumber daya secara merata di beberapa server. Pola ini ideal untuk aplikasi bervolume tinggi dan sangat penting yang membutuhkan 100% uptime dan skalabilitas horizontal, seperti sistem perdagangan finansial atau platform game online.
6. Space Based Architecture Pattern
Space-Based Architecture Pattern

 

Peer-to-Peer (P2P) Pattern

Dalam pola ini, setiap peserta (peer) dalam jaringan bertindak sebagai klien dan server, dan simpul-simpul jaringan berkomunikasi secara langsung tanpa memerlukan server pusat. Pola ini digunakan dalam aplikasi yang membutuhkan komputasi terdistribusi atau berbagi sumber daya, seperti jaringan berbagi file atau teknologi blockchain.
7. Peer To Peer (p2p) Architecture Pattern
Peer-to-Peer (P2P) Architecture Pattern

 

5. Domain-Driven Architecture Style

Gaya ini berfokus pada domain inti dan logika domain, mendasarkan desain pada model domain bisnis. Gaya ini menekankan kolaborasi antara ahli teknis dan ahli domain untuk menyempurnakan model secara berulang-ulang yang akurat dan efektif untuk memecahkan masalah bisnis.

Prinsip: Berfokus pada domain inti dan logika domain serta mendasarkan desain pada model domain.
Kekuatan: Meningkatkan pemahaman tentang domain bisnis yang kompleks dan mendorong komunikasi antara tim teknis dan bisnis.
Kelemahan: Bisa jadi berlebihan untuk domain sederhana dan membutuhkan pemahaman yang mendalam.
Penerapan: Sistem bisnis yang kompleks, perangkat lunak perusahaan.
Antipola: Mengabaikan bahasa yang ada di mana-mana, tidak melibatkan ahli domain.

 

Hexagonal (Ports & Adapters) Pattern

Pola ini memungkinkan aplikasi untuk sama-sama digerakkan oleh pengguna, program, pengujian otomatis atau skrip batch, dan untuk dikembangkan dan diuji secara terpisah dari perangkat dan basis data yang dijalankan. Pola ini memisahkan logika bisnis perangkat lunak dari urusan luar, yang digerakkan oleh port dan adaptor. Pola ini ideal untuk aplikasi yang perlu dipisahkan dari lingkungan perangkat lunaknya, sehingga dapat beradaptasi dengan lingkungan baru.
8. Hexagonal (ports & Adapters) Architecture Pattern
Hexagonal (Ports & Adapters) Architecture Pattern

 

Domain-Driven Design Pattern

Pola ini merupakan pendekatan pengembangan perangkat lunak untuk kebutuhan yang kompleks dengan menghubungkan implementasi dengan model yang terus berkembang.Pola ini melibatkan hubungan yang erat antara implementasi dan model saat ini, dengan siklus iterasi yang konstan pada keduanya. DDD sangat ideal untuk sistem yang kompleks dengan aturan bisnis yang kaya dan rumit atau sistem yang domainnya selalu berubah-ubah.

9. Domain Driven Design Architecture Pattern
Domain-Driven Design Architecture Pattern


6. Event-Driven Architecture Style

Arsitektur berbasis peristiwa adalah arsitektur perangkat lunak dan model untuk desain aplikasi. Dengan sistem yang digerakkan oleh peristiwa, penangkapan, komunikasi, pemrosesan, dan kegigihan peristiwa adalah struktur inti dari solusi.

Prinsip: Gaya arsitektur ini digerakkan oleh peristiwa seperti tindakan pengguna, keluaran sensor, atau pesan dari program lain.
Kekuatan: Sangat terukur, kopling longgar, mendorong aliran informasi waktu nyata atau hampir waktu nyata.
Kelemahan: Peningkatan kompleksitas karena pemrograman asinkron dapat menyulitkan pemeliharaan dan debug.
Penerapan: Aplikasi GUI, analisis waktu nyata, pemrosesan peristiwa yang kompleks.
Antipola: Mengabaikan urutan kejadian, kurangnya daya tahan kejadian.

 

Event-Driven Pattern

Arsitektur Berbasis Peristiwa adalah pola arsitektur asinkron terdistribusi yang populer yang digunakan untuk menghasilkan aplikasi yang sangat skalabel. Arsitektur ini juga sangat mudah beradaptasi dan dapat digunakan untuk aplikasi kecil dan sistem besar yang kompleks.
10. Event Driven Architecture Pattern
Event-Driven Architecture Pattern

 

Pub-Sub Pattern

Ini adalah pola pengiriman pesan di mana pengirim pesan, yang dikenal sebagai penerbit, tidak memprogram pesan untuk dikirim secara langsung ke penerima tertentu, yang dikenal sebagai pelanggan. Sebaliknya, pesan yang dipublikasikan dikarakterisasikan ke dalam topik tanpa mengetahui pelanggan mana, jika ada, yang mungkin ada. Demikian pula, pelanggan menyatakan ketertarikannya pada satu atau beberapa topik dan hanya menerima pesan yang menarik tanpa mengetahui siapa saja penerbitnya, jika ada. Pola ini banyak digunakan dalam sistem asinkron untuk memisahkan proses yang menghasilkan peristiwa dari proses yang mengkonsumsinya, sehingga memungkinkan skalabilitas dan kontrol yang lebih besar.

 

7. Separation of Concern Architecture Style

Pemisahan perhatian adalah prinsip desain untuk membagi program komputer menjadi beberapa bagian yang berbeda, masing-masing menangani masalah yang berbeda.

Prinsip: Area fungsionalitas yang berbeda ditangani oleh bagian yang terpisah dan independen dari suatu sistem.
Kekuatan: Meningkatkan pemahaman, mengurangi kompleksitas, mempromosikan modularitas dan pengembangan paralel.
Kelemahan: Hal ini dapat meningkatkan kompleksitas karena manajemen antarmuka dan membutuhkan lebih banyak komunikasi antar modul.
Penerapan: Hampir semua jenis sistem perangkat lunak.
Antipola: Masalah pencampuran, kurangnya batasan modul yang jelas.

 

MVVC Pattern

Pola ini memfasilitasi pemisahan pengembangan antarmuka pengguna grafis dari pengembangan logika bisnis atau back-end.Pengontrol tampilan MVVC bertanggung jawab untuk mengekspos objek data dari model sehingga objek-objek tersebut mudah dikelola dan dipresentasikan. Pola ini banyak digunakan dalam bidang interaksi pengguna yang luas seperti aplikasi desktop dan seluler.

 

MVP Pattern

Ini adalah turunan dari pola arsitektur model-view-controller (MVC). Pola ini digunakan terutama untuk membangun antarmuka pengguna.Dalam MVP, penyaji mengasumsikan fungsionalitas sebagai "perantara". Model dan tampilan sepenuhnya terpisah dan berkomunikasi satu sama lain hanya melalui presenter.MVP adalah arsitektur yang sangat baik untuk aplikasi web modern karena memungkinkan pengujian unit otomatis yang lebih mudah dan menyediakan struktur yang bersih untuk proyek.
11. Model View Presenter Architecture Pattern
Model-View-Presenter Architecture Pattern

 

8. Interpreter Architecture Style

Pola penerjemah adalah pola desain yang menentukan cara mengevaluasi kalimat dalam suatu bahasa. Ide dasarnya adalah memiliki kelas untuk setiap simbol (terminal atau nonterminal) dalam bahasa komputer khusus.

Prinsip: Instruksi program dieksekusi secara langsung tanpa dikonversi terlebih dahulu ke dalam bahasa mesin.
Kekuatan: Lebih mudah untuk di-debug dan diuji, lebih fleksibel.
Kelemahan: Lebih lambat daripada bahasa yang dikompilasi, membutuhkan lebih banyak sumber daya.
Penerapan: Bahasa skrip, beberapa bahasa pemrograman tingkat tinggi.
Antipattern: Menggunakan penerjemah di mana kinerja sangat penting.

12. Interpreter Architecture Pattern
Interpreter Architecture Pattern

 

Interpreter Pattern

Pola desain ini menentukan cara mengevaluasi kalimat dalam suatu bahasa. Ide dasarnya adalah memiliki kelas untuk setiap simbol (terminal atau nonterminal) dalam bahasa komputer khusus. Pohon sintaks dari sebuah kalimat dalam bahasa adalah contoh dari pola komposit dan digunakan untuk mengevaluasi (menginterpretasikan) kalimat untuk klien. Pola ini digunakan dalam kompiler dan penerjemah untuk bahasa pemrograman, dalam mesin ekspresi reguler, dan memproses dan menganalisis data teks terstruktur.

 

9. Concurrency Architecture Style

Konkurensi adalah properti sistem di mana beberapa tugas independen dijalankan pada waktu yang sama.

Prinsip: Bagian-bagian yang berbeda dari suatu program dijalankan secara independen, mungkin secara bersamaan.
Kekuatan: Dapat meningkatkan kinerja secara signifikan, terutama pada sistem multi-core.
Kelemahan: Merancang dan men-debug masalah dengan kondisi balapan dan kebuntuan dapat menjadi rumit.
Penerapan: Sistem waktu nyata, komputasi berkinerja tinggi, server web.
Antipatterns: Mengabaikan potensi masalah konkurensi dan tidak menyinkronkan sumber daya bersama dengan benar.

 

Orchestration Pattern

Dalam pola ini, pengontrol ('orkestrator') mengontrol interaksi antar layanan. Ia menentukan aliran kontrol logika bisnis dan memastikan semuanya terjadi sesuai perintah. Pola ini biasanya digunakan dalam proses bisnis yang kompleks di mana Anda harus mengoordinasikan beberapa layanan dan menginginkan kontrol terpusat.
13. Orchestration Architecture Pattern
Orchestration Architecture Pattern

 

Choreography Pattern

Pola ini menerapkan sistem layanan di mana setiap layanan bekerja secara independen dan berinteraksi dengan layanan lain melalui acara.Tidak ada orkestrator pusat. Sebaliknya, setiap layanan tahu apa yang harus dilakukan selanjutnya. Pola ini digunakan ketika Anda ingin membuat sistem yang terdesentralisasi dan sangat terpisah yang memungkinkan fleksibilitas dan skalabilitas yang lebih tinggi.
14. Choreography Architecture Pattern
Choreography Architecture Pattern

 

Primary-Secondary Pattern

Pola ini terdiri dari dua jenis komponen: Primer dan Sekunder.Komponen primer mendistribusikan pekerjaan di antara komponen sekunder yang identik dan menghitung hasil akhir dari hasil yang dikembalikan oleh mesin sekunder. Pola ini digunakan dalam komputasi paralel untuk melakukan komputasi lebih cepat dengan membagi tugas komputasi yang sangat besar di antara beberapa prosesor.

 

Pipeline / Pipe-Filter Pattern

Pola ini melibatkan rantai elemen pemrosesan (proses, thread, coroutine, dll.) yang diatur sedemikian rupa sehingga output dari satu elemen adalah input dari elemen berikutnya. Idenya adalah memecah tugas yang melakukan pemrosesan kompleks menjadi elemen-elemen terpisah yang dapat digunakan kembali. Pola ini digunakan dalam sistem operasi Unix dan sistem operasi yang mirip Unix untuk perintah pipelining.

 

10. Data-Centric Architecture

Gaya ini berfokus pada bagaimana data diatur dan diubah. Gaya ini sering digunakan dalam sistem yang memproses data dalam jumlah besar, melakukan penghitungan yang rumit, atau harus memiliki skalabilitas tinggi.

Prinsip: Basis data berada di pusat arsitektur, dan semua interaksi terjadi melalui basis data.
Kekuatan: Dapat memberikan konsistensi, integritas, dan keandalan data.
Kelemahan: Dapat menciptakan kemacetan data dan potensi masalah skalabilitas.
Penerapan: Banyak aplikasi perusahaan, sistem CRM, dan sistem ERP.
Antipatterns: Mengabaikan potensi kemacetan data, tidak mempertimbangkan skalabilitas data.

 

Command Query Responsibility Segregation (CQRS) Pattern

Pola ini memisahkan operasi baca dan tulis untuk penyimpanan data. Pola ini memungkinkan penskalaan beban kerja baca dan tulis secara independen dan mengoptimalkannya secara terpisah. Pola ini ideal untuk aplikasi dengan perbedaan yang tinggi antara beban baca dan tulis.
15. Command Query Responsibility Segregation (cqrs) Architecture Pattern
Command Query Responsibility Segregation (CQRS) Architecture Pattern


Event-Sourcing Pattern

Teknik pemrograman ini memodelkan perubahan status yang dilakukan aplikasi sebagai urutan yang tidak dapat diubah atau "log" peristiwa. Alih-alih memodifikasi status aplikasi yang ada, event sourcing melibatkan penyimpanan peristiwa yang memicu perubahan status. Pola ini digunakan dalam sistem yang perlu mengetahui peristiwa yang menyebabkan keadaan saat ini, seperti sistem audit atau aplikasi kolaboratif real-time.

 

Kappa Pattern

Ini adalah pola arsitektur perangkat lunak. Daripada menggunakan DB relasional seperti SQL atau penyimpanan nilai kunci seperti Cassandra, data kanonik yang disimpan dalam sistem Arsitektur Kappa adalah log yang tidak dapat diubah. Pola ini digunakan dalam sistem pemrosesan data real-time.

 

Lambda Pattern

Arsitektur pemrosesan data ini dirancang untuk menangani data dalam jumlah besar dengan memanfaatkan metode pemrosesan batch dan stream. Pola ini menyediakan sistem yang kuat dan toleran terhadap kegagalan perangkat keras dan kesalahan manusia. Pola ini digunakan dalam tugas pemrosesan data besar.

 

Kesimpulan

Memahami architecture styles dan architecture patterns sangatlah penting bagi seorang software developer atau architect. Styles dan patterns tersebut menyediakan cara untuk berkomunikasi, mendokumentasikan, dan mengeksplorasi alternatif desain. Keduanya juga menawarkan solusi untuk masalah umum, menghemat waktu dan tenaga, serta menghasilkan sistem yang lebih kuat dan mudah dipelihara. Namun, ini hanyalah puncak gunung es. Masih banyak lagi gaya dan pola yang ada di luar sana, dan yang baru terus dikembangkan.

 

 

Referensi:
https://medium.com/bytebytego-system-design-alliance/the-architects-blueprint-understanding-software-styles-and-patterns-with-cheatsheet-5c1f5fd55bbd

 

Ingin tahu informasi selengkapnya, silakan kunjungi website kami di: 
https://hdnmetatech.com/
https://agus-hermanto.com/

 

Jangan lupa follow media sosial kami yang lain
Instagram : hdnmetatech
Linkedin  : https://www.linkedin.com/company/herdina-metatech-sinergi-corp
Facebook  : Herdina Metatech Sinergi Corp