Kode PHP yang baik harus terstruktur; kode PHP yang baik harus terstandarisasi; kode PHP yang baik harus adaptif; kode PHP yang baik harus aman...
Saya pasti akan menanyakan hal ini ketika saya menjadi pewawancara di SitePoint Pertanyaannya adalah: Bagaimana menurut Anda? apa kelebihan dan kekurangan kode PHP? Karena pertanyaan ini dapat memberi saya gambaran umum tentang tipe pemrogram seperti apa kandidatnya, daripada sekadar menguji penguasaannya terhadap fungsi-fungsi PHP (sertifikasi PHP Zend bagus dalam hal ini, dan pertanyaan wawancara pemrogram PHP Yahoo juga demikian).
Yang penting, pertanyaan ini memberi tahu saya jika kandidat pernah mengambil alih sebagian kode berantakan dari programmer yang malas untuk digunakan kembali, atau membantu anggota tim lainnya dengan hal semacam ini.
Memang benar, saya sendiri tidak memiliki jawaban yang memuaskan untuk pertanyaan ini, tetapi saya tahu jawaban yang ingin saya dengar:
Kode PHP yang baik harus terstruktur. Bagian besar dari kode harus dibagi menjadi fungsi atau metode, sedangkan bagian kecil dari kode yang tidak menarik perhatian harus diberi komentar agar tujuannya nanti menjadi jelas. Dan kode front-end seperti HTML, CSS, Javascript, dll harus sebisa mungkin dipisahkan dari program. Fitur pemrograman berorientasi objek PHP dapat membantu pemrogram mengatur kode mereka secara teratur.
Kode PHP yang baik harus distandarisasi. Baik itu menetapkan aturan penamaan untuk nama variabel dan fungsi, menstandardisasi proses yang dapat digunakan kembali seperti operasi database dan penanganan kesalahan, atau sesederhana menentukan bagaimana kode harus diindentasi, standarisasi ini dapat membuat kode lebih mudah dibaca.
Kode PHP yang baik harus adaptif. PHP memiliki banyak fitur seperti kutipan ajaib dan tag pendek. Mengaktifkan dan menonaktifkan fitur-fitur ini akan mempengaruhi jalannya program. Oleh karena itu, seorang programmer yang baik harus menambahkan pernyataan yang sesuai pada kodenya sehingga program dapat menyesuaikan dengan lingkungan.
Kode PHP yang baik harusnya aman. Meskipun PHP adalah bahasa yang efisien dan fleksibel tanpa kerangka kerja tetap, PHP menyerahkan masalah keamanan kepada pemrogram. Pemahaman mendalam tentang potensi kerentanan keamanan, seperti skrip lintas situs (XSS), pemalsuan permintaan lintas situs (CSRF), kerentanan injeksi kode, kerentanan loop pengkodean karakter, dll., sangat penting bagi pemrogram profesional saat ini.
Ketika seorang kandidat menjawab pertanyaan-pertanyaan ini, saya tahu dengan jelas apakah saya harus mempekerjakannya. Tentu saja, terkadang pemrogram tidak dapat mengartikulasikan masalahnya dengan baik, dan kami meminta mereka melakukan beberapa pengujian PHP. Banyak pertanyaan dalam tes ini mungkin tampak sangat sederhana di permukaan, tetapi pertanyaan tersebut juga memberikan kesempatan kepada kandidat untuk mengekspresikan diri, karena jika Anda perhatikan dengan cermat, Anda dapat menemukan masalahnya.
Sepotong kecil kode PHP "buruk" berikut ini adalah pertanyaan tes yang disederhanakan. Pertanyaan ini seperti bertanya: Bagaimana cara mengoptimalkan kode ini?
<?
echo("<p>Hasil pencarian untuk kueri: " .
$_GET['kueri'] ".</p>");
?>
Masalah utama dengan kode ini adalah ia menampilkan data yang dikirimkan oleh pengguna langsung ke halaman web, sehingga menimbulkan kerentanan XSS. Sebenarnya ada banyak cara untuk mengisi lubang ini. Jadi, kode apa yang kita inginkan?
<?
echo("<p>Hasil pencarian untuk kueri: " .
htmlkarakter khusus($_GET['kueri']) ".</p>");
?>
Ini adalah persyaratan minimum. Kerentanan XSS diisi dengan fungsi htmlspecialchars, sehingga memblokir karakter ilegal.
<?php
jika (isset($_GET['kueri']))
{
echo '<p>Hasil pencarian untuk pertanyaan: ',
htmlkarakter khusus($_GET['query'], ENT_QUOTES), '.</p>';
}
?>
Orang yang bisa menulis kode seperti itu adalah orang-orang yang ingin saya pekerjakan.
<? digantikan oleh <?php, yang lebih sesuai dengan spesifikasi XML.
Sebelum mengeluarkan nilai $_GET['query'], tentukan terlebih dahulu apakah nilai tersebut kosong.
Tanda kurung tambahan pada perintah echo telah dihapus.
String dikualifikasikan dengan tanda kutip tunggal, yang menghemat waktu PHP dalam mencari variabel yang dapat diganti dalam string.
Gunakan koma sebagai pengganti titik untuk menghemat waktu gema.
Berikan flag ENT_QUOTES ke fungsi htmlspecialchars untuk memastikan bahwa tanda kutip tunggal juga di-escape. Meskipun ini bukan hal yang paling penting, namun ini juga merupakan kebiasaan yang baik.
Sayangnya, hanya sedikit programmer yang mampu memberikan jawaban memuaskan tersebut. Kami membutuhkan waktu 3 bulan untuk merekrut programmer yang kami puas.
Jadi, bagaimana Anda menjawab pertanyaan yang diajukan di awal artikel ini? Menurut Anda apa kelebihan dan kekurangan kode PHP? Menurut Anda, kualitas apa lagi yang harus dimiliki seorang programmer PHP?
Artikel ini berasal dari: http://www.yeeyan.com/articles/view/38585/18736
Tautan asli: http://www.sitepoint.com/blogs/2007/05/25/good-and-bad-php-code/