Daha önce çok sayıda biçimde bir işlevi olan bir api'ye sahiptim, hepsi çok özel bir biçimde bir harita bekleniyordu. Bu API'yi belgelemeye gelince, bu fonksiyonların her birinin belgeselinde tekrarlıyorum “Bu fonksiyonun çağrıldığı harita böyle bir formatta olmalı ve harita bu alan ve benzeri ." clojure içindeki kayıtların belgelenmesi
Bu yüzden bu fonksiyonlar rekor almak için daha iyi ve sadece yerine kayıt belgelemek olabilir düşündüm. Ancak, en azındandoc
makrosu veya Marginalia tarafından yorumlanan kayıtların belgelenmesi mümkün görünmemektedir.
bir çözüm ": kaydın meta doc anahtarı sadece eklemek" olduğunu here önerdi.
Ben(defrecord ^{:doc "Here is some documentation"} MyRecord [field1 field2])
çalıştı ama macroexpanding bu herhangi bir etkisi yoktur göstermektedir. Ayrıca
defrecord
, IMeta'yı uygulamayan bir
java.lang.class
örneğini döndürür; bu nedenle meta verilere verebileceğimizden emin değilim?
- nasıl kayıtları dokümante edilmelidir?
- Burada uygun bir çözüm kayıtları var mı?
Bu iş parçacığında daha fazla okuyorsanız, kaydın meta verilerine bir: doc anahtarının eklenmesinin işe yaramadığını göreceksiniz. Bir protokole bir doc dizesi ekleyebileceğinizi unutmayın. – user100464
ama [this] (http: // stackoverflow.com/questions/6627020/combining-clojure-defprotocol-and-defrecord) yığın taşması yanıtı, yalnızca bir kayıt tarafından uygulanan, muhtemelen olabilecek olan yazma protokollerine karşı önerir. –
Tek bir çözüm, ['prizmatik/şema'] (https://github.com/Prismatic/schema) gibi bir kütüphane olup, kabul edeceğiniz verilerin türünü belirtmenize ve ayrıca sunulan argümanların doğrulanmasına izin verir. – noisesmith