Я давно хотел звести эту рубрику. Во-первых, под таким заголовком можно сокрушаться по поводу чего-то уму нерастяжимого. А во-вторых, спрашивать у почтеннейшей публики, каким словом назвать то или иное явление.
В данном случае получился микс: как назвать уму нерастяжимую ситуацию. Итак по порядку. У программистов часто бывает "затык", когда правишь что-то, а оно никак не реагирует на исправления.
Пример номер один: в браузере открыта страничка с дебагируемым сайтом, в окошке сорсов программист исправляет что-то, но ничего не меняется. А причина проста - он работал с девелопмент-версией, а в браузере висела продакшн.
Пример номер два, немного более сложный: работая с программой на компилируемом языке, забываешь перекомпилировать после исправления, и тупишь в код, недоумевая, почему не видны изменения при выполнении?
Пример номер три, совсем страшный: находишь по тексту нужное сообщение об ошибке, исправляешь его, запускаешь правильную версию ... и нифигашечки ничего не изменилось - печатается старое сообщение. Это - классический антипаттерн: в коде имеется несколько мест, где печатается одинаковое сообщение, и (естественно, по закону подлости) под руку для исправлений попадается совсем не тот фрагмент кода.
Ещё один антипаттерн: какие бы исходные данные не передавались бы на входе, результат получается один и тот же. Причина: для результата берётся не та переменная, или что ещё более мерзко - на каком-то этапе значение переменной тупо переприсваивают, и к результату она бодро идёт с новым значением, позабыв про многострадальные исходные данные.
Ну и совсем тяжёлый случай: в десктопной версии изменения видны, а тот же код на мобилке хромает старыми костылями. Причина тут немного необычная, но вполне реальная: в десктопном браузере можно принудительно перезагрузить страничку, включая картинки и CSS, а вот мобильная версия таких опций не имеет, поэтому волочит за собой стааарый кеш.
Собственно вопрос: каким словом (кроме матерных) можно ёмко и ясно обозвать данную ситуацию? На иврите есть устойчивое выражение, взятое из анекдота про поиски денег под фонарём (хотя потеряли их в другом месте) "ми-тахат ле-панас". А как это будет по-русски (английский тоже сойдёт) ?
PS: как бороться с такими ситуациями? Ну во-первых, перед тем, как начать рвать на голове волосы (у кого остались), попробуйте преднамеренно испортить исходный код, чтобы он заведомо упал на синтаксисе. Если опять никакой реакции - идите по следу от исходников до результата, потому что дебагируется явно что-то не то. Для случая с копипастой кода: это мерзкий антипаттерн, бойтесь его как огня при написании/исправлении программы, а то он вам ещё и в других ситуациях "выстрелит", например, при правке бага. Нецелевое использование переменной поймать тяжело, но можно: в современных языках есть всякие приблуды для статического анализа кода - не ленитесь их запускать при каждом изменении и тщательно анализируйте результат. Ну и конечно же опасайтесь языков, в которых можно обратиться к переменной без объявления. Злостный затык с мобильным браузером тоже имеет решение: к каждому подгружаемому из HTML файлу в адресе надо приписать дополнительный аргумент, не меняющий сути (ведь картинки и CSS обычно не принимают аргументов), но зависящий от номера версии. Этот примитивный трюк заставляет браузер инвалидировать кеш для всех подключаемых к страничке объектов.
В данном случае получился микс: как назвать уму нерастяжимую ситуацию. Итак по порядку. У программистов часто бывает "затык", когда правишь что-то, а оно никак не реагирует на исправления.
Пример номер один: в браузере открыта страничка с дебагируемым сайтом, в окошке сорсов программист исправляет что-то, но ничего не меняется. А причина проста - он работал с девелопмент-версией, а в браузере висела продакшн.
Пример номер два, немного более сложный: работая с программой на компилируемом языке, забываешь перекомпилировать после исправления, и тупишь в код, недоумевая, почему не видны изменения при выполнении?
Пример номер три, совсем страшный: находишь по тексту нужное сообщение об ошибке, исправляешь его, запускаешь правильную версию ... и нифигашечки ничего не изменилось - печатается старое сообщение. Это - классический антипаттерн: в коде имеется несколько мест, где печатается одинаковое сообщение, и (естественно, по закону подлости) под руку для исправлений попадается совсем не тот фрагмент кода.
Ещё один антипаттерн: какие бы исходные данные не передавались бы на входе, результат получается один и тот же. Причина: для результата берётся не та переменная, или что ещё более мерзко - на каком-то этапе значение переменной тупо переприсваивают, и к результату она бодро идёт с новым значением, позабыв про многострадальные исходные данные.
Ну и совсем тяжёлый случай: в десктопной версии изменения видны, а тот же код на мобилке хромает старыми костылями. Причина тут немного необычная, но вполне реальная: в десктопном браузере можно принудительно перезагрузить страничку, включая картинки и CSS, а вот мобильная версия таких опций не имеет, поэтому волочит за собой стааарый кеш.
Собственно вопрос: каким словом (кроме матерных) можно ёмко и ясно обозвать данную ситуацию? На иврите есть устойчивое выражение, взятое из анекдота про поиски денег под фонарём (хотя потеряли их в другом месте) "ми-тахат ле-панас". А как это будет по-русски (английский тоже сойдёт) ?
PS: как бороться с такими ситуациями? Ну во-первых, перед тем, как начать рвать на голове волосы (у кого остались), попробуйте преднамеренно испортить исходный код, чтобы он заведомо упал на синтаксисе. Если опять никакой реакции - идите по следу от исходников до результата, потому что дебагируется явно что-то не то. Для случая с копипастой кода: это мерзкий антипаттерн, бойтесь его как огня при написании/исправлении программы, а то он вам ещё и в других ситуациях "выстрелит", например, при правке бага. Нецелевое использование переменной поймать тяжело, но можно: в современных языках есть всякие приблуды для статического анализа кода - не ленитесь их запускать при каждом изменении и тщательно анализируйте результат. Ну и конечно же опасайтесь языков, в которых можно обратиться к переменной без объявления. Злостный затык с мобильным браузером тоже имеет решение: к каждому подгружаемому из HTML файлу в адресе надо приписать дополнительный аргумент, не меняющий сути (ведь картинки и CSS обычно не принимают аргументов), но зависящий от номера версии. Этот примитивный трюк заставляет браузер инвалидировать кеш для всех подключаемых к страничке объектов.
Tags: