Btw lupa mention... specific dynamic feature yg gw mesti highlight adalah macro (e.g di LISP, Boo). Mirip dengan macro di office tools, i think ini analogi real-world yang paling effective buat illustrate the purpose dan potential of AOP features buat eliminate repetitive tasks.
2010/3/4 Hendry Luk <hendrym...@gmail.com> > Btw just to put another thing into perspective... > Benernya aop diintroduce buat minimalise repetitive code, terutama karna > banyaknya repetition n code noise yg dibutuhin dalam static language. > > Dynamic languages jarang pusingin aop, karna flexibility dari languagenya > udah allow lu buat nulis code yg gak repetitive. > Sebagai contoh, singleton pattern, ato observable pattern, ato dispossable, > clonnable pattern, exception handler, etc. > Di static language, gak ada get around it, even dengan AOP framework. > Misalnya buat bikin singleton, lu mesti selalu repeat beberapa hal buat make > it happen: > - initialise singleton object lazily > - bikin semua constructor private > - override serialization n deserialization mechanism buat return the same > instance, bukan new instance > - bikin static getInstance() method > - make sure the whole singleton pattern thread safe (e.g. pake double lock > pattern) > - make sure gak ada static methods di singleton class > etc > > Kita semua dah all these craps ini berulang2. Ini adalah cross-cutting code > yang mesti lu repeat di semua module dan susah disingkirin. Gitu juga dengan > observable, clonable, exception handling etc yang gak lebih dari code noise > (boilerplate code) yang gak ngasih any real value ke class lu. > Di dynamic language though, lu bisa tinggal extend the language dengan > bikin template buat "singleton pattern" yang otomatis bisa diapply across > the board pas runtime/compile time ke semua class yang kita mau singleton. > Lu tinggal nulis 1 kali doank, apply anywhere. Kita tinggal tunjuk > declaratively (misalnya dengan annotation), "i want this to be singleton", > langsung compiler nulisin codenya for you. > > Gitu juga dengan observable pattern, dispossable pattern, clonnable, > exception handling, etc, dimana kita bisa langsung apply across the board ke > semua class tanpa nulis sendiri manually di tiap class. Gak perlu repeat > yourself everytime. > > Dynamic language minimalises the need buat nulis repetitive code. Disana > teknik aop dah jadi natural part of the language, dan jarang direintroduced > under aop flagship. Static language berusaha buat ngambil manfaat dari > dynamic language ini, dan karna itulah dibikin konsep aop yang to some > extend berhasil bikin lu nulis cross-cutting code tanpa repetition. > > 2010/3/4 sm96 <syaiful.mukh...@gmail.com> > > >> >> AOP bukan hanya interceptor lho... >> >> 2010/3/3 Nashroulloh <naz...@gmail.com> >> >>> >>> >>> > hmm.. bau-baunya promosi guice nih >>> >>> Sekedar upaya menyeimbangkan antara konsep dan praktek. >>> Berharap ada yg memberi contoh lain. >>> >>> regards, >>> Nasrul >>> >>> -- >>> Menikmati Hidup Mempersembahkan yang Terbaik >>> -Nashroulloh >>> >>> >> >> >> -- >> syaiful.mukhlis >> gtalk:syaiful.mukh...@gmail.com <gtalk%3asyaiful.mukh...@gmail.com> >> >> > >