ক্লিন, ফাস্ট, ও ইফিশিয়েন্ট PHP কোড লেখার ৮টি টিপস

ওয়েব ডেভেলাপমেন্ট জার্ণির এই পর্যায়ে এসে আমরা সকলেই কোড লিখতে পারি। কিন্তু নবীশ হিসেবে সেগুলো ক্লিন ও ইফিশিয়েন্ট নাও হতে পারে।

আসলে ভালো কোড লেখা শুধু ফাংশন জানা বা সিনট্যাক্স বুঝার ব্যাপার না। বরং কোডকে ক্লিন, পারফরম্যান্স অপটিমাইজড, ও মেইনটেইনেবল রাখা আরও গুরুত্বপূর্ণ।

আজকে আমরা গুগল ও এআই এর দেওয়া ৮টি টিপস দেখবো। এগুলো PHP কোডকে আরও ক্লিন, ফাস্ট ও ইফিশিয়েন্ট করতে সাহায্য করবে।

১. অর্থপূর্ণ ও স্ট্যান্ডার্ড ফলো করে নামকরণ করতে হবে

কোডের ভেতর ভালো নামকরণ করাটা অনেক গুরুত্বপূর্ণ। এক লাইনে নাম দেখেই বুঝা উচিত সেটার কাজ কী। যেমন,

:x: খারাপ নামকরণ:

$x = 100;  
$y = "John";  
function p($a, $b) { return $a  $b; }

:white_check_mark: ভালো নামকরণ:

$price = 100;
$customerName = “John”;
function calculateTotal($price, $quantity) {
return $price $quantity;
}

PSR-12 স্ট্যান্ডার্ড অনুসরণ করা ভালো। এক্ষেত্রে CamelCase, Snake_case ইত্যাদি নিয়ম ফলো করতে পারি।

২. ডাটা টাইপ ও স্ট্রিক্ট টাইপ ডিক্লেয়ার করতে হবে

PHP-তে টাইপ স্ট্রিক্টলি ডিফাইন করা গেলে বাগ কম হয় এবং কোড পারফরম্যান্স ভালো থাকে। যদিও দেখতে একটু জটিল লাগে কিন্তু ভালো রেজাল্ট দেয়।

:x: খারাপ কোড:

function add($a, $b) {  
    return $a + $b;  
}

:white_check_mark: ভালো কোড: (Type Hinting + Return Type)

function add(int $a, int $b): int {  
    return $a + $b;  
}

এতে করে ভুল ইনপুট দিলে PHP স্বয়ংক্রিয়ভাবে এরর দেবে। এটাও কোডের ইফিশিয়েন্সি বাড়াবে।

৩. ইনপুট ভ্যালিডেশন ও স্যানিটাইজেশন করতে হবে (Security Matters)

SQL Injection, XSS, বা অন্য সিকিউরিটি সমস্যা এড়াতে ইউজার ইনপুট ভালোভাবে চেক করা জরুরি। হ্যাকাররা SQL Injection এর মাধ্যমে হ্যাক করার চেষ্টা করে থাকে।

:x: খারাপ কোড (SQL Injection প্রবণ)

$query = "SELECT  FROM users WHERE email = '$email' ";

:white_check_mark: ভালো কোড (Prepared Statements ব্যবহার করো)

$stmt = $pdo->prepare("SELECT  FROM users WHERE email = ?");
$stmt->execute([$email]);

SQL Injection এড়ানোর জন্য PDO বা MySQLi Prepared Statements ব্যবহার করা উচিত।

৪. অপ্রয়োজনীয় লুপ বা কোয়ারি অপটিমাইজ করতে হবে

লুপের মধ্যে ডাটাবেজ কোয়ারি পারফরম্যান্সের জন্য মারাত্মক খারাপ। এটা থেকে রক্ষা পাওয়ার জন্য আগে ভ্যারিয়ৈবল নিয়ে নিতে হবে। যেমন,

:x: খারাপ কোড:

foreach ($userIds as $id) {  
    $result = $pdo->query("SELECT  FROM users WHERE id = $id");  
}

:white_check_mark: ভালো কোড:

$ids = implode(",", $userIds);
$result = $pdo->query("SELECT  FROM users WHERE id IN ($ids)");

মাল্টিপল SQL কোয়ারি না চালিয়ে WHERE IN ব্যবহার করা যায়। এটি পারফরম্যান্স বুস্ট করতে সাহায্য করে।

৫. ক্যাশিং ব্যবহার করতে হবে

প্রতিবার নতুন করে ডাটাবেজ কোয়ারি চালানো লোড বাড়িয়ে দেয়। ক্যাশিং ব্যবহার করলে লোড কমে যাবে।

ক্যাশিং ব্যবহার করার কিছু পদ্ধতি:

→ Opcache (PHP Performance অপ্টিমাইজ করতে)
→ Redis/Memcached (ডাটাবেজ লোড কমাতে)
→ HTML Cache (স্ট্যাটিক কনটেন্ট দ্রুত লোড করতে)

৬. বড় ফাইল বা স্ট্রিং হ্যান্ডলিং অপটিমাইজ করতে হবে

ফাইল পড়ার সময় file_get_contents() এর চেয়ে fgets() ব্যবহার করতে পারি। কারণ এটা মেমোরি লোড কম করে দেয়। এটি অনেকটা এমন,

:x: খারাপ কোড:

$data = file_get_contents("largefile.txt");

:white_check_mark: ভালো কোড:

$handle = fopen("largefile.txt", "r");  
while (($line = fgets($handle)) !== false) {  
    echo $line;  
}  
fclose($handle);

এতে করে পুরো ফাইল একবারে লোড না হয়ে লাইনে লাইনে লোড হবে। ফলে এটি RAM সাশ্রয়ী। কোনো কোড যত কম র‌্যাম ব্যবহার করে সেটি তত ইফিশিয়েন্ট।

৭. কনফিগ ফাইল ও এনভায়রনমেন্ট ভেরিয়েবল ব্যবহার করতে পারেন

যখন আমাদের সাইটে সেনসিটিভ বা পরিবর্তনযোগ্য তথ্য থাকে, তখন কনফিগ ফাইল বা .env ফাইল ব্যবহার করাটা বেস্ট প্র্যাকটিস। যেমন, ডাটাবেজ কানেকশন ইনফো, API Keys ইত্যাদি ক্ষেত্রে এটি ব্যবহৃত হয়। এরকম পরিস্থিতিতে নীচের বিষয়গুলো আমাদের খেয়াল রাখা উচিত।

:x: খারাপ কোড:

$host = "localhost";  
$username = "root";  
$password = "password";  

:white_check_mark: ভালো কোড:

.env ফাইলে কনফিগ রাখুন এবং env() বা getenv() ব্যবহার করুন।

env
DB_HOST=localhost
DB_USER=root
DB_PASS=password

php কোড হবে এরকম,

$host = getenv("DB_HOST");  
$username = getenv("DB_USER");  
$password = getenv("DB_PASS");

এভাবে কোড করলে কোড সিকিউর থাকবে এবং সহজেই সার্ভারে ডেপ্লয় করা যাবে। খুব কাজের জিনিস। তাই না?

৮. অপ্রয়োজনীয় ভ্যারিয়েবল ও মেমোরি লিক এড়াতে হবে

একটি লুপের মধ্যে অপ্রয়োজনীয় ভ্যারিয়েবল ডিক্লেয়ার করা ঠিক নয়। এটি মেমোরি লিক তৈরি করতে পারে। যেমন,

:x: খারাপ কোড:

foreach ($users as $user) {  
    $userInfo = getUserInfo($user->id);  
    echo $userInfo->name;  
}

:white_check_mark: ভালো কোড:

foreach ($users as $user) {  
    echo getUserInfo($user->id)->name;  
}

অর্থাৎ, অপ্রয়োজনীয় ভ্যারিয়েবল তৈরি না করে সরাসরি ফাংশন ব্যবহার করা ভালো। এতে মেমোরি লিকের সম্ভাবনা কমে যায় এবং সিকিউরড থাকে।

এইতো। এগুলো যদি আমরা মেনে চলতে পারি, তাহলে আমাদের কোড খুবই ভালো হবে। একদিনে হয়তো হবে না, ধীরে ধীরে হয়ে যাবে। তাছাড়া এইসব বেস্ট প্র্যাকটিস অনুসরণ করলে,

→ PHP কোড হবে ক্লিন, পারফরম্যান্স বুস্টেড ও ইফিশিয়েন্ট
→ সিকিউরিটি ও মেইনটেনেন্স ইস্যু কমে যাবে
→ বড় প্রোজেক্ট হ্যান্ডল করাও সহজ হবে

এখানে কোন টিপসটি আপনার সবচেয়ে ভালো লেগেছে? কমেন্টে শেয়ার করতে পারেন।