Skip to main content

Decoupling Your System

You could google about the definition of decoupling, [GGL] but let's take it from my perspective. Decoupling is a process to make each part more independent. This is a process that modularize your system. As any algorithm in this world, it has many weaknesses. So, let me summarize it for you:

#1 Architecture Overhaul

Architecture overhaul can become tricky if it means of changing a big API. Take Linux kernel as an example, each minor release take major interface change that makes specific driver are not compatible. But then again, this argument can be broken by the way of Linux kernel is developed: monolithic. No wonder it can have so many modules tightly coupled.

Even so, a proper way of making modularity and system planning, can make architecture overhaul is nothing -- yeah, it still costs you something, e.g. money. Pay attention to intermediary services. It is often what ever changing beneath will not so much cost you, but when you change the way of any subpart communication, it will break down the system.

Consider using deprecating method. However, watch out for deprecating that can lead into regression. Whatever that breaks it will stop your system. Often regression is something that you wish to have so that your customer shall upgrade your system. But, that's felt like cheating. Take a look at Sun Microsystem, Microsoft, [BIG VENDOR HERE] and any of their software, they always take compatibility a big issue that it sometimes make the new software crippled.

#2 Web of Modules

Too much interface also can make each of your module become messed up and ended up with chaining each other, breaking the rule and the first objective. Theoritically, this should be impossible. But, with extreme conditions of many big projects and with the not-so-mature-and-strict company policy about documentation leads many modules ended up chained each other so much.

Solution is implied: do documentation strictly, plan your architecture well, and creates some labs. If you have (D)VCS, you would have the main development kept in the trunk, some modifications in branches, and mature releases in tag. There, I just gave you the tips of using (D)VCS.

Ah.. penyakit gw kambuh... :P

To be continued.

Comments

Popular posts from this blog

STAN vs. UI

Ugh, kasihan banget adek gue. Saking kepinteran dia jadi dapet Akuntansi UI dan STAN. Jadi bingung mau masuk yang mana. Beberapa orang (termasuk orang tua gue), menyarankan masuk STAN. Gue malah memperburuk suasana dengan membela memasuki Akuntansi UI, maklum bela almamater. Duh, gue jadi merasa bersalah bikin dia ragu-ragu. Kira-kira enakan masuk mana, yah? Gue juga gak tahu keuntungan masing-masing. Hasil debat sementara: ~ Untuk jangka panjang masuk UI, untuk jangka pendek STAN. ~~Tapi, dia itu kan cewek, ntar pas menikah kemungkinan besar karir terhambat. Eits, ntar, dulu, sekarang kan jamannya emansipasi, bisa aja cowoknya yang jadi BRT. ~ STAN sarang korupsi, kalo masuk STAN jadi pegawai negeri. Kalo mau kaya harus korupsi. Tapi kalo masuk UI, lulus masuk jadi akuntan publik. Sekarang ini, orang membayar akuntan publik untuk memanipulasi nilai pajak dan aset. *SIGH*. Jadi gak ada yang beres ~ dll. Yah, udah gue jadi bingung, apa lagi dia nanya saran gue. Buah, gue gak pengalaman ...

Installing Goodix Fingerprint Reader Driver on Fedora

I currently have a Lenovo Thinkpad L14 laptop equipped with fingerprint. I was `belok` from KDE Neon to use Fedora 40 because of someone. Now I am tempted to enable my fingerprint: lsusb | grep -i fingerprint Bus 001 Device 004: ID 27c6:55b4 Shenzhen Goodix Technology Co.,Ltd. Fingerprint Reader Dump the firmware Assuming this is a fresh install, lets do some magic by getting some dependencies: sudo dnf install gcc git python-pip python-devel openssl Let's get the source code: git clone --recurse-submodules https://github.com/goodix-fp-linux-dev/goodix-fp-dump.git cd goodix-fp-dump Create an isolated Python environment: python -m venv .v source .v/bin/activate Do the magic: sudo su pip install -r requirements.txt python run_55b4.py exit There are some python scripts available. I run run_55b4.py because my device ID is 27c6: 55b4 . It will spell some nonsense, which is a good thing. That nonsense actually the firmware captured by our device. Also, I typed exit becaus...

Chivalry vs Feminism

Throughout these years I constantly making experiment about how our society perceive about the societal changes. The overhaul of sexist strata and the privilege reformations follow. Note that every change could be perceived as progress or detrimental to the society. The foremost subject that I run is about the opposite of manliness perceived by the oldies vs modern women. The modern era allow women go out from the kitchen into the office. They can have career and enjoy the privilege that men were exclusively had in years. And, can men also do the reverse? Can men also enjoy the privilege of what women do in the past? Can men move from office into the kitchen? And the answer on this era is: NO. While women could reverse their role, men are not allowed to do the same in this society. Society will punish you when a man tries to do that. They will put a healthy man who chose to be at home dad as an irresponsible not-a-man person. If a woman's worth could be rewritten, why not...