-
Notifications
You must be signed in to change notification settings - Fork 987
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve developer experience #1495
Comments
For the phase №6 we can consider the following guides |
Nice @jeluard, thanks!
|
hey @GustavoNunes, tbh in your case, screens package looks superfluous, @jeluard's option looks better. we can open only screens and can have shared files for all screens |
I'm not familiar with the data model, but assuming that all entities are maps that can be identified by a single key I'd kindly suggest taking a look at https://github.com/vimsical/subgraph documentation is still sparse but we've used it in production for months and it's greatly simplified our data model. Happy to answer any questions here or in the repo's issues. A simple practice that's had a big impact on our codebase was to use fully-qualified keywords for subscription and handler ids. This lets the compiler work for you, preventing small regressions and typos. It also makes very explicit the structure of the dependencies. |
@julienfantin Thanks for the tips! We definitively need some more detailed spec for the data model. @janherich already started working on it and I am sure he will make good use of your points. |
I usually follow the next steps |
What do you think about adding "write docstrings for important functions" to the to-do list? I usually find them useful in REPL. It kind of falls under the blanket term "good practices", but it might be good to emphasize it. It's annoying to write those, I know, but we'll spend more time reading that code than writing it! |
This document details steps to improve codebase intelligibility. Codebase should be as simple and intuitive as possible to understand and navigate.
It goes in pair with a
best practices
document that will follow.status:
RFC
6 phases
To reduce potential for regression and simplify implementation and subsequent merge into
develop
this refactoring can be split in 5 phases.Phase #1: introduce new hierarchy
Reorganize folders / rename file to match new hierarchy and match
re-frame
semantic.and
Phase #2: consolidate namespaces
Merge utils namespaces and reduce files number to improve code understandability.
Consolidate
android
andios
shared code.Phase #3: improve modularization
Make sure we don't have unwanted dependencies between namespaces (i.e. re-frame usage in non ui/ namespaces)
Might require spliting files
Phase #4: normalize app-db
Make sure
app-db
is properly normalized, speced and documented.From @janherich
Phase #5: follow re-frame patterns
Reorganize ui code by views and follow re-frame patterns
Phase #6: apply code convention
Fix code convention according to best practices.
The text was updated successfully, but these errors were encountered: