3 ms·
> Make it simple enough that a brand new completely green junior member of the team immediately understands it on first reading. That can be a goal, but it's n
by valenterry 5y ago
> Make it simple enough that a brand new completely green junior member of the team immediately understands it on first reading.
That can be a goal, but it's not necessarily the best one. We could of course write code so that it is most easily understood by someone who never programmed before. But that then reduces productivity for everyone with lots of experience and familiarity with that project/style/code.
Sometimes you can write code that achieves both goals, but often you cannot and in that case the "simpler" version is not always the best.
- xupybd 5y agoIf we could make our domain specific code understandable to non coders we would have an easier time working with domain experts. That said it's near impossible to do that.
- valenterry 5y agoThe mistake lies in the assumption that technical details are not part of the domain - but they are. Sure, in some languages like C you cannot properly separate irrelevant technical details from the domain specific code. But for the more advanced programming languages that is certainly possible. The problem is just that things like the possibilities of errors, eventual consistency, concurrency and so on are relevant for the business domain as well. You simply cannot abstract over them in general. For domain experts who can actually deal with these issues as well, you can pick a language like Scala or Clojure which excel at creating embedded DSLs and then have the domain exports use them.
- xupybd 5y agoExcellent insight.
- bidirectional 5y agoJane Street does this, traders contribute to code reviews by developers. Though at Jane Street a trader probably has a STEM degree from MIT.