spaghetti code

19
Deddy Setyadi Spaghetti Code

Upload: deddy-setyadi

Post on 21-Aug-2015

104 views

Category:

Software


1 download

TRANSCRIPT

Deddy Setyadi

Spaghetti Code

Beberapa bahasa pemrograman yang dicampur menjadi satu, lalu menghasilkan kode yang berbelit-belit, sulit dipahami, dan tidak terstruktur.

Kemudian menyebabkan kumpulan kode tersebut sulit untuk di-maintenance, tidak bisa digunakan kembali, atau bahkan sulit dipahami oleh seorang developer itu sendiri.

Pengertian

Native PHP

PHP, secara natural

memang memiliki

semacam kelebihan

(bisa dikatakan

bakat) untuk

menghasilkan

Spaghetti Code!

Modularitas.

Pengorganisasian Kode.

Pembagian antara fungsi dan tujuan.

Kemungkinan penggunaan ulang.

Isu Spaghetti Code

PHP Framework

PHP Framework

Sebuah php framework adalah alat yang

menyederhanakan persoalan, dengan menyediakan

library yang sering digunakan sehingga developer bisa

menuntaskan tugasnya lebih cepat.

PHP Framework

Hal-hal lain yang diperkenalkan oleh PHP Framework :

Organisasi kode.

Mempromosikan standar penulisan kode.

Mempromosikan reusabilitas kode.

PHP Framework

Namun, tugas PHP Framework hanyalah

menyederhanakan. Sekali-lagi, menyederhanakan.

Bukan menyelesaikan.

PHP Framework

“Laravel is a clean and classy framework for PHP web development. Freeing you from spaghetti code, Laravel helps you create wonderful applications using simple, expressive syntax,” katanya.

PHP Framework

Problem utama pada (semua) PHP Framework :

Kapabilitas dari suatu produk atau sistem untuk

berinteraksi dan berfungsi dengan produk atau

sistem lain, kini atau di masa mendatang, tanpa

batasan akses atau implementasi.

(interopabilitas)

PHP Framework

Contoh Kasus :

Butuh Package A

Tersedia untuk

Framework lain

Tidak menemukan

Tanda-Tanda Spaghetti Code

- IF..ELSEIF..ELSEIF..

if ($status == "awake"){

$actitivity = "Writing spaghetti code";

}elseif($healthstatus == "OK"){

$activity = "Sleep";

}else{

print "CALL 911 IMMEDIATELY!";

}

- Error Berantai

Parse error: parse error in /home/index.php on line 140

20 minutes later

Parse error: parse error in /home/index.php on line 141

20 minutes later

Parse error: parse error in /home/index.php on line 142

Tanda-Tanda Spaghetti Code

- Include tak terhingga

index.php:

<?php include("menu.php");?>

...

menu.php:

<?php include("navigation.php");?>

...

navigation.php:

<?php include("newmenu.php");?>

...

newmenu.php:

<?php include("newmenu_final.php");?>

...

- Kode HTML dalam sebuah fungsi

- Membuat class yang terpisah untuk satu function

- Pernyataan IF yang mengharuskan developer untuk scroll teks editor ke kanan

- Tidak Ada Komentar

http://www.webmasterworld.com/forum88/2884-4-30.htm

Solusi

Keep your code, clean !

Clean Code

Tidak adanya redundansi

Ketika prinsip ini sudah terpakai, maka ketika ada

kesalahan kecil, tidak perlu melakukan perubahan yang

banyak.

Menyenangkan ketika dibaca

Buatlah sesimpel mungkin dan hindari yang tidak

dibutuhkan.

Clean Code

Mudah dipahami oleh developer lain

Seorang developer tidak menulis kode untuk dirinya

sendiri, atau untuk compiler. Namun, developer menulis

kode untuk developer lain.

Minimalkan Dependencies

Lebih banyak dependency, maka kedepannya akan

lebih sulit untuk mengelola dan mengubahnya.

Clean Code

Memiliki Unit Testing

Untuk mengetahui apakah sudah berjalan sesuai

dengan rencana.

Ekspresif

Baik itu variabel, class, atau function harus memiliki

nama yang sesuai dengan intensinya. http://c2.

com/cgi/wiki?SelfDocumentingCode

Daftar Pustaka

● https://gist.github.com/toopay/7086599● http://blog.goyello.com/2013/01/21/top-9-

principles-clean-code/● http://blog.pluralsight.com/7-reasons-clean-code-

matters● http://www.webmasterworld.com/forum88/2884.

htm● http://www.workingsoftware.com.

au/page/Your_templating_engine_sucks_and_everything_you_have_ever_written_is_spaghetti_code_yes_you

● http://en.wikipedia.org/wiki/Spaghetti_code● http://c2.com/cgi/wiki?SelfDocumentingCode●

“Programming is the art of telling another human

what one wants the computer to do. “

- Donald Knuth -