Знаете ли вы что такое костыли? В первую очередь это слово ассоциируется у меня с мотоциклом, на котором я стабильно раз в год чето себе ломаю. Так вот мы поговорим не об этих костылях, а о «костылях» в программировании. Заметили что пишу в кавычках, дальше будет без кавычек потому что лень кнопки нажимать(Это тоже своего рода костыль). Костылем называется кусочек кода, иногда громадный кусище, призванный замаскировать баг. Например такая ситуация. Программа работает идеально, но в определенной ситуации, черт знает почему, вместо 5 возвращает -5. Весь код перелопачен, позади бессонные ночи, а оно возвращает эту гадскую -5. В таком случае пишется костыль, суть которого сводится к следующему. Если программа возвращает -5, вернуть вместо него 5.
if(result == -5) return 5; return result;
Это довольно абстрактный пример, реальные ситуации куда сложнее. Кто-то назовет это альтернативным решением, но проблема-то на самом деле осталась, и не исключено, что она вылезет где-то боком. И где-то там придется вбивать новые костыли. К чему это я. А к тому, что если собрать все костыли из моего движка, то их хватит на солидную железную дорогу. Например изначально я не планировал делать поддержку некоторых языков программирования. В результате некоторые участки кода тупо не совместимы. Пришлось вбивать костыли вроде : если используется Java, то тут выполним это. Если задействован WPF, то это вообще пропускаем, а тут меняем параметры. И так не один раз. Это не-пра-виль-но! Это порождает дополнительные затраты времени, порождает новые баги, портит нервы и учит плохому. Так пишут только быдлокодеры. Все, высказался (исповедался). Полегчало. Пойду забивать новые костыли.) Теперь вы, используя мой движок будете думать, а не вывалится ли где-то костыль, не даст ли больно по любимой ноге.