Что такое взлом?

Я использую этот термин все время ... но я просто как бы подумал, что у меня действительно нет твердого смыслового смысла этого термина (или, по крайней мере, термина в том смысле, в котором я хочу обсудить здесь). Меня интересует смысл слова связанный с кодом, а не антропоморфная идея. Меня также не интересует здесь смысл слова, связанный с преднамеренными вредоносными вычислениями (то есть взлом для раскрытия секретных способностей в игре). Я хочу исследовать что значит «взломать» с точки зрения написания программного обеспечения для решения проблемы

определение слова "взломать" в Википедии для меня немного расплывчато, но отправная точка. Считает взломом

  • может относиться к решению или методу, которые работают правильно, но являются «уродливыми» по своей концепции.
  • работает вне принятых структур и норм окружающей среды
  • не легко расширяется или не обслуживается
  • может быть жаргонным для слов «копия», «имитация» или «грабеж».

Эти черты взлома соответствуют тому, что я использую это слово - применительно к коду это всегда выражение насмешек. На мой взгляд, взлом

  • Скорее всего, будет сложно поддерживать и трудно понять в контексте остальной части кода.
  • Вероятно, вызовет сбой приложения.
  • имеет тенденцию указывать на плохое понимание кодировщиком проблемной области, использования языка или того и другого.
  • имеет тенденцию быть побочным продуктом агрессивных графиков
  • предлагает потенциальные изменения в требованиях, которые не были полностью включены в архитектуру решения (требуя «неорганического» обходного пути).
  • пахнет

все плохо, плохо, плохо. Для меня хакерство в этом смысле всегда отрицательно, что указывает на нехватку времени, некомпетентность или леность со стороны разработчика, хотя приличный процент хаков должен быть написан, чтобы компенсировать плохую работу. задуманные конструкции или системы, которые получили требования, которые их первоначальный дизайн не может удовлетворить «органически».

Я не думаю, что я действительно полностью это уловил - это немного похоже на порнографию: я не могу точно определить это, но я знаю это, когда вижу это. Поэтому я спрашиваю вас: что значит «взломать», когда вы пытаетесь решить проблему в программном обеспечении?


person Kevin Won    schedule 19.08.2010    source источник
comment
Вы не можете дать определение порнографии?   -  person Michael Robinson    schedule 20.08.2010
comment
Если речь идет о песчанках, высоких каблуках и большом количестве клубничного бланманже, это, вероятно, порнография!   -  person Mitch Wheat    schedule 20.08.2010
comment
См. здесь и здесь и здесь.   -  person Robert Harvey    schedule 20.08.2010
comment
человек. 13 слов из всего поста, на котором вы зацикливаетесь ;-)   -  person Kevin Won    schedule 20.08.2010
comment
Что такое порнография, а что искусство?   -  person Nate    schedule 20.08.2010
comment
Сообщество вики? (В качестве альтернативы, может ли кто-нибудь высказать свое мнение, я могу спросить, как быстро заработать тонну репутации?)   -  person Stephen P    schedule 20.08.2010


Ответы (8)


Я всегда предпочитал определение Пола Грэма:

Кроме того, существительное «взломать» имеет два значения. Это может быть как комплимент, так и оскорбление. Когда вы делаете что-то уродливым образом, это называется взломом. Но когда вы делаете что-то настолько умное, что каким-то образом обыгрываете систему, это также называется взломом. Это слово чаще используется в первом смысле, чем во втором, вероятно, потому, что уродливые решения встречаются чаще, чем блестящие.

person Brian Willis    schedule 19.08.2010
comment
Плохое означает хорошее. Снова 80-е. - person Paul D. Waite; 20.08.2010
comment
Большинство умных хаков также уродливы просто потому, что ум часто противоречит понятности. - person Dan Bryant; 20.08.2010
comment
@Kevin Won, нажмите на ссылку в моем ответе на источник. - person Brian Willis; 20.08.2010
comment
Уродливый хак (который работает), реализованный за несколько дней до крайнего срока, мне всегда кажется прекрасным. - person Patrick; 01.09.2010

Из файла жаргона, глоссария хакерского сленга:

Значение слова «взломать»

«Слово« взломать »на самом деле не имеет 69 различных значений», - считает хакер из Массачусетского технологического института Фил Агре. «Фактически, слово hack имеет только одно значение, чрезвычайно тонкое и глубокое, которое не поддается артикуляции. Какая коннотация подразумевается при данном использовании слова, так же сильно зависит от контекста. Подобные замечания относятся и к паре других хакерских слов, в первую очередь случайных ».

Взлом можно охарактеризовать как «соответствующее проявление изобретательности». Независимо от того, получился ли результат быстро и грязно лоскутное одеяло или тщательно созданное произведение искусства, вы должны восхищаться умом, вложенным в него.

Важное второстепенное значение слова hack - «творческий розыгрыш». Этот вид взлома легче объяснить не-хакерам, чем метод программирования.

person polygenelubricants    schedule 20.08.2010
comment
Я думаю, вы говорите о другом значении этого термина - т.е. взломать игру, чтобы дать вам больше золота. Мне стыдно за некоторые из моих хаков, которые являются полной противоположностью `` надлежащего применения изобретательности '' - я сделал это только для того, чтобы получить'r'done - person Kevin Won; 20.08.2010
comment
@Kevin: Я цитирую как можно более официальный источник. Если это не то, что вы хотите услышать, это потому, что вопрос субъективен / аргументирован. - person polygenelubricants; 20.08.2010
comment
Я предполагаю, что это относится к другому значению этого слова, а не к неточности. - person Kevin Won; 20.08.2010

Когда я думаю о «взломе», я думаю о нем как о неожиданном обходном пути для решения проблемы, а не обязательно о плохом. Креативный, новаторский и хорошо подготовленный. «Взлом» может применяться не только к компьютерам, хотя я редко слышу, чтобы его использовали таким образом.

person Brian    schedule 19.08.2010
comment
подумал о том, как Спольски описывает «программиста изоленты» (joelonsoftware.com/items/ 2009/09 / 23.html), о чем, я думаю, и вы говорите. Для меня есть разница между ними. Один целесообразен и понятен (изолента), другой непонятен и непонятен. - person Kevin Won; 20.08.2010

Эта тема превратится в нечто вроде вопроса о Любви. У каждого будет свое определение. Лучший способ узнать правильное (по умолчанию) определение - в словаре

person Martin Ongtangco    schedule 19.08.2010

Это когда вы отказались от идиоматических, естественных, разумных и (иногда) поддерживаемых способов делать что-то на данном языке / фреймворке / и т. Д.

Иногда это гениальный ход, обычно акт идиотизма, иногда одно замаскировано под другое, а в редких случаях и то и другое.

(Между прочим, судья, который придумал это утверждение о порнографии, которое вы цитируете, позже отказался от своего решения).

person Jon Hanna    schedule 20.08.2010

Когда я использую термин «взломать», это обычно относится к решению проблемы, которое обычно было сделано в ответ на насущную проблему, и поэтому не было много размышлений относительно общего дизайна приложения. Иногда получается, иногда не очень, а иногда оказывается гениальной работой. Но в основном это общепризнанное временное решение, которое (надеюсь) подвергается рефакторингу и доработке, когда это возможно.

person David Hoerster    schedule 20.08.2010

Слишком часто «взломать» означает просто: «Не так, как я сделал бы это».

person Robusto    schedule 31.08.2010

Вот отличное предложение, которое я увидел о разнице между взломом и мошенничеством и в нем говорится: «Хакерские атаки успешны, когда преступник знает, как работает конкретная компьютерная система. Мошенничество оказывается успешным, когда злоумышленник знает, как работает человеческий мозг». вам нужно иметь глубокое понимание того, как это работает.

person TypeURL    schedule 09.05.2018