Показать сообщение отдельно
Старый 12.01.2022, 23:26   #32  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,273 / 3466 (122) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Помню учился я в институте и на 2-м курсе (году эдак 1996-м) по программированию делал курсач. И пытался получить пятёрку. Домогался преподавателя как мог. Наконец он не выдержал и дал мне эту задачку про обмен значениями переменных. Тогда это было просто - Pascal + целочисленный тип. Но я не справился и получил четвёрку.
И мне стало в душе обидно, потому что практического смысла в этой задачке я не видел никакого. Т.е. понятно, что удалять гланды конечно можно и не только через горло, но я всегда считал, что ценность программиста определяется не умением удалить гланды не через горло, а умением написать такой код, который был бы понятен последователям.
А точнее - умением внутри кода построить некоторые правила, следуя которым можно как легко разобраться в коде, так и легко его доработать таким образом, чтобы его работа не отличалась в стилистике от прочего кода.

Т.е. вот лично для меня любые решения этой задачи - что обмен целыми числами, что тройной XOR - это лишь запутывание кода для моего последователя.
Вот контейнерный вариант в X++ - это понятно и наглядно. Но в Pascal / C нет такой возможности. Поэтому лично мне нравится вариант как раз использование лишней переменной.

В этом плане мне очень не нравится подход с использованием расширений - что нельзя просмотреть итоговый код, который получится в результате "склейки" всех расширений. Ну и сам факт в отдельных случаях по сути запутывания итогового кода - когда для того, чтобы встроиться нужно иногда использовать гхм.... случайные "дырки" вместо "парадных калиток".
Откуда растут ноги понятно - в целом концепция обновлений с расширениями мне очень нравится, но чисто эстетически очень хочется видеть простой и понятный код, где критерий простоты и понятности измеряется в затраченном времени на изучение и доработку этого кода. Т.е. чем меньше времени - тем лучше.
__________________
Возможно сделать все. Вопрос времени
За это сообщение автора поблагодарили: AlGol (4), mau (1), Lemming (13), GEP442 (1).