Share vì hữu ích

Quá trình khắc nghiệt để training một thành viên trong team của Solis Lab từ Junior lên Mid và Senior Developer có nhiều bài học để rút kinh nghiệm dành cho các bạn muốn trở thành 1 Lập trình viên chuyên nghiệp.

Những lỗi tổng hợp dưới đây thường chỉ xảy ra với Junior Developer và càng ít xảy ra nếu bạn là Mid hay Senior Developer. Lý do thì có lẽ nhiều, nhưng cơ bản thì vẫn là “thiếu tập trung”, “cẩu thả”, “nhắm mắt làm liều”,… Vậy nên nếu nhìn thấy chính bản thân mình mắc một vài lỗi cơ bản dưới đây, hãy cẩn trọng và đừng lặp lại nữa nhé.

Condition – Điều kiện

Lỗi này có thể luôn luôn xảy ra bất cứ lúc nào với một Junior. Tỷ lệ mắc phải lỗi này của 1 Junior ít kinh nghiệm rơi vào khoảng 10% trong vòng 1 tháng đầu tiên. Tất nhiên, ở đây ta đang nói tới 1 bạn Frontend Developer nhé.

Chẳng hạn, bạn cần output 1 Heading H2 ra, thì việc bạn check điều kiện xem biến này có rỗng (tức check if( !empty($variable) ), nhưng nếu bạn cần kiểm tra 1 biến boolean( true/false), thì cú pháp lại phải là if( $variable ).

Rất nhiều developer không hiểu vấn đề này và thường xuyên hiểu nhầm gây nên lỗi PHP ngoài frontend.

Naming – Đặt tên

Thật ngạc nhiên là rất nhiều Developer tại Việt Nam có tư duy về tiếng Anh khá kém, không nắm bắt được định nghĩa của các từ, cụm từ phổ biến trong mảng IT, marketing, e-commerce để sử dụng trong công việc của mình.

Phần này tất nhiên liên quan tới Code Standards (những tiêu chuẩn riêng) của từng nhóm và công ty, tuy nhiên các tình huống thể hiện độ noob rõ nhất như:

Sử dụng không đúng kiểu chữ thường/chữ hoa cho tên biến và function:

$projectdetailname = 'OK Fine';
$productName = 'WTF';
function Have_Fun() {}

Sử dụng biến viết liền mà không có dấu “_”:

$productname = 'OMG';

Sử dụng tên biến, class tối nghĩa, khó tra cứu, viết tắt:

$col = '12';
$col_1/2 = '6';

Spacing

Vấn đề khoảng cách giữa các kí tự, tab indent cũng là một vấn đề không thể không nhắc tới. Các lập trình viên ít kinh nghiệm thường không thấy ngứa mắt nếu code bị lệch hay spacing bị thiếu. Thực sự không rõ vấn đề là do mắt của họ hay do màn hình máy tính có các điểm mù che đúng lúc họ code.

Ví dụ:

$list = array(
  array(
    'title'=>'Damn',
    'tag'=> 'Why have this space?'
  )
);

Hoặc:

<?php echo $headline;?>

Để tránh lỗi này, bạn nên sử dụng SourceTree để kiểm tra trước khi đưa kết quả lên. Cần đảm bảo space đều chằn chặn trước và sau các kí tự, ví dụ khoảng cách bên trong dấu ngoặc đơn () hay sau dấu ;.

Ngoài ra, gợi ý về sử dụng .editorconfig để thống nhất trong team cũng rất đáng lưu ý.

Vòng lặp (Loop)

Làm việc với vòng lặp trong bất kỳ ngôn ngữ nào cũng đòi hỏi nắm vững kiến thức về Array. Một trong bí kíp nội công tâm kinh rõ nhất khi các bạn sử dụng PHP là hãy var_dump() hoặc print_r() các thành phần bí ẩn có thể xuất hiện trong vòng lặp.

Rất nhiều lần tôi quan sát thấy các bạn developer loay hoay xử lý dữ liệu trong vòng lặp mà không rõ nó đang hiển thị ra cụ thể là gì, các biến đang có những gì, nếu biến rỗng thì làm sao.

Ví dụ khi sử dụng var_dump, bạn sẽ biết $item có chứa những gì:

foreach($list as $item) {
  var_dump($item);
}

Bạn có thể tham khảo bài phân tích về PHP Array và so sánh với vòng lặp của WordPress để nắm kĩ hơn phần này.

Parameters trong Function

Thông thường các function có thể nhận các parameters để truyền và sử dụng bên trong nó. Điều này rất quan trọng, nhất là khi nếu bạn không có giá trị mặc định cho parameteres dẫn tới lệnh được thực thi mà không có biến. Tất nhiên, sẽ trả về PHP Error.

Ví dụ:

function get_related_posts( $post_id ) {
  // Junior Developer thường bỏ qua bước check này
  if( empty( $post_id ) {
    return '';
  }
}

Kết luận

Những vấn đề mà Junior hay Fresher Developer khi mới làm quen với PHP còn rất nhiều, tuy vậy sau mỗi bài học bạn sẽ rút ra được nhiều kinh nghiệm. Code Tốt sẽ chia sẻ các tình huống thường gặp trong lần khác.

Share vì hữu ích

Tác giả: Khôi 'Pro' Nguyễn

Technical Lead tại Solis Lab. Quản lý ngôn ngữ tại vi.wordpress.org.

Trả lời