Brake down of main goals listed in job description
Update the package.
- update the package.
- curate: decide what functions are useful and worthwhile keeping. DONE
- document: improve help files.
- titles, description and details.
- argumets (reuse templates)
- authors
- group related functions in one place
- add examples
- build a website
- validate: validate inputs or warn and err accoridingly. This helps users to understand what went wrong.
- test: This helps developers to notice that something went wrong so they can promptly fix it.
- regression tests: check old and new versions of a function output the same.
- test that functions do what they are expected to do.
- checks: devtools::check()
- lintr to check for style
- goodpractice::gp() to check for general good practices
- TravisCI to check package builds on all platforms.
- refactor: re-write code to improve it. E.g.
- names: make them more elocuent, consistent
- arguments:
- name arguments more elocuently
- order arguments more sensibly (data, details)
- give arguments most common or safest defaults
- code:
- improve style for better readability and consistency with modern style guides.
- improve safety
- reduce complexity
- reduce nestedness (mostly unnecessary if blocks)
- remove the boilperate code of
for
loops by replaceing for
loops by functional programming approaches (most generally, calls to lapply(X, FUN)
)
- improve clarity
Optimize the package.
- Human brain(human brain): make useful code easier to find and use.
- naming functions better.
- grouping functions coherently.
- writting more complete and clearer documentation (goepen)
- facilitating access to documentation via websites
- announcing advances on twitter, workshops
- facilitating disussions on GitHub
- building capacity via code reviews, workshops, seminars, tutorials.
- Access to data:
- provide easy access to data for examples (bci, bciex).
- help the community to develop their own data packages.
- help the community to develop a friction-less workflow
- Code speed
- provide light data for examples and tests to run fast (bciex)
- identify speed bottlenecks (profviz)
- replace slow by fast code. E.g. compare base vs. dplyr vs. data.table
Establish a framework for future maintenance and expansion.
- build R packages sensu stricto
- create platforms for:
- github.com/forestgeo:
- hosting code repositories, packages and package websites
- discussing current issues, proposed changes, collaboration, etc.
- managing collaboration
- (rpubs.com/forestgeo): publishing R products publicly
- bookdown.com/forestgeoguest: publishing R products with privileges control
- @forestgeo, #forestgeo, #forestr, etc.: announcing developments.