2012-03-30 23 views
17

Tôi đang gặp khó khăn khi hiểu rõ về thư viện Noir của clojure. Nó có vẻ là một khuôn khổ được viết trên đầu trang của compojure mà đổi tên defroute để defpage và gọi nó là một ngày. Rõ ràng là một sự đơn giản không công bằng, nhưng chính xác thì Noir mang đến cái bàn nào? Tại sao tôi lại sử dụng Noir thay vì đồng bộ + nấc cục?noir vs compojure?

CHỈNH SỬA/CẬP NHẬT: Không dùng nữa, viết thú vị tại đây: http://blog.raynes.me/blog/2012/12/13/moving-away-from-noir/.

Trả lời

14

Compojure là một khung nhỏ mà tạo ra chiếc nhẫn request/xử lý phản ứng, nơi xử lý được lựa chọn dựa trên các tuyến đường bạn xác định.

Noir thêm chức năng để xử lý phiên, cookie, mẫu và partials, một cách dễ dàng hơn để tạo phản hồi, xác thực biểu mẫu, bộ lọc tuyến đường, mật khẩu được mã hóa, JSON (de-) serialising và trang trạng thái tùy chỉnh. Nói cách khác, Noir kết hợp Compojure, Hiccup và một loạt các công cụ thông minh khác trong một gói.

+0

là tất cả những điều này "công cụ thông minh" đã có sẵn thông qua thư viện clojure khác? Ví dụ một số tiền hợp lý của những gì bạn mô tả có thể được thực hiện với compojure, hiccup, sandbar, clj-json, vv Noir cung cấp bất cứ điều gì mới bên cạnh một mặt tiền trên thư viện clojure hiện có? – Kevin

+6

Noir sử dụng các thư viện hiện có và dán chúng lại với nhau theo cách hữu ích - bản thân nó là "mới", và nó có nghĩa là nỗ lực tìm kiếm, kiểm tra và kết hợp các thư viện khác nhau đã được thực hiện cho bạn. Bên cạnh đó, nó cung cấp một số chức năng bổ sung (chẳng hạn như xác nhận hợp lệ, trạng thái tùy chỉnh, v.v.). Các nguồn hiển thị cho bạn chính xác những gì được cung cấp - đó là chức năng mà bạn có thể sẽ xây dựng nếu bạn phát triển một ứng dụng web với tính năng tương thích, nấc cục, thanh cát, v.v. https://github.com/ibdknox/noir – Gert

17

Từ author of Noir himself:

Noir là không thực sự là một sự thay thế cho [compojure và nấc cục], nhiều hơn một trừu tượng qua chúng. Nó được sinh ra từ việc nhìn thấy một ứng dụng web thực sự phát triển như thế nào và những gì đã mất tích từ ngăn xếp vòng/compojure/hiccup khi tôi xây dựng http://www.typewire.io. Ngoài ra, như tôi đã đề cập trong một trong các ý kiến ​​khác, Tôi hy vọng rằng nó sẽ phục vụ như là "gói" duy nhất để bắt đầu với phát triển web trong Clojure, thay vì phải cố gắng và cobble nó với nhau từ các mảnh được ra khỏi đó ngay bây giờ . Bằng cách kiểm soát tất cả, tôi có thể tạo ra một câu chuyện liền mạch hơn và được xác định rõ ràng để giúp mọi người bắt đầu. Tôi cũng có thể chia sẻ những gì tôi đã học được về việc duy trì các trang web ở Clojure và hy vọng khuyến khích các mẫu tránh một số hố mà tôi rơi vào.

(tôi nhấn mạnh)

0

Bạn luôn có thể kiểm tra API trên trang web webnoir.org. Có rất nhiều chức năng bổ sung bên cạnh defpage.

17

Noir, khuôn khổ đã được deprecated bởi Noir tự bảo trì.

Nó gợi ý để sử dụng Compojurelib-noir:

Đối với các trang web mới, vui lòng sử dụng Compojure và lib-noir. Điều này là khá nhiều chỉ là pin bao gồm như Noir chính nó từng là! Bạn chỉ cần học cách viết các tuyến với Compojure. Thật dễ dàng và ngắn gọn như trong Noir. Bạn không cần phải sử dụng bộ đổi nguồn và công cụ chỉnh sửa vòng, chỉ cần sử dụng plugin lein-ring để khởi động máy chủ của bạn. Ngoài ra, nếu bạn lợi dụng Noir bao gồm cả nấc cục theo mặc định, bạn sẽ phải có một sự phụ thuộc rõ ràng vào nó ngay bây giờ. Không to, phải không? Đúng!

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