Rumah > pembangunan bahagian belakang > tutorial php > Ulasan Buku: Corak Reka Bentuk Praktikal di PHP

Ulasan Buku: Corak Reka Bentuk Praktikal di PHP

尊渡假赌尊渡假赌尊渡假赌
Lepaskan: 2025-02-19 09:33:09
asal
321 orang telah melayarinya

Ulasan Buku: Corak Reka Bentuk Praktikal di PHP

Kajian ini mengenai corak reka bentuk praktikal Brandon Savage dalam PHP akan merangkumi pendapat dan tanggapan saya sendiri mengenai kedua-dua buku itu, dan aspek penerbitan diri. Banyak terima kasih kepada Brandon kerana memberi saya salinan ulasan.

Corak reka bentuk adalah mengenai penyelesaian biasa kepada masalah biasa.

... 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

Takeaways Key

    "Corak reka bentuk praktikal di PHP" oleh Brandon Savage menawarkan panduan komprehensif untuk memahami dan melaksanakan corak reka bentuk dalam PHP, dengan tumpuan kepada penyelesaian biasa kepada masalah biasa. Buku ini merangkumi pelbagai corak, masing-masing dijelaskan dengan pelaksanaan kod yang berpotensi, menjadikannya sumber yang berharga untuk pemaju peringkat pertengahan.
  • Walaupun kandungan buku itu dipuji, semakan semula mencatatkan beberapa kekurangan. Ini termasuk kekurangan penjelasan untuk corak tertentu, seperti corak pendaftaran, dan andaian bahawa pembaca biasa dengan konsep lanjutan dan kandungan pihak ketiga. Kajian ini juga mengkritik pendekatan buku terhadap model dalam aplikasi MVC dan kekurangan contoh praktikal untuk corak model domain.
  • Kajian ini menyoroti cabaran penerbitan diri, seperti yang dilihat dalam kekurangan panduan profesional, kesilapan bahasa, dan keanehan sesekali dalam sampel kod. Walaupun isu -isu ini, buku ini disyorkan untuk pemaju perantaraan yang ingin menyelidiki corak reka bentuk, tetapi bukan untuk pemula yang perlu menguasai konsep asas terlebih dahulu.
Kandungan

Bermula dengan nota pengantar yang lebih ringan, Brandon menerangkan keperluan untuk rangka kerja, berpendapat bahawa OOP tidak bermakna hanya membungkus barangan dalam kelas, dan terperinci tentang mengapa corak reka bentuk kelihatan sukar untuk dipelajari. Dia kemudian meneruskan pengenalan ringan ke dalam prinsip -prinsip yang kukuh, dan meletakkan asas untuk konsep yang lebih maju. Dia menjelaskan mengapa setiap peraturan pepejal adalah penting dan apa maksudnya. Memandangkan pepejal adalah prinsip reka bentuk perisian yang mantap, ia hanya semulajadi untuk membandingkannya dengan setiap corak yang akan dijelaskan dalam buku itu. Atau, untuk menjadi lebih tepat, untuk menilai sejauh mana setiap corak menghormati prinsip -prinsip yang kukuh, sambil menyediakan pemaju dengan fungsi yang dimaksudkan.

Ulasan Buku: Corak Reka Bentuk Praktikal di 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:

  • corak kilang (abstrak)
  • Corak Singleton
  • Corak Builder
  • Corak Decorator
  • Corak penyesuai
  • Corak jambatan
  • corak fasad
  • Corak strategi
  • Corak pengantara
  • corak pemerhati
  • Rantaian Corak Tanggungjawab
  • Corak Iterator
  • Corak komposit
  • Corak MVC
  • Corak Model Domain
  • Corak Rekod Aktif
  • corak pengawal depan

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.

Pengabaian model

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.

Ulasan Buku: Corak Reka Bentuk Praktikal di PHP

Diberikan, sesetengah orang cenderung meletakkan segala-galanya dan dapur tenggelam ke dalam model, tetapi ada orang yang meletakkan jumlah yang sama dengan kod Tuhan ke dalam pengawal juga. Pengalaman dan keutamaan saya mengatakan bahawa segala rangka yang berkaitan , selagi mereka beroperasi antara kerangka. Itulah keutamaan peribadi, saya rasa. Satu perkara lain melanda saya sebagai ganjil, walaupun:

"

Mencipta 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.

The Curse of Knowledge

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.

Dalam kes lain, struktur perenggan ditulis dengan cara yang jauh melebihi tahap pemahaman untuk pemula kepada pengguna perantaraan:

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".

Ulasan Buku: Corak Reka Bentuk Praktikal di PHP

Wikipedia mentakrifkannya seperti:

Kutukan 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.

wabak penerbitan diri

Pada tahun-tahun kebelakangan ini, penerbitan diri seolah-olah telah benar-benar diambil. Mereka yang tidak menggunakan leanpub pergi sepenuhnya solo, seperti Brandon lakukan dengan buku ini. Walaupun pendekatan ini memang mempercepat proses dan membolehkan pakar meletakkan kandungan yang berkualiti ke tangan pihak yang berminat dengan pantas, ia juga membolehkan lebih banyak kesilapan, kandungan yang buruk, dan kesilapan untuk tergelincir.

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. Ulasan Buku: Corak Reka Bentuk Praktikal di PHP

Berfikir bahawa penceramah asli tidak membuat kesilapan dan oleh itu tidak memerlukan penyuntingan rasmi adalah sama dengan, sebagai contoh, sebuah syarikat berasaskan Y yang menyewa seseorang dari negara X untuk membuktikan versi X-bahasa mereka di laman web ini di Satu -satunya alasan pembaca bukti yang menjadi penutur bahasa X. bahasa Editor.

Kesimpulan

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:

    unsur -unsur php berorientasikan objek pada
  • boleh dipelajari
  • Objek berorientasikan php
  • Objek Berorientasikan PHP Digunakan: Membuat dua tentera bertarung satu sama lain
  • Awesomeness oleh Alejandro Gervasio - Baca semua yang pernah ditulis oleh lelaki ini
  • Komposer
  • mvc
kandungan-bijak, saya akan memberikan buku itu 4/5, tetapi dengan mengambil kira pekerjaan tergesa-gesa nampaknya sudah hampir akhir, kesilapan bahasa dan kesilapan bahasa (walaupun adil, ada penyerahan kesilapan Repo github yang saya telah tercemar dengan perbaikan) dan kekurangan panduan profesional yang jelas bersama dengan beberapa keanehan yang saya percaya secara peribadi akan membenamkan nilai yang salah ke dalam pemula yang tersandung ke buku ini (memulakan nama kelas dengan nombor dalam pelbagai sampel kod), saya menamatkan skor akhir pada 3/5.

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.

Adakah corak reka bentuk hanya boleh digunakan untuk php?

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan