— Anh Tèo này, em mới vào công ty A. Lúc đọc tài liệu onboard có cái coding convention qq thật!!!
— Convention gì?
— Đó là: luôn đưa code vào cặp ngoặc nhọn, cho dù chỉ có một mệnh đề duy nhất
— Oh. Vậy hãy nói quan điểm của em đi. Tại sao em lại cho là nó qq?
— Vì nó không cần thiết. Nếu điều kiện / vòng lặp chỉ có một dòng code ngay phía sau thì cho vào có tác dụng gì đâu? Code vẫn chạy như nhau. Mà bỏ bớt đi trông lại gọn gàng hơn; compile chắc tiết kiệm được cả kb (nếu dùng nhiều), chứ không ít.
— Em nói không sai. Cơ mà code code của em sẽ tiềm ẩn bug, nếu cứ viết theo kiểu ấy.
— Tiềm ẩn bug? Vì sao?
— Trường hợp em cần debug trên một môi trường mà không thể cắm debugger, thì em sẽ làm gì?
— Tất nhiên là em thêm log rồi.
— Uh, thêm log thì thêm vào đâu?
— Thêm ngay trước hoặc sau đoạn logic cần check có chạy vào hay không.
— Ví dụ đoạn code của anh thế này, em sẽ thêm vào như nào
— Em thêm 2 dòng log: 1 dòng trước create_file
và 1 dòng trước content
— Yeah. Đó chính là vấn đề. Em vừa vô ý làm sai logic của ứng dụng rồi.
— ?!!
— Cụ thể thì em vừa làm cho hàm create_file()
luôn được gọi, dù điều kiện file_exist đúng hay sai.
— Ah ok, em chỉ cần thêm ngoặc khi nào thêm log là được chứ gì
— Thế sao không thêm từ đầu đi cho đỡ nhầm? Em tiết kiệm vài milisecond viết ngoặc, với vài kb để làm gì? Logic sai còn có thể làm sập cả ứng dụng đó.
— Dạ. Ra là zay
Nhân dịp hôm qua có bạn hỏi mình, nhớ lại trước có combat mấy lần vụ này (khi bắt đầu áp dụng convention), nên mình tiện bịa ra bài này.
Cái này cũng được phần đông các anh em ủng hộ (VD1: Link, VD2: Link).
Mình còn tìm được 1 bài nói về lỗi SSL của một lập trình viên Apple do không dùng ngoặc ở đây.
Rõ ràng là lợi bất cập hại
Theo mình thì anh em nên cho ngoặc vào cho nó rõ ràng. Tiết kiệm 1 vài kí tự, không làm bạn nguy hiểm hơn, mà làm code bạn nguy hiểm hơn
Cảm ơn bạn, vì đã đọc bài.
Nhớ dùng ngoặc, bạn nhé 😉