Apakah istilah 'Front-End' identik dengan 'Sisi Klien'? Jika demikian, apakah ini selalu terjadi?

18

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

DC_
sumber
1
Saya telah bekerja dengan satu orang yang menggunakan "ujung depan" dan "ujung belakang" berarti "menghadap ke depan" dan "menghadap ke belakang". Apakah dia "benar" atau tidak, adalah pertanyaan lain
user16764
Kita harus menggunakan kata "posterior" sebagai gantinya. Bercanda. Saya berharap ada ungkapan lain untuk itu. Sinonim untuk "Back end" tidak menggembirakan.
Erik Aronesty

Jawaban:

16

Saya tidak percaya ada definisi formal untuk istilah-istilah itu, dan seperti yang Anda perhatikan ada tumpang tindih dalam beberapa kasus.

front-enddan client-sidetumpang tindih.
server-sidedan back-endjuga tumpang tindih.

Jika saya membelah rambut, saya akan menawarkan batasan kasar ini:

  • client-sideadalah 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-endjuga menghadapi pengguna akhir dan umumnya berjalan di antarmuka berbasis web browser. Saya belum pernah mendengar klien tebal disebut sebagai front-end.
  • back-endmengacu 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-sideadalah perpanjangan dari back-endtetapi 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 Anda
  • back-end proses yang dapat berjalan secara lokal di mesin Anda jika Anda berada dalam mode yang berdiri sendiri
  • server-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 clientdan serverkomponen untuk permainan; mereka tidak perlu peduli di mana komponen-komponen itu dijalankan.


Untuk langsung menjawab pertanyaan Anda:

Apakah istilah 'Front-End' identik dengan 'Sisi Klien'?

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.

Jika demikian, apakah ini selalu terjadi?

Di dunia web, saya akan mengatakan ya. Di alam lain, saya akan mengatakan tidak seperti yang dijelaskan dalam definisi kasar yang saya tawarkan.


sumber
Itu tentang apa yang saya pikirkan. Terima kasih telah membantu saya menjernihkan hal ini di kepala saya.
DC_
2
Backend sering digunakan untuk berarti bagian administrasi sisi klien dari sebuah situs web / aplikasi.
Florian Margaine
19

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.

Sean McSomething
sumber
4
+1 untuk menunjukkan ortogonalitas antara konsep front-end / back-end dan konsep sisi-klien / server-sisi
Francesco Feltrinelli
1

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.

Erik Reppen
sumber
0

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;)

frontend_dev
sumber
0

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

masukkan deskripsi gambar di sini

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.

  • Pengembang frontend harus tahu tentang HTML, CSS, DOM dan kapabilitas browser umum (mis. Caniuse ). Biasanya mereka tahu beberapa jQuery atau Bereaksi. Meskipun backend sesuai dengan definisi saya, saya berharap pengembang frontend tahu tentang penyimpanan sisi klien
  • Pengembang Backend harus tahu tentang server web seperti nginx, gunicorn, Apache atau node.js. Mereka harus tahu setidaknya satu database SQL (Postgres, MariaDB / MySQL, ...), toko nilai kunci (Redis), pengembangan API (REST dan GraphQL). LAMP adalah tumpukan khas beberapa waktu lalu. Saya TIDAK akan mengharapkan pengembang backend untuk mengetahui apa pun tentang browser!

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:

  • Desainer UI menyusun pengalaman pengguna
  • Pengembang Front End memastikan tampilannya seperti yang diharapkan (membangun yang asli dari konsep)

Alat:

  • Desainer UI kebanyakan menggunakan Adobe Photoshop / Illustrator / Sketch / Balsamiq / Invision.
  • Pengembang Front End menggunakan React, Vue, Angular

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.

Martin Thoma
sumber