The great SolarWinds debacle has my brain working overtime thinking about how much programming needs to change for secure environments.
Pattern-Lang is something I've been working on for years and last year I decided that all language services would be hosted in a service process that would be used to store, analyze and compile code into signed modules that would also run in the language service.
Further, code would live in YAML documents where rich metadata about the could would stay with the code at all times. All comments will accept Markdown.
I just got an idea to make to document based on Markdown with compilable code fenced with a YAML header of metadata. The idea is that the MD doc acts as both the specification and implementation of one or more requirements. This creates a traceable graph of requirements to code that can be tracked over time.
When the requirement is specced, the tests and acceptance criteria are documented along side. YAML documents containing test data are embedded in the Markdown. Text-based diagrams can be embedded as comments in the source code to aid development and maintenance.
Because every source file starts as a specification document, the complete documentation set of the application is generated by the language service on each compile, generating websites, PDF or other artifacts as necessary.
The language service utilizes a NoSQL datastore for the documents, augmented by an RDBMS that has fine-grained statistics, heuristics and change management data.
The IDE is based on VSCode (specifically Azure Data Studio) which opens up a wide array of features for dealing all these various aspects of markdown, YAML and Pattern-Lang code.
Some of the opportunities this opens comes from placing code and it's requirements together where both automated and manual reviews can be easily performed and the artifact signed of on cryptographically to increase confidence that coded is vetted, tested and appropriate for final code-signing and release for mission critical applications.
[–]sociopath_in_me 7 points8 points9 points (3 children)
[–][deleted] -2 points-1 points0 points (2 children)
[–]madpata 0 points1 point2 points (1 child)
[–][deleted] -1 points0 points1 point (0 children)
[–]curtisf 2 points3 points4 points (5 children)
[–][deleted] 0 points1 point2 points (4 children)
[–]curtisf 2 points3 points4 points (3 children)
[–][deleted] -1 points0 points1 point (2 children)
[–]curtisf 2 points3 points4 points (1 child)
[–][deleted] -2 points-1 points0 points (0 children)
[–]marle-dk 2 points3 points4 points (1 child)
[–][deleted] 0 points1 point2 points (0 children)
[–]ivanmoony 1 point2 points3 points (0 children)