12.01.2022, 23:26 | #28 |
Administrator
|
Помню учился я в институте и на 2-м курсе (году эдак 1996-м) по программированию делал курсач. И пытался получить пятёрку. Домогался преподавателя как мог. Наконец он не выдержал и дал мне эту задачку про обмен значениями переменных. Тогда это было просто - Pascal + целочисленный тип. Но я не справился и получил четвёрку.
И мне стало в душе обидно, потому что практического смысла в этой задачке я не видел никакого. Т.е. понятно, что удалять гланды конечно можно и не только через горло, но я всегда считал, что ценность программиста определяется не умением удалить гланды не через горло, а умением написать такой код, который был бы понятен последователям. А точнее - умением внутри кода построить некоторые правила, следуя которым можно как легко разобраться в коде, так и легко его доработать таким образом, чтобы его работа не отличалась в стилистике от прочего кода. Т.е. вот лично для меня любые решения этой задачи - что обмен целыми числами, что тройной XOR - это лишь запутывание кода для моего последователя. Вот контейнерный вариант в X++ - это понятно и наглядно. Но в Pascal / C нет такой возможности. Поэтому лично мне нравится вариант как раз использование лишней переменной. В этом плане мне очень не нравится подход с использованием расширений - что нельзя просмотреть итоговый код, который получится в результате "склейки" всех расширений. Ну и сам факт в отдельных случаях по сути запутывания итогового кода - когда для того, чтобы встроиться нужно иногда использовать гхм.... случайные "дырки" вместо "парадных калиток". Откуда растут ноги понятно - в целом концепция обновлений с расширениями мне очень нравится, но чисто эстетически очень хочется видеть простой и понятный код, где критерий простоты и понятности измеряется в затраченном времени на изучение и доработку этого кода. Т.е. чем меньше времени - тем лучше.
__________________
Возможно сделать все. Вопрос времени |
|
|
За это сообщение автора поблагодарили: AlGol (4), mau (1), Lemming (13), GEP442 (1). |
|
|