Cuộc tranh luận đang diễn ra về quy ước phong cách lập trình SQL đã làm dấy lên sự quan tâm mới trong cộng đồng lập trình viên, làm nổi bật nhu cầu phát triển của việc phát triển cơ sở dữ liệu hiện đại và những thách thức trong việc duy trì định dạng mã nguồn nhất quán giữa các nhóm.
Lý do Phản đối Định dạng Truyền thống
Một phần đáng kể của cộng đồng lập trình viên đang phản đối các quy tắc định dạng SQL truyền thống, đặc biệt là việc căn chỉnh từ khóa sang phải và căn chỉnh khoảng trắng thủ công. Các lập trình viên cho rằng mặc dù những cách tiếp cận truyền thống này có thể trông bắt mắt, nhưng chúng tạo ra gánh nặng bảo trì không cần thiết và khó duy trì trong các tình huống phát triển thực tế.
Phong cách này gây khó chịu và tôi ước gì nó ít được sử dụng hơn. Nó trông có vẻ gọn gàng nhưng lại tạo ra quá nhiều gánh nặng cho người viết truy vấn, đặc biệt là khi bạn sửa đổi truy vấn và đột nhiên phải thụt lề nhiều dòng chỉ để căn chỉnh chúng cho thẳng hàng.
Sự Phát triển của Định dạng Tự động
Các lập trình viên hiện đại ngày càng ủng hộ các giải pháp định dạng tự động tương tự như những gì có sẵn cho các ngôn ngữ lập trình khác như gofmt của Go. Tuy nhiên, cộng đồng nhận thấy một khoảng trống đáng kể trong hệ sinh thái SQL, với nhiều công cụ định dạng hiện có gặp khó khăn trong việc xử lý các tính năng nâng cao như stored procedures, đặc biệt là đối với PostgreSQL. Điều này đã tạo cơ hội cho việc đóng góp mã nguồn mở trong việc phát triển các công cụ định dạng SQL mạnh mẽ hơn.
Các Khuyến nghị Chính từ Cộng đồng:
- Ưu tiên sử dụng công cụ định dạng tự động thay vì định dạng thủ công
- Cân nhắc sử dụng tên bảng ở dạng số ít để rõ ràng về mặt ngữ nghĩa
- Tận dụng Common Table Expressions ( CTEs ) cho các truy vấn phức tạp
- Sử dụng từ khóa viết thường khi có sẵn tính năng làm nổi bật cú pháp
- Tập trung vào khả năng bảo trì truy vấn hơn là căn chỉnh thẩm mỹ
Tranh cãi về Quy ước Đặt tên
Quy ước đặt tên bảng đã nổi lên như một điểm gây tranh cãi khác, với các lập trình viên chia thành hai phe giữa dạng số ít và số nhiều. Mặc dù hướng dẫn phong cách đề xuất tránh sử dụng số nhiều, nhiều lập trình viên cho rằng tên bảng ở dạng số ít (ví dụ: employee thay vì employees) mang nhiều ý nghĩa ngữ nghĩa hơn khi viết truy vấn. Cuộc tranh luận mở rộng đến các vấn đề hiện đại như quy ước đặt tên endpoint API, nơi mà dạng số nhiều đã trở thành tiêu chuẩn thực tế.
Thực hành Phát triển Hiện đại
Common Table Expressions (CTEs) đang ngày càng nổi bật như một cách tiếp cận ưu tiên để quản lý các truy vấn phức tạp. Các lập trình viên đang dần từ bỏ các phép join đơn lẻ quy mô lớn để hướng tới cấu trúc mã nguồn theo module và dễ bảo trì hơn. Sự thay đổi này phản ánh xu hướng rộng lớn hơn hướng tới tổ chức mã nguồn, ưu tiên khả năng đọc và bảo trì hơn là các vấn đề định dạng SQL truyền thống.
Ủng hộ Từ khóa Viết thường
Các từ khóa SQL viết hoa truyền thống ngày càng bị đặt câu hỏi, với nhiều lập trình viên thích cú pháp viết thường hơn. Các tính năng IDE hiện đại như tô sáng cú pháp đã giảm bớt nhu cầu sử dụng từ khóa viết hoa để phân biệt lệnh với tham số, dẫn đến việc một số lập trình viên ủng hộ cách tiếp cận hiện đại hơn với chữ thường, dễ gõ và dễ đọc hơn.
Tóm lại, mặc dù hướng dẫn phong cách SQL cung cấp nền tảng cho việc định dạng mã nguồn, cộng đồng đang tích cực thúc đẩy hiện đại hóa để phù hợp hơn với các công cụ và thực tiễn phát triển hiện tại. Trọng tâm đang chuyển từ các quy tắc định dạng cứng nhắc sang các giải pháp tự động và thực tiễn nâng cao khả năng bảo trì và năng suất của lập trình viên.
Nguồn tham khảo: SQL Style Guide