Non prefissi, ma caso. Prendi in considerazione l'utilizzo di TurgidCapitalCaseNames()
per le funzioni 'supponenti' e brief_lower()
per le funzioni di base 'raw'.
Questo presume che tu possa separare la tua applicazione in parti "grezzi" e "supponenti". Un po 'come quello che Linux chiama politica / meccanismo. Quindi, la tua domanda su dove mettere la decisione funziona per soddisfare le precondizioni risponde a se stessa: nelle funzioni supponenti.
error_type mkdir_and_parents(string path);
Dir MakeAnEmptyOutputDirectory(string subdir);
Il mix di casi di identificazione come questo disgusta alcune persone, ma potrebbe funzionare per te?
Per 'supponenti', intendo le funzioni che sarebbero:
-
cock-sure : illuso con l'indiscutibile raggiungibilità dell'obiettivo
-
espediente : prendere scorciatoie per il successo, ad es. riuscire silenziosamente se la directory esiste già
-
precoce : acquisire le risorse necessarie senza pensarci due volte, allocare memoria, creare directory madri
-
testardo : ad es. riprovare mentre il sistema risponde con 'filesystem full'
-
robusto : ottiene le cose fatte; potrebbe registrare gli avvisi quando qualcun altro è in errore, ma probabilmente ha una risposta di fallback
Le tue funzioni "raw" potrebbero essere esattamente l'opposto:
-
sottomesso : non fare nulla se non richiesto, e quando richiesto, fai solo questo
-
leaky : non tentare di coprire l'orrore, se qualcosa va storto; Problema acuto a mano a qualcun altro
-
umile : non assume alcun controllo su nessuna risorsa non espressamente fornita
-
semplice : conosce solo una gamma molto piccola di cose
Dubito che ci sia molto di mezzo. Sarebbe un terreno molto confuso.
A parte questo, penso che il codice interno del sottosistema e le interfacce di sistema siano di solito "grezzi". D'altra parte ho trovato che la maggior parte del codice di "risposta agli eventi" rivolta al cliente è di solito molto ponderata: ad es. Gestori di comandi chiave, visualizzatori di rendering, generatori di report, compiti cron.
Tale correlazione potrebbe essere dovuta al fatto che è più importante che parti del sistema rivolte al mondo raggiungano un qualcosa solido invece di un niente fragile. Forse riflette le esigenze e le aspettative approssimative dell'utente o dell'utente, rispetto alle esigenze di ingegnere-artigiano conservatore e attento ai dettagli per affrontare la complessità e diagnosticare i guasti.