Just 4 fun!

Of course I can change the world, If you give me a source code

Post Ads (Documentation)

Author Info (Documentation)

style="display:block"
data-ad-client="ca-pub-2623284640924516"
data-ad-slot="8347113188"
data-ad-format="auto">

Thursday, February 2, 2017

Return first???


Return first là 1 kỹ thuật rất đơn giản
Tuy đơn giản nhưng nhiều người lại không biết đến nó, tôi đã từng gặp nhiều anh/chị có đến mấy năm kinh nguyệt trong người mà vẫn không biết viết return first như thế nào.
Return first chia làm 2 tư thế, oánh theo trình tự:
  1. Khi gặp vấn đề phải luôn bi quan ! Nghĩ đến trường hợp tồi tệ nhất.
  2. Chia tay sớm, bớt đau khổ.
Chắc không ai hiểu nên thôi lấy cái ví dụ:
Nhiều bạn khi boss giao cho mần 1 cái form login, thì hay viết như thế này:
public function doLogin() {
    if (isset($_POST['username']) && $_POST['username'] !== "") {
        if (isset($_POST['password']) && $_POST['password'] !== "") {
            if (Auth::validate($_POST['username'], $_POST['password'])) {
                // login success
                return true;
            } else {
                $this->error = 'username or password incorect';
                return false;
            }
        } else {
            $this->error = 'password should not be blank';
            return false;
        }
    } else {
        $this->error = 'password should not be blank';
        return false;
    }    
}
Có rất nhiều điểm chưa tốt trong đoạn code trên, if lồng nhau là thấy sợ rồi, phức con mẹ nó tạp, chúng ta có thể viết lại như sau đây để code được khô thoáng hơn

public function doLogin() {

    if (empty($_POST['username'])) {
        $this->error = 'username should not be blank';
        return false;
    }

    if (empty($_POST['password'])) {
        $this->error = 'password should not be blank';
        return false;
    }

    if ( ! Auth::validate($_POST['username'], $_POST['password'])) {
        $this->error = 'username or password incorect';
        return false;
    }

    // chay toi day la ngon roi =))
    return true;
}
Như các bạn thấy, tôi luôn bi quan, nghĩ là username có thể empty, sau đó tôi luôn làm biếng, nếu empty thì return luôn, khỏi chạy chi nữa cho mệt.
Áp dụng return first sẽ giúp code các bạn mỏng hơn, vì không cần dùng if lồng nhau.
Nó cũng có tác dụng làm cho code các bạn dễ đọc hơn.
Tóm lại không cần nhiều lớp mà vẫn thấm hút phi thường. Đạt được hiệu quả y chang sản phẩm cùng loại.
Hi vọng qua bài này, các bạn có thể bỏ return first vào hộp đồ nghề của mình.