Morph, sebuah pustaka fullstack yang boleh dibenamkan untuk membina Aplikasi Berasaskan Hipermedia tanpa langkah pembinaan, telah mencetuskan perbahasan hangat dalam kalangan pembangun mengenai kelebihan menggabungkan kod pelayan dan pelanggan dengan cara seperti PHP. Pustaka ini, yang berjalan pada Hono dan menyokong persekitaran masa larian Deno, Node, dan Bun, bertujuan untuk memudahkan pembangunan web dengan membolehkan komponen memanggil API mereka sendiri yang mengembalikan hiperteks.
Runtime yang Disokong
- Deno
- Node.js
- Bun
Perbandingan dengan PHP
Ramai pembangun dalam komuniti telah membuat perbandingan antara pendekatan Morph dengan model tradisional PHP yang mencampurkan HTML dan kod. Perbandingan ini telah mencetuskan perbincangan penting mengenai amalan pembangunan moden berbanding paradigma lama. Seorang pengulas dengan tepat menyatakan bahawa pembangunan PHP moden telah berkembang menjauhi percampuran logik perniagaan dengan templat:
PHP moden tidak ditulis dengan cara di mana logik perniagaan dicampur dengan templat. Untuk alasan yang baik.
Sentimen ini mencerminkan peralihan industri yang lebih luas ke arah pemisahan tanggungjawab dalam pembangunan web, di mana logik persembahan dipisahkan dari logik perniagaan. Perbahasan ini berpusat pada sama ada pendekatan Morph mewakili kemunduran kepada amalan lama atau penyederhanaan pragmatik untuk kes penggunaan tertentu.
Pertimbangan Arkitektur
Beberapa pembangun membangkitkan kebimbangan tentang bagaimana arkitektur Morph akan menangani cabaran penskalaan. Seorang pembangun menyatakan bahawa Morph kelihatan terlepas salah satu kelebihan utama PHP, iaitu metodologi shared nothing, single thread, fire and forget yang boleh diletakkan di belakang pengimbang beban dan menjalankan 100 pelayan. Ini menyoroti pertimbangan penting untuk mana-mana rangka kerja web: sejauh mana prestasinya di bawah beban dan dalam persekitaran teragih.
Perbincangan juga menyentuh tentang apa yang membentuk intipati pembangunan seperti PHP. Sesetengah berhujah bahawa hanya mencampurkan HTML dan kod melalui literal templat bertag JavaScript sudah mencapai apa yang dilakukan PHP, mempersoalkan nilai tambahan yang dibawa oleh Morph selain daripada beberapa faedah CSS dan templat lain.
Prinsip Teras Morph
- Komponen boleh memanggil API mereka sendiri yang mengembalikan hiperteks
- Semua komponen dirender di pelayan dengan akses konteks sisi pelayan
- Rendering dan rendering semula komponen secara bebas
- Hierarki komponen dengan keupayaan bersarang
- JavaScript sisi klien yang minimum atau tiada
- Tidak memerlukan langkah pembinaan
- Tidak perlu mereka bentuk struktur data API terlebih dahulu
- Boleh disematkan dalam mana-mana projek Deno/Node/Bun
Pembangunan Berorientasikan Komponen
Pendekatan Morph nampaknya lebih cenderung kepada pembangunan berorientasikan komponen seperti rangka kerja Blazor atau Angular, berbanding PHP tradisional. Pustaka ini menekankan komponen yang dirender oleh pelayan yang boleh dirender semula secara bebas dan disarangkan antara satu sama lain, membentuk hierarki. Model ini bertujuan untuk menggabungkan kelebihan rendering sisi pelayan dengan sifat dinamik aplikasi satu halaman, sambil meminimumkan JavaScript sisi pelanggan.
Bagi pembangun yang bekerja pada projek yang lebih kecil seperti bot Telegram, aplikasi desktop, atau alat dalaman, Morph menawarkan pengalaman pembangunan yang berpotensi dipermudahkan yang tidak memerlukan pemisahan frontend dan backend kepada perkhidmatan berasingan. Fokus pustaka ini pada tiada langkah pembinaan dan JavaScript sisi pelanggan yang minimal menjadikannya sebagai alternatif kepada rangka kerja yang lebih berat untuk projek yang tidak memerlukan kerumitan tersebut.
Ketika pembangunan web terus berkembang, alat seperti Morph mewakili eksperimen menarik dalam mencari keseimbangan yang tepat antara pengalaman pembangun, prestasi, dan kebolehsenggaraan. Sama ada pendekatannya mendapat penggunaan meluas akan bergantung pada sejauh mana ia menangani kebimbangan yang dibangkitkan oleh komuniti pembangunan sambil memenuhi janjinya untuk penyederhanaan.
Rujukan: Morph