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.
ConversionConversion EmoticonEmoticon