Full stack

Apa yang dimaksud dengan full stack development sebenarnya? Sejujurnya, apa itu “full stack development” adalah pertanyaan yang sangat sulit dijawab, karena full stack development adalah istilah yang telah digunakan selama bertahun-tahun oleh para IT developer dari berbagai tingkat keterampilan untuk mengartikan hal yang berbeda.

Penulis percaya ada waktunya nanti untuk mengartikan istilah ini secara benar. Menurut penulis istilah tersebut tidaklah tepat, jadi dipecahlah penjelasannya menjadi dua bagian :

Pertama, Back-end yaitu adalah bagian belakang layar dari sebuah website. Bahasa pemograman untuk back-end development diantaranya adalah PHP, Ruby, Python, dan banyak lainnya.

Bagian kedua adalah Bagian front-end dari sebuah website adalah bagian yang langsung dilihat oleh user. User juga bisa langsung berinteraksi pada bagian ini. Bagian ini dibangun menggunakan HTML, CSS, dan JavaScript. Kedua penjelasan ini akan saling berkaitan.

Aplikasi Multilayer atau N-Tier — Setting Stage/Background
Saat mendengar istilah “full stack engineer” yang langsung terpikirkan adalah “Orang yang harus tahu pengaturan aplikasi N-tier.” Bagi mereka yang tidak kenal, multitier (alias n-tier) hanyalah sebuah arsitektur yang membagi aplikasi Web ke dalam layer atau tier. Pembagian yang paling umum adalah layer presentasi, bisnis logic layer/application layer, dan data layer. Kadang-kadang, ada lebih banyak divisi di antara lapisan-lapisan ini, tetapi secara umum, pengaturan lain adalah variasi dari tema sederhana ini. Mari kita gali secara singkat apa yang ditunjukkan oleh masing-masing tier.

Data Layer
Data layer adalah tempat Anda menulis data runtime aplikasi ke hard drive sistem. Teknologi yang paling umum digunakan adalah database relasional, penyimpanan dokumen (noSQL), dan bahkan file sederhana untuk menyimpan data. Sistem manajemen database relasional umum seperti Oracle, MSSQL, MySQL, dan PostgreSQL. Teknologi noSQL umum adalah MongoDB, Redis, atau Cassandra. Format file umum adalah file teks sederhana tanpa pemformatan ke file CSV. Poin akhir dari bagian ini adalah untuk mengekstrak data dari runtime volatile dari berbagai proses sistem Web Anda dan menyimpan sedemikian rupa sehingga pada saat Anda memulai atau mengulang proses Anda, itu masih dapat diakses. Beberapa divisi mengakhiri lapisan data pada sistem yang digunakan untuk mengelola data sedangkan yang lainnya termasuk mekanisme untuk akses.

Logic Layer
Logic layer menjembatani presentasi layer dengan data layer. Tanggung jawabnya adalah mengambil dan menempatkan data yang diminta atau diberikan dari klien kemudian diteruskan ke lapisan data. Tentu saja, ini sering melibatkan tugas-tugas yang lebih rumit seperti otorisasi, otentikasi, desain endpoint API, atau menciptakan logika dan sebagainya. Ada banyak pilihan yang dapat anda pilih untuk bahasa pemrograman yang cocok untuk Anda. Bisa dengan menggunakan Scala dan NodeJS, tetapi bisa juga menggunakan Java, Python, Ruby dan PHP.

Presentation Layer
Akhirnya, kami membahas presentation layer. Dalam aplikasi web, ini berarti HTML, JavaScript, dan CSS yang berinteraksi dengan pengguna. Jenis aplikasi lainnya adalah aplikasi desktop, aplikasi seluler, dan bahkan suara. Di layer sinilah klien anda menggunakan aplikasi yang anda buat untuk melihat data dan memodifikasinya sesuai keinginan.

N-Tier Stack Umum
Ada banyak framework web untuk membangun aplikasi dengan cepat. Misalnya, framework Node yang sangat populer adalah MEAN. MEAN adalah singkatan dari MongoDB, Express, AngularJS, dan Node. MongoDB adalah mekanisme persistensi Anda, Node dan Express berfungsi sebagai lapisan logika, dan AngularJS adalah aplikasi halaman tunggal yang berfungsi sebagai presentation layer.

Untuk Python stack, ada sejumlah Framework. Django adalah aplikasi yang sangat dogmatis yang memberi Anda toolbox lengkap sejak awal. Namun, jika Anda lebih suka membangun Framework kerja Anda sendiri, Anda dapat menggunakan Flask, itu akan lebih sesuai dengan kebutuhan Anda.

Ruby Stack adalah Ruby on Rails, yang merupakan framework yang bagus digunakan untuk aplikasi prototipe.

Akhirnya, untuk PHP, Anda dapat memilih framework Ruby on Rails seperti Laravel, atau LAMP stack yang lebih tradisional. LAMP adalah singkatan dari Linux Apache, MySQL, dan PHP. LAMP menarik karena menyentuh sistem operasi, Linux, yang sangat penting untuk bagian selanjutnya.

Terapkan Aplikasi Anda — Lebih Lanjut
Setelah menggambarkan tentang fondasi full stack development, saatnya untuk membahas deployment dan infrastruktur. Sudah ada tren baru dalam Web development yang diperkenalkan untuk mengisi kekosongan antara website dengan development. Tujuan dari pengembang adalah fokus pada penerapan aplikasi, membantu dalam monitoring, dan secara umum membuat lingkungan development yang mudah untuk dikerjakan. Seseorang harus bisa mengambil tanggung jawab dari pengembang.

Menerapkan aplikasi Anda bisa berarti Anda connect ke server, pilih teknologi yang sesuai dengan aplikasi anda. Atau, Anda bisa memilih solusi “infrastruktur sebagai kode” seperti Chef, Puppet, Ansible, atau Salt. Selangkah lebih maju, Anda bahkan mungkin bisa menginvestigasi aplikasi Anda dengan menggunakan Docker atau membuat gambar dengan menggunakan Packer. Meskipun anda tidak terlibat secara langsung dalam rincian penerapan ini, anda perlu mengetahui bahwa bagian ini sangat penting untuk full stack development karena diharapkan untuk menyebarkan aplikasi yang mereka buat.

Akhir Kata
Jadi, seperti yang anda lihat, menjadi full stack development merupakan kemampuan untuk memperoleh pengetahuan yang luas tentang banyak bagian dari aplikasi web anda. Memutuskan untuk menjadi full stack development membutuhkan kemampuan membaca teka teki lebih jauh dibanding analyst, tapi begitu anda sudah mengetahui polanya, semua akan berubah menjadi keren.

Salam Sukses

Sumber :
What Is Full Stack Development?
By Andrew Allbright