Langsung ke konten utama

Postingan

Menampilkan postingan dari September, 2022

SOLID - Prinsip Desain Arsitektur Di Dalam Pemrograman Object Oriented (Open / Close Principal)

 O - Open / Close  Bayangkan jika kita punya sepeda motor atau barang apapun yang sudah satu kesatuan yang ketika rusak sparepart nya tidak bisa diganti. Bayangkan jika ketika komponent nya rusak, kita harus langsung memperbaikinya di komponen tersebut tanpa bisa di ganti dengan komponen sejenis yang baru. Pasti akan sangat merepotkan bukan ?. Nah pada prinsipnya Open / Close ini untuk menghindari hal-hal yang demikian. Objects or entities should be open for extension but closed for modification. Prinsip Open / Close mengharuskan suatu Class / Komponen untuk bisa dimodifikasi logic / behaviour melalui Class turunan (Open) tanpa harus memodifikasi langsung pada kode di Class Utama (Close). Prinsip ini bertujuan agar kode yang kita buat bisa dengan mudah untuk di modifikasi logic / alur dalam melakukan sesuatu melalui Class turunan nya tanpa harus merubah kode yang ada di Class yang bersangkutan. Implementasi Bayangkan kita punya 1 buah blender, dimana blender ini bisa melakukan 3 pekerj

SOLID - Prinsip Desain Arsitektur Di Dalam Pemrograman Object Oriented (Single Responsibility)

Pendahuluan Ketika kita menulis program dengan menggunakan paradigma OOP / Object Oriented baik menggunakan Java, PHP ataupun yang lain, kita akan banyak berinteraksi dengan Class maupun Object. Dan tidak dapat dipungkiri bahwa interaksi antar Object tersebut akan memunculkan tantangan baru, yaitu kode akan susah dibaca, kode menjadi susah dikembangkan, dan ketika di kembangkan memunculkan BUG dan lain sebagainya. Oleh karena beberapa kendala tersebut, maka ada baiknya kita perlu mempelajari beberapa prinsip penulisan kode di dalam OOP yang dikenal dengan nama SOLID.  SOLID SOLID sendiri merupakan sebuah prinsip yang dikenalkan oleh RObert J Martin (Uncle Bob) di dalam paper yang diterbitkan pada tahun 2000 dengan tujuan untuk membuat kode yang lebih mudah dimengerti, dapat dibaca dan mudah dalam melakukan testing.  tonton di sini . SOLID sendiri merupakan singkatan / akronim dari beberapa prinsip, antara lain:  S - Single Responsibility O - Open / Close L - Liskov Substitution I - Int

Service Tagging di Symfony

 Ketika kita bekerja dengan Service di Symfony, aplikasi kita akan mempunyai banyak Service / Object yang saling berkaitan. Kadang kita ingin mengelompokkan beberapa Service dengan behaviour / kegunaan tertentu menjadi satu kelompok. Untuk mengelompokkan Service, kita bisa menggunakan Tags. Ada banyak tags bawaan dari symfony yang bisa anda baca langsung di  https://symfony.com/doc/current/reference/dic_tags.html Membuat Tags Anggap saya akan membuat perbandingan jarak antar titik. Saya akan menggunakan 2 metode yang berbeda, yaitu menggunakan rumus haversine  (lihat di sini)  dan satu lagi menggunakan crawling ke google map. Untuk itu saya membuat 2 buah Class yang masing-masing digunakan untuk membuat formula perhitungan jarak yang akan implements ke Interface DistanceCalculatorInterface seperti potongan kode berikut: <?php // src/DistanceCalculator/DistanceCalculatorInterface.php namespace App\DistanceCalculator; /** * * @author programmer */ interface DistanceCalcu