Konu hakkında ne düşünüyorsunuz?
Metaprogramlama en yaygın olarak dinamik olmayan dillerle ilişkilidir, çünkü üretken olmayan ve akıllı olmayan kod satırları olmadan belirli davranışlara (ORM uygulamak gibi) ulaşmada daha fazla zaman yoktur.
Ancak PHP gibi daha dinamik dillerde bile, kod oluşturma gerçekten hayat kurtarıcı olabilir ve büyük miktarda üretkenliği artırabilir. Modern çerçevelerde, ilan ettiğiniz belirli bir iş nesnesi için ortak model, form, test ve eylemlerin çoğunu üreten iskeleye sahip olmak çok yaygındır. Symfony veya RoR gibi çerçevelerin bu kadar başarılı olmasının nedenlerinden biri de bu kod oluşturma araçlarının çok hızlı bir şekilde tutarlı kod oluşturması ve programcıların verimliliğini arttırması.
Web sitelerinde, etkileşimin çoğu dört ana eylem etrafında döner:
- Öğe oluştur
- Bir öğe kümesini alın (olası filtreleme ile)
- Bir öğeyi yeni özelliklerle güncelleme
- Bir öğe kümesini silin
En azından bu 4 temel eylem etrafında dönen her şey mümkün olabilir ve IMHO, maksimum üretkenliğe ulaşmak için kod oluşturma araçları kullanılarak gerçekleştirilmelidir.
Şirketimde, sembolik bir yazılım kullanıyoruz ve yönetici-oluşturucu, çalışma zamanında kod üreten (ve önbelleğe alan) bile istisnai bir araçtır; yeni kod üretmek, sadece önbelleğimizi temizlememiz gerekir. CRUD işlemleri için bu tür bir aracı kullanmanızı şiddetle tavsiye ederim.
Ancak, symfony harika katkıda bulunanların yaptığı şeyi yapmak kolay bir iş değildir. Bazı kod oluşturma görevlerini kendim uyguladım ve gerçekten tutarlı olan bir şey yapmak ve çoğu köşe durumunu kapsayan geniş bir uygulama ile kolay değil.
Verimliliğinizi gerçekten artıracak bir şey mi?
Metaprogramlamanın alt düzeydeki işlerde (çerçeveler, önbellekleme, derleyiciler vb.) Çok önemli olduğuna inanıyorum, ancak iş katmanında bir şeyler yapıyorsak çok dikkatli yaklaşmamız gereken bir şey.
Kod üretmeyi kullanmak hiç kuşkusuz büyük bir verimlilik arttırıcıdır. Kendi kod oluşturma araçlarınızı uygulamak, kendiniz bir çerçeve oluşturmadığınız sürece çok değil.
Konuyla ilgili, kitaplar, bloglar, slayt gösterileri vb. Gibi iyi kaynaklar nelerdir?
Programlamayı anlamak için en iyi kaynak her zaman iyi ve iyi yorumlanmış bir kaynak kodudur. RubyOnRails ve Symfony admin jeneratörlerine bakmanın iyi bir fikir olduğunu söyleyebilirim .