Archive
I’m so Lucky so Do you !
I’m so lucky i can meet these great people as my mentor. Everyone of them shape my thinking and make me who i am today.
One of them teach me how to write clean code, with test driven development, good object oriented programming, messaging and distributed system.
One of them teach me how to write high performance code for realtime system.
One of them also teach me how to lead software development, how to learn something completely.
Also algorithm and runtime details, everything that make you great software engineer.
Machine learning and Big Data, it’s not just a buzzword anymore.
They made me who i am today. You can be like me too. You are the special one too. All you need is a good mentor. To teach you have to how fish. Learn the basic
To make you the special one too.
Great Software Engineer.
Great Data Engineer.
Great Data Scientist.
That’s what makes Indonesia different. That’s what makes our Startup and our Enterprise become alive again.
Join us !
It doesnt matter wheter you are children, kids, boys, girls, startup, enterprise, software engineer and technology enthusiast. You can be a makers !
Cheers
Penggunaan dan Best Practice pada DDD
DDD cocok untuk digunakan pada project yg memiliki lifetime yg lama dan memiliki kompleksitas yg tinggi. Meskipun demikian banyak juga project kecil yg dapat menerapkan sebagian dari DDD sebagai Pattern language. Pada DDD sebagai Pattern Language hubungan dengan domain expert dan Ubiquitos language akan dihilangkan atau dikurangi. Karena kedua bagian tersebut merupakan hal yg paling sulit dilakukan dan time consuming process.
Salah satu best practice pada orang yg masih baru di DDD adalah selalulah menggunakan bahasa. Bahasa yg dimaksud tentu saja Ubiquitous Language. Bahasa merupakan kunci yg paling penting dalam membuat system yg baik. Bahasa membuat kita tahu bahwa system kita buruk atau tidak.
Read more…
Getter and Setter adalah Domain Anti-Pattern
Object haruslah kaya akan behavior. Object tidak memiliki bentuk. Jika kita mengekspose state dari object tersebut dengan getter dan setter, maka object yg menggunakannya akan bergantung kepada shape tersebut. Terjadilah coupling terhadap object tersebut. Internal state dari object hanya boleh diubah berdasarkan behavior object tersebut saja.
Jika kita mengeset suatu field pada sebuah object saya yakin sebenarnya ada behavior yg menuntuk kita melakukannya. Pasti ada behavior yg melatarbelakanginya tetapi kita mungkin salah menempatkannya. Mungkin kita menempatkannya di Service Layer atau bisa saja pada object yg berinteraksi langsung dengan object tersebut.
Read more…
Event Sourcing
Event Sourcing
Pada pattern ini semua event yg terjadi itu dicapture dalam object dan kemudian disimpan sebagai log. Log ini berfungsi untuk proses auditing atau dapat digunakan untuk mengembalikan state dari aplikasi ke kondisi semula. Agar dapat membangun semuanya dari kondisi nol dari log maka sequecen nya harus dipertahankan.
Kegunaan log yg lain adalah untuk memperbaiki kesalahan yg dilakukan pada masa lalu. Klo di dunia accounting dinamakan dengan reversal adjustment atau retroactive change.
Jadi pada suatu aplikasi kita memiliki dua data untuk di kelola. Salah satu nya adalah application state. Data yg satu ini pasti ada di setiap aplikasi apapun. Application state ini menggambarkan keadaan aplikasi yg terkini atau current state. Yang kedua adalah event log. Event log menyimpan perubahan2 state yg terjadi pada aplikasi tersebut.
Read more…
Account
Inti dari pattern ini adalah sebagai penampung dari accounting entry dan menyediakan summary dari entry tersebut.
Istilah account udh lama ada. Bank Account, Project Cost Account, Corpoorate Chart of Accounts, kebanyakan istilah tersebut melibatkan accounting.
Ada banyak cara sih untuk mengerti account itu apa. salah satunya sebagai container dari entries dari accounting entry. tempat penampungan. pot atau apalah yg bisa menampung. ketika kita membuat entry kita memasukkannya ke dalam suatu account tertentu. Satu Account bisa memiliki banyak entry. Nah dari situ kita bisa ambil kesimpulan bahwa hubungan one to many. Tapi dia bukan hanya container tetapi juga bisa memberikan informasi summary seperti balance.
Read more…