Archive

Posts Tagged ‘oo’

Programming to Interface

July 18, 2010 2 comments

Baru saja selesai skimming buku Interface Oriented Design. Buku ini menuntas habis mengenai cara kita membuat sistem dengan interface.

Introduction

Di awal buku ini ada contoh mengenai Pizza Ordering. Skenarionya adalah kira2 sebagai berikut.

Kejadiannya ini karena malam2 lapar trus pengen pesan pizza favourite.
Nelepon deh..

Pizza guy : Yapz
Aku : Aku mw pesan pizza jumbo
Pizza : Toppings?
Aku : Pepperoni dan Mushrooms
PIzza : Alamat?
Aku : 1 Oak street
Pizza : 30 menit lagi akan diantar.

Nah.. kita coba bangun interface untuk PizzaOrdering tersebut. Hampir di setiap pemesanan pizza akan mendapati model percakapan seperti itu. Pemesanan pizza memiliki interface yg sama tetapi hanya implementasinya saja yg berbeda. Misalkan kita menelpon pizza yg lain maka yg kita hadapi kemungkinan besar adalah percakapan di atas.


public interface PizzaOrdering 
{
      void SetSize(Size size);
      void SetToppings(Toppings toppings);
      void SetAddress(Address address);
      DateTime GetTimeDelivered();
}

Nah.. sekarang kita udh punya interfacenya.. Trus bagaimana kita mendapatkan implementasi dari interface tersebut ? Kita tentu saja butuh Finder. Kita cari di buku telepon atau buku informasi mengenai toko pizza. Dari situ kita akan dapat memilih mana toko pizza yg akan kita hubungi. And then dial the number… Cara kita meng-order pizza tersebut sama tetapi perlakuan toko terhadap proses tersebut kemungkinan besar berbeda. Interfacenya sama tetapi implementasinya berbeda.
Read more…

Domain Event

April 3, 2009 Leave a comment

Saya menemukan artikel bagus mengenai domain event dan hal-hal yg berhubungan dengan pemodelan event pada oo.

PoEAA
Pengenalan Mengenai Event
Domain Event

Dengan memperkenalkan event pada system kita memperoleh berbagai macam keuntungan. Salah satu yg paling mecolok adalah loose couple.
Read more…

Greg Young DDD version

March 6, 2009 Leave a comment

Cara yg terbaik untuk belajar adalah dengan melihat bagaimana orang melakukannya. Nah sama halnya dengan DDD. Salah satu pakarnya adalah greg young. Bisa diliat di sini. Ini salah satu favouriteku di DDD. Hehehe.

Nah saya baca2 dari blognya. Ide yg dapat saya tangkap salah satunya adalah mengenai Command Query Separation(CQS). Pemisahan method untuk membaca atau read only dengan method untuk write(mengubah state).

Nah jadi hal ini diterapkan pada DDD. Mmm… jadi berdasarkan penjelasannya pada Repository hanya ada satu operasi Read saya yaitu method read untuk meload instance dari aggregate root berdasarkan Unique IDNy. Wow. Pdahal selama ini saya menjejali repository dengan method2 yg bertujuan untuk read. Tapi ini hanya satu. Dan itupun untuk retrive berdasarkan ID.
Read more…

Categories: Domain Driven Design, Messaging, SOA Tags: ,

SOA vs OO

February 16, 2009 Leave a comment

Kenapa butuh SOA SOA lebih ke integrasi antara aplikasi (Top Down) OO lebih kea rah mendesign satu aplikasi. (Bottom up) Jadi keduanya memecahkan permasalahan yg berbeda dan tidak saling menggantikan.

OO memandang system dalam group bentuk class, component, packages, interfaces. Interaksi antarnya adalah invoking method dari object. Kita tidak langsung mengakses datanya. Jadi lebih cocok ditujukan untuk design satu aplikasi, in process bukan interprocess (distributed) berjalan dalam satu mesin
Read more…

Categories: SOA Tags: ,

Patterns for Accounting (Part 1)

February 6, 2009 Leave a comment

Sebagian besar software yg ada di dunia ini berhubungan dengan duit atau uang. Tul ga ? Manusia emang terobsesi ya dari dulu sama yg namanya uang. Bahkan untuk itung2 uang aja ada profesi khusus. Padahal yg diitung bukan uang dia. Hahahaha. Accounting nama profesinya. Nama jurusnnya akuntansi. Mata pelajaran yg tidak aku suka di SMU. Huff

Fundamental konsepnya dari accounting itu double-entry bookeeping. dicetuskan oleh Luca Pacioli orang italia kyknya. Intinya kita merecord berbagai jenis tempat uang atau pot uang. Pot ?? macam bunga aja. Iya tempat penyimpanan maksudnya. Dan perpindahan uang tersebut juga ditrack. Jadi uang itu ga bisa hilang gitu aja. Meskipun hanya 200 rupiah. Wuih sadis banget. detail sekali
Read more…

Fluent Interface

February 3, 2009 5 comments

Fluent interface itu dicetuskan oleh si Eric Evans dan Martin Fowler. Intinya adalah style interface tertentu. Tertentu gimana ? Mmm dari contoh aja … Contoh ini menggunakan TimeAndMoney library dari eric evans.

Biasanya kita bikin interval waktu dgn cara seperti ini : Read more…

Categories: Design Pattern Tags: , , ,

Time Point

February 3, 2009 Leave a comment

Merepresentasikan suatu titik pada waktu pada level detail (presisi) tertentu .

Time Point. A point in Time. Contohnya saya menulis article ini pada August 28 2000. Itu disebut time point. Trus untuk apa pattern ini kan udh ada banyak library untuk waktu. Masalahnya karena ada kerumitan2 tertentu pada waktu tersebut. Read more…