Reminders to myself, for use when redesigning.
“Show me your code and conceal your data structures, and I shall continue to be mystified. Show me your data structures, and I won’t usually need your code; it’ll be obvious.”
– Eric S. Raymond in The Cathedral and the Bazaar, paraphrasing Fred Brooks in The Mythical Man-Month (1975)
[Parnas 1971] “On the Criteria To Be Used in Decomposing Systems into Modules”
The natural temptation when breaking your project into components is to make each task a separate component. That is, to start from a flowchart and break it thus.
Parnas instead points out that the better approach is based on information hiding, specifically the hiding of data structures and other design decisions.
“it is almost always incorrect to begin the decomposition of a system into modules on the basis of a flowchart. We propose instead that one begins with a list of difficult design decisions or design decisions which are likely to change. Each module is then designed to hide such a decision from the others.”
Tests clarify your thinking.
But more than that, writing your code such that it is easy to test generally leads to better code.
A “specification” / “tests” for what all it should do.
Look in Stotra-samhita
“Specified metre” could here include Arya, Anushtup, stotra metre, etc.
Given a metre (or possibly verse in that metre), show metre’s general info, statistics, recitation, etc.
Again, metre here should include Upajati, Anushtup, Arya, etc.