Belajar CFML dalam Bahasa Melayu: laluan 30 hari
Pelan 30 hari belajar CFML dan Lucee dalam Bahasa Melayu: matlamat mingguan, topik harian, latihan kecil dan ukuran kemajuan supaya anda tahu bila sudah faham.

Kandungan
Belajar CFML dalam Bahasa Melayu: laluan 30 hari
CFML ialah bahasa pelayan yang membina laman web dinamik, dan Lucee ialah enjin sumber terbuka yang menjalankannya. Rencana ini ialah pelan 30 hari yang boleh anda ikut sendiri: empat minggu, setiap minggu satu matlamat yang jelas, topik harian yang ringkas, dan satu cara untuk mengukur sama ada anda benar-benar sudah faham. Ia ditulis untuk orang yang mahu bermula dari sifar tanpa membuang masa pada bahan yang tidak tersusun. Tidak perlu tahu Java, dan tidak perlu pengalaman rangka kerja. Pada penghujung hari ke-30, anda bukan sekadar kenal sintaks: anda boleh membina aplikasi kecil yang membaca dan menulis data, dengan kod tersusun dan ujian automatik yang melindunginya daripada regresi.
Apa yang anda perlukan sebelum mula
Satu komputer dengan Lucee terpasang sudah mencukupi. Ikut panduan pemasangan Lucee untuk menyediakannya dalam masa lebih kurang satu jam, sama ada secara terus atau melalui Docker. Anda tidak perlu menulis Java: Lucee berjalan di atasnya, tetapi anda hanya menulis CFML. Untuk menulis kod, mana-mana editor teks memadai, tetapi editor dengan penyerlahan sintaks CFML, seperti VS Code dengan sambungan Lucee, menjadikan kesilapan kecil mudah dikesan sejak awal. Jika anda belum pasti apa beza antara CFML, Lucee dan Adobe ColdFusion, baca apa itu Lucee dan CFML dahulu, ia menjawab semua soalan asas sebelum anda menulis satu baris kod.
Pelan 30 hari sepintas lalu
| Minggu | Fokus | Hasil akhir |
|---|---|---|
| 1 | Asas bahasa dan pemasangan | Skrip hello world dan gelung yang berjalan |
| 2 | Data dan pangkalan data | Baca dan tulis data ke pangkalan data |
| 3 | Komponen dan keselamatan | Komponen kecil dengan pertanyaan selamat |
| 4 | Projek hujung ke hujung dan ujian | Aplikasi mini lengkap dengan ujian unit |
Empat minggu, kira-kira satu jam sehari. Jangan lompat minggu: setiap minggu bergantung kepada yang sebelumnya, dan topik minggu ketiga tidak masuk akal tanpa data minggu kedua.
Minggu 1: Asas bahasa dan pemasangan
Matlamat: Buka Lucee, tulis fail .cfm pertama anda, dan faham dua cara menulis CFML: gaya tag dan gaya skrip.
Topik harian:
- Hari 1: Pasang Lucee dan buka halaman pentadbir. Pastikan satu fail
index.cfmmemaparkan output. - Hari 2: Tulis hello world. Satu fail
.cfm, satu baris output. - Hari 3: Pemboleh ubah dan jenis asas: rentetan, nombor, boolean, struktur dan tatasusunan.
- Hari 4: Gelung
fordan gelung atas tatasusunan. Cetak satu senarai. - Hari 5: Syarat
ifdanelse. Bandingkan nilai dan cabang kod. - Hari 6: Gaya tag lawan gaya skrip. Baca tag vs script syntax dan tulis satu contoh dalam kedua-dua gaya.
- Hari 7: Ulang kaji. Tulis semula contoh hari 2 hingga 5 tanpa melihat nota.
Contoh hello world yang paling ringkas, dalam gaya skrip:
<cfscript>
writeOutput("Hello, Lucee!");
</cfscript>
Fail .cfm ini hidup di dalam folder webroot Lucee, dan anda membukanya melalui pelayar menggunakan alamat pelayan anda, bukan dengan mengklik dua kali fail itu. Latihan kecil: buat satu fail hello.cfm yang memaparkan nama anda dan tarikh hari ini, kemudian buka dalam pelayar dan pastikan ia memaparkan sesuatu yang masuk akal.
Anda sudah faham bila: anda boleh buka fail .cfm kosong, tulis satu gelung yang mencetak nombor 1 hingga 10, dan terangkan beza antara gaya tag dan gaya skrip dalam satu ayat.
Minggu 2: Data dan pangkalan data
Matlamat: Sambungkan Lucee ke pangkalan data, baca data, dan tulis semula data dengan selamat.
Topik harian:
- Hari 8: Daftar datasource dalam pentadbir Lucee. Baca panduan konfigurasi datasource untuk langkah tepat.
- Hari 9: Jalankan
SELECTpertama anda denganqueryExecute(). Cetak hasilnya. - Hari 10: Gelung hasil query dan papar sebagai senarai HTML.
- Hari 11: Parameter
cf_sql_*. Faham kenapa nilai tidak dicantum terus ke dalam SQL. - Hari 12:
INSERTdanUPDATEdengan parameter bernama. - Hari 13: Suntikan SQL. Baca panduan cfquery dan cfqueryparam dan cuba serang contoh anda sendiri.
- Hari 14: Ulang kaji. Bina satu halaman yang membaca senarai dan satu halaman yang menulis baris baharu.
Sebelum pertanyaan, satu gelung mudah supaya anda selesa dengan tatasusunan:
<cfscript>
topik = ["pemasangan", "sintaks", "pangkalan data", "komponen", "ujian"];
for (t in topik) {
writeOutput(t & chr(10));
}
</cfscript>
Kemudian pertanyaan pertama anda. Dalam contoh ini datasource bernama kedai dan jadual bernama produk, dengan lajur nama, harga dan stok:
<cfscript>
q = queryExecute(
sql = "SELECT nama, harga FROM produk WHERE stok > 0 ORDER BY nama",
params = [],
options = { datasource = "kedai" }
);
while (q.next()) {
writeOutput(q.nama & " : RM " & q.harga & chr(10));
}
</cfscript>
chr(10) ialah aksara baris baharu supaya setiap topik dicetak pada baris sendiri dalam output teks; dalam halaman HTML anda lazimnya menggantikannya dengan tag <br>. Latihan kecil: bina halaman produk.cfm yang memaparkan semua produk dengan stok melebihi sifar, dan halaman tambah.cfm yang memasukkan satu produk baharu melalui parameter. Semak bahawa nama yang mengandungi tanda petik tidak merosakkan pertanyaan.
Anda sudah faham bila: anda boleh menerangkan kenapa params = { nama = ... } lebih selamat daripada mencantum "'" & nama & "'", dan anda boleh membaca serta menulis satu baris tanpa ralat.
Minggu 3: Komponen dan keselamatan
Matlamat: Susun kod menjadi komponen (CFC) dan tutup lubang keselamatan yang biasa.
Topik harian:
- Hari 15: Tulis CFC pertama anda dengan satu fungsi. Baca fungsi dan komponen CFC.
- Hari 16: Panggil fungsi komponen dari halaman
.cfmdengannew cfc()dan panggil kaedahnya. - Hari 17: Argumen, jenis argumen dan nilai lalai dalam fungsi.
- Hari 18: Skop pemboleh ubah: apa yang hidup di dalam fungsi dan apa yang bocor ke halaman.
- Hari 19: Keselamatan output. Sentiasa escape output pengguna dengan
encodeForHTML(). - Hari 20: Suntikan SQL sekali lagi, kali ini dari dalam komponen. Setiap input mesti melalui parameter.
- Hari 21: Ulang kaji. Alihkan semua logik pangkalan data minggu 2 ke dalam satu CFC.
Latihan kecil: buat ProdukService.cfc dengan fungsi senaraiProduk() dan tambahProduk(nama, harga). Halaman .cfm hanya memanggil komponen, tidak menyentuh SQL secara langsung.
Komponen ialah unit kebolehgunaan semula: logik pangkalan data yang sama dipanggil oleh halaman senarai dan halaman tambah tanpa ditulis dua kali. Anda sudah faham bila: anda boleh menulis CFC, memanggilnya dari halaman, dan menerangkan kenapa input pengguna mesti di-escape sebelum dipaparkan dan di-parameter sebelum masuk ke SQL.
Minggu 4: Projek kecil hujung ke hujung dan ujian
Matlamat: Gabungkan semua yang dipelajari menjadi satu aplikasi mini, dan tulis ujian automatik untuknya.
Topik harian:
- Hari 22: Rancang projek: satu senarai tugasan ringkas. Tentukan jadual, komponen dan halaman yang diperlukan.
- Hari 23: Bina jadual dan CFC perkhidmatan.
- Hari 24: Bina halaman senarai dan borang tambah.
- Hari 25: Tambah kemas kini dan padam.
- Hari 26: Pasang TestBox dan tulis ujian unit pertama. Baca TestBox untuk ujian unit CFML.
- Hari 27: Tulis ujian untuk komponen perkhidmatan: senarai, tambah, padam.
- Hari 28: Jalankan ujian dan baiki apa yang gagal.
- Hari 29: Simpan projek ke Git dengan satu komit dan mesej yang jelas.
- Hari 30: Semakan akhir. Tulis README ringkas dan jalankan ujian sekali lagi.
Latihan kecil: aplikasi tugasan dengan empat operasi, iaitu lihat, tambah, edit dan padam, dan setiap operasi diuji dengan sekurang-kurangnya satu ujian unit.
Anda sudah faham bila: aplikasi tugasan anda berjalan hujung ke hujung, ujian unit anda hijau, dan anda boleh terangkan kepada orang lain cara ia dibina dalam beberapa ayat.
Soalan Lazim (FAQ)
Berapa jam sehari saya perlu luangkan?
Kira-kira satu jam sehari sudah mencukupi. Konsisten setiap hari lebih berharga daripada sesi panjang sekali seminggu, kerana bahasa ini terpahat melalui pengulangan kecil, bukan melalui hafalan.
Adakah saya perlu belajar Java untuk menggunakan Lucee?
Tidak. Lucee berjalan di atas Java, tetapi anda menulis CFML sahaja. Java hanya relevan apabila anda mahu menulis sambungan atau menyahpepijat lapisan bawah, dan itu bukan keperluan pemula.
Mengapa contoh di sini menggunakan gaya skrip dan bukan gaya tag?
Gaya skrip lebih padat dan lebih dekat dengan bahasa yang kebanyakan pembangun sudah kenal. Kedua-dua gaya sah dan menghasilkan perkara yang sama; baca tag vs script syntax untuk memilih yang anda selesa.
Bolehkah saya ikut pelan ini dengan Adobe ColdFusion dan bukan Lucee?
Sebahagian besar boleh, kerana sintaks CFML sama pada kedua-duanya. Tetapi contoh pemasangan dan beberapa fungsi di sini ditulis untuk Lucee, jadi kekal dengan Lucee untuk pelan ini.
Apa yang perlu saya buat selepas hari ke-30?
Ambil projek kecil yang sebenar: borang yang menyimpan data, satu laporan, atau integrasi dengan API. Kemudian perdalam dengan panduan queryExecute dan fungsi dan komponen CFC untuk langkah seterusnya.