about summary refs log tree commit diff stats
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/Makefile4
-rw-r--r--doc/breaking_rules.md36
2 files changed, 33 insertions, 7 deletions
diff --git a/doc/Makefile b/doc/Makefile
index 8e0f283..9cd37e5 100644
--- a/doc/Makefile
+++ b/doc/Makefile
@@ -11,9 +11,9 @@ all: breaking_rules.pdf breaking_rules.html
 breaking_rules.pdf: macros.ms breaking_rules.md refs.i
 	( cat macros.ms; lowdown -sTms breaking_rules.md ) | pdfroff -i -t -R -mspdf -k -Kutf8 > $@
 
-# Headers aren't emitted currently
+# On macOS only, headers aren't emitted currently
 breaking_rules.html: macros.ms breaking_rules.md refs.i
-	( cat macros.ms; lowdown -sTms breaking_rules.md ) | groff -Thtml -i -t -R -ms -k -Kutf8 > $@
+	( cat macros.ms; lowdown -sTms breaking_rules.md ) | groff -Txhtml -i -t -R -ms -k -Kutf8 > $@
 
 refs.i: refs
 	indxbib $^
diff --git a/doc/breaking_rules.md b/doc/breaking_rules.md
index aa3cb89..d5b399c 100644
--- a/doc/breaking_rules.md
+++ b/doc/breaking_rules.md
@@ -22,6 +22,8 @@ beck 1999
 I argue that improvements in development tools have
 invalidated this.
 
+*TODO*: case study
+
 *Colophon*: this document tries to depend only on GFM,
 in the same spirit as the software.
 The use of tools like
@@ -81,9 +83,8 @@ but there is no need to force it at the start.
 
 A JSON-RPC library was not difficult to write.
 
-## Imperative/Object-oriented paradigm
-
-Here, the following technology is recommended:
+It was decided to use the imperative/object-oriented paradigm.
+The following technology is recommended:
 
 * The OpenLisp interpreter.
 * Emacs for the view layer
@@ -98,7 +99,7 @@ Even though this is a prototype, attention should be paid to basic craftsmanship
   to check the types of parameters in public interfaces
 * Some minimal documentation, at least an overview README file and man pages.
 
-### Further work
+## Further Work
 
 This is probably the most work that makes sense
 without earning money.
@@ -109,7 +110,9 @@ without earning money.
 
 # Refinement to Production-Quality
 
-I argue that there is a repeatable procedure to improve the quality of a
+First, software at the level of the previous section is quite usable.
+It should be confirmed that further improvement is, in fact, required.
+If so, I argue that there is a repeatable procedure to improve the quality of a
 (reasonably well-written) prototype to a releaseable product.
 
 First, ensure that the surrounding infrastructure is in place:
@@ -127,6 +130,29 @@ Then, the following code & documentation improvements should be made:
 * Port some of the trivial-\* CL libraries from quicklisp where justified.
 * Port to core-lisp on platform.sh?
 
+## Documentation Details
+
+I think it is a good idea to keep the separation between library and UI code.
+And JSON-RPC is perfectly adequate for that.
+
+### Library
+
+This was the subject of
+\.[
+bane 2008
+\.]
+. However, much of the work of dedicated documentation is better done in source code:
+
+* The summary of functions should be taken care of by having the public functions and classes commented.
+* The formal requirement for function behaviour is better done with contracts.
+  Tables with Simple English are still a good idea for initial work.
+  
+### UI
+
+This involves filling in any blanks that still need to be filled after the man pages have been written.
+There is also the system-level documentation to consider, some of which is fine in a README.
+The specification of input and output variables is best left at the level of tables and Simple English again.
+
 # Conclusion
 
 A method for developing software from an incomplete understanding of the requirements is given.
ef='#n40'>40 41 42 43 44 45 46 47 48 49 50 51 52 53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208