In primo luogo, il metodo deve dichiarare un contratto. Un contratto dice: se fai X, farò Y. Vedi link .
Deve (a) richiedere i buffer non sovrapposti come pre-condizione o (b) consentire i buffer sovrapposti.
Nel caso (a), il contratto dovrebbe essere applicato per almeno una parte del ciclo di vita di sviluppo / test. Cioè, dovresti aggiungere del codice alla funzione che verifica i buffer non sovrapposti e asserisce (fallisce) se non è soddisfatto. Poiché questo codice probabilmente ha vincoli prestazionali, probabilmente vorrai essere in grado di attivare il test per lo sviluppo e il testing e disattivarlo per la produzione, ma questa è una scelta che fai.
nel caso (b), si aggiunge codice per consentire i buffer sovrapposti. Potrebbe essere un algoritmo diverso, forse più lento o qualsiasi altra tecnica tu scelga.
- Quello che descrivo è la migliore pratica. Non ho modo di sapere se lo è
pratica generale.
- Devi considerare i buffer sovrapposti.
- Non dovresti assumere nulla oltre al tuo contratto.
- Il contratto fornisce la documentazione.