Ini adalah rumusan dari PHP Advent 2009 : You really need to learn Javascript oleh Ed Finkler
Pembangun PHP kebiasaannya memakai beberapa topi semasa membangunkan aplikasi. Kebanyakan pengaturcara, menggunakan PHP untuk menambah fungsi bagi halaman web HTML mereka. Kemudahan PHP untuk digabungkan dengan HTML adalah antara beberapa sebab PHP meningkat kepopularannya.
Pada banyak bahagian, skil tersebut sudah cukup untuk kita. Aplikasi web kebanyakannya memfokuskan kepada teknologi di bahagian server. Halaman web yang dihasilkan adalah daripada proses dinamik di bahagian pelayan (server).
Dalam beberapa tahun kebelakangan ini, keadaan sudah berubah. Aplikasi menjadi semakin kompleks dan kaya dengan interaktiviti. Aplikasi web di bahagian pelayan semakin menjadi pembekal data kepada pihak pelayar. Semua interaktiviti berlaku di bahagian klien (Javascript). Perkara ini semakin menjadi normal kepada semua pihak (Facebook, Gmail) dan tidak akan berkurang pada masa akan datang.
Namun, Javascript bukanlah bahasa yang mudah. Sebelum ini jika anda menggunakan teknik salin dan tampal (copy n paste) sudah tidak sesuai lagi. Javascript tidak boleh menjadi bahasa kelas kedua dalam aplikasi web. Anda juga tidak boleh mengharapkan Javascript dihasilkan dari PHP. Pemahaman yang baik tentang Javascript (Object, DOM, Event, Variable scope) diperlukan bagi menghasilkan aplikasi web yang terbaik.
Berita buruk bagi semua adalah belajar Javascript bukanlah mudah, anda perlukan usahaa kerana konsep asas Javascript agak berbeza dengan PHP. Berita baiknya pula, anda akan menjadi lebih matang, lebih dikehendak oleh pasaran pekerjaan.
Apa yang lebih menarik bagi saya adalah apa yang melangkaui teknologi dibahagian pelayar (browser) , iaitu pengenalan kepada WRTs (Web Runtime platforms) . Ini adalah tapak bagi anda membangunkan aplikasi dekstop dan mobil menggunakan teknologi web seperti HTML, CSS dan Javascript. Titanium Desktop from Appcelerator adalah menarik kepada pembangun PHP, oleh kerana ia membenarkan anda membangunkan aplikasi desktop menggunakan PHP (juga Python dan Ruby) dengan tambahan Javascript.
Aplikasi mobile semakin meningkat kepopularannya setaraf dengan peningkatan perkakasan mobil yang lebih canggih. WRTs boleh digunakan di kebanyakan platform mobil, seperti:
Menggunakan WRT untuk menghasilkan aplikasi mobil selalunya lebih pantas berbanding dengan menggunakan SDK yang diberikan oleh pembekal perkakasan. Tambahan pula, kod yang dihasilkan pada web, boleh digunakan pada perkakasan lain, dengan sedikit atau tanpa perubahan lansung (kepada kod).
Sekarang, jika anda sudah teruja untuk belajar Javascript, ada beberapa tempat yang boleh anda rujuk.
Setelah anda sudah berjaya memahami Javascript, anda akan dapat rasa bahawa Javascript mempunyai persamaan dengan PHP. Kedua-dua bahasa adalah popular, teknologi terbuka dan tidak dipunyai oleh mana-mana syarikat. Secara kasarnya, PHP sentiasa akan menjadi bahasa yang penting dalam penghasilan aplikasi web, dan Javascript akan menjadi satu lagi elemen akhir untuk menghasilkan aplikasi web yang lebih kaya dan menarik.
Ini adalah rumusan dari PHP Advent 2009 : Comprehensible Code oleh Paul M Jones.
Seorang yang bodoh boleh menulis kod yang komputer faham. Pengaturcara yang baik, menulis kod yang manusia faham - Refactoring : Improving the Design of Existing Code, by Martin Fowler .
Membaca adalah sukar dan memerlukan usaha yang tinggi ( Jika tidak, sudah tentu peratus membaca di M'sia sangat tinggi ) . Setelah anda pandai membaca, anda biasa memandang rendah usaha membaca. Membaca dengan usaha untuk memahami masih kekal satu kerja yang sukar bagi semua.
Cuba bayangkan apakah usaha yang diperlukan untuk membaca kod orang lain ? . Bukan sahaja anda memerlukan pengetahuan dalam bahasa tersebut, anda perlu memahami corak dan struktur pengaturcaraan tersebut. Setiap pengaturcara adalah seorang pengarang yang mempunyai corak sendiri. Walaupun bahasa pengaturcaran tidak selembut bahasa percakapan, ia masih memerlukan usaha yang tinggi untuk memahaminya.
Usaha lawan Ganjaran
Membaca kod orang lain, dirasakan sebagai tidak produktif (Cuba anda habiskan masa membaca kod orang lain di ofis dalam masa satu hari, ia akan dianggap anda mencuri tulang sama dengan bermain Farmville di Facebook
. Dengan membaca, anda mungkin mendapat pengetahuan tentang pengaturcaraan, tetapi anda tidak menghasilkan perkara baru. Kepada pengaturcara, terutamanya yang berfikir mereka hanya dibayar untuk menulis kod (dah bukan membaca) , tahap usaha yang diperlukan untuk memahami kod orang lain adalah seperti membuang masa. Tahap usaha dengan ganjaran yang diterima sangat mengecewakan.
Tetapi, ganjaran untuk usaha menulis kod sangat mudah dan dirasakan sangat positif. Ia kurang mengecewakan dari cuba memahami kod orang lain, kerana anda adalah pembangun tersebut. Ia dirasakan amat positif oleh kerana setiap baris baru adalah satu yang anda boleh tunjuk sebagai hasil kepada usaha anda. Perasaan ini sangat sukar untuk ditolak.
Kod sebagai komunikasi
Masalah besar bagi membaca kod orang lain adalah mereka tidak berfikir tentang masa hadapan, tidak memikirkan kepada pembangun yang membaca aturcara mereka. Ia adalah normal untuk memikirkan kod anda adalah untuk komputer, tetapi fikiran tersebut adalah salah. Sebagai pengaturcara, anda terpaksa berhadapan dengan dua pembaca: komputer dan pengaturcara lain. Program anda adalah satu medium untuk komunikasi tidak langsung kepada pembangun lain. Kod adalah perbualan di antara anda dengan pengaturcara lain yang perlu berinteraksi dengannya.
Untuk pengaturcara lain , membaca kod anda adalah kerja yang sukar. Kepada merkea, membaca kod anda adalah pembelajaran yang baru. Mereka terpaksa belajar memahami apa yang anda cuba selesaikan dan kenapa anda perlu mengambil pendeketan tersebut. Setelah anda sedar, bahawa membaca kod adalah satu pembelajaran, anda akan mula menghargai bahawa anda harus menulis sebagai pengajarang kepada mereka supaya mudah memahami kod anda dengan lebih pantas. Ia memang lebih banyak kerja kepada anda, tetapi ganjaran yang tinggi bagi kerja tersebut adalah antara sebab pengaturcara suka (untuk terus membaca kod anda ).
Singkatan: apabila anda menulis kod, ingatlah kepada sesiapa yang malang terpaksa membaca kod anda. Orang yang malang itu mungkin anda dalam masa enam bulan akan datang.
Ke arah komunikasi yang lebih baik
Seni dalam perbualan.
Pemahaman teknikal dalam bahasa pengaturcaraan, tidak menjamin anda seorang yang mempunyai bakat untuk berkomunikasi di dalam kod. Seperti perbualan biasa, ia adalah satu seni dan bukan sains. Ia adalah bakat yang akan berkembang dengan latihan dan sentiasa ada ruang untuk diperbaiki.
Dengan melihat kod anda sebagai peluang untuk berkomunikasi dengan pembangun lain, saya harap anda akan melihat habuan yang tinggi bagi menulis sebagai pengajaran kepada orang yang perlu bekerja dengan kod anda, dengan itu menghadiahkan ganjaran yang tinggi bagi usaha membaca kod anda.
Memperbaiki kualiti perbualan anda di dalam kod akan meningkatkan lebih ramai orang bekerja dengan kod anda dan mengurangkan kekecewaan bagi orang lain memahami kehendak kod anda. Untuk orang lain, membaca dan memahamkan kod anda adalah kerja yang berat. Sentiasa ingat bahawa pembangun yang lain itu mungkin ada pada masa akan datang, datang semula untuk mengemaskinikan kerja anda. Jika bukan untuk orang lain, tulis kod yang mudah difahami untuk anda.
I'm a fan of Fedora 7 and has been using Csync2 for my Load Balancing project. The problem with Csync2 on Fedora 7 is they conflict with Dbmail. Csync2 using sqlite2 library but they conflict with dbmail that using sqlite3 library.
If you've encountered the problem with Csync2 and Fedora 7 like this guys in the maling list. After a bit of playing around, I think I've found a workaround (not a solution) .
1. Install sqlite2-devel ( will install sqlite2 )
yum install sqlite2-devel
2. uninstall dbmail
rpm -e dbmail.x.x (see rpm -qa | grep dbmail for detail)
3. I actually have try to uninstall / install again the csync2 before, but I expect if you do the 1,2 step above, you can use the csync2 application without uninstall csync2.
If you need the dbmail, you need to wait for a patch from Fedora guys. Anyway goodluck with your findings.
Anda menggunakan skill CSS dan Javascript Ninja anda, anda lihat di pelayar web (browser) anda dan anda pasti, ini adalah halaman web anda yang tercantik anda pernah hasilkan.
Soalannya, pernahkan anda lihat halaman web anda di semua pelayar ? Jika tidak anda perlu menjadikannya tabiat anda sebelum anda lancarkan halaman web anda. Walaupun sebagai pengaturcara PHP. Sistem anda akan dihakimi oleh pengguna dengan pandangan pertama. Jika anda membangunkan sistem anda di Firefox, dan pengguna anda menggunakan Internet Explorer dan tiba-tiba Javascript anda hanya berfungsi di Firefox merupakan satu tolakan pertama pengguna untuk menggunakan sistem anda.
Sekarang jika pengguna Windows, sudah ada banyak pelayar web yang boleh anda cuba secara percuma.
Semuanya adalah percuma di Windows, dan jika anda berada di Linux anda boleh gunakan.
Sebagai syarat untuk satu aplikasi itu untuk diikitiraf, 2 pelayar besar perlu di sokong. Internet Explorer dan Firefox/ Mozilla. Mungkin ada pengaturcara yang lebih ketat sokonganya. Tetapi bertambah pelayar yang perlu disokong, semakin besar pasukan yang perlu untuk membangunkannya.
Apakah pelayar yang anda gunakan untuk mencuba aplikasi anda ?