Terinspirasi dari artikel Ten Reasons to Love Liferay, di
gue mau uraikan juga beberapa hal yang gue suka dari Liferay
Sebagai developer dan team leader
1. Coding Best practice : yes, kita bisa belajar coding dan best practice dari buku-buku. Tapi buat saya metode ini cenderung lebih lama, and I can't get it right on the first try. Dengan melihat source code secara langsung dari software yang sudah proven (dikembangkan lebih dari 10 tahun, sudah digunakan dan dikritisi oleh banyak orang, sudah bbrp kali ganti framework, intinya sudah melewati fase trial and error ), saya bisa langsung memahami implementasinya secara praktek, dan tentunya dengan mudah mengimplementasikan dalam project-project saya yang lain.
Contoh-contoh best practice yang saya pelajari lewat Liferay, misalnya untuk performance, Liferay melakukan minifying dan compressing utk javascript files, dan compressing utk http response. Lalu bagaimana melakukan caching utk static resources ( css, javascript ), dan gimana supaya cache di browser di refresh begitu javascript di server side berubah. Bagaimana mekanisme primary key generation yang didesain untuk tetap berjalan baik saat aplikasi di-cluster, bagaimana melakukan permission checking yang lebih efisien, misalkan saat melakukan search yang menghasilkan banyak data, dan tiap-tiap row data tersebut memiliki permission masing-masing.
2. Development management best practice : saat proyek kecil, mungkin kita cukup menggunakan tools source code control, dan IDE. Saat proyek membesar, sebesar Liferay, dengan partisipasi banyak pihak ( community utk submit bug report, bug fix, internal staff utk melakukan verifikasi, customer yang melaporkan bug, dsb ), perlu banyak tools dan mekanisme, contohnya diperlukan bug tracking, source code viewer and comparator semacam FishEye, test automation, build automation, source code control best practice (tagging, branching, merging, trunk ), forum, dan wiki, yang agak sulit dibayangkan prakteknya kalau saya hanya baca buku.
3. Out-of-the-box functionality, yang mempercepat development, dan menimbulkan confident di dalam diri boss dan customer. Pengalaman saya dalam hal development, customer dan bos cenderung menilai progress pekerjaan kita dari tampilan aplikasi. Hal ini kadang berlawanan dengan idealisme developer, yang ingin membangun fondasi code yang baik terlebih dahulu, baru bergerak ke tampilan belakangan. Seringkali kalau tampilan belum terlihat, atau sudah ada tapi dengan design yang kurang cantik, membuat customer / end-user jadi tidak bersemangat atau kehilangan kepercayaan terhadap proyek tsb.
Sebagai warga negara :
1. Well, kalau liat-liat perusahaan lokal yang cenderung kurang memperhatikan kesejahteraan karyawan, sementara jor-joran dalam membeli software dengan brand yg kuat dan harga yang super mahal, padahal software tersebut dapat disubstitusi dengan software open source yang (jauh) lebih murah harganya dengan kemampuan setara, jadi gatal dan miris sendiri. Dengan menguasai software open source secara mendalam, saya dapat membantu perusahaan-perusahaan lokal menghemat biaya software, menghemat devisa negara, dan tentunya menambah keahlian programmer-programmer lokal dengan mempelajari source codenya.
Sekian share dari saya, ditunggu juga share serupa dari yang lain.