Clojure의 (그리고 다른 리스프 방언)의 핵심 원리는 작은 작성 가능 함수를 만드는 것입니다 감사합니다.
위험 평가에 추가되기 전에 자산이 완전한 형식의 자산을 기대하는 코드에 노출되지 않는 한 자산이 위험 평가 외부에서 작성되는 경우 문제가되지 않습니다.
그래서 나는 다음 (안된를) 제안 : 또한 함수 인수의 형태를 확인하기 위해 유용
Schema 라이브러리를 찾을 수
(defn add-asset-ra
[{:keys [current-ia-ref] :as risk-assessment} asset]
(let [ia-ref (if current-ia-ref
(inc current-ia-ref)
1)]
(-> risk-assessment
(assoc :current-ia-ref ia-ref)
(update-in [:assets] #(conj % (assoc asset :ia-ref ia-ref))))))
(defn make-asset
[name description owner categories
& {:keys [author notes confidentiality integrity availability]
:or {author "" notes "" confidentiality 3 integrity 3 availability 3}}]
{:name name
:desc description
:owner owner
:categories categories
:author author
:notes notes
:confidentiality confidentiality
:integrity integrity
:availability availability
:vulns []})
.
select-keys는 복사 작업을 수행하는 친구입니다. http://clojuredocs.org/clojure_core/clojure.core/select-keys – Dapeng