Archive for the ‘Umum’ Category

Contoh wiki yang menarik

Posted by mkhairul

Berikut adalah contoh-contoh wiki yang dihasilkan untuk memudahkan pembangunan sesebuah perisian.

Oleh kerana sekarang saya guna perl, saya cuba memperkenalkan Perl Coding Standard pada adik-adik fresh grad di syarikat sekarang ni dengan menulisnya didalam wiki untuk kegunaan semua developer.

Saya juga meluangkan masa untuk mengajar mereka yang ingin belajar memasukkan atau menyunting maklumat didalam wiki.

Code review juga adalah antara proses yang cuba saya perkenalkan tetapi agak terbantut untuk menerangkannya kerana terlalu banyak mindset yang berbeza untuk mengadaptasikan penjelesan saya.

Marilah berkongsi wiki-wiki menarik yang pernah anda gunakan (layari), kecuali wikipedia, harap maklum. :D

Berhutang didalam pembangunan perisian

Posted by mkhairul

Dah lama pula tak post. Berikut adalah berkenaan dengan Technical Debt.

Berhutang atau lebih dikenali sebagai “Technical Debt” adalah metafor yang direka oleh Ward Cunningham didalam aktiviti pembangunan perisian.

Terdapat 2 jenis hutang, iaitu ianya dilakukan dengan sengaja atau tidak sengaja. Sila baca pautan-pautan yang diberikan diatas untuk makluman lanjut.

Satu senario yang biasa saya jumpa adalah dimana..

Abu: “Aku rasa kita kena buat SOP atau guideline untuk setup environment development kita ni”
Ahmad: “Kita tak ada masa, kita kena siapkan feature-feature ni dalam bulan ni”
Abu: “Bukan kita kena fokus terus buat SOP atau guideline ni, setiap kali dimana antara kita setup, kita tulis langkah-langkah dia pastu kita try la kalau ada tak betul kita tambah dan perbaiki, bukannya nak kena formal pun. Nanti orang baru masuk kita bagi benda ni terus boleh buat sendiri.”
Ahmad: “Ok, ok takpe, nanti ada masa nanti kita buat”

Kemudian, ada orang baru masuk dan perlukan persekitaran pembangunannya disetup. Ahmad pergi tolong, setup IDE nya dan web server. Apabila nak setup perisian, dia menunjukkan cara pembangunan di tempat kerja itu, dan sampai satu tahap untuk run test (unit testing), ada yang gagal. Sambil menggaru kepala, dia cuba debug. Selepas 1 jam, dia panggil Aiman, rakan sekerja nya.

Ahmad: “Aiman, test ni fail la. Aku tak pasti apa masalah”
Aiman: “Ok, meh aku tengok”

Selepas 1 jam.

Aiman: “Aku pun tak tau. Jap aku gi cari Ali.”
Ali pun datang.
Ali: “Erm, jap aku test… Macam ni takleh.. oh korang lupa nak tukar setting kat config dia nih. Jap aku tukar.”
Ali: “Ok, settle.”
Lalu mereka pun pulang ke tempat masing-masing untuk sambung kerja mereka.

Nampak tak apa masalah kat sini? Macam mana kalau ada orang baru lagi masuk? Takkan sampai 3 orang kena datang untuk menyelesaikan masalah akar sebegini. Takde guideline untuk setup persekitaran pembangunan. Bukan terhad pada isu begini sahaja, macam macam lagi isu seperti tiada piawaian untuk mengkod (coding guideline), nota-nota penyelesaian yang bertulis (dalam word pun ok) yang boleh dikongsi bersama.

Sedar tak sedar, ini semua adalah hutang. Dimana kadar faedahnya bertambah hari demi hari dan jika tiada kesedaran untuk membayar “hutang” ini, akan membawa padah (dari segi mental ataupun kewangan).

Jadi, marilah kita bersama-sama sedari akan hutang-hutang yang mengelilingi pinggang kita dan membuat persiapan untuk membayarnya dengan menjadi lebih peka.

Selamat programming!

Pertandingan Pembangunan Aplikasi Web Sumber Terbuka 24 Jam di MyGOSSCON 2009

Posted by mkhairul

Terdapat pertandingan yang akan diadakan oleh Kerajaan Malaysia sempena MyGOSSCON 2009 (Malaysian Government Open Source Software Conference).

Keterangan lanjut boleh didapati pada laman web acara tersebut.

Nampak macam menarik, tetapi jika saya memasuki pertandingan tersebut, aplikasi yang dibina rasanya tidak secanggih mana, kerana saya akan banyak fokus pada kebolehgunaan. Benda yang remeh-remeh seperti menu bantuan (help), tooltip, on-the-fly editable content (dengan menggunakan ajax), penerangan penggunaan aplikasi dan juga dokumentasi (yang memadai untuk pengguna).

Dengan kata lain, bergantung pada skop aplikasi web yang hendak dibangunkan, aplikasi yang dibangunkan dapat dijual setelah berlalu 24 jam pertandingan tersebut. Saya tidak tahu bagaimana pemarkahan akan diberi (ada tak info pada laman web mereka? Rasanya tiada), tetapi itulah yang akan saya lakukan. Sehaluan dengan matlamat pertandingan tersebut:

  • Promote high level open source web application development skills in Malaysia.
  • Enable local OSS web application development communities to grow and establish themselves.
  • Encourage students to get involve in open source web application development and be well prepared for industry need.

Kepentingan penggunaan framework didalam pembangunan aplikasi

Posted by mkhairul

Apa itu framework?
Framework adalah suatu koleksi teknik dan cara yang diambil daripada aktiviti dalam pembangunan sistem seperti DAL (Database Abstraction Layer), ORM, input validation, caching, templating, dan sebagainya.

Berikut adalah senarai framework untuk pembangunan web.

Mengapa perlu menggunakan framework?
Ia mengelakkan anda daripada perlu mengulangi aktiviti mengkod (ataupun menyelesaikan masalah yang telahpun anda selesaikan) yang berulang dengan menggunakan prinsip DRY (Don’t Repeat Yourself).

Framework menggalakkan anda supaya memisahkan kod persembahan, kod kawalan, dan logik perniagaan. Memudahkan penyelenggaraan pada masa akan datang, memudahkan aktiviti pengayahpijat (debug) dan pelbagai lagi bergantung pada objektif-objektif framework tersebut (contohnya CakePHP, salah satu kebolehannya adalah ianya dapat mempercepatkan pembangunan CRUD aplikasi web).

Framework juga mempercepatkan pembangunan perisian kerana ia menyediakan ‘helper’ dan ‘library’ yang biasa digunapakai dalam pembangunan perisian seperti ORM, Date Manipulation, Upload, Profiling, Unicode, etc (seperti yang saya nyatakan diatas).

Framework mana yang bagus?
Tiada satu framework yang bagus untuk semua. Semua mempunyai kelemahan dan kelebihan. Untuk mengetahui dengan lebih tentang kelebihannya adalah dengan memahami objektif framework tersebut, feature-feature dan juga dengan mencubanya.

Kesimpulannya, kepentingan framework adalah kerana ianya..

  • menggalakkan ‘best practices
  • mempercepatkan pembangunan aplikasi
  • menyediakan modul, library dan helper untuk menyelesaikan permasalahan umum
  • memisahkan kod persembahan daripada kod pemprosesan (logik perniagaan, akses pangkalan data, etc)
  • memudahkan komunikasi (penggunaan istilah) diantara pengaturcara lain jika mereka menggunakan framework yang lebih kurang sama
  • mempunyai komuniti untuk membantu anda (jika anda menggunakan framework sendiri, maka tiada komuniti)
  • mempunyai pengaturcara khas untuk pembangunan framework tersebut maka anda tak perlu membangunkannya sendiri, hanya fokus pada aplikasi yang hendak dibangunkan

Itu adalah diantara yang dapat saya fikirkan buat masa ini, mungkin ada lebih lagi.

Dari sudut perniagaan, mengapa perlu menggunakan framework? Mempercepatkan prototaip, memudahkan penyelenggaran (mengurangkan error dan jika ada error lebih mudah untuk menjejakinya), memudahkan integrasi dengan aplikasi 3rd party (SAP, Peoplesoft, Facebook, Google Apps, Google Single Sign-on (SSO), dan bermacam lagi) bermaksud anda dapat melakukan lebih dalam masa yang singkat (berbanding tanpa menggunakan framework).

Masih kurang faham? Pilih satu framework, pilih satu projek (contohnya Pengurusan Tugasan (task management), Guestbook, Blog, etc) dan mula mengkod (berpandukan dokumentasi ataupun tutorial framework tersebut). Anda akan mendapat gambaran yang lebih jelas mengenainya apabila anda menggunakannya.

Selamat programming!

Sumber

Membuat penganggaran masa untuk tugasan

Posted by mkhairul

Salah satu daripada aktiviti yang selalu dilakukan pada masa kerja ialah membuat penganggaran masa yang diperlukan untuk menyiapkan tugasan tersebut. Melainkan anda mempunyai pengalaman membuat tugasan yang diberikan, elakkan daripada memberi anggaran secara spontan (kerana ianya akan kembali menyusahkan hidup anda kelak).

Jika berada dalam situasi dimana anda diminta membuat penganggaran spontan, maka anda perlu minta sedikit masa untuk membuat penganggaran tersebut dan anda akan kembali memberikan jawapan setelah anda selesai membuat penganggaran dalam 30 minit ke satu jam. Ini juga bergantung pada situasi, jika bos anda mendesak anda memberi anggaran kerana beliau harus memberi jawapan dalam meeting sebentar lagi (ini silap bos anda juga kerana last minute), maka pada masa itu terpaksalah memberi anggaran yang tidak bersandarkan fakta (dan kemungkinan besar anda tidak dapat memenuhinya).

Tapi jangan pula tugasan macam tukar warna teks dan mengubah saiz ruangan teks mengambil masa. Itu benda remeh, dan dapat diselesaikan dengan cepat. Yang dimaksudkan adalah tugasan yang mempunyai impak terhadap fungsi aplikasi ataupun projek secara keseluruhan.

Contoh yang boleh saya berikan adalah membuat suatu borang web (form) untuk permohonan yang ringkas.

  • Borang web, mempunyai ruangan teks seperti Nama, Alamat, No. Telefon, Email, dsbnya.
  • Mempunyai antaramuka admin yang dapat melihat maklumat-maklumat pengguna daripada penghantaran borang tersebut
  • Menghantar mesej kepada pengguna melalui email bahawa permohonannya telahpun diproses dan jadual ujian percubaan akan diberikan pada mereka. Mesej email mengandungi kata pengguna, laluan, masa dan laman web untuk mengambil ujian tersebut.

Agak mudah? Mungkin ya mungkin tidak. Bergantung pada pengalaman anda. Daripada keperluan pengguna tersebut, saya diminta untuk membuat anggaran. Anggaran yang dimaksudkan adalah borang dan antaramuka admin tersebut siap dan boleh dipakai.

Sebelum anda teruskan membaca, cuba anda membuat anggaran.

*tengok jam*

….. ok, sudah? Anda yakin?
Teruskan membaca untuk mendapat gambaran disebalik tabir membuat anggaran.

schedulereview13

(more…)

Selamat Datang ke Sembang Programming!

Posted by mkhairul

Selamat datang ke laman web SembangProgramming. Disini saya akan post tips, artikel dan juga coretan mengenai pengaturcaraan. Kebanyakannya adalah mengenai aplikasi web.

Laman web ini agak baru dibangunkan, sebarang soalan dialu-alukan. Untuk maklumat lanjut mengenai laman web ini, sila pergi ke Tentang SembangProgramming.