Langkau ke kandungan utama

Bersosial dengan Kod Program?

Assalamualaikum


Lama dah tak menulis pasal programming. Kerja pun makin sibuk dan tugas pun makin banyak. Tapi, bila lama dah tak menulis, kepala mula mengarang ayat-ayat dengan sendiri. Salah satu tanda kerinduan untuk menekan papan kekunci ini untuk selain kod program.

Dunia hari ini masih lagi dalam momentum ledakan media sosial yang memang amat berkuasa sehingga mampu mengalih sesebuah negara.

Namun, bagi seseorang dalam bidang kejuruteraan perisian, sosial media adalah salah satu aplikasi yang digunakan untuk bersosial.

Kita berkongsi gambar, teks, video, cerita, karangan, kisah lucu, kisah yang tak sepatutnya dikisahkan atau tak sepatutnya dikhabarkan pun dikongsi dalam media sosial. Namun, bagi juruaturcara, perkongsian kod aturcara adalah satu bentuk media sosial yang sangat 'trending' sekarang ini.

Bersosial dengan Kod Program

Penulisan kod program atau kod aturcara adalah periuk nasi bagi seseorang juruprogram, jurutera perisian, juruanalisa dan semua profesyen yang berkaitan dengan pembangunan perisian. Untuk aplikasi yang kecil dan ringkas, seorang juruprogram sudah memadai. Namun, untuk aplikasi yang besar dan mempunyai banyak modul yang merentasi pelbagai jabatan misalnya, seorang juruprogram akan mengambil masa yang lama untuk menyiapkannya.

Jadi, kita perlukan lebih dari seorang juruprogram. Namun, apabila kod program dibangunkan oleh 2 orang yang berbeza pada satu-satu masa, percanggahan dari segi cara penulisan, susun atur kod dan aliran kerja logik dalam program adalah amat ketara. 

Perlu diingat, penulisan kod program yang baik adalah yang paling mudah dibaca dan difahami oleh juruprogram yang lain.

Program dibangunkan untuk pengguna, Kod program ditulis untuk juruprogram yang lain
Oleh kerana itu, kita perlukan satu mekanisma yang memudahkan simpulan percanggahan ini dileraikan dan dimeterai satu persefahaman khusus tentang kod program yang paling mudah difahami dan paling efisyen digunakan.

Oleh itu, juruprogram perlu bersosial dengan berkongsi kod program mereka. (walaupun ramai yang kurang bersosial 'orang komputer' ni)


Bersosial dengan Github

Kebolehan berkongsi kod program dengan juruprogram yang lain merupakan suatu kemudahan yang sangat berguna. Apatah lagi cara perkongsian itu merupakan suatu kebiasaan pada hari ini iaitu menggunakan alatan yang seakan sama dengan media sosial. Laman web dan aplikasi telefon adalah platform yang sangat berkesan memandangkan kerja pembangunan program ini hampir 100% berada dalam komputer. 

Github merupakan laman web yang bermegah dengan motto "Social Coding". Ironinya, juruprogram serata dunia memang bersosial dengan berkongsi kod program mereka di github. Perisian Kernel Linux yang merupakan sistem pengoperasian terbesar di dunia juga dihoskan di Github. Dan seperti yang saya nyatakan tadi, kod Linux ini dikongsi, dibina bersama-sama, dibincangkan, dikongsi lagi, diubah, disalin, diagihkan, ditukar mengikut keperluan mana-mana individu di laman web github.com ini. 

Jika kita layari https://github.com/torvalds/linux/graphs/contributors, lebih 5000 juruprogram telah menyumbangkan kodprogram mereke kepada projek Linux ini secara atas talian. Dan kita dapat melihat perbincangan mereka secara lansung dalam laman web tersebut.


Bagaimana ini boleh berlaku? 

1. Git

Alatan yang digunakan untuk membolehkan perkongsian ini berlaku adalah Git. Ianya merupakan satu aplikasi yang digunakan untuk menguruskan versi aplikasi semasa pembangunan dijalankan. 

Git adalah Sistem kawalan Versi yang dibangunkan oleh Linus Torvald sendiri iaitu orang yang mula-mula membina Linux. Git adalah pengurusan versi aplikasi secara teragih dan terpusat. 

2. Branching
Dalam git, kod program yang disalin dari github boleh diubah tanpa menggangu kod asal iaitu dengan menggunakan fungsi branching.

Branching seolah-olah kita menyalin kodprogram itu untuk kita lakukan perubahan dan kemudian, dengan mudah kita boleh gabungkan atau 'merge' kembali dengan kodprogram asal. Sebarang konflik antara kod asal dan kod yang baru akan diuruskan oleh Git dan kita boleh menentukan kod mana yang perlu disimpan dan kod mana perlu dibuang semasa konflik berlaku.

3. Pull Request dan Code Review
Permohonan untuk gabungkan kod kita dengan kod utama di laman web github atau dipanggil Repositori Utama, dalah digelar Pull Request

Pull Request dilaksanakan oleh mana-mana juruprogram yang telah membuat perubahan terhadap kodprogram utama tersebut dalam branchnya sendiri, dan ingin memasukkan kodprogram tersebut ke dalam repositori utama. Pull Request dilaksanakan dalam laman web github.

Selepas permohonan dibuat, maka bermulalah Code Review. Kesemua juruprogram atau ahli-ahli yang dilantik dan diberi kepercayaan akan melihat, mencuba dan menilai kodprogram dalam Pull Request tadi. Interaksi dan komunikasi ini berlaku dalam laman web github. 

Jika kesemua berpuas hati dan Pull request tersebut adalah amat baik untuk aplikasi tersebut, pemilik repository atau ahlinya boleh menerima pull request tersebut. Maka, perubahan telah berlaku terhadap kodprogram aplikasi tersebut.

4. Fetch dan Pull
Oleh kerana aplikasi ini dibina oleh ramai juruprogram, sebarang perubahan dalam repositori utama perlu dikemaskini oleh kesemua juruprogram yang lain selepas mana-mana pull request telah diterima. Namun, tugas itu amat mudah sekiranya menggunakan Git. Hanya dengan menggunakan arahan git pull, kod program yang baru ditambah tadi akan dimuatturun ke komputer masing-masing. Git fetch adalah untuk melihat jika ada sebarang perubahan tanpa memuat turun kod.


Oleh kerana kesemua yang berlaku dalam git dan github ini adalah berkisar tentang kerja seorang juruprogram, adalah 'tidak manis' pula kesemuanya ditulis dalam post ini.  :-)

Nantikanlah! tutorial git dalam bahasa melayu dalam post yang akan datang (insya-Allah tak lama lagi)


Wassalamualaikum






Ulasan

Catatan popular daripada blog ini

Apa Maksud RON dalam pengkelasan Petrol?

RON dan Petrol Oleh yusdirman, Oktober 2014 RON adalah singkatan daripada Research Octane Number Ianya kaedah penarafan bahan api. Lebih tinggi nilai RON, lebih mahal harga PETROL. Adakah minyak RON 97 lebih berkuasa berbanding RON 95? RON merujuk kepada tahap bahan api menahan rintangan "ketukan" semasa proses pembakaran oleh palam pencucuh dalam enjin. Ianya merujuk kepada tahap ketahanan bahan api untuk tidak terbakar sebelum dinyalakan oleh palam pencucuh dalam enjin. "ketukan" dalam konteks RON ini adalah apabila campuran bahan api dan udara dalam enjin terbakar lebih awal sebelum api dari palam pencucuh menbakarnya. Pembakaran awal ini mungkin disebabkan enjin terlalu panas. Haba dari silinder enjin itu sendiri mungkin telah menyalakan bahan api sebelum palam pencucuh menyala. Ini boleh menurunkan prestasi dan mungkin boleh memudaratkan enjin! Jadi, RON bukannya bermaksud LEBIH KUASA! Ianya bermaksud bahan api itu dapat menahan tekanan dari

Load Balancing dengan Nginx dan Puma

Load Balancing dengan Nginx dan Puma Tutorial ini adalah sangat ringkas hanya untuk menunjukkan kebolehan nginx sebagai load balancer yang dapat menjadi 'orang tengah' antara banyak server di belakangnya Keperluan 1. Paling kurang 2 server aplikasi 2. Satu server diinstall nginx Contoh Persekitaran yang sekarang 1. server1: os: debian application: ruby on rails web server : puma dns : myaplication1.yusdirman.com 2. server2: myaplication2.yusdirman.com os:debian application: ruby on rails web server : puma dns : myaplication1.yusdirman.com 3. nginx diinstall di server1 /ets/nginx/nginx.conf setup (default): worker_processes  2; worker_processes  auto; worker_rlimit_nofile 65536; error_log  logs/error.log  notice; error_log  logs/error.log  info; events {   worker_connections  65536; } http {   include       mime.types;   default_type  application/octet-stream;   sendfile        on;   tcp_nopush on;   tcp_nodelay on;   keepalive_tim

Server Redundancy - Pertindanan Komputer Pelayan

alkisahnya tercari-cari untuk buat server redundancy ( pertindihan komputer pelayan ) atas sebab perlunya server yang sentiasa on-line tanpa ada downtime yang lama. Dan, cabarannya adalah memang kami tak pernah jalani apa-apa latihan, pengalaman dan apa jua pengetahuan berkenaan teknologi ini. Yang pastinya, perlu banyak mengoogle. Setakat ini, ada banyak kaedah untuk memastikan aplikasi masih terus boleh berfungsi walaupun server mati/rosak. 1. guna 2 server yang sama. Bila satu mati, satu lagi yang masih hidup dapat terus melayan pengguna. 2. guna 2 talian rangkaian yang berbeza. Bila satu talian rosak/putus, masih ada satu lagi talian rangkaian yang berfungsi. 3. storan di server guna raid ( redundant array of independent disk ) atau dalam bahasa melayu : barisan disk berlainan yang bertindan. Raid dapat menjadikan sebilangan hd menjadi 1 dengan semua data pada 1 hd adalah sama dengan data pada hd 2. (mirroring) 4. satu IP maya untuk sebilangan server. 2 server yang mena