2013-04-07 21 views
9

Tôi tương đối mới đối với Clojure nhưng tôi đã nhận thấy nhiều dự án triển khai không gian tên "cốt lõi"; ví dụ. foobar.core có vẻ là một mô hình rất phổ biến. Lịch sử đằng sau điều này là gì và tại sao lại là tiêu chuẩn de facto?Danh từ không gian tên "cốt lõi" bắt nguồn từ đâu?

+0

Có thể chỉ tuân theo quy ước 'clojure.core'. Tuy nhiên, Stuart Sierra và những người khác đang outspoke về mọi thư viện (và các dự án Leiningen mặc định) lạm dụng 'whatever.core'. – noahlz

+10

Mẹo chuyên nghiệp: 'lein new foo.bar' sẽ tạo' foo/bar' thay vì 'bar/core'. – vemv

+0

@noahz bạn có liên kết không? Tôi tò mò muốn đọc ý kiến ​​của Stuart về việc này. – maxcountryman

Trả lời

2

Đó chỉ là tên chung thể hiện chức năng "cốt lõi" của một thứ gì đó. Các chức năng chính của Clojure tự xác định một ngôn ngữ lập trình mục đích chung, với các hàm rất chung chung mà bạn có thể cần trong nhiều lĩnh vực vấn đề khác nhau. Các chức năng chỉ áp dụng cho một miền vấn đề cụ thể đi vào các không gian tên miền cụ thể, chẳng hạn như clojure.string hoặc clojure.set.

Các công cụ như Leiningen không thể biết một tiên nghiệm những gì sắp xếp của một chương trình mà bạn đang cố gắng để viết, để họ đặt bạn lên với một không gian tên foo/core theo mặc định, mô hình sau clojure.core - clojure.core là các chức năng cốt lõi của Clojure, foo.core là chức năng cốt lõi của foo.

Nếu bạn có thể cung cấp cho tên miền chính của mình một tên ít chung chung hơn hoặc chỉ sử dụng foo/core để khởi động khả năng khởi động (chẳng hạn như bằng cách giữ chức năng -main), điều đó được khuyến khích, để phần lớn mã của bạn sẽ cư trú trong ý nghĩa ngữ nghĩa hơn không gian tên thay thế. Điều này giúp bạn tìm mã cụ thể mà bạn muốn làm việc sau này.

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