Skip to content
This repository has been archived by the owner on Dec 15, 2020. It is now read-only.

Latest commit

 

History

History
95 lines (78 loc) · 10.3 KB

04_Coding.md

File metadata and controls

95 lines (78 loc) · 10.3 KB

The Clean Coder

Chapter IV

Coding

Content:

Pada bab ke 4 ini, Uncle Bob menceritakan tentang aturan dan prinsip pribadi beliau dalam bidang pengkodean. Hal ini mencakup tentang perilaku, suasana hati, dan sikap beliau dalam menulis kode.

Preparedness

    Pengkodean adalah sebuah aktivitas intelektual yang menantang dan melelahkan, yang membutuhkan kefokusan dan disiplin ilmu lain. Ada beberapa faktor yang perlu ditangani sekaligus, seperti pertama sekali, pastikan kode Anda bekerja. Anda harus mengerti dan memikirkan segala sesuatu hal yang berkaitan untuk menyelesaikan masalah tersebut. Setelah itu, pastikan kode tersebut memang benar-benar menyelesaikan masalah pelanggan, tidak hanya menuruti apa yang diminta pelanggan. Lalu, pastikan kode Anda cocok dengan sistem yang sudah ada. Kode tersebut harus dapat mengikuti aturan teknikal yang baik. Selain itu, kode Anda harus dapat dimengerti oleh programmer lain, terlepas dari penulisan komentar yang bagus. Disaat terjadinya gangguan ataupun Anda sedang lelah, atasi dahulu hal tersebut sebelum Anda mulai melakukan pengkodean kembali. Ini dikarenakan akan menimbulkan pemborosan dari pengulangan terhadap pekerjaan tersebut.

3 AM Code

    Seperti yang dialami oleh Uncle Bob saat beliau melakukan pengkodean pada jam 3 pagi, hal tersebut menciptakan masalah besar untuk waktu yang lama. Disaat beliau berpikir bahwa melakukan pengkodean pada jam 3 pagi adalah sebuah tindakan profesionalisme, namun ternyata sebaliknya. Hal yang dapat kita lihat adalah profesionalisme itu lebih kepada disiplin terhadap waktu. Janganlah melakukan pengkodean saat lelah, pastikan Anda mendapatkan tidur yang cukup dan menerapkan gaya hidup yang sehat.

Worry Code

    Disaat Anda mengalami kekhawatiran atau masalah pribadi, maka hal itu akan berada di pikiran Anda dan menganggu produktifitas pekerjaan Anda saat pengkodean. Untuk itu, trik yang dapat Anda lakukan adalah, Anda dapat belajar untuk mengatur prioritas permasalahan tersebut di pikiran Anda, sehingga gangguan tersebut tidak berkelanjutan. Anda dapat melakukan pembagian waktu sedikit untuk setidaknya menyelesaikan atau mencari solusi untuk masalah pribadi Anda. Dengan begitu, Anda dapat menggunakan waktu pengkodean Anda dengan produktif daripada memaksakan untuk melakukan pengkodean tanpa menenangkan pikiran. Ini menghindari munculnya pengkodean yang akan terbuang nantinya.

The Flow Zone

    Aliran “Zona” sebenarnya tidak sebaik yang dipikirkan orang, yang menganggap itu adalah keadaan hyper-productive. Bagi seorang programmer yang berada di zona ini, mungkin akan merasakan keadaan yang benar-benar sempurna, padahal itu hanyalah keadaan dimana kemampuan rasionalnya berkurang demi perasaan akan kecepatan. Pada saat itu, Anda akan kehilangan sebagian besar dari gambaran Anda saat di zona tesebut, sehingga membuat Anda melakukan pengambilan keputusan yang cepat namun membuat Anda nantinya akan mundur kembali untuk mengunjunginya kembali. Salah satu cara yang baik untuk terhindar dari zona ini adalah melakukan pengkodean dengan pasangan, karena dibutuhkan komunikasi yang intens dan konstan. Namun zona ini ada kalanya akan dibutuhkan, ketika Anda berlatih.

Music

    Uncle Bob membuktikan bahwa musik tidak membantunya untuk dapat fokus dalam melakukan pengkodean. Walaupun mungkin banyak orang yang melakukan pengkodean sambil mendengarkan musik melalui earphone mereka. Namun itu mungkin saja malah membantu orang tersebut masuk ke zona.

Interruptions

    Interupsi adalah sebuah gangguan yang buruk. Untuk itu, Anda dapat mengatasinya dengan memiliki pasangan dalam melakukan pengkodean. Pasangan Anda akan dapat dengan cepat merekonstruksi konteks mental Anda sebelum adanya interupsi. Selain itu, TDD juga dapat membantu Anda disaat Anda gagal dalam sebuah tes, dimana Anda nantinya dapat kembali pada keadaan sebelumnya setelah interupsi dan melanjutkan tes yang gagal tersebut sampai berhasil.

Writer’s Block

    Jika Anda sedang memiliki kondisi writer’s-block, solusinya adalah mencari pasangan dalam pengkodean. Secara psikologis, hal ini bereaksi sehingga blok-blok tersebut dapat mencair. Namun, ini bukanlah solusi yang sempurna. Saat Anda mengalami perubahan, kelelahan yang parah, maka Anda membutuhkan waktu untuk pergi dari pasangan Anda dan melakukan pemulihan.

Creative Input

    Saat mengalami blockage, penting bagi kita untuk mengingat, bahwa “hasil yang kreatif bergantung pada masukan yang kreatif”. Masukan yang kreatif bisa dengan membaca buku, dan tiap orang pasti memiliki kesukaan berbeda, ada yang suka membaca buku software, politik, sains, fiksi, dll. Tetapi yang pasti adalah “kreativitas menghasilkan kreativitas”. Tp terkadang ada juga yang melakukannya sebagai unsur pelarian, maksudnya adalah saat orang berusaha keluar dari suatu masalah, tidak disangka ia justru menghasilkan sesuatu yang bagus.

Debugging

    Proses debug dulu dan sekarang sudah jauh berbeda. Kalau dulu, saat terjadi bug, butuh waktu seminggu sampai berhasil mendiagnosa masalah. Dalam buku ini, dijelaskan bahwa mereka menghabiskan waktu seminggu hanya untuk mengumpulkan data dari setiap pengguna, mulai dari apa yang mereka lakukan sebelum dan sesudah terjadinya bug. Yang mempersulit lagi adalah bahwa interview kepada tiap pengguna dilakukan lewat telepon, karena sistemnya berada dilokasi berbeda. Kemudian, mereka menghabiskan berhari-hari untuk menuliskan simple realtime inspector dari sistem, lalu mencobai setiap cara, hingga akhirnya mereka berhasil mendapatkan variable penyebab bug terjadi, tetapi tetap saja mereka tidak tahu penyebab hal itu terjadi. Ditambah lagi adalah bahwa code tersebut ditulis oleh sesorang yang sudah pergi kuliah, dan tidak ada satu pun yang memahami code yang ia buat, karena ia sangat tertutup dengan code yang ia buat. Jadi mereka harus benar-benar berusaha keras memahaminya sendiri. Di era sekarang ini, dengan perlatan yang sudah sangat powerful. Dalam hitungan detik kita bisa mendapatkan variable penyebab bug. Dan dalam beberapa menit kemudian, kita bisa mengetahui penyebabnya dan menyelesaikan masalahnya. Dengan kata lain, proses debugging bukanlah sesuatu hal yang sangat menguras tenaga seperti dulu.

Debugging Time

    Debugging time adalah waktu yang dihabiskan untuk melakukan proses debugging. Ia tiba secara alami dan berisi masalah yang harus segera diselesaikan. Jika masuk dalam hitungan coding time, maka debugging time akan cukup mahal maka akan sangat bagus jika kita menghindarinya. Setelah 10 tahun bekerja, sekarang waktu yang saya habiskan untuk debugging sudah jauh lebih sedikit. Saya berhasil menguranginya lewat implementasi prinsip TDD (Test Driven Development). Baik dengan TDD atau tidak, adalah keharusan kita untuk mengurangi waktu debugging sampai 0. Ingatlah, saat kita melakukan kesalahan, adalah baik bertindak professional untuk menghilangkan bugs yang kita buat.

Pacing Yourself

    Pengembangan perangkat lunak adalah seperti lari marathon, bukan lari sprint. Kita tidak bisa menang dengan mencoba lari secepat mungkin dari awal sampai akhir. Kita harus menang dengan memperhatikan kemampuan kita dan terus meningkatkan kecepatan kita. Seorang pelari marathon akan selalu memperhatikan kondisi tubuhnya sebelum dan sesudah lomba. Begitupun seorang programmer professional, harus memperhatikan energy serta kreativitas yang ia miliki.

Know When to Walk Away

    Kreativitas dan kecerdasan adalah suatu keadaan dalam pikiran kita. Saat kita lelah, keduanya akan pergi. Dan jika kita terus memaksa pikiran kita bekerja selama berjam-jam sampai larut malam untuk memecahkan masalah, kita justru hanya akan membuat pikiran kita lebih lelah lagi dan mengurangi kemampuan kita menyeselaikan masalah itu sendiri. Ketika kita terjebak dan merasa lelah, cobalah untuk melepaskannya sejenak. Biarkan alam bawah sadar kita mencoba menyelesaikan masalahnya dengan cara kreatif. Lebih baik pahami pola kreatif anda dan ambil keuntungan dari sana, daripada bekerja melawan mereka.

Driving Home

    Berkendara membutuhkan sumber daya non-kreatif, berupa mental. Kita harus mengarahkan mata, tangan dan pikiran kita untuk dapat berkendara dengan baik. Tak hanya fokuskan seluruh raga, setiap masalah kita juga harus kita lepaskan sejenak. Dalam hal ini kita dapat memahami bahwa mencoba melepas masalah dari pikiran kita akan membantu pikiran kita mendapat solusi dengan jalan yang berbeda dan kreatif.

The Shower

    Ketika kita bekerja dalam masalah, kita akan berpikir seakan-akan kita tidak melihat opsi lain. Kita kehilangan solusi yang sebenarnya sederhana karena pikiran kreatif kita ditekan oleh ketidakfokusan kita. Terkadang, cara terbaik menyelesaikannya adalah dengan pulang kerumah, makan, nonton dan tidur dan bangun dipagi hari dan mandi dengan nyaman. Adalah mungkin kalau semprotan air dipagi hari akan membantu menyadarkan kita dan mereview setiap solusi di kepala kita saat kita tidur.

Being Late

    Terlambat adalah kejadian terburuk yang terjadi pada sisi terbaik kita. Kita sering memeperkirakan sesuatu dengan baik, tapi pada akhirnya terlambat. Cara terbaik mengatasinya adalah pahami diri dan bersikap terbuka, jujurlah akan kemampuan anda dalam suatu tenggak waktu, jangan memasukkan harapan pada perkiraan anda.