There are two kinds of complexity in software development: complexity inherent to the problem and complexity inherent to the solution.
Sometimes, rarely, complexity inherent to the problem can be reduced by switching to a different problem to achieve the same ends. For example, instead of creating a highly complex hashing algorithm that reduces the chances of hash collisions to near zero, you can instead simply handle hash collisions.
In many cases lot of complexity inherent to the solution can be resolved by a deeper understanding of the issue. For example, a list of users, ordered by access level and name can be created by a complex sort algorithm or by reducing the simple-sorted list into an array of arrays, one for each level.
It can happen that tools and libraries encourage complexity, like lodash or rx.js. Avoid using them unless you are sure the complexity is inherent to the problem and cannot be resolved at another level.
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
There are two kinds of complexity in software development: complexity inherent to the problem and complexity inherent to the solution.
Sometimes, rarely, complexity inherent to the problem can be reduced by switching to a different problem to achieve the same ends. For example, instead of creating a highly complex hashing algorithm that reduces the chances of hash collisions to near zero, you can instead simply handle hash collisions.
In many cases lot of complexity inherent to the solution can be resolved by a deeper understanding of the issue. For example, a list of users, ordered by access level and name can be created by a complex sort algorithm or by reducing the simple-sorted list into an array of arrays, one for each level.
It can happen that tools and libraries encourage complexity, like lodash or rx.js. Avoid using them unless you are sure the complexity is inherent to the problem and cannot be resolved at another level.