Skip to content
21 Desember 2010 / Jeffrey Hermanto Halimsetiawan

Software Refactoring dengan JetBrain ReSharper pada Visual Studio 2010


Software Refactoring adalah suatu teknik untuk melakukan restrukturuisasi pada kode yang ada dan memodifikasi struktur internalnya tanpa mengubah fungsionalitasnya.  Konsep software refactoring memiliki kedekatan metode pengembangan perangkat lunak xtreme programming, yaitu: suatu paradigma pemrograman yang menekankan bahwa pengembangan suatu perangkat lunak akan lebih efektif saat proses pengembangan daripada menghabiskan waktu untuk pembuatan desain.

Istilah refactoring pertama kali dimunculkan oleh William Opdyke dalam disertasi doktoral miliknya pada tahun 1992 sebagai sebuah teknik restrukturisasi pada pemrogaman berorientasi obyek. Martin Fowler seorang kolega dari Erich Gamma (anggota Gang of Four – pencetus design pattern) memantapkan konsep Opdyke lewat bukunya yang terkenal “Refactoring: Improving the Design of Existing Code”. Dalam buku tersebut, Fowler mendefinisikan refactoring sebagai “the process of changing a software system in such a way that it does not alter the external behaviour of the code, yet improves its internal structure”.

Salah satu add-on tambahan Microsoft Visual Studio yang dapat digunakan untuk membantu proses software refactoring adalah JetBrains ReSharper yang saat ini telah memasuki versi 5.1.1. Add-on ini sebenarnya berbayar, namun kita dapat menggunakan yang versi 30-day free trial. Beberapa kemudahan yang ditawarkan oleh produk ini antara lain:

  • Continuous code quality analysis in C#, XAML, XML, ASP.NET, and ASP.NET MVC.
  • Instant fixes to eliminate errors and code smells.
  • 40 solution-wide refactorings to safely change your code base, and 200+ code editing helpers.
  • Extended web development support with code inspections, code generation, navigation, and extended IntelliSense.
  • Navigation features to let you instantly traverse your whole solution.

Bagian yang paling memudahkan adalah kemampuannya untuk melakukan code quality analysis secara terus menerus  dan juga membetulkan error ataupun bad smell code secara instan. Code quality analysis yang dilakukan juga tidak hanya pada bagian code behind yang menggunakan bahasa C# tetapi juga meliputi analisa pada bagian XAML dan XML nya. Selain itu, add-on ini juga memberikan kemudahan untuk menentukan ruleset dari Naming Convention yang akan digunakan sehingga jika terjadi nama method/field yang tidak sesuai dengan konvensi yang telah ditetapkan dapat dideteksi dan di-rename dengan cepat. Berikut adalah beberapa contohnya:

  1. Remove unused directives in file : hal ini dilakukan untuk menghapus directives yang tidak dipakai. image
  2. Check parameter for null : hal ini dilakukan untuk melakukan pengecekan sebuah parameter yang berpotensi memiliki nilai null.image Template kode yang akan dihasilkan adalah:
    if (canvas == null) throw new ArgumentNullException("canvas");
  3. Invert ‘if’ : hal ini dilakukan untuk mengurangi nesting pada kode sehingga memudahkan pembacaan kode.  image Template kode yang akan dihasilkan adalah:
    if (scrollViewer == null) return;
  4. Make return type ‘void’ : hal ini terjadi ketika ada sebuah method dengan return value tertentu yang nilai return value-nya tidak digunakan di dalam program. image
  5. Convert part of body into LINQ-expression : hal baru yang ditawarkan versi ini adalah kemampuannya untuk mengubah assignment dalam sebuah looping for-each menjadi sebuah LINQ-expression. image Kode sebelum:
    foreach(CircuitSymbol symbol in LogicalCircuit.CircuitSymbol) {     Gate gate = symbol.Circuit as Gate; }

    Kode sesudah:

    foreach (Gate gate in LogicalCircuit.CircuitSymbol.Select(symbol => symbol.Circuit as Gate)) {      }
  6. Rename to : hal ini terjadi ketika terjadi penamaan field atau method yang tidak konsisten dengan ruleset yang telah ditentukan. image Apabila merasa tidak nyaman dengan ruleset yang telah ada, setting terhadap naming rule juga dapat diubah melalui kotak dialog berikut:image

Untuk lebih jelasnya, silahkan meng-install versi trial dari JetBrains ReSharper ini yang dapat meningkatkan produktivitas dari developer. Selamat mencoba.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: