clara-rules
Refactoring-Summary
clara-rules | Refactoring-Summary | |
---|---|---|
1 | 2 | |
1,179 | 684 | |
0.8% | - | |
5.9 | 0.0 | |
22 days ago | over 1 year ago | |
Clojure | ||
Apache 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.
clara-rules
-
Ask HN: Where do I find good code to read?
I've met a few young programmers who heard somewhere that object-oriented programming was bad and they want to get the enlightenment of functional programming that they've heard about. Frequently they travel from job to job like itinerant martial artists always looking for somewhere where they practice the true technique but they always seem disappointed as it is just as easy if not easier to screw up handling errors with monads than it is with exceptions and they find analogies like "a monad is like a burrito" just get them more confused.
As for something profound I'd point you to
https://github.com/cerner/clara-rules
which many people will struggle with because like many other production rules engines in LISP (and many other examples of simple compilers), there is hardly any code! Contrast that to the orders of magnitude larger rules engine Drools
https://github.com/kiegroup/drools
which is so crazy-complicated primarily because the Drools language is Java-based so you need all sorts of things that Clara or CLIPS don't need.
Refactoring-Summary
-
Ask HN: Where do I find good code to read?
I find that reading books rather than code tends to be more helpful in terms of finding good takes on what clean code is -- more specifically books on refactoring or specific language-related features (like 'Effective Java' or 'Fluent Python'). The issue with just reading code is that many times - you'll miss out on why the author chose to use the expression or abstractions which they chose to use. Reading a book at least takes you through author's thought process. For an alternative - you could always browse repositories which contain notes on refactoring as well like this one (which does a good job summarizing some of the key principles from Fowler's book on refactoring):
https://github.com/HugoMatilla/Refactoring-Summary
-
Is it okay to return my original List/Collection/Datastructure I'm storing my data in or is that against some OOP principals?
https://github.com/HugoMatilla/Refactoring-Summary#28-encapsulate-collection
What are some alternatives?
sqlite - sqlite mirror
glib - Read-only mirror of https://gitlab.gnome.org/GNOME/glib
pocket - Official implementation of the Pocket Network Protocol v1
deno_std - deno standard modules
retlang
DOOM - DOOM Open Source Release
beanie - Asynchronous Python ODM for MongoDB