Trong hầu hết các ngôn ngữ lập trình, bạn thường có phương thức "namespace> files> classes> hoặc" tổ chức tương tự. Làm thế nào điều này được thực hiện trong clojure?Các dự án clojure lớn được tổ chức như thế nào?
9
A
Trả lời
5
Đó là khoảng:
namespace > files > vars
Lưu ý rằng:
- Namespaces thường được định nghĩa trong một file duy nhất, nhưng không phải (bạn có thể sử dụng nhiều file để xác định một không gian tên)
- vars có thể chứa bất kỳ nội dung nào: hàm, đối tượng Java, dữ liệu, macro ... Hầu hết thời gian, chúng sẽ là hàm hoặc các dữ liệu cấp cao nhất
- Không gian tên là dy namic: chúng có thể được sửa đổi trong thời gian chạy. Điều này giúp bạn khá nhiều sự linh hoạt để tổ chức mã của bạn theo những cách khác nhau nếu bạn muốn (bạn có thể tạo và cư không gian tên của bạn programatically ví dụ)
Xem thêm:
0
Không gian tên Clojure là các gói java, vì vậy hầu hết các chương trình Clojure được tổ chức giống như một chương trình java, ít nhất là đến mức gói.
Sau cấp gói, tôi thấy nhiều chương trình Clojure có xu hướng phẳng hơn so với các đối tác Java của chúng.
Không gian tên Clojure thường được sử dụng giống như các gói java nhưng chúng hoàn toàn khác nhau được thực hiện với các ngữ nghĩa khác nhau. Xem [clojure.lang.Namespace] (https://github.com/clojure/clojure/blob/d0c380d9809fd242bec688c7134e900f0bbedcac/src/jvm/clojure/lang/Namespace.java) lớp java. Clojure có khái niệm về [libs] (http://clojure.org/libs) được tạo sẵn dưới dạng tài nguyên java và thường có sẵn một không gian tên clojure. –