Programming dan ‘kalau’

Most audience in Facebook Groups;
Total liked and shared within Facebook network;

Hari ni aku nak dedahkan 1 fakta tentang programming kepada beginner atau sesiapa yg berminat nak jadi programmer, iaitu hampir setiap programmer akan menggunakan ‘kalau’ masa programming. Entry ni mungkin boleh dijadikan tips untuk mulakan belajar programming, tak kesahlah apa jenis language sekalipon, iaitu seseorang programmer tu takkan lepas daripada menggunakan ‘kalau’. Bagi yg dah lama dalam programming dan dah start layan Nginx pulak, berhati-hati bila gunakan ‘kalau’ sebab ‘kalau’ adalah syaitan / hantu yg jahat atau mungkin kita pernah dengar If is evil. Seperti yg pernah aku ceritakan sebelum ni dalam Tips belajar programming, iaitu kena cuba wujudkan 1 masalah untuk cuba diselesaikan menggunakan software, dan dalam entry Continuous programming ni pulak, seseorang programmer tu kena berubah cara berfikir / membuat keputusan seperti sebuah robot, iaitu ‘kalau macam ni, kena buat begini, kalu macam tu, kena buat begitu, selebihnya kena buat macam tu’. Semua ‘kalau’ tu adalah imaginasi dalam kepala yg mungkin tak sama bila buat coding. Contohnya kita nak buat 1 software untuk kira duit. Kotak A dan kotak B. Secara ringkasnya [Nilai yg diisi dalam kotak A] + [Nilai yg diisi dalam kotak B] = [Jumlah]. Software tu akan boleh menjumlahkan nilai sekiranya kedua-dua kotak tu diisi angka, tapi macam mana kalau kita isi huruf dalam mana-mana kotak tu?

Hari ni aku nak dedahkan 1 fakta tentang programming kepada beginner atau sesiapa yg berminat nak jadi programmer, iaitu hampir setiap programmer akan menggunakan ‘kalau’ masa programming. Entry ni mungkin boleh dijadikan tips untuk mulakan belajar programming, tak kesahlah apa jenis language sekalipon, iaitu seseorang programmer tu takkan lepas daripada menggunakan ‘kalau’. Bagi yg dah lama dalam programming dan dah start layan Nginx pulak, berhati-hati bila gunakan ‘kalau’ sebab ‘kalau’ adalah syaitan / hantu yg jahat atau mungkin kita pernah dengar If is evil. Seperti yg pernah aku ceritakan sebelum ni dalam Tips belajar programming, iaitu kena cuba wujudkan 1 masalah untuk cuba diselesaikan menggunakan software, dan dalam entry Continuous programming ni pulak, seseorang programmer tu kena berubah cara berfikir / membuat keputusan seperti sebuah robot, iaitu ‘kalau macam ni, kena buat begini, kalu macam tu, kena buat begitu, selebihnya kena buat macam tu’. Semua ‘kalau’ tu adalah imaginasi dalam kepala yg mungkin tak sama bila buat coding. Contohnya kita nak buat 1 software untuk kira duit. Kotak A dan kotak B. Secara ringkasnya [Nilai yg diisi dalam kotak A] + [Nilai yg diisi dalam kotak B] = [Jumlah]. Software tu akan boleh menjumlahkan nilai sekiranya kedua-dua kotak tu diisi angka, tapi macam mana kalau kita isi huruf dalam mana-mana kotak tu?

Apa yg boleh aku kongsikan daripada pengalaman adalah seorang programmer wajib mampu untuk berimaginasi dalam banyak keadaan dan situasi. Dalam contoh tadi hanyalah penggunaan ‘kalau’ untuk situasi yg senang kita faham. Bawah ni aku senaraikan 5 kriteria asas (klik + icon untuk baca penerangan) untuk nak tentukan bila nak gunakan ‘kalau’ (aku fokuskan pada web programming);

1) Had untuk seseorang user.

Dalam programming kita sebut user level / user privileges yg kita set menggunakan Access Control Limit (ACL). Programmer perlu ambik kira had untuk setiap jenis user level. Contohnya dalam Facebook group, Administrator / Admin sesebuah group boleh ban mana-mana user yg dia suka, tapi group member tak boleh. So dalam coding, kita kena letak ‘if user level is member { can do this only } elseif user level is admin { can do anything } else { do nothing }‘. User level untuk setiap software adalah berbeza bergantung kepada penggunaan. User dalam accounting software adalah tak sama dengan learning management system. Perlu jugak kita ambik kira tentang bilangan user level. Contohnya dalam Multi-Level-Marketing system, mungkin sekarang ada 3 level, iaitu Leader, Downline level 1, dan Downline level 2. Pada masa-masa depan mungkin ada Downline level 3 pulak. Kita kena fikir kemungkinan yg akan berlaku pada user level tu di masa-masa akan datang.

2) Jenis alat / device.

Benda yg paling senang kita nampak adalah laptop, smartphone, dan tablet. Kriteria ni wujud disebabkan perbezaan saiz screen / paparan untuk user. Mungkin ini tak jadi masalah besar sekiranya kita gunakan Bootstrap sebab dah memang ada features untuk Responsive Web Design (RWD). Bagi programmer yg tak pakai RWD, kena gunakan ‘kalau’ untuk membezakan setiap device yg user gunakan. Kalau user gunakan laptop, nampak macam ni. Kalau smartphone, nampak macam ni. Tujuannya ialah untuk membolehkan software yg dibuat tu tiada masalah bila user gunakan pelbagai jenis device. Mungkin masa kat office boleh gunakan laptop, tapi bila kat luar, gunakan smartphone.

3) Web client software.

Bila sebut web programming biasanya akan berkait dengan server walaupon localhost / komputer yg sama. Web client biasanya adalah web browser macam Google Chrome, Mozilla Firefox, dan Microsoft Edge. Orang-orang baru mungkin tak kenal Internet Explorer #IhateWindows. Web client ni membezakan paparan sesebuah user interface (UI) untuk software kita. Contohnya user yg access ke system menggunakan Google Chrome mungkin nampak lain dengan user yg access menggunakan Microsoft Edge. So bagi programmer yg masih tak gunakan RWD, kena belajar Cross-Browser compatibility.

4) Tarikh, waktu, dan tempoh masa.

Sesetengah system macam Internet Banking tak membenarkan user biasa untuk access pada tempoh masa tertentu. Contohnya kita tak boleh access ke Maybank2u pada jam 12:00 hingga 12:30 tengah malam mungkin sebab nak elakkan isu tarikh berlakunya sesuatu transaction, atau mungkin jugak tempoh masa tu digunakan oleh Maybank untuk server switching. So dalam scope programming, seseorang programmer biasanya perlu menggunakan ‘kalau’ untuk tempoh masa tertentu contohnya masa nak buat maintenance. Adalah penting untuk kita gunakan ‘kalau’ dalam tempoh maintenance untuk mengelakkan data rosak / hilang. Contohnya kita nak ubah column kat database table, tapi terlupa untuk aktifkan ‘Maintenance mode’, dan pada masa yg sama, ada user tengah key-in data.

5) Exception / Error handling.

Secara asasnya, web-based system akan paparkan technical error message yg mungkin susah difahami user biasa. Contohnya Error 404, cuba tanya pakcik makcik tu apa yg diaorang faham bila nampak benda macam tu kat website. So sebagai programmer, kita kena cuba handle sesuatu error untuk dipaparkan dalam bentuk yg senang difahami. Sebab tu dalam Laravel ada line APP_DEBUG=false untuk nak elakkan daripada user nampak error pelik-pelik, dan jugak untuk security reasons.

Aku pernah baca statement macam “Takde pon software yg secure” dan aku setuju dengan statement tu sebab bidang ICT ni adalah suatu bidang yg berkembang sangat cepat. Hampir setiap minggu ada je security vulnerability dan updates baru. Mungkin bulan lepas website kita selamat, tapi masuk bulan ni dah kena hack. Dah tu siapa suruh kau tak hire orang untuk buat website maintenance? Kebanyakan puncanya adalah ‘kalau’. Para hacker ni suka sangat test sesebuah system menggunakan ‘kalau’ ni hingga wujudnya SQL injection, code injection, dan macam-macam lagi.

Kesimpulan untuk entry ni adalah dalam programming, kita tidak akan terlepas daripada kena ambik kira penggunaan ‘kalau’ untuk solution / system yg dibuat. Bagi sesiapa yg acah-acah minat programming tapi tak suka nak fikir dalam-dalam untuk nak selesaikan sesuatu masalah, lebih baik cari kerja lain yg dirasakan lebih senang. Jangan paksa diri untuk teruskan dengan programming sebab hasilnya mungkin tak mencapai objektif pengguna. InshaAllah aku ceritakan pasal Online Payment pulak lepas ni. Terima kasih pada subscriber blog ni. Bagi yg belum, just subscribe free je guna akaun Facebook

untuk baca entry lebih awal sebelum aku share kat social media.