Откуда вы, ребята, знаете, что вы пишете самый надежный код из возможных без чрезмерного повышения квалификации?
Что вы считаете надежным кодом? Код, который уже на будущее и настолько мощный, что может справиться с любой ситуацией? Неправильно, никто не может предсказать будущее! И опять не так, потому что это будет сложный, неразрешимый беспорядок.
Я следую различным принципам: прежде всего YAGNI (пока) и KISS , поэтому я не пишу ненужный код. Это также эффективно предотвращает чрезмерную инженерию. Я выполняю рефакторинг приложения, когда требуются расширения. Современные инструменты рефакторинга позволяют довольно легко создавать интерфейсы и впоследствии обмениваться реализациями, когда они вам нужны.
Затем я пытаюсь сделать код, который я пишу, максимально надежным, что включает в себя устранение как можно большего количества путей, которые может пройти программа (и состояний), и немного спартанского программирования . Большую помощь представляют «атомарные» функции / методы, которые не полагаются на внешние состояния или, по крайней мере, не оставляют программу в несостоятельном состоянии при сбое. Если вы сделаете это хорошо, очень маловероятно, что вы когда-нибудь получите спагетти-код, и это тоже благо для удобства обслуживания. Кроме того, в объектно-ориентированном проектировании принципы SOLID являются отличным руководством по созданию надежного кода.
Я действительно обнаружил, что часто вы можете уменьшить сложность, например, комбинаторные взрывы путей или состояний программ, глубоко задумавшись о том, как вы могли бы спроектировать его как самый прямой путь. Постарайтесь свести к минимуму возможные комбинации, выбрав лучший порядок ваших подпрограмм и разработав их для этой цели.
Надежный код - это всегда простой и чистый код, но простота - это черта, которую не всегда легко достичь. Тем не менее, вы должны стремиться к этому. Всегда просто пишите самый простой код и усложняйте его только тогда, когда у вас нет другого выбора.
Простота крепка, сложность хрупка.
Сложность убивает.