2008/11/9 Yohanes Nugroho <[EMAIL PROTECTED]>: > > Di Symbian (apalagi versi awal), memorinya sangat terbatas dan tidak > ada paging. Jadi mereka "mewajibkan" program untuk menangani eksepsi > dalam alokasi memori (karena kemungkinan gagalnya sangat tinggi). > Mereka punya idiom khusus (2 stage constructor) untuk menangani > eksepsi pada saat penciptaan objek. API milik symbian juga sebagian > besar melempar exception. > Exception memang diperlukan seandainya kita melakukan fungsi yang mungkin gagal di constructor. Tapi kita bisa workaround, dengan melakukan operasi yang pasti berhasil di constructor. Sedangkan yang tidak pasti, bisa dipindahkan ke "init" function.
Google juga punya special restriction untuk penggunaan exception di semua C++ code-nya. http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Doing_Work_in_Constructors > Yah intinya sih: kalo tidak percaya, coba deh mengembangkan aplikasi > Symbian s60 1st/2nd edition atau UIQ 2. Itu adalah lingkungan > pengembangan yang paling saya benci. Walau demikian saya punya proyek > open source pembaca Alkitab untuk Symbian sejak 2003 dan sudah saya > porting ke hampir semua versi Symbian yang ada > (http://compactbyte.com/symbianbible). > Percaya, saya percaya :) Untungnya saya tidak bekerja di mobile device. Embedded yang saya kerjakan biasanya untuk transport atau access optical, jadi memory-nya tidak terlalu terbatas. Kadang kalau dipikir, kontras sekali pembuatan program di embedded dan aplikasi. Kebetulan saya bekerja di 2 startup, pagi di optical transport, network processor, malam-nya web, large-scale data warehouse. Aplikasi web sama sekali tidak pusing dengan urusan memory. Yang mereka pentingkan adalah scale-out, pemisahan proses ke multi computer. Lebih murah buat kita untuk menambah jumlah PC daripada optimize byte-code atau memory. Jadi design-nya harus memperhitungkan bagaimana agar penambahan jumlah PC tidak memerlukan perubahan besar di dalam software-nya. KOkon. -- Berhenti langganan: [EMAIL PROTECTED] Arsip dan info: http://linux.or.id/milis