scope-capture
spec-tools
scope-capture | spec-tools | |
---|---|---|
9 | 3 | |
557 | 591 | |
- | -0.2% | |
0.0 | 4.0 | |
over 1 year ago | 8 days ago | |
Clojure | Clojure | |
MIT License | Eclipse Public License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
scope-capture
-
What I Have Changed My Mind About in Software Development
Awesome tools.
Personally I can't imagine coding in clojure without scope capture
https://github.com/vvvvalvalval/scope-capture
- Automatic function argument / return value collection
- Using def within the threading macro. Is there a better way of doing this?
-
Python dataclass equivalent
I haven't tried it myself. I generally just use truss for runtime constraint checking. I use a modified version that integrates scope-capture. And malli validation for more complex cases, but I try to limit that. For me it is better to validate individual attributes as needed, vs validating an entire "type"/collection of attributes. So each function only cares about the attributes that it needs, and validates only as needed.
-
Love Clojure, challenged by discoverability
Use scope-capture to observe the actual data flowing through the system
-
Clojure unique way of debugging
Scope capture library https://github.com/vvvvalvalval/scope-capture automates this approach.
- The Clojure debbugging way with scope capture
-
Let, try and other code blocks in the REPL
Is anyone aware of any prior art along the lines of this? I've seen scope-capture but it's more about instrumenting existing programs than writing new ones interactively.
-
Data-Oriented programming and LISP
I am not advocating against the use of a compiler. I am going to illustrate how to reproduce the scope of a program and replay it in the REPL as it is done for instance in Clojure with scope-capture. In some use cases, I find this approach is simpler than using a debugger. This approach is possible only because the data is immutable.
spec-tools
- Which type declaration library is the standard nowadays?
-
More concise spec definitions
I'd like to use a syntax like how ::input-correlations-concise is defined, but am having trouble debugging the spec-tools.data-spec error ("Unable to resolve spec: :app.specs/input-correlations-concise") after setting it up with these instructions. I also want to make sure I'm doing things the "right" way.
-
Python dataclass equivalent
I like spec-tools data specs. I never got into schema, although I was aware of it. spec came along and swept a substantial portion of the crowd (I think the interleaving of parsing and regex style operators is slick/useful). Malli looks excellent though, and I think it's worthy of learning. I have no opinion on spec2 as of yet.
What are some alternatives?
clojure - The Clojure programming language
truss - Assertions micro-library for Clojure/Script
flow-storm-debugger - A debugger for Clojure and ClojureScript with some unique features.
malli - High-performance data-driven data specification library for Clojure/Script.
hashp - A better "prn" for debugging
ghostwheel - Hassle-free inline clojure.spec with semi-automatic generative testing and side effect detection
snoop - Function instrumentation using Malli schemas.
rebel-readline - Terminal readline library for Clojure dialects
defn-spec - Add function args and return Spec checking via assertions
debug-repl - A Clojure debug repl as nrepl middleware
dataspectest - quick example of spec-tools dataspecs