Skip to content

Latest commit

 

History

History
16 lines (13 loc) · 1.25 KB

AdvancedTopics.rst

File metadata and controls

16 lines (13 loc) · 1.25 KB

Advanced Topics

In this document, advanced topics of productive scientific software development will be covered. These are topics for intermediate programmers, which are those that are highly skilled at writting scripts and are beginning the development of program libraries. Discussed are best practices that should be followed. Best practices are extremely imporant to follow. These have been developed by programmers with decades of experience in the telecom, banking, healthcare, etc. industries that have stringent requirements for performance and reliability. There is a lot of great deal of information that intermediate scientic programmers can learn from these practitioners. Incorporating these best practices will improve the capability, reliability, ease-of-use, and ease-of-development for your scientific libraries.

The most important best practices for scientific computing:

  • Learn common datatypes & hash what you can (hashtable is most important... Can use that dict example that I made before)
  • Follow good design patters (@property, @classmethod, ...)
  • Checkpointing
  • Restarting
  • Save what you need and not what you don't
  • Respect the limitations of the hardware
  • Benchmarking
  • Unit tests
  • CI