3

我开始查看 Edi Weitz 的CL-FAD以了解一些好的编码实践。看的时候有一件事引起了我的注意cl-fad.asd。在defsystemWeitz 的使用:serial t中,如果我根据文档正确理解,指示ASDF:components出现顺序包含。:depends-on在我看来,这在这种情况下应该是多余的。Weitz 是否有理由将其包括在内:depends-on,还是只是一个疏忽?

这是defsystem部分(最新的 Github 克隆):

(asdf:defsystem #:cl-fad
  :version "0.7.2"
  :description "Portable pathname library"
  :serial t
  :components ((:file "packages")
               #+:cormanlisp (:file "corman")
               #+:openmcl (:file "openmcl")
               (:file "fad")
               (:file "path" :depends-on ("fad"))
               (:file "temporary-files" :depends-on ("fad")))
  :depends-on (#+sbcl :sb-posix :bordeaux-threads :alexandria))

(asdf:defsystem #:cl-fad-test
  :version "0.7.2"
  :serial t
  :components ((:file "packages.test")
               (:file "fad.test" :depends-on ("packages.test"))
               (:file "temporary-files.test" :depends-on ("packages.test")))
  :depends-on (:cl-fad :unit-test :cl-ppcre))
4

2 回答 2

3

朋友不要让朋友使用 cl-fad。

cl-fad 是任何类型的“最佳实践”的错误场所。这是一个快速而肮脏的不那么便携的可移植层。

请改用 UIOP。

于 2014-04-05T04:37:47.397 回答
2

同时执行串行和依赖关系可能会产生冲突,即由依赖关系定义的无环图与组件序列给出的顺序不兼容。我怀疑,但谁知道,如果 asdf 真的检查。

当然,这是多余的。但是,是的,冗余不一定是坏事。除了串行之外,说明 on-depends 可能会为读者提供有关代码结构的信息。

开发人员可能偶尔会注释掉连续剧以获得随之而来的好处。

于 2014-04-09T02:32:10.610 回答