-
Notifications
You must be signed in to change notification settings - Fork 0
FAQ: What style?
Do not spend a lot of time trying to figure out the optimal way to mix your layout with DAWGIE. Just start with two computational elements where data flows from on to the next. They write the DAWGIE interface or configuration for those two without calling your real code or using your real data. Run DAWGIE. Look at the Directed Acyclic Graph (DAG) and see if it meets your expectations. Adjust DAWGIE interface or configuration until you get what you expect. Now add a third element. Repeat until comfortable with the interface or configuration process. The main lesson should be is that it is simple to refactor from one DAG to the next.
Now that the DAG is mostly correct and you are comfortable with changing it, add your calls and data using inheritance or composition. Composition is recommended as it keeps DAWGIE, interface or configuration, and your code independent of each other.
DevOps by any other name is still just automated checking, testing, and verification. It works best if a minimal set of checks, tests, and verification block the code from running. What seems to work best is something along the lines of:
- PEP-8
Simple coding standards. - pylint
Static analysis of the code. Catch most simple errors like dereference before assignment and such. - unit tests
Used mostly to keep bugs from regressing back into the code. - coverage
Are the lines of code changed covered by the unit tests. It matures the unit tests slowly and focuses on the most problematic areas leaving the simple parts alone. - dawgie.tools.compliant
The compliant tool verifies the interface or configuration is correct. It is the most important check from DAWGIE's perspective.
Besides computing a single point, DAWGIE allows for computation along a line (one axis varies while the others are held constant) or plane (two axis vary while the others are held constant). Specifically, it allows for data aspects (all targets) and regression (all run ID) which are lines and regressions of aspects or aspects of regressions which are planes.
These two features can be used to determine and monitor the quality of the output state vectors as the software and data versions change. Selecting a quality metric or monitor style are not trivial, but given the top down approach just add something and improve it as more is learned. Everything will automatically adjust with your changes, which is the biggest way DAWGIE will help you.