Thursday, October 26, 2006

Naming Conventions dalam Symbian C+

dalam dunia software development, seringkali naming conventions atau tata cara penamaan menjadi sebuah isu penting.
Karena dengan penamaan yang baik, orang dapat dengan mudah mengerti bagaimana sebuah kelas, fungsi atau variabel dapat digunakan..
sebagai contoh penamaan fungsi getWidth() sudah jelas akan memberikan interpretasi bahwa fungsi tersebut akan mengembalikan properti lebar dari sebuah kelas. Hal ini tentunya akan lebih mudah dilakukan ketimbang developer tadi harus membaca sebuah dokumentasi yang tebal hanya untuk menemukan fungsi yang berfungsi untuk mengembalikan properti lebar dari sebuah kelas yang ternyata diberi nama perolehKananDikurangKiri().

Dalam Symbian pun digunakan naming conventions untuk mempermudah pengembangan (sayang meskipun dah pake naming conventions tetep aja susah ^_^).

Menurut om Jo Stichbury dalam bukunya yang berjudul "Symbian OS Explained" dia mengkategorikan ada 4 cara penamaan kelas dalam Symbian yaitu :
1. T classes
semua kelas yang berawalan T menyatakan bahwa kelas tersebut tidak memiliki heap-allocated memory alias memory yang dialokasikan secara dinamis. Sehingga kelas ini tidak perlu memiliki destruktor. biasanya kelas ini hanya merupakan kelas yang simpel, seperti contohnya kelas TFileNames yang hanya mengandung nilai nama dari sebuah file. sehingga jelas tidak diperlukan destruktor dalam kelas ini karena data nama tidak disimpan dalam heap melainkan dalam stack yang terkait dengan kelas tersebut.

2. C Classes
Semua kelas yang berawalan C diturunkan dari kelas CBase. Berbeda dengan kelas T maka kelas ini justru mewajibkan penggunaan destruktor. Kelas ini pun biasanya disimpan dalam heap yang memerlukan penanganan memory yang lebih rumit karena ditangani langsung oleh aplikasi. Berbeda dengan kelas T maka biasanya kelas C adalah sebuah kelas yang cukup besar dan memiliki banyak anggota kelas yang bersifat rumit semisal mengandung objek dari kelas lain. sehinggga apabila objek dari kelas ini tidak dihancurkan dengan benar maka dimemory akan tersimpan objek dari kelas lain tersebut yang tidak ikut dihancurkan. Hal ini lah yang mendasari perlunya dibuat destruktor. Destruktor pun otomatis harus diciptakan karena destruktor didefinisikan secara virtual pada kelas CBase.

3. R Classes
kelas dengan awalan R adalah kelas yang bertugas untuk menangani resource yang ada di luar aplikasi. biasanya resource yang dimiliki oleh OS Symbian. Contoh sederhananya adalah filesystem. tentunya aplikasi biasa tidak memiliki resource ini namun dapat mengakses resource ini. Hal ini dilakukan dengan mengunakan kelas R. Biasanya kelas ini memiliki fungsi2x seperti Open(),Create() atau Initialize() yang berfungsi untuk mengalokasikan resource atau mengeset handle untuk resource tersebut. kelas inipun umumnya memiliki prosedur Close() atau reset() yang berfungsi untuk melepas resource yang dipakai sehingga tidak menimbulkan memory leak. Kelas ini dapat disimpan dalam heap maupun dalam stack. Hanya saja perlu diyakinkan bahwa resource luar yang ditangani oleh kelas ini ikut dilepaskan ketika objek dari kelas ini dihancurkan baik dalam stack maupun dalam heap.

4. M Classes
Semua kelas yang berawalan M biasanya adalah sebuah kelas abstrak. Sehingga biasanya kelas ini hanya mengandung fungsi-fungi yang bersifat virtual yang mana harus didefinisikan ulang pada kelas yang mewarisinya. Kelas tipe ini dapat dibilang sama dengan konsep interface pada bahasa pemrograman java.

oke itulah ke 4 tipe penamaan standar kelas pada Symbian. Sebenernya ada satu lagi yaitu S class. S class jarang dipake karena S class adalah T class yang dipotong. dipotong dalam artian bahwa sebuah S class tidak boleh memiliki fungsi atau prosedur. Jadi ini kayak struct dalam bahasa C, punya data tapi gak punya prosedur ato fungsi.

sip..
jadi sekarang kita punya 5 class naming convention dalam Symbian.
hemp..
ternyata rumit juga yak..

1 comment:

Anonymous said...

Gile nald lo makin skill aja :p
Jangan berhenti nulis ya..
Berbagi ilmu bersama :p