Saya telah mengevaluasi solusi arsitektur untuk proyek seluler yang akan memiliki layanan web / aplikasi di samping aplikasi asli dan telah melihat berbagai perpustakaan, kerangka kerja, dan tumpukan seperti Meteor , ini menjadi semacam "kerangka paket tumpukan terbuka" , erat terikat dengan Node.js .
Ada banyak pembicaraan tentang manfaat menggunakan bahasa yang sama baik dari sisi klien dan server, dan saya tidak mengerti. Saya bisa mengerti jika Anda ingin mencerminkan seluruh keadaan aplikasi web di kedua klien dan server tetapi berjuang untuk menemukan kemenangan lain ... Efisiensi alur kerja?
Saya mencoba memahami mengapa paritas bahasa klien / server dianggap sebagai grail suci. Mengapa paritas bahasa klien / server penting dalam pengembangan perangkat lunak?
Jawaban:
Di sisi PRO:
Di sisi CON:
Dalam pengembangan web, bahasa telah berkembang, menciptakan alat yang kuat untuk bagian-bagian tertentu dari sistem serta kebutuhan akan banyak spesialisasi untuk dipelajari oleh pengembang atau tim pengembang. Di bidang lain seperti pemrosesan transaksi atau sistem tertanam yang mengikuti pendekatan sistem desain sistem, mungkin ada penghematan dari bahasa yang sama.
Kerangka kerja Javascript baru tampaknya datang kepada kami dengan sangat cepat, dan beberapa pekerjaan dilakukan untuk menggabungkan API untuk ujung belakang dan alat untuk ujung depan. Mungkin pintar untuk menjaga fleksibilitas dan pemisahan kekhawatiran antara kode sisi klien dan server sehingga Anda bebas melayang di antara mereka tanpa terlalu terjebak terlalu lama dengan alat tertentu.
sumber
Mungkin manfaat yang dirasakan adalah:
yaitu membuat manajemen sumber daya lebih mudah bagi manajer proyek dan memiliki sedikit atau tidak ada manfaat teknis (bahkan mungkin manfaat teknis negatif jika Anda mempekerjakan sekelompok kuda poni satu trik)
sumber
Manfaatnya adalah Anda dapat menggunakan kembali (untuk beberapa hal) keahlian dan kode orang di kedua sisi.
Orang-orang
Pengembang perlu menguasai satu bahasa dan membentuk satu kumpulan. Daripada dua kelompok keahlian. Ini membuatnya lebih mudah untuk mentransfer pengetahuan di antara mereka, dan juga memungkinkan mereka beralih pekerjaan mereka antara sisi klien dan server lebih mudah. Terakhir, ini memfasilitasi komunikasi dengan anggota tim "pihak lain" ketika membahas masalah teknis karena mereka memiliki latar belakang teknis yang sama.
Kode
Kadang-kadang berguna untuk memiliki beberapa keadaan di sisi klien, atau algoritma, atau keduanya. Terkadang, hal yang sama dilakukan di kedua sisi. Mari kita ambil contoh game multi-pemain: Anda harus mewakili status permainan pada klien dan server. Juga, Anda perlu menerapkan aturan di sisi klien (untuk responsif) dan juga di sisi server (untuk memvalidasi tindakan pemain). Mampu menggunakan kembali kode untuk hal-hal ini bisa menjadi keuntungan besar. ... di beberapa aplikasi lain, Anda tidak akan memerlukan ini sama sekali ... semuanya tergantung pada kasingnya.
... tentu saja ada juga kerugiannya, tapi itu untuk posting lain;)
sumber