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 brace block
  • 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?

14 komentar

  1. Toepay bilang:

    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..*

    June 18th, 2007 at 17:20
  2. vnz bilang:

    Postingan programmer???

    *menghilang*

    June 18th, 2007 at 20:02
  3. GuM bilang:

    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.

    June 19th, 2007 at 11:14
  4. Dolly Aswin Hrp bilang:

    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.

    June 20th, 2007 at 16:17
  5. caressa bilang:

    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….

    June 20th, 2007 at 17:00
  6. ferdhie bilang:

    #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)

    June 20th, 2007 at 22:54
  7. Aryo Sanjaya bilang:

    Kalo aku tergantung pasaran harinya apa.

    Kalo pahing pake K&R, kalo wage pake my_style, kalo kliwon pake menyan.

    June 22nd, 2007 at 09:06
  8. sandal bilang:

    ga tau nih tipe saya apa..
    jenis nungging kali ya? :D

    June 25th, 2007 at 12:13
  9. Toepay bilang:

    hmm yang pasti aku kalo koding pake keyboard, soalnya koding pake mouse agak ribet.

    June 25th, 2007 at 17:44
  10. JOKERz bilang:

    K&R???
    CamelCase??

    Gag ngerti…. free style aja gw….

    June 28th, 2007 at 01:19
  11. Rapilah dalam ber-koding !!! « Life,it’s just a game. bilang:

    [...] Mungkin lain kali saya harus+kudu+wajib mengikuti saran dari om keker ini,untuk sedikit memperhatikan style dalam ber-koding [...]

    June 28th, 2007 at 11:55
  12. funkshit bilang:

    secara saya seringnya PHP, jadi ngikutin develepoernya php yang bikin nama function nya juga awut2 an :D:D

    July 2nd, 2007 at 16:16
  13. rizal bilang:

    style apapun juga, jangan sampai ada BUG FATAL

    July 5th, 2007 at 14:38
  14. eko bilang:

    mirip juga tiap-tiap gaya, enak gaya dari samping kiri kali nulisnya, dari kanan ga isa.

    July 13th, 2007 at 15:00

Tinggalkan Komentar





*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word