Corak reka bentuk adalah mengenai penyelesaian biasa kepada masalah biasa.Takeaways Key... Mereka adalah konsep, bukan pelan tindakan; idea, tidak selesai reka bentuk.
... Mereka menambah kejelasan kepada situasi yang sukar.
- Brandon Savage, corak reka bentuk praktikal dalam php
Jika saya menyatakan perkara dalam istilah model Dreyfus, dia mendakwa buku itu ada untuk menjadikan seorang pemula menjadi pemaju peringkat yang kompeten tanpa menundukkannya kepada kesilapan pemula yang lebih maju apabila, sebenarnya, pendekatan untuk pembelajaran tidak sepenuhnya mungkin - itu Bukankah bagaimana proses pengambilalihan pengetahuan manusia berfungsi.
kerana ia mungkin tidak terlalu jelas dari TOC, corak yang dijelaskan dalam buku ini adalah, mengikut urutan:
Dengan begitu banyak corak yang diliputi (dan paling dilindungi dengan baik), saya terkejut melihat ayat seperti " [...] sebagai contoh, corak pendaftaran (tidak diliputi dalam buku ini) ... ". Mengapa tidak? Corak pendaftaran adalah corak yang popular, dan sangat mudah untuk dijelaskan walaupun ia tidak tepat pada masa kini.
corak mengikut corak, masing -masing dijelaskan dengan baik dan kebanyakannya diikuti dengan contoh kod yang menunjukkan potensi pelaksanaan mereka, walaupun saya mempunyai keluhan dengan contoh corak kilang dengan cache.
Corak direalisasikan pada contoh cache yang berbeza - APC dan Memcache - dan kedua -duanya dilahirkan melalui kilang, yang disuntik ke dalam mana -mana perkhidmatan memerlukan komponen cache.
masuk akal bagi saya, tetapi saya dapat melihat orang yang kurang berpengalaman yang tertanya -tanya mengapa seseorang sebenarnya memerlukan langkah kilang sama sekali, dan bukan sekadar menaip antara muka cache itu sendiri dalam pembina, yang memerlukan suntikan objek cache itu sendiri, dan bukan kilangnya. Contoh semasa mempunyai kedua -dua antara muka kilang dan antara muka cache, dan sekurang -kurangnya, kelihatan seperti lebihan. Ini tidak pernah dijelaskan dalam pemaju peringkat pertengahan yang boleh didekati, dan saya takut ia mungkin mengelirukan kepada sesetengah orang. Saya juga kurang gembira dengan penjelasan corak jambatan - ia kelihatan kurang, seperti ia hanya tercalar di permukaan, tidak pernah kembali dengan betul.
Sebaliknya, saya benar -benar menyukai penjelasan corak komposit dan demonstrasinya pada contoh pokok yang sangat menarik - penulis membina pokok komposit dengan bilangan nod bersarang yang sewenang -wenang - dan saya sangat gembira dengan penjelasan corak penghias. Ia dilakukan dengan cara yang sangat mudah didekati dan pada contoh yang baik dan boleh digunakan. Corak ini khususnya adalah salah satu yang saya selalu mengalami kesulitan menjelaskan kepada orang -orang yang keluar dari biru ketika ditanya, dan saya masih belum mencari pecahan yang lebih baik daripada dalam buku ini.
Dalam satu contoh buku, Brandon mengatakan bahawa model adalah pengangkat paling berat dari aplikasi MVC, yang mengandungi semua logik perniagaan dan kod pengesahan. Ini adalah pernyataan yang terlalu mutlak bagi saya untuk menerima - di bahagian atas kepala saya, saya boleh memikirkan contoh di mana ini tidak benar: Laravel. Dengan Laravel 5 keluar dan menambah permintaan borang, model akan berkembang walaupun lebih ringan.
"The Curse of KnowledgeMencipta model yang baik adalah salah satu tugas yang paling rumit di mana -mana pemaju menangani. Untuk masa yang lama, dokumentasi Rangka Kerja Zend berpendapat bahawa tiada kelas Zend_model kerana membuat model adalah sebahagian besar proses pembangunan aplikasi. Untuk membuat zend_model adalah untuk mengandaikan bahawa semua orang boleh atau ingin menggunakan struktur model yang sama, yang tidak mungkin untuk alasan yang sama saya tidak memasukkan sebarang kod dalam bab ini. Walaupun ini masuk akal, mencontohkan nilai, gerbang dan objek penyimpanan dalam sikap yang paling mudah akan sangat bermanfaat kepada orang yang diperkenalkan kepada corak model domain untuk kali pertama. Corak model domain, pada pendapat saya, terlalu diabaikan dan terlalu teoretikal dalam buku ini.
Di seluruh buku, Brandon membuat rujukan kepada konsep canggih (ORM, warisan, suntikan ketergantungan) dan kandungan pihak ketiga tanpa menghubungkannya (geng empat), dengan mengandaikan pembaca sudah biasa dengan semuanya. Geng empat khususnya disebutkan pada beberapa kesempatan, dan boleh menggunakan sekurang -kurangnya pautan ke corak reka bentuk - lain -lain pembaca "pemula" dan "lanjutan pemula" akan melihat ayat dalam kekeliruan.
ini adalah soalan lama yang lama banyak pemaju berjuang sepanjang masa: jika saya berusaha untuk membalikkan kebergantungan saya dan tidak membuat objek di dalam kelas saya, bagaimana saya dapat mewujudkan kebergantungan yang saya perlukan semasa runtime yang boleh 'T mesti disuntik?
Ini bukan pada tahap yang boleh dimakan oleh pembaca yang memerlukan buku ini untuk menjadi akrab dengan corak. Pembaca yang memahami ayat ini sepenuhnya mungkin sudah biasa dengan semua corak dalam buku ini, dengan itu mempersoalkan penonton sasaran sebenar. Saya percaya ini disebabkan oleh Encik Savage yang menderita apa yang dikenali sebagai "kutukan pengetahuan".
wabak penerbitan diriKutukan pengetahuan adalah kecenderungan kognitif yang membawa pihak yang lebih baik untuk merasa sangat sukar untuk memikirkan masalah dari perspektif pihak yang kurang bermaklumat. Kutukan pengetahuan adalah kejadian yang sangat biasa di profesional yang tidak dilatih secara rasmi untuk menyampaikan apa yang mereka tahu, tetapi juga sesuatu yang tidak berkuat kuasa dengan masa, pengalaman dan maklum balas. Ini juga mengapa kami di SitePoint menggalakkan orang ramai untuk memberi kami maklum balas yang jujur tentang jawatan kami, dan mengapa kami cuba membuat perkara yang lebih mudah dan lebih diselaraskan dengan setiap penerbitan baru. Tidak ada yang kebal terhadap kutukan - ada yang lebih terjejas olehnya.
Kebanyakan masalah yang melanda penulis penerbitan diri yang lain juga, malangnya, melanda buku ini. Kurangnya editor yang berpengalaman, nampaknya tidak ada panduan mengenai kandungan, bentuk atau ketepatan tatabahasa dan sintaktik - sesuatu yang berasal dari bahasa yang sering merosakkan bahasa.
Sebagai pengguna canggih, saya mempunyai pengetahuan sebelumnya tentang kebanyakan jika tidak semua corak dijelaskan dalam buku ini. Walau bagaimanapun, penjelasan yang saya lalui telah terbentuk dengan baik dan didekati oleh pengguna pertengahan - walaupun pada pendapat saya, bukan kepada kemahiran yang lebih rendah. Walaupun kandungan buku ini sangat baik dan Brandon sangat baik dalam menunjukkan kod apa teori itu, saya rasa seperti buku secara keseluruhannya terlalu kompleks untuk pemaju pemula untuk mendapatkan apa -apa yang nyata.
Komuniti PHP pada umumnya, nampaknya saya, menderita sindrom "hilang pautan" di mana kita mempunyai buku pemula mutlak ("Ini echo, ini adalah fungsi, ini adalah tag php") dan buku -buku perantaraan seperti ini, atau apa -apa sturgeon, Jones, Hartjes dan lain -lain telah keluar, tetapi ada alasan tengah yang tetap tidak sah kandungan yang berkualiti dan hanya dapat ditawan melalui yang baik "Buang saya ke dalam Pendekatan api ".yang mengatakan, jika anda seorang pemaju pertengahan yang ingin masuk ke dalam corak dan dari mereka yang mengangguk janggal di persidangan di mana orang yang berdiri di sekeliling anda bercakap tentang mereka tetapi anda tidak memahami sesuatu - pasti mendapat buku ini. Jika anda seorang pemula, saya tidak boleh mengesyorkan anda membeli ini - belum lagi. Menguasai "echos" anda terlebih dahulu, pelajari komposer apa, kemudian tenggelam gigi ke dalam yang satu ini.
Malah, jika anda seorang pemula maju (pemula harus bermula pada asas -asas) yang berminat dengan corak tetap, saya memuji anda dan menawarkan sumber -sumber berikut untuk melihat sebelum anda menyelam ke dalam buku ini:
soalan yang sering ditanya mengenai corak reka bentuk praktikal dalam php
Apakah manfaat menggunakan corak reka bentuk dalam corak reka bentuk PHP? Mereka menawarkan cara untuk meningkatkan kecekapan dan mengekalkan kod anda. Dengan menggunakan corak reka bentuk, anda boleh membuat kod anda lebih fleksibel, boleh diguna semula, dan difahami. Mereka juga membuat komunikasi antara pemaju lebih mudah, kerana mereka menyediakan terminologi standard untuk penyelesaian tertentu. Untuk menambah tingkah laku baru kepada objek secara dinamik dengan meletakkan objek ini di dalam objek pembungkus khas. Dalam PHP, ini dapat dicapai dengan membuat kelas penghias yang membungkus kelas asal dan menyediakan fungsi tambahan. Kelas Decorator melaksanakan antara muka yang sama seperti kelas asal dan memegang contohnya. Semua panggilan ke penghias diteruskan ke kelas asal, dan kemudian tingkah laku tambahan ditambah.
Apakah perbezaan antara sistem reka bentuk, perpustakaan corak, dan panduan gaya? Perpustakaan corak, dan panduan gaya adalah semua alat yang membantu mengekalkan konsistensi dalam reka bentuk dan pembangunan. Sistem reka bentuk adalah struktur menyeluruh yang merangkumi falsafah, prinsip, dan alat yang mengawal proses reka bentuk dan pembangunan. Perpustakaan corak adalah subset sistem reka bentuk dan termasuk elemen dan komponen reka bentuk yang boleh diguna semula. Panduan gaya, sebaliknya, adalah dokumen yang menggariskan elemen reka bentuk visual, seperti warna, tipografi, dan jarak. Perpustakaan corak adalah alat utama dalam mencapai konsistensi reka bentuk. Mereka menyediakan satu set komponen yang boleh diguna semula yang boleh digunakan di pelbagai bahagian projek. Dengan menggunakan komponen yang telah ditetapkan ini, anda memastikan bahawa corak reka bentuk yang sama digunakan secara konsisten, yang membawa kepada reka bentuk yang lebih kohesif dan mesra pengguna.
Apakah peranan refactoring dalam corak reka bentuk? Refactoring adalah proses mengubahsuai kod sedia ada untuk memperbaiki strukturnya tanpa mengubah fungsinya. Dalam konteks corak reka bentuk, refactoring boleh digunakan untuk melaksanakan corak reka bentuk ke dalam asas kod sedia ada. Ini dapat meningkatkan pemeliharaan kod, kebolehbacaan, dan prestasi yang sering. "Menyediakan panduan komprehensif untuk memahami dan melaksanakan corak reka bentuk dalam PHP. Ia menawarkan contoh praktikal dan penjelasan terperinci mengenai pelbagai corak reka bentuk, menjadikannya lebih mudah bagi pembaca untuk memahami konsep dan menerapkannya dalam projek mereka sendiri.
Tidak, corak reka bentuk tidak eksklusif kepada PHP. Mereka adalah konsep dalam reka bentuk perisian yang boleh digunakan untuk mana-mana bahasa pengaturcaraan berorientasikan objek. Pelaksanaannya mungkin berbeza dari bahasa ke bahasa, tetapi prinsip -prinsip yang mendasari tetap sama. . Apabila pemaju menggunakan terma ini, mereka menyampaikan konsep khusus yang dipahami dengan baik, yang mengurangkan salah faham dan meningkatkan komunikasi. , mereka juga boleh memperkenalkan kerumitan jika tidak digunakan dengan betul. Corak reka bentuk yang berlebihan boleh menyebabkan abstraksi yang tidak perlu dan boleh menjadikan kod lebih sukar untuk difahami dan diselenggarakan. Oleh itu, penting untuk menggunakannya dengan bijak dan hanya apabila mereka benar -benar menyelesaikan masalah berulang. Projek PHP anda adalah untuk memahami masalah yang anda cuba selesaikan dan mengenal pasti sama ada masalah berulang yang dapat diselesaikan oleh corak reka bentuk. Sebaik sahaja anda telah mengenal pasti corak reka bentuk yang sesuai, anda boleh mula melaksanakannya dalam kod anda. Ingatlah, matlamatnya adalah untuk menjadikan kod anda lebih cekap dan boleh dipelihara, jadi sentiasa menjaga kesederhanaan dan kejelasan dalam fikiran.
Atas ialah kandungan terperinci Ulasan Buku: Corak Reka Bentuk Praktikal di PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!