Хорошая статья. В некоторых местах узнал самого себя.
На мой взгляд, есть ряд ситуатций где с автором можно поспорить:
Разработка библиотеки для ее использования в конечных продуктах. Тут косвенные ценность становятся прямыми, т.к. «пользователи» — это сами разработчики.
Разработка кода в коллективе более трех человек. В этом случае рефакторинг часто возникает стихийно в местах «столкновения». Но тут все сильно зависит от возраста и темперамента разработчиков.
Спасибо огромное за статью. У меня самого такой гиперактивный ребенок ( 5 лет ) и его энергию очень тяжело направить куда-то в безопасное русло. Поэтому интересные приемы управлением вниманием таких детей просто бесценны. Плюсую в карму.
Для того чтобы выполнять сравнение без учета регистра разработчикам Windows пришлось приложить значительные усилия. Сравнивать нужно не только латинские буквы, но и национальные.
Windows тоже считает что Ласточка и ласточка это один и тот же файл.
А приведение национальных символов к одному регистру это сложная задача.
Например, в греческом алфавите есть заглавная буква которой соответствует две различные строчные буквы. Правила, по котором используется одна или другая буква, учитывает расположение буквы в слове и предшествующую букву.
А в Турецком языке заглавной букве I соответствует строчная буква i, только без точки. И т.д.
Так что, для выполнения сравнения без учёта регистра в Windows приняли некоторые упрощенные правила приведения к верхнему регистру.
Зная все эти сложности я понимаю почему в Linux используется сравнение без учёта регистра.
Перехваты API-вызовов в системной таблице вызовов KiServiceTable позволяли антивирусам блокировать создание процесса. А новый механизм callback-функций может уведомить только о уже свершившемся факте. Вирус уже запустился и вот хэндл его процесса.
Если антивирусные компании перешли на новый механизм, то очень зря.
На мой взгляд, есть ряд ситуатций где с автором можно поспорить:
Windows тоже считает что Ласточка и ласточка это один и тот же файл.
А приведение национальных символов к одному регистру это сложная задача.
Например, в греческом алфавите есть заглавная буква которой соответствует две различные строчные буквы. Правила, по котором используется одна или другая буква, учитывает расположение буквы в слове и предшествующую букву.
А в Турецком языке заглавной букве I соответствует строчная буква i, только без точки. И т.д.
Так что, для выполнения сравнения без учёта регистра в Windows приняли некоторые упрощенные правила приведения к верхнему регистру.
Зная все эти сложности я понимаю почему в Linux используется сравнение без учёта регистра.
Если антивирусные компании перешли на новый механизм, то очень зря.