Apa pendapat Anda tentang subjek ini?
Metaprogramming umumnya dikaitkan dengan bahasa non-dinamis, karena ada waktu yang sulit dalam mencapai perilaku tertentu (seperti menerapkan ORM) tanpa banyak baris kode yang tidak produktif dan tidak cerdas.
Tetapi bahkan dalam bahasa yang lebih dinamis seperti PHP, pembuatan kode dapat benar-benar menyelamatkan hidup dan meningkatkan produktivitas dalam jumlah besar. Dalam kerangka kerja modern, sangat umum untuk memiliki perancah yang menghasilkan sebagian besar model, bentuk, pengujian, dan tindakan umum untuk objek bisnis tertentu yang Anda nyatakan. Ini adalah salah satu alasan mengapa kerangka kerja seperti symfony atau RoR begitu sukses, alat-alat penghasil kode membuat kode yang konsisten dengan sangat cepat dan meningkatkan produktivitas pemrogram.
Di situs web, sebagian besar interaksi berkisar pada empat tindakan utama:
- Buat elemen
- Ambil satu set elemen (dengan kemungkinan pemfilteran)
- Perbarui elemen dengan atribut baru
- Hapus satu set elemen
Setidaknya semua yang berputar di sekitar ini 4 tindakan utama bisa dan IMHO HARUS dicapai menggunakan alat generasi kode untuk mencapai produktivitas maksimum.
Di perusahaan saya, kami menggunakan symfony, dan generator-adminnya adalah alat yang luar biasa, yang bahkan menghasilkan kode dalam run-time (dan menyimpannya), yang berarti kami bahkan tidak perlu menggunakan jenis tugas atau alat eksternal untuk menghasilkan kode baru, kita hanya perlu membersihkan cache kita. Saya SANGAT menyarankan untuk menggunakan alat semacam ini untuk operasi CRUD.
Tapi, melakukan apa yang kontributor hebat symfony lakukan, bukanlah tugas yang mudah. Saya sendiri telah mengimplementasikan beberapa tugas pembuatan kode dan melakukan sesuatu yang benar-benar konsisten dan dengan implementasi luas untuk mencakup sebagian besar kasus sudut tidak mudah.
Apakah ini sesuatu yang benar-benar akan meningkatkan produktivitas Anda?
Saya percaya bahwa metaprogramming sangat sangat penting dalam pekerjaan tingkat rendah (kerangka kerja, caching, kompiler, dll.) Tetapi sesuatu yang harus kita dekati dengan sangat hati-hati jika kita melakukan sesuatu pada lapisan bisnis.
Menggunakan generasi kode tanpa pertanyaan merupakan pendorong produktivitas utama. Menerapkan alat penghasil kode Anda sendiri, tidak terlalu banyak kecuali Anda membuat kerangka kerja sendiri.
Apa sajakah sumber yang bagus tentang masalah ini, di antara buku, blog, tayangan slide, dll?
Sumber daya terbaik untuk memahami pemrograman selalu baik dan kode sumber berkomentar dengan baik. Saya akan mengatakan bahwa melihat generator admin RubyOnRails dan Symfony adalah ide yang bagus.