Hi Ulrich,
Many thanks for your feedback.
On Jul 31, 8:54 am, Ulrich Windl <Ulrich.Wi...@[EMAIL PROTECTED]
>
wrote:
> As Meyer points out, a correct program does not pass invalid parameters
(where
> the precondition would be violated). The task to find bad callers is
during
> development, not during field-use. Therefore the precondition checks are
> normally off. If the precondition is violated, all guarantees are lost.
The
> routine _may_ raise an exception, but it's not a MUST.
>
Indeed, when developing a normal software system you find bad callers
during development time whereas when developing a reusable class
library API e.g. Patterns Library, Network Library, Data Structures
library you do not know what the bad callers are gonna be. That's why
I was asking in the OP if what Bertrand remarks as "Modular
Protection" will also apply to Software-to-Software communication e.g.
developing the third party library.
I am currently the developer of a reusable java class library and this
is a major question:
- Shall I leave my potential client modules on their own? they will
have to figure out what my precondition violations are. This is the
case when using assertions.
- Shall I provide a strict defensive layer i.e. filter modules as
Bertrand calls it so that whenever my library gets in control I know
for sure that the input is valid?
Best regards,
Giovanni


|