Apa itu Hudson?

Hudson – Dicipta oleh Kohsuke Kawaguchi dan berasaskan platform Java

Hudson

Hudson adalah open source tool untuk membantu integrasi pembinaan (build) dan pengujiaan (testing) perisian secara berterusan atau dikenali sebagai Continuous Integration (CI). Hudson berfungsi memantau tugas-tugas yang berulang seperti pembinaan perisian atau tugas-tugas yang sedang dilakukan oleh ejen-ejen server (Slave) untuk mengkoordinasi atau menghubungkan fail tertentu untuk menjadikan kod aturcara yang ditulis menjadi perisian yang lengkap.

Pembinaan Perisian (Software Build)

Pembinaan perisian adalah proses menukarkan kod aturcara kepada perisian atau program lengkap. Proses tersebut melibatkan pengkompil iaitu program yang menukarkan kod aturcara (C/C++, Java dsb) kepada bahasa mesin (digit 0 dan 1). Jika program tersebut adalah ringkas maka masa pembinaan tersebut adalah singkat dan cepat. Jika melibatkan sistem perisian yang kompleks dan besar, fail-fail kod aturcara adalah banyak dan sangat kebergantungan antara satu sama lain. Oleh itu, pembinaan perisian bagi perisian yang kompleks tersebut memerlukan integrasi yang canggih. Ini bagi memastikan versi fail kod aturcara yang digunapakai adalah versi tepat dan terkini untuk membantu melicinkan proses pembinaan perisian.

Carta Alir Mudah Penggunaan Hudson

Proses pembinaan perisian selalunya melibatkan perkakasan pembinaan atau build tool. Perkakasan pembinaan digunakan untuk mengawal dan memantau fail, program, konfigurasi fail yang terlibat. Contoh perkakasan tersebut Make, Ant, Maven, SCon dan Phing.

Utiliti build diperlukan untuk mengkompil dan menghubungkan pelbagai dalam jujukan atau kedudukan yang betul. Jika kod tersebut ti berubah sejak dari mula menulis aturcara maka fail tersebut tidak perlu dikompil lagi. Utiliti build dan penghubung (linkers) yang canggih berupaya untuk tidak mengulang kembali dari proses pengkompilan kod. Ini bertujuan untuk menjimatkan masa dalam pembinaan perisian. Di samping itu, utiliti build yang terkini mempunyai integrasi dengan program penyemakan kawalan atau control revision seperti subversion.

Peringkat / Tahap Pembinaan Perisian

Terdapat 5 tahap pembinaan perisian bermula dari aras mudah ke aras lebih kompleks:

Tahap 1: Proses pengkompil adalah manual dan hanya berlaku di bahagian pembangun

Tahap 2: Proses pengkompil adalah manual dan berlaku perkongsian di bahagian pembinaan

Tahap 3: Proses pengkompil berlaku secara automatik setiap hari

Tahap 4: Proses pemasangan pembinaan perisian berlaku secara automatik  setiap hari

Tahap 5: Proses pemasangan pembinaan dan pengujian perisian berlaku secara berterusan setiap hari. Hasilnya adalah perisian yang siap untuk dipasang.

Sumber:

  • Wikipedia
  • Hudson-ci.org
  • Prpm.dbp.gov.my

Eclipse – Pelantar Pembangunan Perisian Terbaik

Eclipse Juno versi 4.2.2 adalah versi Eclipse terbaru

Pengenalan

Eclipse merupakan alat bantu pembangun atau pengaturcara dalam merekabentuk, membangun, menguji dan melengkapkan pembangunan (deployment) perisian sama ada berbentuk desktop client atau web service. Eclipse boleh dikatakan sebagai kerangka utama untuk pembangunan berteraskan bahasa aturcara Ada, JAVA, Ruby Rails, Phython, PHP dan C/C++. Sebagai contoh, kerangka Eclipse perlu dipasang bersama Java Development Toolkit (JDT) untuk menyokong JAVA, PHP Development Toolkit (PDT) untuk bahasa PHP dan C/C++ Development Toolkit untuk bahasa C/C++. Eclipse sebenarnya merupakan projek open source berteraskan percuma dan mempunyai komuniti pembangunan sangat agresif di seluruh dunia.

Komponen Utama Eclipse

Projek Eclipse ini sebenarnya digerakkan oleh Project Managment Commitee (PMC) yang memantau keseluruhan operasi ini. Projek Eclipse ini terbahagi 3 komponen besar iaitu: 1) Kerangka Utama atau Platform 2) Java Development Toolkit (JDT) – dipelopori oleh Enrich Gamma iaitu seorang tokoh dalam Design Pattern dan Agile Development Methodology. 3) Persekitaran Pembangunan Plugin atau Plugin Development Environment (PDE). 3 komponen terbesar ini mempunyai ribuan komuniti pembangunan yang sangat berdedikasi dan bijak pandai untuk memenuhi keperluan pembangunan seantero dunia sama ada pembangun persendirian/bebas atau tim pembangunan dari industri. Sebagai contoh, komponen Kerangka Utama terdiri dari sub-komponen Search, Help, Compare dan komponen JDT mempunyai sub komponen Debug, UI dan Core.

Analogi

Untuk bahasa mudah, Eclipse boleh diandaikan sebagai bengkel tukang besi. Bahan mentah utama dalam bengkel tersebut adalah besi lebur dalam bengkel tersebut, mudah ditempa untuk dijadikan peralatan besi yang lain. Seperti juga Eclipse, kod aturcara(besi lebur) akan ditulis mengikut keperluan dan fungsi yang dikehendaki,  akhirnya akan dikompil (compile) menjadi program atau perisian yang lengkap.

Sumber:

  • Eclipse in Action: A guide for Java Developer book
  • Wikipedia

Panduan / Tips Membangunkan Aplikasi Web / Sistem Berasaskan Web

Web Application Development

Figure Courtesy of WAD

Pembangunan Aplikasi Web  atau Sistem Berasaskan Web (Online System) memerlukan langkah dan praktis yang betul, teknologi yang hendak digunakan di samping perkakasan (tools) yang sesuai. Sebelum pengaturcara memulakan langkah pembangunan, molek kiranya jika latar belakang masalah sesebuah sistem telah dikenalpasti dan inovasi idea baru dapat dijanakan bagi memenuhi keperluan pengguna.

Untuk mendapatkan idea bagi membangunkan sistem / aplikasi web, boleh rujuk post saya bertajuk : Projek Akhir Sarjana Muda – Tips Mencari Idea Tajuk Projek Akhir yang Berkualiti

Oleh itu, post kali ini akan membincangkan langkah-langkah yang perlu diambil oleh pengaturcara web baru sebelum membangunkan sesebuah aplikasi web :

  1. Kenal pasti idea yang ingin dikembangkan menjadi sebuah sistem. Kaji latar belakang sistem sedia ada dan cari kelebihan dan kelemahan sistem tersebut.
  2. Kenal pasti teknologi, pangkalan data dan bahasa pengaturcara web yang sesuai dengan anda. Anda tidak perlu menguasai semua bahasa pengaturcaraan web / sistem pangkalan data untuk menjadi pengaturcara. Hanya pilih satu dan kuasai bahasa / pangkalan data tersebut sedalam-dalamnya.
  3. Terdapat pelbagai kaedah  / metodologi pembangunan sistem seperti Model Air Terjun (Waterfall), Pengatucaraan Ekstrem (Extreme Programming), Tangkas (Agile) dsb. Oleh itu, tentukan kaedah yang sesuai dengan strategi anda. Walau bagaimanapun, dalam dunia sebenar, pengaturcara bebas menggunakan strategi masing-masing sama ada pembangunan secara individu atau berkumpulan.
  4. Pengujian mesti dilaksanakan pada setiap fasa / modul yang dibangunkan. Ini bagi memudahkan pengaturcara sentiasa peka terhadap perubahan keperluan pengguna / klien.
  5. Pilih perisian dan perkakasan yang sesuai dan berpadanan dengan teknologi dan bahasa pengaturacaraan yang ini digunakan. Untuk mengetahui apakah perisian dan teknologi yang berpadanan, boleh rujuk laman web berikut: Web Application Development .

Teknologi dan Bahasa Pengaturcaraan memang cepat berkembang kerana sesebuah komuniti pengaturcara sedaya upaya mencari cara / fungsi yang terbaik untuk mempercepatkan masa pembangunan dan meningkatkan kebolehgunaan (Usability). Contoh komuniti pengaturcara / ahli teknologi ialah seperti berikut:

P/s: Madrasah Puasa ialah platform terbaik untuk diri kita mengenal dan menyucikan diri. Rebut sebaik mungkin masa yang ada untuk kebajikan kerana Ramadhan akan datang belum tentu ada untuk kita. Renung-renungkanlah. ~Firdaus-Harun.com