Archive for the ‘programming’ Category

CamelCase

Posted by mkhairul

Apa itu CamelCase?
Di wikipedia dia tulis, gabungan perkataan dimana setiap element (perkataan) dicantum tanpa menggunakan ruang kosong (space) dan setiap huruf di permulaan perkataan adalah besar (capital letter).

Contohnya jika anda mempunyai fungsi yang dipanggil..

get_items_in_list

Dalam CamelCase, ia ditulis sebegini,

GetItemsInList

Saya lebih menggemari pemisahan perkataan dengan menggunakan underscore ( _ ), dalam penamaan fungsi (function). Senang nak baca, walaupun agak panjang, tapi senang nak baca tu yang penting.

Tapi yang penting, kena konsisten. Jangan sekejap CamelCase sekejap , sekejap benda lain. Kena ada guideline untuk cara penulisan. Kalau setiap programmer ada style masing-masing (ada yang takdak style, ikut sedap hati dan mood.  Sekejap camelcase, sekejap hungarian notation, etc) haru-biru la gamaknya.  Dan kalau kena maintain sistem, programmer sebelum ni dah pakai CamelCase secara konsisten terpaksa la ikut.

Oleh kerana saya telah menulis pelbagai kod sebagai projek sampingan (pet project) yang tidak dapat disiapkan (tiba-tiba banyak pulak kerja) dan dibiarkan terbengkalai selama 3-6 bulan (ada yang sampai bertahun) dan kemudiannya saya sambung balik, ianya secara tidak langsung melatih saya untuk menulis kod dengan lebih teliti supaya  pada masa akan datang saya dapat memahami kod yang ditulis dan sambung menulis kod tersebut.

Ok, setakat tu sahaja untuk hari ni. Nak kena sambung baca kod orang (dan baiki indentation, *sigh*, masih ramai tak reti guna IDE dengan betul).

Selamat Programming!

Asas dan Pengenalan C++

Posted by mkhairul

E-buku yang disediakan oleh En. Najmi (teruskan usaha!) dan diuploadkan oleh beliau ke Scribd.
Asas dan Pengenalan C++ dalam Bahasa Melayu

Asas dan Pengenalan C++ dalam Bahasa Melayu_1258991179845

Saya pun tak berapa reti C++, maklumlah selama bekerja ni tak berpeluang nak guna.

Integrated Development Environment (IDE)

Posted by mkhairul

Salah satu peralatan yang penting dalam perjuangan seseorang pengaturcara adalah IDE. Jika anda menggunakan Notepad++ ataupun Textpad, perisian tersebut bukanlah IDE, ianya adalah text editor. Sesuai untuk menyunting (edit) kod tetapi tidak sesuai untuk membangunkan perisian.

screencap_24-08-2009-22.32.04Saya tidak menterjemah IDE kerana saya takut akan hasil daripada terjemahan saya :D , dan jika ianya diterjemahkan pun anda tidak mungkin akan digunakan kebanyakan masa (99% daripada masa anda membangunkan perisian/bekerja), melainkan anda vendor kerajaan ataupun kakitangan kerajaan, itupun didalam kertas kerja. Kalau anda tahu, dialu-alukan memberitahu saya didalam ruangan komen. :D

Jadi, apa yang anda cari didalam IDE? Sudah tentulah fungsi untuk memudahkan aktiviti pengaturcaraan, tetapi apakah itu? Jikalau anda mempunyai ’swiss army knife’ tetapi tidak tahu apa yang boleh dilakukannya selain memotong, anda berada dalam keadaan yang rugi. Rugi kerana tidak menggunakan IDE anda dengan sepenuhnya (50% pun oklah). Anda tidak perlu mengenali kesemua fungsi didalam IDE anda, setakat tahu apa yang anda mahu, itu pun memadai.

Sebuah IDE terdiri daripada:

  • source code editor
  • a compiler and/or an interpreter
  • build automation tools
  • a debugger (ataupun dalam BM, pengayahpijat)

(more…)

Persiapan dalam Pembangunan Perisian

Posted by mkhairul

Bagaimana anda bersiap sedia untuk pergi ke shopping complex dengan awek? Gel letak banyak-banyak (kasi bersinar sikit), minyak wangi satu botol (dari jauh orang dah boleh tau), kasut branded, tali pinggang, check kat cermin supaya kemas, baca bismillah dan kemudian bertolak.

Begitu juga dalam programming, terdapat beberapa langkah persediaan yang perlu dilaksanakan sebelum memulakan aktiviti ini.

Jika hanya anda seorang:

Jika lebih dari seorang:

  • version control
  • issue tracking (jika lebih dari seorang) ataupun mana mana perisian yang dapat senaraikan tugas / isu.
  • wiki
  • coding guideline
  • terdapat beberapa lagi yang tidak akan disentuh disini seperti automated testing, automated build/deployment

(more…)