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

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

wikipedia def of 'hack' для меня немного расплывчата, но достойная отправная точка. Он считает взлом

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

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

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

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

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

Ответ 1

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

Чтобы добавить к путанице, существительное "взломать" также имеет два чувства. Это может быть комплимент или оскорбление. Это называется взломом, когда вы что-то делаете уродливо. Но когда вы делаете что-то настолько умное, что вы каким-то образом избили систему, которая также называется хаком. Слово используется чаще в первом, чем в последнем смысле, вероятно, потому, что уродливые решения более распространены, чем блестящие.

Ответ 2

Из Jargon File, глоссарий хакерского сленга:

Значение "Hack

" В слове "хак" на самом деле нет 69 разных значений ", - говорит хакер FIT Фил Агр." На самом деле, хак имеет только одно значение, чрезвычайно тонкое и глубокое, которое бросает вызов артикуляции. Какая коннотация подразумевается данным использованием слова, зависит от того же глубокого пути к контексту. Подобные замечания относятся к паре других хакерских слов, особенно случайным ".

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

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

Ответ 3

Когда я думаю о "взломе", я думаю об этом как о непредвиденном обходном пути для решения проблемы, не обязательно о том, что плохо. Творческий, инновационный и хорошо расположенный. "Hack" может применяться не только к компьютерам, хотя я редко слышу, что он используется таким образом.

Ответ 4

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

Ответ 5

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

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

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

Ответ 6

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

Ответ 7

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