Ceriwis  

Go Back   Ceriwis > HOBI > Komputer & Teknologi > Programming

Programming Share, tanya jawab, saling bantu antar programmer dengan berbagai macam bahasa pemrograman.

Reply
 
Thread Tools
  #1  
Old 20th November 2011
Permenkaret Permenkaret is offline
Ceriwiser
 
Join Date: Nov 2011
Posts: 351
Rep Power: 14
Permenkaret mempunyai hidup yang Normal
Default Beberapa tips dan trick untuk pemrograman dengan baik dan benar

Hai, gw cuman mau ngeshare beberapa tips dan trik dari pengalaman gw selama ini. Sebagian besar buat C++ sih tapi mungkin ada juga yang buat bahasa pemrograman lain. Juga sebagian ada yang buat pemrograman secara tim. Tapi ada juga yang bisa buat pribadi. Mungkin kalo ada yang kurang bisa ditambahkan di sini. Cuman ngebantu para programmer pemula biar ga terlanjur terjerembab dan mendapat pelajarannya dari 0 seperti gw.



The basics:

1. Pilihlah gaya indentasi (indentation style) kamu dan konsisten memakainya: Indentasi sangat berguna untuk memudahkan programmer membaca dan mengerti source code. Tetapi gaya indentasi yang ga konsisten (eg. di satu htempat memakai 2 spasi, di lain tempat memakai 4, dlsb) malah menyebabkan code menjadi tidak terbaca. Juga pilihlah antara memakai spasi dan/atau tab karena keduanya mempunyai kelebihan dan kekurangannya masing2. Mungkin ini ga berguna untuk bahasa yang whitespace significant seperti python. Sedikit usulan, mungkin agan bisa memakai gaya indentasi K&R style yang sangat populer di dunia pemrograman. Jadi bila diperlukan konsolidasi indent style dengan programmer lain, agan ga kesulitan. Untuk lebih jelasnya bisa dilihat disini: http://en.wikipedia.org/wiki/Indent_style



2. Pilihlah konvensi penamaan kamu, dan konsisten terhadapnya: Konvensi penamaan fungsinya sama seperti gaya indentasi, untuk mempermudah programmer memahami code. Konvensi penamaan yang benar bisa mempermudah programmer mengenali apakah itu sebuah tipe data, class, member variable, global variable, konstanta, dll. Konvensi yang umum dipakai adalah "C..." besar untuk mengawali nama sebuah class, "m..." kecil untuk mengawali nama sebuah member variable dari class, "ALL CAPS" untuk menamai sebuah konstanta atau macro, dll.



3. Masih ada hubungannya sama no 2. Hindari penamaan dengan Hungarian notation: Itu adalah konvensi lama yang banyak kelemahannya. Hindari pemakaiannya di dalam kode. Mungkin bisa tanya mbah google untuk lebih lanjut.



4. Hindari nilai literal: Kita sering menjumpai code seperti ini= "if (var=1)", "while (var=666)", dll. Apakah agan bisa tahu apa artinya 1 atau 666 di contoh tersebut? Maka dari itu hindarilah nilai literla seperti di atas. Pakailah sebuah konstanta seperti "int benar = 1;" atau "int angkaSetanTrue = 666;" yang akan lebih bisa menjelaskan maksud dari nilai yang dipakai tersebut. Kecuali agan perlu mengoptimasi secara drastis, ongkos 2 operasi mikro deklarasi dan inisialisasi konstanta sepadan dengan koherensi kode.



5. Jangan pake global variable. Jika memang memerlukan global variable, paling tidak gunakan singleton: "Global variables are root of evil" itulah mantra seorang programmer. Global variables sangat berbahaya karena bisa menyebabkan bug yang tidak terduga, kesalahan input maupun output, dll. Kalo misalkan anda memang memerlukan variable yang bisa diakses dimanapun oleh siapapun, coba teliti dan analisa lagi kode anda. Mungkin anda bisa mendesain kode yang lebih rapi dan lebih baik lagi. Atau kalau misalnya emang tidak ada cara lain lagi, gunakan singleton.



6. Gunakan komentar (hampir) selalu: Pemakaian komentar yang tepat bisa membuat code dibaca lebih baik dan intuitif. Seperti contohnya komentar di awal sebuah deklarasi fungsi yang menjelaskan cara kerja fungsi tersebut, komentar di sebelah member variable yang menjelaskan fungsi variable tersebut dll. Tetapi hati2 pemakaian komentar yang berlebihan dan tidak perlu malah bisa membuat kode tidak terbaca dan semrawut. Ga perlu kita memberi komentar per baris. Cukup pada bagian yang penting saja.



7. Masih berhubungan dengan no 6. Kalau bisa, biasakan memakai gaya komentar Doxygen: Terlepas dari apa agan memakai Doxygen untuk dokumentasi atau tidak, gaya komentar Doxygen bisa memberikan penjelasan yang jelas terhadap sesuatu.



8. Biasakan memprogram dengan mementingkan "robustness" dari aplikasi tersebut: Artinya kita harus sellau membiasakan membuat aplikasi dengan ruang kesalahan seminimal mungkin. Error bisa berasal dari user (sebagian besar dari user malah) atau mungkin dari logika pemrograman kita. Jadi usahakan buatlah program dengan memakai exception, error checking, input checking, unit testing, dll.



9. Usahakan "passing parameter by reference" (ga bisa mikir terjemah indonesianya apa. 2 pagi neh gan. ): Apabila kita melempar nama object sebagai parameter dalam fungsi kita yang terjadi adalah copy constructor object tersebut akan dipanggil dan akan dibuatlah duplikat temporer dari object tersebut. Ini akan menyebabkan pembengkakan memory yang tidak perlu. Sedangkan hal ini tidak terjadi apabila kita memakai reference. Karena yang kita lempar adalah variable itu sendiri. Jika agan ga mau nilai di dalam object tersebut diganti, pakailah const reference.



10. Selalu ingat konsep RAII (Resource Acquisition Is Initialization): Untuk lebih jelasnya bisa dilihat di sini: http://en.wikipedia.org/wiki/Resourc...Initialization . Intinya adalah setiap object ada masa hidupnya. Jadi jika object tersebut memerlukan resource dari object lain, lakukan akuisisi resource tersebut waktu inisialisasi object. Jadi lakukan akuisisi jika object masih dalam scopenya dan lakukan de-akuisisi sebelum object keluar dari scopenya. Dalam hal ini dianjurkan untuk melakukan alokasi (malloc, new) memori resource dari object lain dalam constructor dan lakukan dealokasi (free, delete) pada destructor. Atau gunakan std::auto_pointer atau smart pointer dari boost.



11. Untuk C/C++. Jangan gunakan 1 garis bawah + huruf besar atau 2 garis bawah di manapun di awal deklarasi sebuah identifier: Menurut ISO, 1 garis bawah + huruf besar dan 2 garis bawah adalah identifier yang dipakai sebagai reserved words oleh compiler. Jadi nama _Reserved, _A, __a, a__, __a__, dlsb, tidak boleh dipakai.



Itu aja untuk basisnya yang kepikiran sekarang. Lanjut ke berikutnya yang lebih advance untuk pemrograman secara tim:



The Advanced



1. Buatlah style guide: Setiap programmer mempunyai style-nya masing2 dan itu merupakan "holy ground" mereka. Kita tidak bisa memaksakan style kita ke masing2 programmer, tetapi pada akhirnya tetap hanya 1 style yang konsisten saja yang masuk ke dalam SVN / code utama. Itulah guna dari style guide. Agar code akhir bisa lebih koheren dan konsisten.



2. Usahakan menggunakan revision control system sperti SVN, CVS atau Mercurial: Mungkin sudah banyak yang tahu gunanya buat apa. Nuff said.



3. Usahakan gunakan Doxygen atau tools dokumentasi lain: Dokumentasi yang bagus adalah suatu hal penting yang selalu terlupakan oleh para programmer. Itu bisa membuat proses redevelopment lebih cepat, bisa lebih cepat memahami code, dll.



4. Know your tools: Usahakan tahu tentang aplikasi2 lain yang dapat membantu seperti gdb dan valgrind pada Linux; VLD, VTune, Purity, dll pada Windows, dll. Cepat atau lambat aplikasi agan pasti akan menjadi besar dan akan terlalu susah untuk error/bottleneck tracing . Maka dari itu kenalilah tools anda.



5. Usahakan mempunyai environment yang sama antara workstations para programmers dan (kalau bisa) client: Usahakan masing2 workstation terinstall IDE yang sama, library yang sama dengan versi yang sama pula, system operasi yang sama dengan service pack yang sama, dll. Ini sangat penting untuk menghindari Side-by-side error pada Windows. Terutama pada Windows. Ga pernah terjadi pada Linux sih karena di Linux paling yang teriak linkernya. Kalau di Windows, walaupun linkernya bilang gpp, ga jaminan juga kalau dijalanin bisa. Untuk client, mungkin kita ga bisa mengontrol keadaan tersebut. Yang bisa kita lakukan adalah menyertakan versi library, windows CRT, dll yang kita pakai dalam versi release.



6. Masih ada hubungan dengan no 5. Matikan Windows update: Update windows kadang menyertakan versi CRT baru di dalamnya (terutama kalau update dari SP 2 ke SP 3). Dan payahnya lagi, Windows ga memberitahu kita kalau dia akan mengcopykan CRT baru tersebut dan memakai CRT itu sebagai default di kemudian hari. Jadinya pasti akan terjasi SxS error seperti di atas dan kita ga tahu kenapa sebabnya.



7. Sering2lah berkunjung ke website2 pemrograman dan jangan malu bertanya: Nuff said mungkin.



Mungkin itu aja yang kepikiran. Udah jam setengah 3 nih. Ga bisa mikir lagi. Semoga bermanfaat. Kalau ada yang kurang, mohon ditambahkan aja.



Semoga bermanfaat...



Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


 


All times are GMT +7. The time now is 10:12 AM.


no new posts