(при условии производственного кода)
Я склонен идти немного дальше. Я писал о том, чтобы сделать программы «доказательством идиота», но я не всегда квалифицирую это: я пишу много кода, который другие люди не увидят или не будут работать (по крайней мере, это ожидание, когда оно написано). яя идиот, от которого я пытаюсь себя защитить в этом случае. Хорошо, когда ваша программа обнаруживает проблемы для вас, и проблема настолько упрощена, что становится очевидным, что существует ошибка и ее происхождение. Правда в том, что детали реализации очевидны, когда вы пишете программу (если вы не реализуете ее преждевременно), но они должны быть абстрагированными и устойчивыми к ошибкам для клиентов (даже если локальность модуля существует). Причина в том, что программы становятся очень сложными. Иногда вы можете разделить проблемы, но не все время. Если вы сохраняете свои компоненты очень строгими, простыми, хорошо инкапсулированными и защищенными от идиотов, они, как правило, хорошо масштабируются, и большинство дефектов обнаруживаются до их отправки. Это проще для повторного использования, и у вас больше уверенности и легче использовать программы. те сложные программы, которые вы пишете, становятся более сложными (даже для вас) через некоторое время вне программы. Когда вы прочитаете его за 6 месяцев, это может занять абсурдное количество времени, чтобы понять и отладить его по сравнению с версией для идиота. Если компонент вносит критическое изменение, в противном случае он может оставаться незамеченным в течение длительного времени. Программы сложны; вы не можете избежать этой реальности, но вы можете сделать это доказательством идиота, который сделает вашу жизнь намного легче, когда что-то пойдет не так, или когда это нужно будет использовать повторно или изменить. Следовательно, подход, защищающий от идиотов, означает, что ваше программное обеспечение может быть понято, использовано повторно или поддержано вашими юниорами или новичками в команде (а не просто кем-то таким хорошим / опытным, как вы). Замена - это отдельная задача: если людям нравится работать с вашими программами, вы делаете хорошую работу - не надо беспокоиться о замене. Конечно, я мог бы придумать сценарии, в которых непонятные программы могли бы спасти вашу работу, но написание хорошей программы, которую другие могут использовать и поддерживать, - явно меньшее зло (посмотрите на реакции других). Если я ловлю себя на том, что пишу что-то, что не является идиотским доказательством, я пытаюсь это исправить.
Помимо сценария, когда вам нужна некоторая документация для продолжения проекта после 6 месяцев паузы, здесь, по-видимому, существует явный конфликт интересов между разработчиком и компанией-разработчиком программного обеспечения.
Вы действительно не представляете, о чем думали, когда возвращаетесь к бездействующим реализациям. Когда вы действительно опытны, тогда проблема проще, потому что вы можете больше полагаться на установленные методологии или подходы, которые вы используете. Это, однако, также предполагает, что эти методологии являются инвариантными. Несмотря на то, что документация может быть слабой, вы все равно должны быть осторожны в своих реализациях (например, вы знаете лучше, чем пропустить NULL в этом сценарии - проверьте это условие).
Поэтому, как программист, вы действительно должны писать отличную документацию и легко читаемый код для всех; или вы должны написать код и документацию таким образом, чтобы она выполняла свою работу, и вы сами можете это понять, но другой человек может испытывать затруднения при ее понимании?
Я рекомендую подход, защищающий от идиотов, который еще яснее и устойчивее к ошибкам, чем подход с использованием шинного фактора. Напишите свои программы и документацию так, чтобы ее легко понимал кто-то посторонний для проекта - это тоже хорошо для вас. Это повысит вашу ценность для вашей компании и команды, они не захотят заменить вас.