Skip to content

Commit 4321b21

Browse files
committed
Merge pull request bbatsov#99 from llasram/require-use
Clarify state of `use`.
2 parents 594d4f9 + 15f9e12 commit 4321b21

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

README.md

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)