Coding Style
Karena semua task today udah selesai, akhirnya punya kesempatan buwat blogging. Kebetulan waktu baca milis, ada beberapa postingan masalah programming style yang cukup menarik. Ini ga mau bahas masalah programming style orang2, atau jenis2 programming style yang ada. Ini cuman mo bahas programming style saya ajah. Itung2 self-service.
Dulu, waktu pertama kali belajar programming pake pascal, masih belum tau coding style, saya pake model ini:
- CamelCase di naming variabel
- Indentasi 2 spasi
- ANSI style
braceblock - Variabel naming masih cryptic, meaningless, semacam x, a, c, ax, dll
Contoh:
function AddNumber(k: integer): integer; begin next := k + 1 end;
Terus kemudian, setelah berselang beberapa lama, saya mempelajari C. Nah, waktu baca2 buku C, ketemu satu buku yang sangat berpengaruh dalam hidup saya: The C Programming Language, saya mencoba coding style nya K&R — dengan model:
- untuk block function, brace di baris baru, selain itu, brace sejajar dengan identifier
- all function/variable naming lowercase, dipisahkan oleh underscore — ini karena C itu case-sensitive, jadinya biar gampang inget2 nama fungsi tanpa hrs scroll keatas untuk ngecek prototype.
- Nama variabel mulai punya makna (untuk array selalu kata2 plural: members, memberids, dan scalar pakai kata2 single: member, user, dan semacamnya), kecuali counter, masih seneng pake i, j, k
- Indentasi nambah jadi 4 spasi
- All uppercase untuk konstanta
Misalnya:
#include <stdio.h>
#define MAX_ITERATION 101
// fizzbuzz
int main(void)
{
for (int i = 1; i < MAX_ITERATION; i++) {
if ((i % 3) == 0) printf("fizz");
if ((i % 5) == 0) printf("buzz");
if (i%3 && i%5) printf("%d", i);
printf("\\n");
}
return 0;
}
Nah kemudian, lama berlanjut, saya belajar PHP, tetep aja, model K&R setia menemani. Waktu ngelamar di kantor, ngeliat Coding Style skrip kantor pake ANSI style, dan CamelCase naming. Akhirnya mau ga mau, demi team nih, ngikut ANSI style. Cuman untuk personal project, masih tetep K&R pilihanku. Tapi karena PHP mirip2 ama Perl, akhirnya sedikit mirip ama Perl. Misal:
$conn = mysql_connect($host, $user, $pass) or die(mysql_error());
$r = mysql_query("SELECT * FROM users", $conn) or die(mysql_error());
while(false !== $row = mysql_fetch_row($r)) {
list($uname, $pwd) = $row;
// do something..
}
Aku sengaja pertahankan K&R style waktu coding java karena emang udah favorit K&R, cuman, naming variabel di java jadi ngikut camel case, lha java apinya camel case. Kalau nekat pake underscore kan jadi CJDW
Kemudian, mulai menjamah python. Ini bukan free formated language, indentasi berpengaruh, pertama, sempet kesel sih, soalnya kan tab ama space ndak keliatan, eh, lama2 itu cuman masalah editor kok, klo editornya pinter, tentunya tab ama space keliatan.
Gimana dengan anda?
hmmm.. kalo aku sih karena waktu coding pertama pake pascal juga sam seperti u.. cuman begitu seneng ngeliat Java, an mulai maen2 dijava, akhirnya pake model java “camelCase” huruf pertama kecil dan kata2 berikut nya jadi besar
function showRecordedData($id){
.
.
.
}
dan seterusnya deh, setiap bikin program selalu pake model gini :D
*udah terbiasa..*
Postingan programmer???
*menghilang*
rada telat belajar pemrograman
jadi bisa dibilang sekarang masih styleless
masih gampang kepengaruh sama style orang lain.
enwei, ga pingin bikin buku, fer?
bagi2 ilmu kayak om stepen.
Kalo pake PHP aku gunain PEAR Coding Standard.
Kalo pake python masih asal aja coding stylenya, soalnya baru mulai main2 dengan bahasa yang satu ini.
Kalo Ane om.. g tau style ape… cuma setelah consultasi dari guru aye.. (Mr F****) ternyta coding style ane termasuk dalm category “K&R” Hmmm baru tau ane… xixixiix….
#Toepay
di java, biasanya menganut:
- Uppercase di classname: BufferedReader, InputStream, …
- lowercase di method: openConnection, …
#GuM
ga pernah ada kata telat
#Aswin
Aku ga favor Pear Coding Standard di sisi classname:
Text_Figlet, Image_XPM, … dan camelcase, mengingat library PHP yang amburadul: fopen, fclose, htmlspecialchars, file_get_contents, ImageCreateFromJpeg, mysql_connect… etc. ndak ada coding standard yg fix di PHP :(
Python:
kalau di wxPython, mirip java, cuman method name juga pake uppercase:
dlg = wx.Dialog(…)
dlg.Show()
… dejavu delphi/pascal dan kadang bikin repot.
yang umum mirip java, dipakai oleh twisted: transport.loseConnection(), SQLObject: connectionForURI(’sqlite:/:memory:’)
SQLAlchemy beda lagi, lebih elegan:
session = create_session()
query = session.query(Member)
…
Kalo aku tergantung pasaran harinya apa.
Kalo pahing pake K&R, kalo wage pake my_style, kalo kliwon pake menyan.
ga tau nih tipe saya apa..
jenis nungging kali ya? :D
hmm yang pasti aku kalo koding pake keyboard, soalnya koding pake mouse agak ribet.
K&R???
CamelCase??
Gag ngerti…. free style aja gw….
[...] Mungkin lain kali saya harus+kudu+wajib mengikuti saran dari om keker ini,untuk sedikit memperhatikan style dalam ber-koding [...]
secara saya seringnya PHP, jadi ngikutin develepoernya php yang bikin nama function nya juga awut2 an :D:D
style apapun juga, jangan sampai ada BUG FATAL
mirip juga tiap-tiap gaya, enak gaya dari samping kiri kali nulisnya, dari kanan ga isa.