Full Stack Developer

Apa lagi tuh, Full Stack Developer ?

Kalau istilah “Full Stack Developer” mungkin bisa dibilang asing atau baru didengar, tapi definisinya mungkin tidak terlalu asing atau sudah biasa dilakukan bagi kebanyakan developer.

Full-Stack Developer pertama kali dipopulerkan empat tahun lalu oleh Facebook’s engineering department. Idenya adalah bahwa full-stack developer dapat bekerja lintas-fungsional pada dua teknologi yang berbeda, yaitu front-end dan back-end, dan full-stack developer menawarkan sebuah paket yang lengkap.

Full-Stack Developer bekerja seperti back-end developer, pada sisi server, tetapi mereka juga bisa mampu menggunakan bahasa front-end yang mengontrol bagaimana tampilan dari situs yang dibuat.

Ilustrasi Full-Stack Developer

Bagi teman-teman yang bekerja pada perusahaan end-user atau bukan perusahaan software house/consultant dimana organisasi IT nya tidak terlalu besar tentu pekerjaan tersebut sudah sering dilakukan. Dimana seorang developer dituntut untuk bisa menangani semua sisi baik Back-End dan juga Front-End terkait dengan kebutuhan aplikasi yang akan dibuat.

Contohnya : Developer harus bisa mengkonfigurasi web server (contoh: IIS, Apache, NginX dsb), FTP server juga, konfigurasi Database, membuat stored-procedure, membuat optimalisasi table, membuat report analytic, mengkonfigurasi SVN/GIT/repository code lainnya, membuat application core framework, membuat source-code sesuai dengan requirement bisnis yang diharapkan sampai membuat design UI yang menarik, dan memperhatikan User eXperience juga  😀

Jika anda orang yang bisa belajar dan beradaptasi dengan cepat, tentunya hal tersebut bisa membuat anda semakin kaya pengetahuan dibidang lainnya juga.

Apakah lebih baik menjadi seorang Full-Stack Developer ?

Jika anda seorang developer dan ingin menjadi seorang full-stack developer berarti harus mempunyai pikiran yang terbuka akan teknologi baru. Senang dan geeks untuk mengeksplorasi terhadap teknologi2 baru yang ada. Anda harus bisa memahami dan mengerti teknologi back-end dan front-end yang ada mulai dari konsep dan cara kerjanya.

Ide seorang “full-stack developer” bukan berarti harus ahli, terbiasa akan semua teknologi yang ada karena spesialisasi ada untuk alasan tersebut. “full-stack developer” lebih kepada pengertian akan setiap area dan teknologi yang telah disebutkan diatas, bisa berkomunikasi dengan baik dengan rekan kerja, dan bisa menjadi aset yang berguna jika memang situasi memerlukan akan pengetahuan tersebut.

 

Ketika Profesi Programmer Sudah (tidak) Dihargai.

Profesi Programmer atau Developer atau Pembuat Software, bagi perusahaan Software House atau IT Company seharusnya merupakan asset yang sangat berharga, oleh karena itu profesi ini harus dimaintain agar menjadi profit center bagi perusahaan. Profesi ini terbilang cukup unik karena hampir kebanyakan profesi ini dinilai kurang bersosialisasi dengan rekan kerja di department lain atau bagian lainnya. Perlu dipahami bahwa ketika seorang programmer sedang asyik menatap dengan codingnya pada waktu yang bersamaan pikirannya sedang membayangkan input, proses dan output yang bakalan terjadi, oleh karena itu mungkin dibutuhkan konsentrasi yang tinggi dan sering lupa bersosialisasi, belum lagi kalau sedang ‘nanggung’ mentrace bugs atau sudah menemukan solusinya bisa bisa gelas minuman yang siap diminumpun disebelah-nya akan diabaikan demi ke’nanggungan’ tersebut. Dan hal ini, yang tidak bisa dipahami bagi sebagian orang dan akhirnya mencap programmer kurang
bersosialisasi atau kurang teamwork. Kemudian, sy berpikir karena memang tugas programmer adalah demikian menyelesaikan task todo nya agar menjadi program yang baik, bukan sebagai sales atau marketing yang dibutuhkan untuk bisa bersosialisasi atau mencari relationship yang banyak.

Dan profesi programmer sudah tidak dihargai lagi, ketika terlalu banyak politik office yang terjadi di internal organisasi tersebut karena yang terjadi adalah ketidak objective-fan dalam menilai sebuah masalah, dan lagi-lagi yang disalahkan adalah  programmer. Ketika organisasi yang membawahi tim development dipimpin oleh orang yang tidak paham siklus sebuah software atau SDLC (Software Development Life Cycle), dan lagi-lagi yang ditekan adalah programmer. Perlu dipahami bahwa SDLC,
harus dibangun terlebih dahulu dengan pondasi yang kuat dan sesuai best practice-nya bukan sesuai pemahaman yang keliru apalagi tidak ada proses SDLC sama sekali.

Tujuannya adalah untuk bekerja lebih efektif dan efisien, bayangkan jika SDLC tidak ada bisa-bisa programmer merangkap tester juga merangkap deployment juga plus membuat user guide juga, bisa bisa ruwet dan runyam urusannya. Kenapa mindset Software House adalah kerja rutin sampai larut malam, mungkin sampai jam 22.00 atau 23.00 setiap harinya ? apakah mengejar deadline, mengejar deadline koq rutin setiap hari ? apakah programmer tidak butuh bersosialiasi juga dengan keluarga yang sudah menunggu dirumah, dan menyalurkan hobi nya sepulang jam kerja. Bukankah kita hidup harus seimbang, antara dunia dan akhirat, antara kerja dan istirahat. Kemudian kalau kerja programmer rutin sampai larut malam berarti ada yg salah dalam prosesnya ??, Di Era Software House modern seharusnya hal tersebut tidak terjadi kalau ditunjang dengan proses yang benar dan resources yang handal plus tata kelola yang paham masalah, mungkin kerja lembur dibutuhkan jika benar-benar sudah deadline.
Intinya bukan jumlah jam kerja nya yang banyak tapi kualitas dari pekerjaan tersebut yg bagus.

Untuk menjadi Software House yang baik dan handal, programmer yang berkualitas merupakan sendi yang sangat penting, sendi berikut nya adalah proses (SDLC), sendi berikutnya adalah teamwork yang terbangun solid.

Demikian, semoga mencerahkan yang mendung.

PHP Fungsi Auto Load

Kadang dalam pengembangan aplikasi berbasis OOP dengan menggunakan PHP, para developer memisahkan class kedalam beberapa file berdasarkan fungsi dan tujuannya, hal ini mempunyai maksud agar supaya dalam pengembangan berikutnya, mempermudah untuk membaca source aplikasi tersebut.

Dengan demikian, jika ada 10 Class dalam 10 file php, maka developer harus meng-include-kan file-file tersebut kedalam file yang memanggilnya.

Untungnya, pada PHP versi 5, telah disediakan fungsi untuk mengikut sertakan class yang ingin digunakan, yaitu fungsi __autoload() dan spl_autoload_register.

Dari PHP sendiri lebih menganjurkan untuk menggunakan fungsi spl_autoload_register() ketimbang __autoload(). dikarenakan spl_autoload_register() lebih fleksibel untuk kasus autoloading class.

berikut dokumentasi fungsi  __autoload dan juga spl_autoload_register() yang lengkap.

Contoh implementasi fungsi __autoload :

file index.php berisi

<?php

function __autoload($class_name)
{
// Start from the base path and determine the location from the class name,
$base_path = ”;
//$include_file = $base_path . ‘/’ . str_replace(‘_’, ‘/’, $class_name) . ‘.php’;
$include_file = $base_path . str_replace(‘_’, ‘/’, $class_name) . ‘.php’;
echo $include_file.”<br/>”;
//return (file_exists($include_file) ? require_once $include_file : false);
return (file_exists($include_file) ? require_once $include_file : false);
}

?>

begitu file index.php ini dipanggil maka akan menjalankan otomatis akan menjalankan fungsi __autoload()

Application Lifecycle Management

Application Lifecycle Management (ALM) secara umum adalah sebuah proses/cara untuk mengatur atau memanage SDLC (Software Development Life Cycle) untuk pengembangan software aplikasi.

Application Lifecycle Management secara khusus telah menjadi definisi yang dimiliki oleh Microsoft melalui produknya
yaitu Team Foundation Server (TFS) dan Visual Studio sebagai code editornya.

TFS menawarkan fungsionalitas untuk collaboration pengembangan aplikasi seperti :
– Project Management
– Source Control
– Version Control
– Project Tracking
– Build Management
– Test Manager
– Reporting

tfs

Siapa sajakah user yang terlibat oleh adanya TFS ini :
– Project Manager
– Software Architect
– Software Developer
– Database Professional
– Software Tester

 

Query Dual di Oracle

Sepengatahuan sy, ketika mau melakukan query untuk temporary view saja tanpa ada table yang akan di query seperti di MySQL  seperti :

SELECT ‘temp’ as ‘field’

akan berjalan di MySQL dengan Output

++++++++++++++++++
field
temp
++++++++++++++++++

Tetapi di Oracle tidak akan jalan seperti itu syntaxnya berbeda, di Oracle spt :

SELECT ‘temp’ FROM DUAL

outputnya :
++++++++++++++++++
temp
temp
++++++++++++++++++

dimana DUAL adalah reserved syntaxnya Oracle untuk temporary table.

 

Macro Excel : Looping Within Column and Row

Macro Excel :

Menulis sebuah string perulangan diantara kolom (misal Kolom C sampai G) dan baris (misal Baris 3 sampai 6) dengan menggunakan Index,
berikut Macro nya ::

Sub LoopingWithinRowColumn()
Dim i  As Integer
Dim j As Integer

For i = 3 To 6
For j = 3 To 7
Cells(i, j).Value = “hallo”
Next j
Next i
End Sub

Storage Disk Size

Bit (b) adalah satuan bilangan biner, hanya bisa berisi angka 1 (satu) atau 0 (nol), tidak ada lainnya. Jadi “100” adalah bilangan 4 bit, “110000” adalah 0, “1000001” adalah 65 karakter ascii adalah A

Byte (B) adalah satuan sebuah karakter, bisa berupa angka, huruf atau simbol lainnya. 1 Byte dilambangkan dengan bilangan biner 8 bit. Jadi 1 byte = 8 bit. Byte dapat berisi angka, huruf, tanda baca atau karakter khusus. Ada 256 macam karakter yang mungkin, yang diatur dalam tabel ASCII bilangan 8 bit.

1 Byte (B) = 8 Bit (b)

1 Kilo Byte (KB) = 1024 Byte

1 Mega Byte (MB) = 1024 Kilo Byte

1 Giga Byte (GB) = 1024 Mega Byte

1 Tera Byte (TB) = 1024 Giga Byte

1 Peta Byte (PB) = 1024 Tera Byte

1 Exa Byte (EB) = 1024 Peta Byte

1 Zetta Byte (ZB) = 1024 Exa Byte

1 Yotta Byte (YB) = 1024 Zetta Byte