Home > Refactoring > Pengenalan Refactoring

Pengenalan Refactoring

Ketika sebuah project menjadi semakin besar dan code mencapai jumlah yg cukup besar. Maka besar kemungkinan bahwa kode tersebut mengandung banyak duplikasi, menyalahi aturan2 fundamental oo, responsibility dari class yg salah dll. Kacau. Membaca nya aja udh bikin pusing. Code yg ga jelas. Dan muncul pikiran .. sudahlah .. bangun aja semua dari awal … hehehehe

Apalagi di project yg menggunakan oo.Mudah terjadi penyalah gunaan konsep , pelanggaran2, yang menyebabkan code menjadi mumet dan ruwet seperti benang kusut.

Jadi apa yg perlu dilakukan pada code2 yang mumet dan kusut dan jorok. Ya di bersihkan, di clean up. Tapi tidak mudah meyakinkan orang untuk mengubah code yang sudah berjalan. Karena rata2 orang berpikir.

Buat apa lagi diubah, toh sudah jalan. Jangan nambah2 kerjaan. Msih banyak yang harus dikejar nih.

Hal ini wajar saja terjadi jika emang projectnya udh dekat dengan deadline. Yg paling penting jalan dulu lah. Mw ga oo ato salah responsibility. Bodo amat. Yg penting jalan. Customer senang.

Itu merupakan tantangan bagi suatu project. Apakah code yg busuk atau jorok itu akan di cleanup atau malah dibiarkan saja.

Kadang juga programmer ga sadar klo mereka udh bikin code yang salah dan bad smell. Tapi itu bukan sepenuhnya salah programmer. Karena mungkin mereka sudah lama coding dengan cara yg seperti itu jadi lama kelamaan ga sadar lagi klo itu salah. Nah .. emang diperlukan mata2 fresh yg bisa melihat kesalahan2 tersebut. Nah jadi perlu diadakan review ttg code yang ada.

Jadi diperlukan saat untuk memperbaiki code yang ada tapi tidak mengubah fungsionalitasnya. Itulah yg disebut refactoring. Mengubah struktur code yang sudah berjalan (camkan . sudah berjalan. jadi bukan code yg error) tanpa mengubah fungsionalitas atau behaviour dari code tersebut.

Nah. keuntungan melakukan refactoring apa ?

Salah satunya code lebih mudah dimaintain. Code enak dibaca. Ga rumit. Mudah menambahkan kelas baru. Ga sulit ngubah code jika terjadi perubahan requirement dll.

Kebanyakan management menolak melakukan hal ini pada projectnya karena mereka tidak melihat keuntunganya. Apalagi pada schedule yang ketat. Mreka melihat bahwa refactoring ini hanya akan menghambat pengejaran deadline. Karena refactoring menambah pekerjaan.

Tapi kebanyakan project gagal karena code yang sudah membludak dan kusut. Code tersebut complex untuk dipahami dan sulit di ubah.

Jadi lakukan refactoring sesering mungkin. Dan jangan menumpuk numpuk pekerjaan. Karena code yang bad smell dan tidak direfactor akan menjadi hutang yang ketika sudah banyak akan menyebabkan kita kerepotan membayarnya.

Dengan refactoring kita juga memperbaiki design setelah code tersebut dibuat. Berbeda dengan yg mungkin kita lakukan sebelumnya. Design and Code.

Jadi dengan refactoring kita dapat memulai dengan design yg buruk dan mengubahnya menjadi design yang benar. Setiap langkah2nya tidak rumit2 amat. memindahkan method dari satu class, memindahkan field dari satu class atau bahkan hanya mengubah nama variable agar lebih mudah dimengerti.

Jadi design berkembang seiring dengan berjalannya project. Design selalu diperbaiki setiap saat.

Advertisement
Categories: Refactoring Tags: , , ,
  1. Rikky Hasibuan
    December 10, 2009 at 8:16 am

    Bg Wel,

    Gimana dengan kasus project lama yg di handover ama kita untuk ngurusinnya??? memang seh bagusnya kita REFACTOR dari pada pusing ngoprek-ngoprek code orang sebelumnya…. cukup comot2 dikit dari code lama… Nah, sekarang persoalannya ada di masalah psikologis… Bagaimana cara abang menyikapi perasaan si Programmer lama, yg notabene nya masih ada sama2 satu kantor dengan kita, harus ‘mem-buldoser’ code-code dia(REfactoring maksudkuh)? Apakah hanya dengan minta izin saja cukup??? Memang seh, besar kemungkinan dia akan menjawab ‘YA’, tapi dari sisi hati kecilnya berontak ‘Wuih… Sial ni anak, baru datang udah nge-buldoser code yg dah susah payah aku buat..’ 😦

    Ada tips dari abang???

  2. weltam
    December 10, 2009 at 8:38 am

    Wah.. klo mengenai masalah itu harus blajar dari buku yg ga ada hubungan nya dengan Programming.

    How to Win Friends and Influence People – Dale Carnegie

    πŸ˜€

    Lagian aku rasa kalau memang dibutuhkan tak ada salahnya kita merefactoring code orang lain. Karena salah satu prinsip XP itu Collective Ownership jadi code itu milik bersama. JIka dirasa memang perlu dan memiliki alasan yg kuat. tidak ada salahnya direfactor. Asal jangan menyebabkan kekacauan atau error dan behaviour yg salah dari software.

    Yg jadi permasalahan itu adalah.. udh tw itu salah. tapi di diamkan saja. lama kelamaan kita jadi terbiasa.
    πŸ˜€

  3. Rikky Hermanto Hasibuan
    December 10, 2009 at 10:11 am

    Iya juga seh bang…
    SVN mungkin bisa dipake disini bang biar si Dia ga merasa ter-buldoser… Xixixixi.. CMIIW

    Oiya bang, ada saran ga sebaiknya menggunakan pendekatan apa kita membangun suatu yg system yg lebih banyak interact terhadap user seperti Web Aplikasi. Klik-klak-klik-kluk lah ama GUInya…

    OOP??? masih bingung mengimpelementasikannya pada pembangunan suatu web…
    Framework PHP-kah???? ato apa???

    Menurut bg wel??? kasih alasan kenapa bg???

    • weltam
      December 10, 2009 at 10:32 am

      pendekatan ini maksudnya apa ya? Arsitektur nya kah ?

  4. Rikky Hermanto Hasibuan
    December 10, 2009 at 10:45 am

    Yuppy… Arsitekturnya… atou bisa juga kayak MVC-MVC an…

    • weltam
      December 11, 2009 at 1:29 am

      pemilihan arsitektur itu tergantung dari functional dan non-functional requirement nya.

      Untuk panduan mengenai pattern2 yg digunakan dalam membangung satu aplikasi coba rujuk ke buku ini

      Patterns of Enterprise Application Architecture
      by Martin Fowler

  5. Rikky Hermanto Hasibuan
    December 11, 2009 at 3:04 am

    Ada donlot gratis nya bang????

    Bagi dunks…

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: