Костиль

Матеріал з Файна Меморії
Перейти до навігації Перейти до пошуку

Костиль — термін з прогерського сленгу. Саме явище костиля найпростіше можна описати так: це на швидкоруч виправлені проблеми, що в майбутньому можуть викликати ще більші проблеми. «Аби працювало». Часто людина, що створила такий костиль, навіть не розуміє як воно працює, але ж «воно працює і це - головне». Термін використовується в основному кодерами, але може бути застосовний і в інших сферах.

Складніше пояснення[ред.]

Якщо ви не зрозуміли що таке костиль з попереднього пояснення, або ви - вікіпедист, то слухайте сюди. Костиль - це проблема, що виправлена без належного редизайну системи. Якщо й досі не зрозуміли, дивіться «Приклади костилів».

Приклади костилів[ред.]

В програмуванні[ред.]

Javascript:

var color2array = function(color){
return color.length==4?color.slice(1).split('').map(function(x){
return parseInt(x,16)}).concat([255]):
color.length==7?[color.slice(1,3),color.slice(3,5),color.slice(5)].map(function(x){return 
parseInt(x,16)}).concat([255]):
~color.indexOf('rgba')?color.slice(5,-1).split(',').map(function(x){return +x}):
~color.indexOf('rgb')?color.slice(4,-1).split(',').map(function(x){return +x}).concat([255]):[0,0,0,255];
}

Це костиль, що перетворює кольори з вигляду hex rgb rgba, в масив значень від 1 до 255. Через місяць автор сам не зрозуміє, що він цим мав на увазі.
Або ж на Хаскелл:

import Random;import List;import Char;p=putStrLn;u=uncurry;f x=(x\\).(x\\)
 main=mapM(\x->randomRIO(49,54))[1..4]>>=n 0.map chr>>=p.("Tries: "++).show
 e=((partition$u(==)).).zip;h(p,q)=['*'|x<-p]++['+'|x<-(u f)$unzip q]
 n a s=getLine>>=m where{m i|i==s=return a;m i=p(h$e i s)>>n(a+1)s}

На Перл:

    ''=~(        '(?{'        .('`'        |'%')        .('['        ^'-')
    .('`'        |'!')        .('`'        |',')        .'"'.        '\\

І т.д.

УРЖ[ред.]

Помилка створення мініатюри: Не вдалося зберегти мініатюру до місця призначення
«Ой бл*, чьо це воно... А пох*й! Підріжу, а там разбєрьомся»

У реальному житті костилі не дуже поширені, але теж зустрічаються. Костилем УРЖ може стати річ, яку ремонтував школяр, або річ «маде ін чіна», що була «відремонтована» кимось. Ну і так далі.

Костилі, що створюються спеціально[ред.]

Іноді, веб-прогери самі створюють костилі, бо іншого виходу в них немає. Наприклад, коли веб-розробник намагається зробити якусь сторінку кросбраузерною, він також має змусити Internet Explorer відображати цю сторінку так, як йому того треба. Так як віслюка писали нуби і рукодупі макаки, то веб-майстрам доводиться прибігати до таких от «хаків»:

br = navigator.appName;
if (br == "Microsoft Internet Explorer"){
    //Якийсь код, написаний спеціально для IE
}

Ну ви зрозуміли.

Див. також[ред.]