Warning: Postingan ini Banyak Screenshots-nya.
Disclaimer: JetBrains memberikan saya license NotForResale(NFR) ReSharper untuk MVP, sebagai rasa terima kasih saya ingin menulis review ttg produk ini.
Langsung saja ya, nggak usah jelasin apa itu ReSharper…
Note: Shortcuts saya menggunakan Visual Studio Binding (default installation).
Saya mulai coding seperti berikut:
Kemudian ternyata saya harus nge-wrap beberapa kode dgn If, While, Try/Catch, dsb..
Select kode yg mau di-wrap dan tekan Ctrl-E lalu U.
Kemudian saya masukkan logic yang belum dibuat, pastikan cursor ada di logic tersebut dan tekan Alt-Enter. Tentunya saya akan pilih opsi Read-Only Property.
Setelah saya pilih opsi Read-Only Property, cursor saya arahkan ke modifier “private” dan tekan Alt-Enter lagi untuk mengubah access modifier-nya:
Setelah selesai dgn class ini, saya lihat apakah ada Tip (Hint, Suggestion, Warning, Error) dari hasil Code Analysis ReSharper. Saya pindahkan cursor ke kata yg di-garisbawahi oleh ReSharper dan tekan Alt-Enter.
Hmm, saya bekerja dgn programmer lainnya dan tidak ingin mereka depend ke satu implementasi Minuman saja. Saya pingin sebuah Interface IMinuman yg di-implement oleh AirPutih ini.
Cursor saya pindahkan ke kata AirPutih, lalu saya tekan Ctrl-Shift-R (menu Refactor) dan saya pilih Extract Interface:
Karena saya malas meng-klik kanan Solution Explorer dan memilih Add New Class, saya buat class CocaCola di bawah definisi interface IMinuman, kemudian setelah selesai, pindahkan cursor ke class CocaCola dan tekan Alt-Enter untuk memindahkannya ke file terpisah bernama “CocaCola.cs”:
Jika saya sewaktu-waktu ingin berpindah ke suatu Class atau Method tertentu, dari current file saya tinggal tekan Shift-Alt-T dan cari method yg saya ingin tuju:
Sekarang saya ingin menge-test AirPutih… AirPutih ini akan digunakan oleh programmer lain si Fulan yg sedang sibuk membuat class Consumer. Saya ke meja dia, diskusi tentang method apa saja yg bisa dipanggil oleh Consumer, lalu kita buatkan suatu kontrak dgn meng-ekstrak interface IConsumer.
Setelah dia meng-commit IConsumer.cs ke dalam Source Control, saya panggil Get Update untuk mendapatkan latest version dari solution. Kemudian saya buat project baru bernama Minuman.Tests dan menambahkan beberapa reference (project Minuman, project Consumer, dan DLL NUnit dan RhinoMocks).
Saya tidak perlu mengetik “Using NameSpace.XYZ” karena biarlah ReSharper yg memasukannya:
Pertama kode untuk mengetes logic Minum()
Kedua kode untuk mengetes apakah AirPutih saya compatible dgn IConsumer, tanpa saya perlu menunggu Programmer Fulan selesai dgn implementasi Consumer.cs nya… istilah keren-nya mocking:
ReSharper akan memberi tahu ada Test yg bisa dijalankan, per method atau per fixture, dgn icon Hijau-Kuning –nya.
Saya pilih icon Hijau-Kuning yg disebelah kiri TestAirPutih, karena saya ingin menge-test semua yg ada dalam class ini
Dan saya bisa lihat hasilnya dgn ReSharper Test Runner:
Setelah selesai dgn IMinuman dan AirPutih, saya ambil TO-DO berikutnya dan melakukan kembali aktivitas seperti dari awal posting ini.
Take my ReSharper away, and you take my Productivity away too :) (pesan promo tanpa malu).