«Рассуждать о коде» значит понимать порядок исполнения инструкций («исполнять программу в голове»), зная, каково предназначение кода.
Симптомы
Наличие «волшебного», «вуду» кода или кода, который не имеет никакого отношения к целям программы, но всё равно тщательно поддерживается (например, инициализация переменных, которые никогда не используются, вызов функций, не имеющих отношения к цели, создание выходных данных, которые не используются, и т.д.).
Многократные вызовы идемпотентных функций (например, вызов save() по нескольку раз, «чтобы уж точно»).
Исправление ошибок написанием избыточного кода, который замещает данные, полученные при исполнении неисправного кода.
«Йо-йо код», который конвертирует значения в различные представления, а потом конвертирует их обратно ровно в то же представление, с которого начинали (например, преобразование десятичного числа в строку, а потом обратно в десятичное число, или padding строчки с последующим trim'ом).
«Бульдозерный код», который создает впечатление рефакторинга посредством разбития кусков кода на процедуры, которые, правда, затем невозможно использовать где-либо еще (высокая когезия).
Иногда возникают такие ситуации, когда нужно прочитать QR код, а смартфона под рукой нет. Что же делать? В голову приходит лишь попробовать прочитать вручную. Если кто-нибудь сталкивался с такими ситуациями или кому просто интересно как же читается QR код машинами, то данная статья поможет вам разобраться в этой проблеме.
В статье рассмотрены базовые особенности QR кодов и методика дешифрирования информации без использования вычислительных машин.
Я не могу сказать, что владею GTD — ведь добрую половину этого кун-фу просто невозможно использовать повседневно. Ну, конечно, есть методы — «быстрые» действия, записывание, делегирование и планирование остальных — от практики которых польза есть. Это если глядеть методически. С прикладной точки зрения оказывается, что гетерогенность средств автоматизации повседневного процесса GTD требует усилий не меньших, чем трудозатраты на изучение самой технологии.
Вот вам история реального внедрения GTD в моей жизни. Сразу предупреждаю — тут нет никакой рекламы, я не ангажирован ни с одним проектом или технологией. Я просто любознательный и рациональный человек. Не люблю тратить время скучая и попусту, если сказать проще. Буду очень рад, если и ваше время потратится на этот пост если и не впустую, то хотя бы наполнится интересом.