Commit 71a76542 authored by Asquith, William H.'s avatar Asquith, William H.

initial commit

parent 4693bdfb
#### NOTES ON CODE DESIGN (path ./visGWDBmrva/include/CODE_DESIGN.md)
#### Author: William H. Asquith
#### Point of contact: William H. Asquith (wasquith@usgs.gov)
***
***
# NOTES ON CODE DESIGN
The code represented by `../visGWDB.R` and the other scripts within this directory was developed without the benefit from prior design. Inotherwords, during the development process the purposes of the code were identified. There are some general critiques of the code here that the author wishes to communicate:
1. There are many functions that have different interfaces. Some functions regrettably work with one or more global variables, whereas other functions do not. Of particular note, the global variable `TMP` represents the groundwater-level database subsetted to the current well (`site`) in the iteration of the main loop (`visGWDB_Mloop.R`). It almost goes without saying that the name `TMP` (as in "temporary") is not the best of choices. Some functions further use a locally scoped `tmp` as a copy of the `TMP`. A some point in the development cycle, it was indended that use of the global variable yield faster computation times because the object is not copied over and over again.
2. There are "control" variables at the top of `../visGWDB.R` and also in `visGWDB_control.R` and `visGWDB_filterInput.R`.
3. There is not a firm standard in variable naming. This again is attributed to the organic development of the code without prior design.
4. Some reviewers from languages other than _R_ have expressed frustration in the use of periods (`.`) in variable names.
5. The "main loop" stores several major objects, such as the generalized additive models or the support vector machines, for the current site in a global environment `visGWDBenv`. Some users might find this very important when extending the code base because this environment can be freely populated with other intermediate computations.
As of December 2019 and related to the motivation of having the **visGWDBmrva** as a named repository that differs from "visGWDB" is that in the future, it is possible that either a permanent fork from the repository will occur or possibly the author will slowly rectify the aforementioned critiques.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment