2009-09-29 23 views
13

Gần đây tôi liên lạc với Empire-db. Tài liệu dự án. nói rằng họ đang sử dụng "string-free coding", dự định sử dụng các chuỗi ít liên tục nhất có thể để tránh lỗi chính tả và sử dụng lực của trình biên dịch.Có phải "viết mã không dây" là một thuật ngữ phổ biến?

Tôi luôn là một fan hâm mộ lớn của nguyên tắc này, bởi vì tôi nghĩ Java là ngôn ngữ chính thức, nó có thể nổi trội cho cấu hình như thuộc tính hoặc xml và cung cấp thêm giá trị bằng cách kiểm tra thông qua trình biên dịch. Có lẽ tại thời gian chạy có ít khả năng thay đổi mà không biên dịch lại nhưng điều này phụ thuộc vào từng trường hợp.

Bây giờ bạn có thêm tài liệu tham khảo hoặc bài đọc về thuật ngữ/nguyên tắc/mẫu thiết kế này không?

+1

Cảm ơn bạn đã chỉ ra Empire DB. Nó là một công cụ có giá trị hơn nữa. Tôi đặc biệt bị ấn tượng bởi việc phân tích Hibernate: http://incubator.apache.org/empire-db/empiredb/hibernate.htm – APC

+0

Đó là một bài viết rất thú vị. Cảm ơn @APC. –

+0

Trong khi đó là một nguyên tắc tốt đẹp, như mọi khi, sử dụng cảm giác thông thường đầu tiên. Cẩn thận sau một thực hành thiết kế tốt với ý định tốt cũng có thể dẫn đến mã xấu, hãy kiểm tra http://thedailywtf.com/Articles/It-Gets-Worse-Each-Year.aspx và http://thedailywtf.com/Articles/ Soft_Coding.aspx –

Trả lời

4

Mặc dù tôi chưa bao giờ nghe thuật ngữ cụ thể đó, tôi biết ý bạn là gì, điều đó có ý nghĩa.

4

Tôi biết rất ít về Java, nhưng thành ngữ này nổi tiếng trong C++ hiện đại. Ví dụ: Xpressive là thư viện biểu thức chính quy cho phép lập trình viên viết regex bằng C++ và kiểm tra thời gian biên dịch. Spirit là một ví dụ khác, nơi mà bạn có thể viết EBNF trong C++, và trình biên dịch có thể kiểm tra cú pháp cho bạn cũng :)

Tôi nghĩ rằng hạn bạn đang tìm kiếm là miền Embedded Ngôn ngữ cụ thể.

+0

Qt cũng có liên quan gì đó, nhưng đó là vì cách dịch thuật hoạt động ở đó. Về cơ bản, bạn gói gọn mọi chuỗi hiển thị của người dùng bằng "tr (...) "và ứng dụng tìm kiếm động trong thời gian chạy, chỉ sử dụng chuỗi đã cho khi không tìm thấy bản dịch phù hợp. –

1

Không bao giờ nghe thấy biểu thức cụ thể, nhưng Effective Java đề xuất "tránh các chuỗi nơi các loại khác phù hợp hơn" (Mục 50).

6

Điều này giống với số số ma thuậthằng số. Sử dụng các hằng số làm tăng khả năng bảo trì và khả năng đọc. Các hằng số cũng gói gọn thay đổi: một thay đổi về giá trị không đổi được tự động truyền và, đối với mã hóa không có chuỗi, hằng số sai chính tả là một lỗi biên dịch thời gian.

0

Nổi tiếng Pragmatic Programmer đề cập đến nguyên tắc này đặc biệt là trong kết nối với xử lý siêu dữ liệu. Một trong những lời khuyên về việc này là:

Đặt Abstractions trong Code, chi tiết trong Metadata Chương trình

cho trường hợp tổng quát, và đưa các chi tiết cụ ngoài cơ sở mã biên dịch.

Thật đáng đọc sách này.

0

Về đế chế-db, nó giống như 'an toàn kiểu' cho truy vấn SQL.

Các vấn đề liên quan