Full Stack Journey

Mr. I
kasta
Published in
3 min readAug 18, 2019

Brief

Perkembangan teknologi sangat cepat dari penemuan komputer pertama hingga komputer performa tinggi. Secara spesifik bahasa pemrograman perkembangan bahasa pemrograman pun semakin cepat. F.e. Java, saat kuliah dulu tahun 2012an Java update versi 7 dan sekarang kurun 7 tahun Java telah mencapai versi 12. Tidak cuma bahasanya yang update melainkan struktur kode juga terus berkembang. Saat kuliah semester 4 mata kuliah Enterprise Application dosen saya menjelaskan tentang 1-tier, 2-tier, 3-tier, dan N-tier. Sehubungan dengan EA dosen yang lain pada mata kuliah lain yaitu Design Pattern menjelaskan hal yang senada.

Sebut saja pada masa itu yang paling terkenal di kalangan mahasiswa adalah MVC atau Model View Controller dimana kode di bagi atas Model yang merepresentasikan bentuk data dan logika bisnis, View yang merepresentasikan tampilan dari aplikasi, dan Controller yang merepresentasikan penghubung antara Model dan View didalamnya terdapat logika, request, response, dan banyak lagi. Dengan MVC ini programmer lebih mudah untuk menata kode dan programmer yang baru bergabung dalam tim dengan mudah membaca struktur dan alur kode suatu aplikasi.

Seiring dengan perkembangan jaman, ukuran dan kebutuhan suatu aplikasi semakin meningkat. Bermunculanlah konsep — konsep struktur kode seperti DAO, DTO, VO, POJO, Controller, Service, Repository, dan masih banyak lagi. Dari sebagian banyak konsep tersebut memiliki kelebihan dan kekurangan masing — masing. Tentunya pemilihan struktur bergantung kebutuhan dari aplikasi yang akan dikembangkan.

Konsep lain yang berkembang adalah Monolith dan Microservices. Monolith adalah konsep pengembangan aplikasi yang membagi backend dan frontend. Backend menghandle Model dan Controller sedangkan Frontend menghandle View. Tidak terbatas sampai situ namun dapat dimodifikasi sesuai kebutuhan. Intinya Backend menghasilkan API dan Frontend yang akan consume API tersebut. Sedangkan Microservices pembagian aplikasi dalam bentuk service — service untuk menghasilkan API. Biasanya service dibagi berdasarkan module atau fitur aplikasi. Konsep tersebutlah yang menghasilkan istilah Fullstack.

Ilustrasi Monolithic dan Microservices

Full Stack?

Simply put, full stack developer is a kind of people who master a variety of skills and use these skills to complete a product independently. A full stack developer is an engineer who can handle all the work of databases, servers, systems engineering, and clients. Depending on the project, what customers need may be a mobile stack, a Web stack, or a native application stack. In fact, “full stack” refers to the collection of a series of technologies needed to complete a project. “Stack” refers to a collection of sub-modules. These software sub-modules or components combined together to achieve the established function while without the need for other modules.

Ilustrasi Sederhana Full Stack

Lantas bagaimana tiba — tiba menjadi Full Stack developer? Dari Semester 1 di kampus memang menggunakan Java hingga semester 6. Sejak 2015 mulai bekerja menggunakan Java (JSF) kemudian setahun kemudian menggunakan Spring Framework. Hingga beberapa tahun terakhir menggunakan Spring Boot. Inti dari kerjaan tersebut adalah dari MVC menuju Monolithic. Yang tadinya membuat aplikasi berbasis JSF menggunakan MVC kemudian mengembangkan aplikasi berbasis Spring menggunakan Monolithic. Tahun 2017 membuat aplikasi di salah satu BUMN menggunakan Microservices. Tahun 2018 dapat kesempatan untuk menjadi UI Developer.

Jadi latar belakangnya adalah 3 tahun menjadi backend developer dan 1 tahun menjadi frontend developer. Kemudian tahun 2019 memutuskan untuk menjadi full stack developer. Kebetulan juga saat menjadi frontend developer aplikasi yang dikembangkan adalah menghubungkan tools DevOps seperti SCM Manager untuk git repository, Jenkins, SonarQube, Docker, dan Jira.

--

--

Mr. I
kasta
Editor for

Code using various programming language commonly based on JVM (Java, Scala, Groovy) with DBMS (Oracle, PostgreSQL & MySQL)