SKILL YANG HARUS DIMILIKI PROGRAMMER MASA KINI (Bagian 2)-Backed

SKILL YANG HARUS DIMILIKI PROGRAMMER MASA KINI (Bagian 2)-Backed

Akhirnya punya kesempatan untuk menulis lagi, tepat 1 bulan setelah artiel bagian satu dipublisih. Kali ini aan membahas mengenai Skillset yang harus dimilii Backend Develover.
Perlu dicatat bahwa saya membatasi istilah backend dalam artiel ini, adalah Backend Develover Web dan Mobile App saja. Sehingga tidak termasuk didalamnya backend untuk aplikasi dektop (Programmer VB, Delphi, etc)
Dan istilah Aplikasi adalah utuk Wev dan mobile App saja. Dan pemilihan framework/bahasa pemprograman yang saya pilih disini, hanyalah opini+pengalaman.
Dan istilah “Skill” disini, termasuk didalamnya pemilihan framework, metodologi, dan bahasa pemprograman. Sepakat!? Let’s Go!




Seorang Backed Develover, singatnya bertanggung jawab untuk membangun “server side” dari sebuah aplikasi, seperti autentifiksi, operasi database, dan logika dari sebuah aplikasi.
Jika membicarakan skill, apa yang harus dimliki oleh seorang bacved, jawaban dari orang-orang tentu berbeda-beda. Dan kadang junior programmer kebingungan, apa yang sebaiknya yang dipelajari.
Kalau cek di StackOverflow survey, Python dan Ruby lebih populer ketimbang PHP. Tapi kok gak pernah dapat client yang minta dibuatin pakai Python atau Ruby? Kok rasanya PHP saja sudah cukup?
                                                                    
Kira-kira seperti itu perasaan junior programmer. Benar tidak? Apaah PHP saja sudah cukup sebagai backend? Well.. mari kita bahas skill-skill yang dibutuhkan sesuai dari sala aplikasi yang dibangun.

A.     Website dan Blog
Seperti website organisasi, company profile, instansi pemerintahan, tokoh politik atau landing page sebuah produk. Untuk projec dengan fitur minimalis seperti ini, Wordrpress adalah salah satu pilihan terbaik sebagai pre-build backend. Untuk bisa mendevelop website berbasis Wordpress, programmer harus memiliki skill PHP, Javascript dan MySQL. Dan tentu saja harus memahami seluk beluk Wordpress agar tidak ada security hole.

Tentu saja, amu bisa membangun website seolah dengan Lavarel misalnya, tapi kalau pihak sekolah hanya meminta websitenya hanya sekedar company profile, haruskah menggunakan Lavarel? Wordpress sebagai CMSnya lebih dari cukup. Karena (menurut saya):
Coding bukan soal keren-kerenan bro, pakai ini pakai itu. Tapi coding soal efisiensi dan dalam bisnis IT, semakin cepat kamu meyelesaikan sebuah project, maka semakin banyak project yang kamu bisa tangap.
Jika trafi diperkirakan tinggi, seperti membangun portal berita, ataunblog yang sudah cukup terkenal. Bisa menggunakan Wordpress atau Ghost.io, ditambah optimisasi pada server. Untuk ini skill tambahan yang harus kamu miliki adalah pengetahuan melakukan deploy dan server optimization.

Untuk Wordpress, dapat dioptimisasikan dengan menggunakan EasyEngine, atau Varnish. Tetapi sejauh ini, Debops dengan konfigurasi paling “joss” untuk website berbasis wordpress. Disini kamu akan terkutat dengan SSH, Linux CLI, Nginx/Apche Virtual Host, dll.

Pilihan lainnya untuk website trafik tinggi, adalah menggunakan static cms, seperti Jeykll. Dan ini favorit saya ketimbang harus optimisasi wordpress. Kenapa static cms? Arena web static tida memakan resource server berlebihan, data yang disimpan tidak menggunakan database mysql, melainkan disimpan dalam bentuk file. Tpi jangan salah, meskipun katanya “stastic”, tetapi data tetap “dinamis”.

Tanpa harus banyak optimisasi seperti wordpress, hanaya dengan server paling kecil dati DO saja, jekyll bisa menampung ratusan ribu trafik. Amazing!

B.      Sistem Informasi
Misalnya membuat aplikasi siakad, aplikasi administrasi perkantoran, aplikasi stoc dan semisalnya yang sifatnya manajemen data. Cukup menggunakan Laravel dan Lumen. Atau framework PHP lainnya seperti symphony dan Yii, bebas.

Yang harus diperhatikan adalah skema database, sehingga skill optimisasi database dan relasi antar tabel sangat diperlukan dalam mendevelop aplikasi-aplikasi seperti itu.

C.      Cross Platfom Aplication
Nah, lagi musim project yang seperti ini. Klien minta buatin website plus aplikasi mobilenya (Android dan IOS). Biasanya yang order mau buat maretolace, portal pencarian, aplikasi startup, dsb.

Untuk tipe project seperti ini, saya menerapkan Write Once Run Everywhere (WORE) kepada anak-anak backend, yaitu menulis codingan aplikasi hanya satu kali, tetapi bisa berjalan diplatform mana saja,seperti destop, android, ios dan web.
Yang dibutuhkan:
1.      Serverless Database
Yaitu database di host dipiha etiga. Jadi kita tidak lagi pusing memikirkan melakukan backup database, maintenance, ataupun scaling up. Bagi yang pemula, bisa mencoba baqend.com sebagai database. Yang lebih pro bisa coba DynamoDB dari Amazon, Firebase dari Google dan masih banyak lagi. Tipe database rata-rata NoSQL dan ketika diakses format yang ditampilkan dalam bentuk JSON.

Untuk database user, dalam handle autentifikasi auth0.io atau strompath. Pernah lihat google, prpoduk-produknya banyak (Drive, Email, Docs, Playstore, dll) baik versi web maupun aplikasi mobile, tapi loginnya cukup pakai satu ID sajakan? Nah, auth0 dan strompath adalah rahasiannya.

Untuk bisa terhubung dengan database ini semua menggunakan REST API yang disediakan, dan REST API dapat diakses dengan banyak cara, salah satunya Javascript.

2.      Cloud Storage untuk static file
Jika aplikasi memilik fitur untuk upload gambar profil, atau foto produk, kita menggunakan Amazon S3 sebagai tempat penyimpanannya. Pilihan lainnya, bisa di Firebase, Azure Storage, Dropbox. Dan Cloud Storage juga dapat digunakan untuk menyimpan file JS, logo, dokumen, dll.

Cara upload file ke cloud storage salah satunya melalui REST API yang disediaan atau melalui SFTP.

3.      Cross Platform IDE
kAplikasi di develop menggunakan IDE/Platform yang bisa save hasil codingan agar berjalan di Android, iOs, Linux, dan Windows. Seperti:
·         MeteorJS, bahasa HTML + CSS + Javascript
·         Scade, IDE menggunakan bahasa Swift
·         Intel XDK, IDE menggunakan bahasa HTML + CSS + Javascript
·         Xamarin, IDE menggunakan bahasa C#

Dan masih banyak lagi pilihannya. Dengan bahasa-bahasa universal tersebut, dengan satu coding, aplikasi kita dapat berjalan di Android, Windows, Linux dan iOs.

4.      Middleware server
Salah satu cara komunikasi antara aplkasi e Serverless Database dan cloud storage, adalah melalui REST API. Namun menghubungkan langsung aplikasi yang ada ditangan user ke serverless database, sangat riskan. Oleh karena itu kita memerluan satu server sebagai middleware.

Begitu juga untuu kita memerlukan satu server mengolah/menggenerate data, kita memerlukan sebuah server untuk menjalankan script. Script tersebut biasanya dicoding menggunakan Flask (python), atau Ruby. Atau bisa juga menggunakan Javascript + NodeJS. Bahasa-bahasa tersebut terpilih karena script lebih cepat dan ringan ketika dieksekusi.

Nah, kalau dirangkum skill-skill yang harus dimiliki backend programmer satu ini adalah pengetahuan seputar:

Junior Programmer:

PHP, MySQL, Linux server & CLI, Javascript Laravel, Lumen

Senior Programmer:

PHP, MySQL, Linux server & CLI, Javascript Laravel, Lumen, REST API, JSON, Swift, NodeJS, C#, NoSQL, python dan Ruby

Itu semua sudah lebih dari cukup dan sebagai gerbang untuk membuka dunia backend yang lebih dalam.

Happy Coding!
(1)   Cepat nemun tetap pertahankan kualitas dan ekspektasi client.
(2)   Ada yang menganggap, server adalah urusan DevOps bukan Backend Developer.


Previous
Next Post »