Я занимаюсь промежуточным курсом программирования, в котором подчеркивается использование инвариантов. Я никогда не использовал их раньше, и они, похоже, занимают больше времени для создания. Отражает ли индустрия программного обеспечения использование инвариантов?Вы используете инварианты при программировании?
ответ
Зависит от того, кого вы спрашиваете - я использую инварианты просто потому, что это облегчает жизнь. Изучающие инварианты похожи на изучение слепого ввода. Каждый раз, когда вы используете инвариант, вы знаете больше о своем коде. Если вы вставляете инвариант в качестве комментария в свой цикл, это помогает читателю LOT. Я бы сказал, что использование инвариантов делает создание и обслуживание исходного кода намного дешевле и позволяет создавать гораздо более сложные алгоритмы, которые по-прежнему поддерживаются.
И, в отличие от ООП, я никогда не испытывал никого, зря теряющего время, используя инварианты.
Я не очень-то отношусь к инвариантам - не так, как до/послесловия. Честно говоря, мне следовало бы думать об инвариантах.
Остановимся только на том, что если вы используете язык OO, но делаете типы неизменными там, где можете, вам не нужно беспокоиться об инвариантах: если состояние действительно для начала, останется действительным.
Звучит так, будто ваш курс может немного переопределить инварианты ... но это зависит от того, что вы делаете. Они более подходят в некоторых ситуациях, чем другие. Возможно, ваш лектор просто большой поклонник их с большим опытом в тех областях, где они действительно полезны.
Как только вы узнаете, что такое инварианты и что они означают, он имеет тенденцию изменять способ, которым вы рассуждаете о коде. Я имею в виду, что я очень редко пишу явные инварианты. Но у меня часто есть картина в моем сознании инварианта в коде, который я пишу. Это заставляет вас писать код, который намного проще. В большинстве случаев вы получаете код, который настолько прост, что вам не нужно писать явный комментарий об инварианте. Тем не менее люди, которые не знают об инвариантах, пишут код, который намного сложнее :)
вопрос не имеет, голосование за закрытие – cletus
Это очень актуально imo. Слово «Опрос» может вводить в заблуждение, вероятно, вопрос должен был иметь заголовок «Должны ли мы использовать инварианты?» или что-то типа того. –
Не могли бы вы рассказать о том, что вы имеете в виду, используя их, например. по примеру? Возможно, люди используют то, о чем вы говорите, не понимая, что это то, что вы подразумеваете под «инвариантом». – Edmund