Haruskah Anda selalu memprogram sisi server untuk situs web?

38

Saya akan mulai membuat situs web proyek musik untuk seorang teman. Itu seharusnya cukup sederhana untuk saat ini: tidak ada konten dinamis (tanggal tur, dll.), Dan tidak lebih dari beberapa lagu sampel tertanam atau tautan SoundCloud. Saya tidak mengharapkan untuk menggunakan apa pun selain vanilla JavaScript dan Bootstrap atau Foundation untuk grid responsif.

Apakah ini cukup? Bisakah saya cukup mengunggah file HTML, CSS, dan JS ke host dan selesai, atau haruskah saya meluangkan waktu untuk memprogram server backend dalam Node atau PHP?

Deegriz
sumber
54
Cukup? Masalah apa yang Anda miliki yang memiliki back end dinamis akan menyelesaikannya. Tetap bodoh itu sederhana, sampai Anda tidak bisa.
RubberDuck
25
Maksimalkan pekerjaan yang tidak dilakukan. YAGNI.
RubberDuck
9
Anda mungkin akan lebih baik menginstal CMS yang sudah jadi jika semua yang Anda lakukan adalah menulis beberapa teks, mengunggah beberapa gambar dan beberapa file musik / menyematkan beberapa file video / YouTube, WordPress dll. menjadi yang ideal dan sebagian besar perusahaan hosting menawarkan installer satu-klik untuk membuat Anda pergi dalam hitungan menit .... ada banyak CMS di luar sana.
Kinnectus
11
Saya bertanya-tanya mengapa pertanyaan seperti ini mendapat begitu banyak upvotes? Ini seperti bertanya "apakah saya harus membuat database untuk perangkat lunak saya walaupun tidak perlu menyimpan data?". Itu tidak akan mengejutkan saya jika itu adalah pertanyaan pemula, tetapi tidak ketika Anda cukup terampil untuk membuat proyek bootstrap / foundation.
Mahdi
14
@ Mahdi itu terangkat karena semua orang sudah bertanya-tanya hal sialan ini selama 5 tahun dan tidak ada yang punya nyali untuk hanya menanyakannya.
djechlin

Jawaban:

86

Jika Anda tidak tahu apakah Anda memerlukan kode sisi server, Anda mungkin tidak *

* Peringatan : Kode sisi server sangat penting untuk keamanan, ketika Anda ingin mengontrol akses ke konten, data, atau fungsionalitas secara internal. (Tidak harus menjadi server Anda , lihat paragraf terakhir.)

Tanyakan pada diri Anda masalah apa yang akan diselesaikan dengan menggunakan teknologi sisi server. Jika Anda tidak dapat memikirkan apa pun (dan dalam kasus Anda, saya juga tidak bisa) maka Anda tidak memerlukannya.

Ketahuilah bahwa lebih dari yang Anda pikir mungkin hanya menggunakan kode sisi klien. Kerangka kerja JavaScript seperti AngularJS atau ReactJS dapat memungkinkan Anda berintegrasi dengan pihak ketiga, konten dinamis melalui API menggunakan Ajax. (Ini termasuk menghubungkan ke API yang dapat menangani keamanannya sendiri.)

Tim Grant
sumber
17
Saya pikir ini adalah pernyataan berbahaya untuk dibuat - teknologi sisi server sering digunakan ketika Anda 'bisa melakukannya sisi klien': keputusan untuk memindahkan sesuatu ke server adalah untuk alasan keamanan, belum tentu fungsional. - karena itu mempromosikan sikap 'tidak tahu' mengkhawatirkan: programmer harus selalu mempertimbangkan keamanan dalam aplikasi apa pun , bahkan yang sederhana seperti yang dijelaskan. Seluruh solusi harus dipikirkan - apakah Anda ingin area konten 'aman', memaksa pengguna untuk mendaftar atau suka di FB sebelum memberikan mereka mp3? (Namun dalam hal ini, situs statis kedengarannya baik-baik saja)
Jmons
3
Ada sesuatu yang bisa dikatakan untuk keuntungan keamanan generator situs statis juga. Untuk banyak aplikasi, situs statis adalah yang paling aman dalam hal keamanan karena tidak ada yang perlu diretas.
Nathan GoFundMonica Arthur
1
Server-side code is essential for securitybeberapa pengembang tidak memberikan af * ck tentang keamanan. Tidak sampai Anda melemparkan wajah mereka di ... kekacauan mereka. Baris saya adalah jika Anda memerlukan otentikasi, Anda memerlukan back office. Jika Anda perlu menyimpan data, Anda memerlukan backoffice di mana data akan diperiksa untuk kedua kalinya setelah diperiksa oleh sisi klien.
Walfrat
1
@ Walfrat Jika Anda hanya perlu otentikasi, Anda dapat menurunkannya ke sejumlah layanan auth terbuka dan tidak menggunakan backend sama sekali. Jika Anda memerlukan otorisasi, di sisi lain, Anda mungkin memerlukan beberapa hal backend.
corsiKa
56

Baca tentang generator situs statis. Ini memungkinkan Anda untuk membuat situs dengan cara terprogram (menggunakan templat, data, dll), dan bukan dengan kerajinan tangan HTML. Hasilnya adalah serangkaian HTML dan CSS statis yang tidak memerlukan backend.

https://www.staticgen.com/ mencantumkan dan memberi peringkat sejumlah generator open-source; persembahan tertutup mungkin juga ada.

9000
sumber
3
+1, ini masih berfungsi untuk situs dinamis yang hanya sedikit dari waktu ke waktu (seperti blog dan rencana perjalanan wisata). Sampai konten tergantung pada pengguna yang melihat halaman, itu sudah cukup.
RemcoGerlich
1
+1. Tanggal tur dan contoh lagu perlu lebih sering diperbarui oleh klien. Generator situs statis menghindarinya dari kebutuhan untuk menyentuh HTML, dan itu jauh lebih sederhana dan aman daripada CMS (tidak terawat).
Bergi
3
sementara saya setuju bahwa ini adalah saran yang bagus untuk OP, apakah ini benar-benar mencoba menjawab pertanyaan seperti yang ditanyakan?
Woodrow Barlow
Jawaban yang ditandai lebih umum dan selaras dengan pertanyaan yang diajukan seperti yang disebutkan Woodrow Barlow. Namun saya memberi +1 untuk menentukan solusi yang bagus untuk saya dan banyak lainnya
Deegriz
2
@ WoodrowBarlow: Saya berpendapat bahwa Can I simply upload HTML, CSS, and JS files to a host and be done with it, or should I take the time to program a backend server in Node or PHP?tidak ada panggilan untuk menunjukkan bahwa ada 3, dalam kasus OP agak menarik, pilihan IMHO :)
Tobia Tesan
6

Anda dapat dan harus menggunakan hanya situs statis jika cukup, atau menggunakan generator situs statis . Mengapa? Maintabilitas. Kode memiliki bug. Setiap beberapa minggu ada lubang keamanan WordPress lain yang ditemukan. Jika Anda menggunakan CMS umum, Anda harus menambalnya terus-menerus. Jika tidak, situs web teman Anda akan segera mengandung iklan untuk obat-obatan terlarang, propaganda ISIS, malware yang diinstal pada komputer pengunjung atau lebih buruk lagi. Bahkan jika Anda secara teratur menambalnya, Anda mungkin sudah terlambat sehingga Anda harus selalu memeriksa peretasan. Ada cara untuk mengamankan CMS ini. Instal "plugins keamanan", konfigurasikan firewall aplikasi web seperti mod_security dll. Semua hanya berfungsi. Mereka juga harus terus diperbarui. Terkadang aturan mod_security Anda akan merusak plugin untuk WordPress, Anda harus menganalisis dan memperbaikinya. Lebih banyak pekerjaan.

Anda mungkin berpikir, tidak ada yang mau meretas situs itu. Tetapi untuk lubang keamanan umum yang ditemukan dalam sistem CMS umum, segera ada bot otomatis yang merayapi / mencari web dan meretas SEMUA situs menggunakan CMS itu. Mereka hanya ingin menyebarkan tautan / malware / propaganda mereka.

Dengan situs statis (dibuat secara manual atau dengan generator), Anda tidak memiliki masalah itu.

Jika Anda menerapkan backend Anda sendiri, itu juga akan memiliki lubang keamanan (tidak ada yang sempurna) tetapi kemungkinan besar tidak ada yang akan mengeksploitasi mereka untuk situs web kecil itu. Tetapi apa yang ingin Anda terapkan? Jika Anda ingin membuat editor di mana teman Anda dapat mengubah tanggal tur sendiri, pikirkan berapa lama ini akan membawa Anda sampai cukup mudah baginya untuk digunakan tanpa bantuan Anda. Berapa kali Anda dapat dengan cepat mengubah tanggal untuknya dengan anggaran waktu itu?

Menurut pendapat saya, terlalu banyak orang saat ini hanya menggunakan sistem CMS untuk setiap situs, karena HTML statis "lama". Jika Anda tidak memerlukan apa pun yang tidak mungkin dengan HTML5, gunakan kode sisi server. Tetapi jika Anda tidak membutuhkannya, Anda menghemat banyak waktu tanpa itu.

Josef
sumber
Setiap beberapa minggu? Hah, kalau saja! Lebih seperti hari-hari
Lightness Races dengan Monica
3

Anda hanya perlu melakukan pemrograman backend saat Anda membutuhkannya.

Namun bahkan fitur dasar seperti formulir email biasanya memerlukan pemrograman backend dasar. Jika itu hanya situs tampilan maka ya, tidak apa-apa.

deek
sumber
1
Jika itu hanya fitur sederhana, Anda dapat sering menggunakan beberapa layanan SaaS untuk menggantikannya. Misalnya, formulir pendaftaran dapat dilakukan secara gratis di Formulir Google , dan kemudian ditautkan dari situs.
André Paramés
2

Tidak harus, tetapi ada beberapa masalah yang cenderung Anda temui jika Anda membuat keseluruhan situs dalam HTML biasa.

Banyak situs memiliki elemen menu, header, dan footer yang sama di beberapa halaman. Jika Anda cukup menyalin dan menempelkan ini dari satu halaman ke halaman lain maka ini mungkin menjadi membosankan dan rawan kesalahan karena situs semakin besar dan Anda perlu terus membuat perubahan di area ini.

Pada hari-hari sebelum pemrograman sisi server sangat umum, salah satu cara umum untuk mengatasinya adalah dengan menggunakan bingkai untuk menyematkan area ini ke setiap halaman. Ini tidak disukai beberapa tahun yang lalu, jadi saya tidak merekomendasikan melakukannya sekarang. Anda dapat menulis beberapa kode sisi server sederhana sebagai gantinya untuk menampilkan elemen-elemen umum ini pada setiap halaman.

Saya akan setuju dengan orang lain di sini yang telah merekomendasikan menggunakan CMS dari rak.

bdsl
sumber
1
Alternatif untuk "menyalin dan menempel" adalah dengan menggunakan generator situs statis; yang seharusnya menangani elemen menu / header / footer untuk Anda, sehingga Anda hanya perlu khawatir tentang konten.
Doktor J