Sebagai pengembang web (otodidak) yang relatif baru, saya sering mendengar istilah front-end , sisi klien , back-end , dan sisi server . Bagi saya, front-end dan back-end selalu identik dengan sisi klien dan sisi server.
Namun, ketika saya mulai bekerja dengan kerangka kerja MVC seperti CodeIgniter, saya telah menemukan beberapa contoh front-end yang merujuk pada dasarnya apa pun yang dilihat pengguna akhir (termasuk kode sisi-server), sementara back-end merujuk pada apa pun pengguna akhir tidak melihat (termasuk CMS). Sisi klien dan sisi server, bagi saya, jauh lebih konkret dalam artinya; mereka memiliki garis yang sangat berbeda yang memisahkan mereka. Front-end dan back-end, di sisi lain, tidak.
Dalam sebuah percakapan yang saya ingat pernah dengan pengembang web lain, ia menyebut CodeIgniter (secara keseluruhan) sebagai front-end, dan ini membuat saya bingung. Saya tidak yakin apakah akan memperbaikinya dan mengatakan bahwa CodeIgniter adalah back-end saya, atau apakah definisi saya tentang kedua istilah itu sepenuhnya salah.
Mencari definisi front-end-back sedikit membingungkan saya dalam beberapa hal, meskipun mereka mengklarifikasi beberapa hal. Saya hanya ingin tahu di mana garis-garis ditarik di antara keempat istilah ini, dan bagaimana mereka menyatukan dalam konteks pengembangan web (khususnya pada tumpukan LAMP).
Jawaban:
Saya tidak percaya ada definisi formal untuk istilah-istilah itu, dan seperti yang Anda perhatikan ada tumpang tindih dalam beberapa kasus.
front-end
danclient-side
tumpang tindih.server-side
danback-end
juga tumpang tindih.Jika saya membelah rambut, saya akan menawarkan batasan kasar ini:
client-side
adalah aplikasi yang berjalan di komputer pengguna. Ini bisa berupa aplikasi yang berdiri sendiri (lebih sering) atau bisa merujuk ke antarmuka berbasis browser web (lebih kecil kemungkinannya).front-end
juga menghadapi pengguna akhir dan umumnya berjalan di antarmuka berbasis web browser. Saya belum pernah mendengar klien tebal disebut sebagaifront-end
.back-end
mengacu pada proses dan layanan yang berjalan baik di server lain atau di latar belakang komputer pengguna. Lebih sering daripada tidak, ini mengacu pada proses yang tidak ada di komputer pengguna akhir. Tetapi kuncinya, seperti yang Anda sebutkan, adalah bahwa pengguna akhir tidak perlu mengetahui proses yang berjalan.server-side
adalah perpanjangan dariback-end
tetapi secara eksplisit memperkuat fakta bahwa proses sedang berjalan di tempat lain dan bukan pada komputer pengguna akhir.Sebagai contoh, dan untuk menyoroti kebingungan antara persyaratan, saya akan menggunakan Minecraft sebagai contoh.
Minecraft memiliki
client-side
aplikasi ketika Anda menjalankan file jar secara lokal dengan JVM Anda sendiri.front-end
jika Anda memilih untuk menjalankan aplikasi klien di browser web Andaback-end
proses yang dapat berjalan secara lokal di mesin Anda jika Anda berada dalam mode yang berdiri sendiriserver-side
proses jika Anda memilih untuk masuk ke server yang menampung aplikasi server Minecraft.Jika Anda menggali beberapa statistik Minecraft, Anda akan melihat bahwa mereka hanya menunjuk
client
danserver
komponen untuk permainan; mereka tidak perlu peduli di mana komponen-komponen itu dijalankan.Untuk langsung menjawab pertanyaan Anda:
Agak, tapi tidak juga. Ada nuansa di antara istilah-istilah tersebut jika Anda mendiskusikan hal-hal di luar dunia berbasis web. Jika Anda benar-benar dalam dunia berbasis web, maka ya, mereka secara fungsional identik.
Di dunia web, saya akan mengatakan ya. Di alam lain, saya akan mengatakan tidak seperti yang dijelaskan dalam definisi kasar yang saya tawarkan.
sumber
Sisi server berjalan di server. Sisi klien berjalan pada klien. Back-end adalah mengolah data. Front-end sedang menampilkannya.
Lihatlah halaman web ini. Menarik semua komentar dari database adalah kerja sisi server, back-end. Menyusun data dalam templat adalah pekerjaan front-end, sisi-server. Widget pemungutan suara AJAX dan kotak input teks mewah adalah front-end, sisi klien.
sumber
Saya biasanya menemukan menggunakan sisi klien dan sisi server untuk menggambarkan pengembangan / pengembang kurang kabur. Bagian sisi klien tempat kami menyulap / memformat data dapat dilihat sebagai komponen back-end. Di sisi lain ada semua templating yang cenderung terjadi di ujung belakang yang menjadi "untuk ujung depan" cenderung mengakibatkan orang berbicara tentang mereka sebagai front end Java atau C # development. Jarang, tapi saya sudah melihatnya di deskripsi pekerjaan.
Tapi ya, secara umum ujung depan adalah bagian di mana interaksi terjadi. Bagian belakang adalah bagian di mana semua interaksi itu berubah menjadi sesuatu yang bermanfaat.
sumber
Pertanyaan ini agak lebih tua tetapi izinkan saya menambahkan 2c saya:
Dalam pengembangan web saya sendiri, saya menggunakan istilah "frontend" yang berarti kode - atau sumber daya lainnya - yang diproses di browser untuk sementara waktu. Sekarang, saya menggunakan istilah "klien", karena itu mungkin membingungkan esp. saat melakukan aplikasi web. (Aplikasi Halaman Tunggal)
Hanya karena di sisi backend, ada juga "frontend", yang berarti secara umum bagian dari aplikasi yang bertanggung jawab untuk output (ke browser). Jadi "frontend" sebenarnya dapat berarti dua hal yang berbeda. Namun istilah "klien" lebih jelas menggambarkan sesuatu yang terkait dengan klien yang sebenarnya (dalam hal ini, browser).
PS: Ya, mungkin saya juga harus mengganti nama panggilan saya menjadi "client_dev" sekarang;)
sumber
Sisi klien dalam aplikasi web berada di bawah kendali pengguna / pelanggan, sisi server berada di bawah kendali pengembang. Ini adalah salah satu alasan mengapa seseorang harus melakukan validasi data di server.
Istilah front end dan back end sering digunakan identik untuk sisi klien dan sisi server dan dalam banyak kasus itu ok. Namun, ada juga contoh tandingan yang penting. Bagi saya , front end adalah segala sesuatu yang menunjukkan sesuatu kepada pengguna.
Pada gambar berikut, Anda dapat melihat teknologi / konsep umum dan bagaimana mereka masuk ke kuadran (ujung depan, ujung belakang) / (sisi klien, sisi server).
Pengembang Front End dan Back End
Pengembang Frontend dan Backend adalah dua peran yang sangat umum. Baris menjadi sedikit kabur ketika Anda memiliki hal-hal seperti Bereaksi yang dapat diberikan sisi server dan Flask yang mencakup mesin templating jinja .
Dan meskipun saya akan menempatkan teknologi seperti database SQL Web dan Indexed Database API di kuadran "sisi klien", peran yang biasanya tahu tentang ini adalah peran pengembang front-end.
Desainer UI vs Pengembang Ujung Depan
Dua peran lainnya adalah desainer UI dan pengembang frontend. Jadi satu perbedaan adalah bahwa yang satu adalah desainer dan yang lain adalah pengembang.
Objektif:
Alat:
API: REST dan GraphQL
API disediakan oleh tim back-end dan digunakan oleh frontend untuk mengisi aplikasi dengan data. Backend adalah penyimpanan persisten di seluruh perangkat, frontend adalah lapisan presentasi. API adalah saluran komunikasi untuk keduanya.
sumber