Revisión | 006b2d3bce22bb7719a0d9822d55cd6c29597e22 (tree) |
---|---|
Tiempo | 2020-03-26 20:37:44 |
Autor | Albert Mietus < albert AT mietus DOT nl > |
Commiter | Albert Mietus < albert AT mietus DOT nl > |
PubSub: finisched practice (see todo: 'needs')
@@ -44,26 +44,28 @@ | ||
44 | 44 | 4. Extent the current interface to allow pub/sub between multiple processes; optionally running on multiple computers |
45 | 45 | (on the same network). |
46 | 46 | |
47 | - * The current API (:class:`~pubsub.Topic`, :meth:`~pubsub.Topic.publish` & :meth:`~pubsub.Topic.subscribe`) are not | |
48 | - allowed to change. Adding parameters to the class initiation (“the constructor” in C++) is allowed. Adding extra | |
49 | - methods is also allowed (but see below!). | |
50 | - | |
51 | - * All existing Use-Cases **should** keep working (both the shown one, as many others). | |
52 | - | |
53 | - * The main methods (:meth:`~pubsub.Topic.publish` & :meth:`~pubsub.Topic.subscribe`) should remain exactly the | |
54 | - same. No more parameters! | |
47 | + a. The current API (:class:`~pubsub.Topic`, :meth:`~pubsub.Topic.publish` & :meth:`~pubsub.Topic.subscribe`) is not | |
48 | + allowed to change. Adding parameters to the class initiation (“the constructor” in C++) is allowed. Adding extra | |
49 | + methods is also allowed (but see below!). | |
55 | 50 | |
56 | - * The default behavior should be “local” (not distributed). | |
57 | - | |
58 | - * There is no requirement for performance. But it is expected that a second “network-get” will be resolved | |
59 | - locally. So, use a cache to minimize networking | |
51 | + #. All existing Use-Cases **should** keep working (both the shown one, as many others). | |
60 | 52 | |
61 | - * The networking should use standard TCP/IP networking (“sockets”). No other network libraries/frameworks are | |
62 | - allowed. | |
53 | + i. The main methods (:meth:`~pubsub.Topic.publish` & :meth:`~pubsub.Topic.subscribe`) **should** remain *exactly* | |
54 | + the same. | |
55 | + |BR| | |
56 | + No more parameters! | |
63 | 57 | |
64 | - * A simple “serialise” will do. Assume, all computers/processes use the same endianness and other encodings. | |
65 | - |BR| | |
66 | - Again, use “strings” (only); then this part is easy. | |
58 | + #. The default behavior **should** be “local” (not distributed). | |
59 | + | |
60 | + #. There is no requirement for performance. But it is expected that a second “network-get” **will** be resolved | |
61 | + locally. So, use a cache to minimize networking | |
62 | + | |
63 | + #. The networking **should** use standard TCP/IP networking (“sockets”). No other network libraries/frameworks are | |
64 | + allowed. | |
65 | + | |
66 | + * A simple “serialise” **will** do. Assume, all computers/processes use the same endianness and other encodings. | |
67 | + | |
68 | + * Again, use “strings” (only); then this part is easy. | |
67 | 69 | |
68 | 70 | .. hint:: `Deamon <https://en.wikipedia.org/wiki/Daemon_(computing)>`_ & `lib <https://en.wikipedia.org/wiki/Library_(computing)>`_ |
69 | 71 |
@@ -85,3 +87,10 @@ | ||
85 | 87 | |
86 | 88 | Remember, a design is a communication-tool: A great design contains exactly those details that your coworker needs to |
87 | 89 | implement is as it is meant to be, but no more. (S)He should have some freedom to optimize implementation-details. |
90 | + | |
91 | + | |
92 | +.. rubric:: Internal notes | |
93 | + | |
94 | +.. todo:: | |
95 | + | |
96 | + * Use ‘needs’ to specify the requirements |