Về mặt kỹ thuật thì không nhưng hoàn toàn khác Có !!!
Hãy quên đi "Đó là sở thích cá nhân", "mã sẽ chạy tốt", "nó đã hoạt động tốt với tôi", "nó dễ đọc hơn" yada yada BS. Điều này có thể dễ dàng dẫn đến những vấn đề rất nghiêm trọng nếu bạn mắc lỗi và tin tôi rằng rất dễ mắc lỗi khi bạn đang viết mã (Đừng tin?, Hãy xem Apple nổi tiếng gặp lỗi ).
Luận điểm: "Đó là sở thích cá nhân"
Không có nó không phải là. Trừ khi bạn là một đội một người đàn ông rời đi trên sao hỏa, không. Hầu hết thời gian sẽ có người khác đọc / sửa đổi mã của bạn. Trong bất kỳ nhóm mã hóa nghiêm túc nào, đây sẽ là cách được đề xuất, vì vậy đó không phải là 'sở thích cá nhân'.
Đối số: "mã sẽ chạy tốt"
Mã spaghetti cũng vậy! Có nghĩa là nó ổn để tạo ra nó?
Luận điểm: "nó đã hoạt động tốt với tôi"
Trong sự nghiệp của tôi, tôi đã thấy rất nhiều lỗi được tạo ra vì vấn đề này. Bạn có thể không nhớ bao nhiêu lần bạn nhận xét 'DoSomething()'
và bối rối tại sao 'SomethingElse()'
được gọi là:
if (condition)
DoSomething();
SomethingElse();
Hoặc đã thêm 'SomethingMore' và không nhận thấy nó sẽ không được gọi (mặc dù vết lõm có nghĩa khác):
if (condition)
DoSomething();
SomethingMore();
Đây là một ví dụ thực tế mà tôi đã có. Ai đó muốn bật tất cả các bản ghi để họ chạy find & thay thế "console.log"
=> //"console.log"
:
if (condition)
console.log("something");
SomethingElse();
Thấy vấn đề?
Ngay cả khi bạn nghĩ, "những thứ này quá tầm thường, tôi sẽ không bao giờ làm điều đó"; hãy nhớ rằng sẽ luôn có một thành viên trong nhóm có kỹ năng lập trình kém hơn bạn (hy vọng bạn không phải là người kém nhất trong nhóm!)
Luận điểm: "nó dễ đọc hơn"
Nếu tôi đã học được bất cứ điều gì về lập trình, thì đó là những điều đơn giản trở nên rất phức tạp rất nhanh. Điều này rất phổ biến rằng:
if (condition)
DoSomething();
biến thành như sau sau khi nó đã được thử nghiệm với các trình duyệt / môi trường / trường hợp sử dụng khác nhau hoặc các tính năng mới được thêm vào:
if (a != null)
if (condition)
DoSomething();
else
DoSomethingElse();
DoSomethingMore();
else
if (b == null)
alert("error b");
else
alert("error a");
Và so sánh nó với điều này:
if (a != null) {
if (condition) {
DoSomething();
}
else {
DoSomethingElse();
DoSomethingMore();
}
} else if (b == null) {
alert("error b");
} else {
alert("error a");
}
PS: Điểm thưởng thuộc về người nhận thấy lỗi trong ví dụ trên.