top | item 17407125 (no title) hitsthings | 7 years ago Pattern 1 you can pass in a logger there or a noop logger and not have any duplication. discuss order hn newest pavel_lishin|7 years ago It's not my job to pass a logger to some given class method. Should I pass in a database handle and a DNS resolver, too? d--b|7 years ago Well, I could do operations for logging that are otherwise not required... if(log) { logger.write(computestuff()); } meheleventyone|7 years ago Depending on language if you have first class functions you could also do: logger.write(computestuff); Or for parameterized functions: logger.write(() => computestuff(a, b, c)); Then all that logging policy stuff can live with the logging and doesn't need to be checked explicitly throughout the codebase. rini17|7 years ago This means to interrupt whatever you're doing and implement the logger and do the associated refactoring.
pavel_lishin|7 years ago It's not my job to pass a logger to some given class method. Should I pass in a database handle and a DNS resolver, too?
d--b|7 years ago Well, I could do operations for logging that are otherwise not required... if(log) { logger.write(computestuff()); } meheleventyone|7 years ago Depending on language if you have first class functions you could also do: logger.write(computestuff); Or for parameterized functions: logger.write(() => computestuff(a, b, c)); Then all that logging policy stuff can live with the logging and doesn't need to be checked explicitly throughout the codebase.
meheleventyone|7 years ago Depending on language if you have first class functions you could also do: logger.write(computestuff); Or for parameterized functions: logger.write(() => computestuff(a, b, c)); Then all that logging policy stuff can live with the logging and doesn't need to be checked explicitly throughout the codebase.
rini17|7 years ago This means to interrupt whatever you're doing and implement the logger and do the associated refactoring.
pavel_lishin|7 years ago
d--b|7 years ago
meheleventyone|7 years ago
rini17|7 years ago