3 ms·
This is a good essay, and I think one of the main lessons is that programming is a small part of software development. The question of whether to use an ineffi
by jackcosgrove 7y ago
This is a good essay, and I think one of the main lessons is that programming is a small part of software development.
The question of whether to use an inefficient, readable implementation or an efficient, cryptic implementation can mostly be solved with the correct class topology. If classes are SOLID, then it is easier to justify a cryptic implementation of one method as that is hidden from most other developers. A class that will be inspected by others more, such as a business logic service layer, should lean towards inefficient, readable code.
Likewise, the question of whether to reuse or roll your own can also mostly be solved with a good architecture. Logically separating components makes it easier to tailor the implementation to the use case, and replace if necessary.
As always, breaking the problem into smaller problems is most of the battle.
Sadly software development as it is taught and measured by interviews, is mostly about programming and algorithms. The real art and value in software development is interface design and system architecture design.