![]() | |||
Joel on Software Pojok Software Joel
| |||
|
Artikel-artikel "Joel on Software" lain dalam bahasa Indonesia Artikel-artikel "Joel on Software" lain dalam bahasa Inggris |
Oleh Joel Spolsky Diterjemahkan oleh Mas Agung Sachli Sabtu, 27 Januari 2001 Pada tahun 1982, keluarga saya mengambil barang kiriman sebuah IBM-PC pertama di Israel. Kami sampai turun ke gudangnya dan menunggu PC kami dibawa dari pelabuhan. Dengan berbagai cara, saya menyakinkan ayah saya untuk membeli ve Sekarang, “semua orang” tahu bahwa BASIC merupakan bahasa anak kecil yang mengharuskan anda menulis kode seperti bakmi dan menjadikan otak anda seperti keju Camembert. Jadi kami membeli IBM Pascal seharga $600, yang berupa 3 disket floppy. Kompilasi pertama ada pada disket 1, kompilasi kedua ada pada disket 2, dan linker ada pada disket 3. Saya menulis sebuah program sederhana “hello world” dan meng-kompilasi-kannya. Total waktu yang dibutuhkan: 8 menit. Hmm. Itu merupakan waktu yang lama. Saya menulis sebuah batch file untuk meng-otomatis-kan proses tersebut dan memangkas waktunya menjadi 7 ½ menit. Lumayan. Namun saat saya mencoba menulis program yang panjang seperti Othello saya yang keren yang selalu mengalahkan saya, saya menghabiskan sebagian besar waktu saya untuk kompilasi. “Ya, “ seorang programmer professional mengatakan kepada saya, “kami biasanya meletakkan sebuah papan sit-up di kantor dan melakukan sit-up ketika sedang kompilasi. Setelah beberapa bulan melakukan programming, saya mempunyai otot perut yang menakutkan.” Suatu hari, sebuah program yang keren bernama Compas Pascal muncul dari Denmark, yang dibeli oleh Philippe Kahn dan diubah menjadi Borland Turbo Pascal. Turbo Pascal merupakan sebuah kejutan, karena dia bisa melakukan segalanya yang bisa dilakukan oleh IBM Pascal, namun dia hanya memerlukan 33K memori termasuk text editor. Bukan hanya itu. Yang lebih mencengangkan adalah sebuah kenyataan bahwa anda bisa melakukan kompilasi sebuah program kecil dalam waktu kurang dari 1 detik. Ini seperti jika sebuah perusahaan yang belum pernah anda dengar sebelumnya memperkenalkan mobil Buick LeSabre yang bisa berlari 1,000,000 Km per Jam dan dapat mengelilingi dunia dengan bensin yang sebegitu sedikitnya sehingga dapat diminum oleh semut tanpa membuat dia mabok. Tiba-tiba saya menjadi sangat lebih produktif. Kala itu adalah saat saya belajar tentang konsep lingkaran REP. REP singkatan dari “Read, Eval, Print” (baca, proses, tampilkan), dan hal itu menjelaskan apa yang dilakukan oleh sebuah interpreter: dia “membaca” input anda, evaluasikan, dan tampilkan hasilnya. Sebuah contoh dari lingkaran REP adalah seperti ini: Saya mengetik sesuatu dan interpreter membacanya, mengevaluasi, dan menampilkan hasilnya.
Pada skala yang sedikit lebih besar, saat anda menulis program, anda sedang berada pada sebuah lingkar REP bernama lingkar Edit-Compile-Test. Anda edit kode anda, kompilasikan, dan uji, dan lihat bagaimana dia bekerja. Hal yang penting di sini adalah anda perlu menjalankan lingkaran tersebut berulang-ulang untuk menulis sebuah program, dan disebutkan bahwa semakin cepat lingkar Edit-Compile-Test, semakin produktiflah anda, dibatasi oleh batas kecepatan alamiah proses kompilasi. Itu adalah alasan formal mengapa programmer komputer menginginkan hardware yang sangat cepat dan pembuat compiler akan melakukan apa pun yang bisa dilakukan untuk menghasilkan lingkar Edit-Compile-Test yang super cepat. Visual Basic melakukannya dengan melakukan parsing dan lex-ing setiap baris saat anda ketik, sehingga kompilasi akhir akan menjadi sangat cepat. Visual C++ melakukannya dengan kompilasi bertingkat, header yg dikompilasi dulu, dan linking bertingkat. Namun segera setelah anda mulai bekerja di sebuah tim yang lebih besar dengan banyak programmer dan tester, anda akan mengalami pengulangan yang sama lagi, namun lebih besar (bentuk fractal). Seorang tester menemukan bug di kode, dan melaporkan bug tersebut. Programmer memperbaiki bug tersebut. Berapa lama waktu yang dibutuhkan sebelum tester mendapatkan versi kode yang telah diperbaiki? Pada beberapa organisasi pengembangan, lingkar Report-Fix-Retest ini akan memakan waktu beberapa minggu, yang berarti seluruh organisasinya berjalan dengan tidak produktif. Untuk menjaga agar seluruh proses pengembangan berjalan dengan mulus, anda perlu fokus agar bisa mendapatkan lingkar Report-Fix-Retest yang lebih singkat. Sebuah langkah bagus untuk melakukan hal ini adalah dengan build harian. Build harian adalah sebuah build yang otomatis, setiap hari, dan lengkap atas semua cabang source yang ada. Otomatis – karena anda menyiapkan kode untuk dikompilasi setiap hari pada waktu yang tetap, menggunakan cron job (di UNIX) atau scheduler service (di Windows). Harian – atau lebih sering. Akan ada godaan untuk terus menerus melakukan build, namun mungkin anda tidak akan bisa, karena masalah kontrol source yang mana akan saya bicarakan sebentar lagi. Lengkap – kemungkinannya adalah, kode anda mempunyai beberapa versi, beberapa operating system, atau versi high-end/low-end. Build harian perlu mem-build semua-nya. Dan perlu build semua file dari awal, tanpa mengandalkan kemampuan kompilasi bertahap dari compiler tersebut yang mungkin tidak sempurna. Berikut beberapa keuntungan build harian:
Bagaimana melakukan semua itu. Anda perlu sebuah server untuk build, yang mana merupakan komputer tercepat yang anda miliki. Tulis sebuah script yang akan mengambil salinan source code terkini yang lengkap dari tempat penyimpanan (anda menggunakan source control kan?) dan kemudian build, dari awal, setiap versi yang anda buat. Jika anda mempunyai sebuah installer atau program setup, build -kan juga. Apa pun yang anda kirim ke customer harus dihasilkan dari proses build harian. Letakkan masing-masing build ke dalam directory-nya sendiri, diberi nama sesuai tanggal. Jalankan script anda pada waktu yang pasti setiap hari.
Untuk bacaan lebih lanjut:
Artikel ini aslinya bahasa Inggris dengan judul Daily Builds Are Your Friend | ||
![]() Joel Spolsky adalah pendiri Fog Creek Software, sebuah perusahaan software kecil di New York City. Dia lulus dari Yale University, dan pernah bekerja sebagai programer dan manajer di Microsoft, Viacom, dan Juno. | |||
Isi halaman-halaman ini mewakili opini dari satu orang.
Semua isi Hak Cipta ©1999-2005 dari Joel Spolsky. Hak Cipta dilindungi Undang-undang