Костиль: відмінності між версіями

Матеріал з Енциклопедія Драматика
Перейти до навігації Перейти до пошуку
(Створена сторінка: '''Костиль''' — термін з прогерського сленгу. Саме явище костиля найпростіше можн...)
 
м (Відкинуто редагування Myrkit Stepan (обговорення) до зробленого Petrovych.php)
Мітка: Відкіт
 
(Не показані 11 проміжних версій 5 користувачів)
Рядок 1: Рядок 1:
'''Костиль''' — термін з [[Айті|прогерського]] сленгу. Саме явище костиля найпростіше можна описати так: це на швидкоруч виправлені проблеми, що в майбутньому можуть викликати ще більші проблеми. «Аби працювало». Часто людина, що створила такий костиль, навіть не розуміє як воно працює, але ж «воно працює і це - головне». Термін використовується в основному кодерами, але може бути застосовний і в інших сферах.
'''Костиль''' (корпоративний спіч ''воркараунд'') — термін з [[Айті|прогерського]] сленгу. Саме явище костиля найпростіше можна описати так: це нашвидкоруч виправлені проблеми, що в майбутньому можуть викликати ще більші проблеми. «Аби працювало». Часто людина, що створила такий костиль, навіть не розуміє як воно працює, але ж «воно працює і це - головне». Термін використовується в основному кодерами, але може бути застосовний і в інших сферах.


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


== Приклади костилів ==
== Приклади костилів ==
===В програмуванні===
Javascript:
Javascript:<br/>
<pre>
<pre>
var color2array = function(color){
var color2array = function(color){
Рядок 33: Рядок 32:


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


== Костилі, що створюються спеціально ==
== Костилі, що створюються спеціально ==
Іноді, веб-прогери самі створюють костилі, бо іншого виходу в них немає. Наприклад, якщось колись за Короля Данила веб-розробник мав зробити якусь сторінку кросбраузерною, він також мав змусити [[Chrome|Internet Explorer]] відображати цю сторінку так, як йому того треба. Так як віслюка писали [[Бидлокодер|нуби і рукодупі макаки]], то веб-майстрам доводиться прибігати до таких от «хаків»:
Іноді [[бидлокодер|веб-прогери]] самі створюють костилі, бо іншого виходу в них немає. Наприклад, якщо колись за [[Історія однієї України|Короля Данила]] веб-розробник мав зробити якусь сторінку кросбраузерною, він також мав змусити [[Internet Explorer]] відображати цю сторінку так, як йому того треба. Так як віслюка писали [[Бидлокодер|нуби і рукодупі макаки]], то веб-майстрам доводилося прибігати до таких от «хаків»:
<pre>
<pre>
br = navigator.appName;
br = navigator.appName;
Рядок 46: Рядок 45:


== Конячий зад ==
== Конячий зад ==
Вживається у випадках, коли на нові технології накладає обмеження давній костиль, походження якого вже забулось за давністю років, але підтримка продовжується.  
Вживається у випадках, коли на нові технології накладає обмеження давній костиль, походження якого вже забулось за давністю років, але підтримка продовжується. Бере своє походження з цієї історії:
 
<blockquote>З боків [[наукова фантастика|космічного корабля]] «Кеннеді» розміщуються два двигуни по 5 футів шириною. Конструктори американського корабля хотіли б зробити ці двигуни більше, але не змогли. Чому? Справа в тому, що двигуни ці доставлялися по залізниці, яка проходить по вузькому тунелю. Відстань між рейками стандартна: 4 фути 8.5 дюйми, тому конструктори могли зробити двигуни тільки шириною 5 футів. Виникає питання: чому відстань між рейками 4 фути 8.5 дюйма? Звідки взялися ці цифри? <br />
;Бере своє походження з цієї історії:
<blockquote>З боків космічного корабля «Кеннеді» розміщуються два двигуни по 5 футів шириною. Конструктори американського корабля хотіли б зробити ці двигуни більше, але не змогли. Чому? Справа в тому, що двигуни ці доставлялися по залізниці, яка проходить по вузькому тунелю. Відстань між рейками стандартна: 4 фути 8.5 дюйми, тому конструктори могли зробити двигуни тільки шириною 5 футів. Виникає питання: чому відстань між рейками 4 фути 8.5 дюйма? Звідки взялися ці цифри? <br />


Виявляється, залізницю в Штатах робили таку ж, як і в Англії, а в Англії робили залізничні вагони за тим же принципом, що і трамвайні, а перші трамваї проводилися в Англії за образом і подобою конки. А довжина осі конки складала якраз 4 фути 8.5 дюйми! Але чому?
Виявляється, залізницю в Штатах робили таку ж, як і в Англії, а в Англії робили залізничні вагони за тим же принципом, що і трамвайні, а перші трамваї проводилися в Англії за образом і подобою конки. А довжина осі конки складала якраз 4 фути 8.5 дюйми! Але чому?
Рядок 67: Рядок 64:
Один з найвідоміших&nbsp;— це папка '''con'''. За легендою, яка налічує понад 1000 років, в дитинстві [[Microsoft|Гейтса]] однокласники називали «ботаніком», англійською&nbsp;— con, через що маленький Біллі <s>какав рідким лайненцем</s> дуже комплексував, тому і заборонив таке неподобство у своїй [[Windows|операційній системі]].  
Один з найвідоміших&nbsp;— це папка '''con'''. За легендою, яка налічує понад 1000 років, в дитинстві [[Microsoft|Гейтса]] однокласники називали «ботаніком», англійською&nbsp;— con, через що маленький Біллі <s>какав рідким лайненцем</s> дуже комплексував, тому і заборонив таке неподобство у своїй [[Windows|операційній системі]].  


Але насправді, слово CON, наряду із NUL, LPT1, COM1 та інш. прийшло у Вінду із старого ДОСу, де вони виконували важливу роль. Наприклад, CON&nbsp;— означав ''Console''. Відповідно, копіювання файла в CON означало виівд його на екран.  
Але насправді, слово CON, наряду із NUL, LPT1, COM1 та інш. прийшло у [[windows|Вінду]] із старого [[DOS|ДОСу]], де вони виконували важливу роль. Наприклад, CON&nbsp;— означав ''Console''. Відповідно, копіювання файла в CON означало виівд його на екран.  


Аналогічно, копіювання в LPT1, кидало файл на перший LPT порт <ref>Як правило, порт під'єднання принтера</ref> (частіше всього означало друк). Відповідно, називати папки таими службовими назвами заборонялось. Windows за 26 років свого життя пройшов 16, 32 та перейшов в 64-бітну епоху. Підтрика старих аплікацій, елементів ГУІ, не кажучі вже про усілякі драйвери ти системні служби, мінялася багато разів. А от на CON Біллі не зміг замахнутись. Чому?  
Аналогічно, копіювання в LPT1, кидало файл на перший LPT порт <ref>Як правило, порт під'єднання принтера</ref> (частіше всього означало друк). Відповідно, називати папки таими службовими назвами заборонялось. Windows за 26 років свого життя пройшов 16, 32 та перейшов в 64-бітну епоху. Підтрика старих аплікацій, елементів ГУІ, не кажучі вже про усілякі драйвери ти системні служби, мінялася багато разів. А от на CON Біллі не зміг замахнутись. Чому?  
Рядок 73: Рядок 70:
Важко сказати, проте є теорія. Всі ці CON’и, а також всі інші команди, формати фалйів і взагалі майже все, що було в перших ДОСах прийшло із CP/M. Як відомо, Microsoft, старається не змінювати працюючий відлагоджений код.  
Важко сказати, проте є теорія. Всі ці CON’и, а також всі інші команди, формати фалйів і взагалі майже все, що було в перших ДОСах прийшло із CP/M. Як відомо, Microsoft, старається не змінювати працюючий відлагоджений код.  


Отже, можна зробити висновок, що з 1981 року, в ОСях від M$ працюючим і відлагодженим кодом є тільки той, що був стирений із CP/M.
Отже, можна зробити висновок, що з 1981 року, в [[ОС]]ях від [[M$]] працюючим і відлагодженим кодом є тільки той, що був спертий із CP/M.


==Примітки==
==Примітки==

Поточна версія на 17:37, 22 листопада 2022

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

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

Приклади костилів

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
}

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

Конячий зад

Вживається у випадках, коли на нові технології накладає обмеження давній костиль, походження якого вже забулось за давністю років, але підтримка продовжується. Бере своє походження з цієї історії:

З боків космічного корабля «Кеннеді» розміщуються два двигуни по 5 футів шириною. Конструктори американського корабля хотіли б зробити ці двигуни більше, але не змогли. Чому? Справа в тому, що двигуни ці доставлялися по залізниці, яка проходить по вузькому тунелю. Відстань між рейками стандартна: 4 фути 8.5 дюйми, тому конструктори могли зробити двигуни тільки шириною 5 футів. Виникає питання: чому відстань між рейками 4 фути 8.5 дюйма? Звідки взялися ці цифри?

Виявляється, залізницю в Штатах робили таку ж, як і в Англії, а в Англії робили залізничні вагони за тим же принципом, що і трамвайні, а перші трамваї проводилися в Англії за образом і подобою конки. А довжина осі конки складала якраз 4 фути 8.5 дюйми! Але чому?

Тому що конки робили з тим розрахунком, щоб їх осі потрапляли в колії на англійських дорогах, щоб колеса менше зношувалися, а відстань між коліями в Англії якраз 4 фути 8.5 дюйми! Чому так?

Та просто дороги у Великобританії стали будувати ще римляни, підбиваючи їх під розмір своїх бойових колісниць, і довжина осі стандартної римської колісниці дорівнювала ... правильно, 4 футам 8.5 дюймам!

Ну ось тепер ми докопалися, звідки узявся цей розмір, але все ж: чому римлянам заманулося робити свої колісниці з осями саме такої довжини?

А ось чому: у таку колісницю запрягали зазвичай двох коней. А 4 фути 8.5 дюйма - це був якраз розмір двох кінських дуп! Змінювати ширину осі було незручно, тому що це порушувало б рівновагу.

Отже, ось і відповідь на самий перше запитання: навіть тепер, коли людина вийшла в космос, його найвищі технічні досягнення вже дві тисячі років безпосередньо залежать від розміру конячого заду ...

В сучасному світі стрімкого технічного прогресу та інформаційних технологій, «конячі зади» зустрічаються усюди.

Один з найвідоміших — це папка con. За легендою, яка налічує понад 1000 років, в дитинстві Гейтса однокласники називали «ботаніком», англійською — con, через що маленький Біллі какав рідким лайненцем дуже комплексував, тому і заборонив таке неподобство у своїй операційній системі.

Але насправді, слово CON, наряду із NUL, LPT1, COM1 та інш. прийшло у Вінду із старого ДОСу, де вони виконували важливу роль. Наприклад, CON — означав Console. Відповідно, копіювання файла в CON означало виівд його на екран.

Аналогічно, копіювання в LPT1, кидало файл на перший LPT порт [1] (частіше всього означало друк). Відповідно, називати папки таими службовими назвами заборонялось. Windows за 26 років свого життя пройшов 16, 32 та перейшов в 64-бітну епоху. Підтрика старих аплікацій, елементів ГУІ, не кажучі вже про усілякі драйвери ти системні служби, мінялася багато разів. А от на CON Біллі не зміг замахнутись. Чому?

Важко сказати, проте є теорія. Всі ці CON’и, а також всі інші команди, формати фалйів і взагалі майже все, що було в перших ДОСах прийшло із CP/M. Як відомо, Microsoft, старається не змінювати працюючий відлагоджений код.

Отже, можна зробити висновок, що з 1981 року, в ОСях від M$ працюючим і відлагодженим кодом є тільки той, що був спертий із CP/M.

Примітки

  1. Як правило, порт під'єднання принтера

Див. також