Saya adalah tipe orang yang sangat cepat bosan. Jadi ada kalanya saya sangat bosan dalam kegiatan yang menafkahi saya, yaitu memprogram. Bosan dengan mengetik source-code, membuat getter/setter, melakukan query SQL, dsb. Mengetik source semacam:

$username = $_POST['username'];
$password = $_POST['password'];
$email = $_POST['email'];
if (empty($username)) {
  //
} else if (..) {
  //
}

Menjadi sebuah neraka bagi saya, dan menutup IDE adalah salah satu obat. Untungnya, saya menemukan cara untuk membuat kegiatan satu ini menjadi lebih menarik dan menantang. Cara saya adalah mem-variasi model penulisan. Contoh kasus diatas, saya biasanya memodifikasi dengan:

$posts = array( 'username', 'password', 'email', ... );
foreach($posts as $p) $$p = $_POST[$p];

do {
  if (!$username) {  $error = "Username kosong"; break; }
  if (!$password) {  $error = "Password kosong"; break; }
  //simpan SQL di sini
}
while(0);

Atau daripada menulis:

cookiedata = {
  'name': request.COOKIES.get('name'),
  'email': request.COOKIES.get('email'),
  'url': request.COOKIES.get('url'),
}

#atau

key_name = 'tag:%s' % defaultfilters.slugify(tag.name)
newtag = models.Tag( key_name=key_name, name = tag.name, description = tag.description )
newtag.put()

Saya akan mengubah ke:


cookiedata = dict([(k, request.COOKIES.get(k, '')) for k in ['name', 'email', 'url']])

key_name = 'tag:%s' % defaultfilters.slugify(tag.name)
newtag = models.Tag(key_name=key_name, **dict([(prop, getattr(tag, prop)) for prop in models.Tag.properties()]))
newtag.save()

Contoh lagi di Java, daripada saya menulis


class ShutdownThread extends Thread {
  MyObject obj = null;
  public void run() {
    obj.closeAllConnections();
  }
  public void setObj(MyObject obj) {
    this.obj = obj.
  }
}

public static void main(String[] args) {
  MyObject obj = new MyObject();
  ShutdownHook hook = new ShutdownHook( obj )
  Runtime.getRuntime.addShutdownHook( hook );
}

Saya akan menggunakan metode yg lebih menyenangkan

public static void main(String[] args) {
  MyObject obj = new MyObject();
  Runtime.getRuntime.addShutdownHook( new Thread() { 
    MyObject obj;
    public  Thread set(MyObject obj) { this.obj = obj; return this; }
    public void run() { obj.closeAllConnections(); }
  }.set(obj) );
}

Karena mengingatkan saya kepada betapa menyenangkannya javascript dan jQuery.

Ya, memang lebih tidak mudah dibaca dan maintenance aplikasi akan sedikit lebih susah, tetapi at-least its fun. Dan sepertinya saya udah bosan ngeblog, jadi sampai di sini. Silahkan ceritakan solusi anda sendiri untuk mengatasi kebosanan anda di kerjaan anda sendiri.