@@ -359,7 +359,7 @@ pairwise constructs as found in e.g. `let` and `cond`.
359359
360360* <a name=" comprehensive-ns-declaration" ></a>
361361 Start every namespace with a comprehensive `ns` form, comprised of
362- `import `s, `require`s, `refer`s and `use`s .
362+ `refer `s, `require`s, and `import`s, conventionally in that order .
363363<sup>[[link](#comprehensive-ns-declaration )]</sup>
364364
365365 ```Clojure
@@ -368,19 +368,28 @@ pairwise constructs as found in e.g. `let` and `cond`.
368368 (:require [clojure.string :as s :refer [blank?]]
369369 [clojure.set :as set]
370370 [clojure.java.shell :as sh])
371- (:use [clojure xml zip])
372371 (:import java.util.Date
373372 java.text.SimpleDateFormat
374373 [java.util.concurrent Executors
375374 LinkedBlockingQueue]))
376375 ```
377376
378377* <a name=" prefer-require-over-use" ></a>
379- Prefer using `:require :refer :all` over `:use` in ns macro.
378+ In the `ns` form prefer `:require :as` over `:require :refer` over `:require
379+ :refer :all`. Prefer `:require` over `:use`; the latter form should be
380+ considered deprecated for new code.
380381<sup>[[link](#prefer-require-over-use )]</sup>
381382
382383 ```Clojure
383384 ; ; good
385+ (ns examples.ns
386+ (:require [clojure.zip :as zip]))
387+
388+ ; ; good
389+ (ns examples.ns
390+ (:require [clojure.zip :refer [lefts rights]))
391+
392+ ; ; acceptable as warranted
384393 (ns examples.ns
385394 (:require [clojure.zip :refer :all ]))
386395
0 commit comments