Jacobvu84 / Automated-Software-Testing

Nơi lữu trữ các vấn đề được trao đổi bởi cộng đồng Automated Software Testing
2 stars 4 forks source link

Tư duy tin gọn giúp sống tối giản và code tinh giản #53

Open Jacobvu84 opened 1 year ago

Jacobvu84 commented 1 year ago

Khi yêu thích việc dọn dẹp nhà cửa cho gọn gàng có thể là thói quen để bạn yêu thích việc code refactoring.

Khi dọn nhà bạn sẽ bỏ bớt những thứ không cần thiết (không giữ thứ gì khi đã có một vật khác có chức năng tương tự), dần dần bạn sẽ hướng tới lối sống tối giản.

Viết code cho test theo thời gian số lượng kịch bản sẽ nhiều hơn để tránh tốn thời gian sau này thì code base cần tinh gọn. Đó là lý do tại sao mỗi lần viết một test mới xong chúng ta cần tới việc dọn dẹp code base cho gọn gàng. Việc refactor không chỉ đơn giản là rename hàng loạt, extract các đoạn duplicate code để reuse nhiều chỗ mà quan trọng hơn là lean coding (mã tinh giản), loại bỏ những đoạn code trùng lặp về mặt chức năng, thứ trùng lặp không dễ nhìn bắt mắt thường mà cần đến kỹ năng problem solving.

Dưới đây là ví dụ đơn giản để chúng ta hiểu được concept

    @Test
    public void convertToRomaNumberal(){
        assertThat(RomaNumberals.convert(1)).isEqualTo("I");
        assertThat(RomaNumberals.convert(2)).isEqualTo("II");
        assertThat(RomaNumberals.convert(3)).isEqualTo("III");
    }

Code Base

public class RomaNumberals {

    public static String convert(int number) {
        if(number == 3) { return "III"}
        if(number == 2) { return "II"}
        return "I";
    }
}

Code sau khi Lean

public class RomaNumberals {

    public static String convert(int number) {
        String roman = "";
        for (int i=0; i<input;i++){
              roman+="I";
        }
        return roman;
    }
}

Tránh việc lạm dụng if..else hoặc copy nguyên một method có sẵn chỉ để sửa lại một chút trong đó nhằm đáp ứng cho một case được sinh ra.

Nó chỉ như chất béo khiến cho code base nhanh chóng phình to và trở nên nặng nề, xấu xí....