Что означает "жестко закодированное"?

Мое задание запрашивает у меня доступ к документу test.txt, поэтому имя файла должно быть жестко закодировано на моем диске C. Я понятия не имею, что такое hardcoding. Может кто-нибудь, пожалуйста, помогите мне с этим?

Ответы

Ответ 1

"жесткое кодирование" означает что-то помещать в исходный код. Если вы не являетесь жестким кодированием, то вы делаете что-то вроде запроса пользователя для данных или разрешите пользователю вводить данные в командной строке или что-то в этом роде.

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

Вот пример.

int main()
{
    const char *filename = "C:\\myfile.txt";

    printf("Filename is: %s\n", filename);
}

Имя файла "жестко закодировано" как: C:\myfile.txt

Причина, по которой обратная косая черта удваивается, заключается в том, что обратные косые черты являются особыми в строках C.

Ответ 2

"Жесткое кодирование" означает то, что вы хотите внедрить с вашей программой или любым проектом, который нельзя изменить напрямую.  Например, если вы используете сервер базы данных, то вы должны жестко кодировать для подключения своей базы данных к проекту и не могут быть изменены пользователем. Потому что вы жестко закодированы.

Ответ 3

Сценарий

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

1. Я могу написать код вроде этого

    if(totalMark <= 100 && totalMark > 90) { grade = "A+"; }
    else if(totalMark <= 90 && totalMark > 80) { grade = "A"; }
    else if(totalMark <= 80 && totalMark > 70) { grade = "B"; }
    else if(totalMark <= 70 && totalMark > 60) { grade = "C"; }

2. Вы можете попросить пользователя ввести определение класса где-нибудь и сохранить эти данные

Что-то вроде хранения в таблице базы данных введите описание изображения здесь

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

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

Итак, в вашем вопросе, если вы попросите пользователя ввести путь к файлу в начале, вы можете удалить жесткий код в своем коде.

Ответ 4

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

В дизайне функций мягкое кодирование имеет другие значения.

  • Hardcoding: функция кодируется в систему, не учитывая конфигурацию;
  • Параметрическая: функция настраивается с помощью управляемых таблицами или файлов свойств с ограниченными параметрическими значениями;
  • Softcoding: функция использует "двигатели", которые получают результаты на основе любого количества параметрических значений (т.е. бизнес-правил в BRE); правила кодируются, но существуют как параметры в системе, записанные в форме script Жесткое кодирование

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

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

  1. Мягкое кодирование Если мы очень стараемся избежать ловушки жесткого кодирования, мы можем легко запустить в другой антипаттерн, называемый "мягким кодированием", что является его полной противоположностью.

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

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

Я нашел здесь какое-то интересное объяснение, вы можете встретить жесткое кодирование в разных средах, IDE или языки программирования. Вы упомянули ситуацию, и я хочу добавить что-то еще

1. Hard coding (also hard-coding or hardcoding) is the software development practice of embedding an input or configuration data directly into the source code of a program or other executable object, or fixed formatting of the data, instead of obtaining that data from external sources or generating data or formatting in the program itself with the given input.

2. hardcoded string "row three", should use @string resource 
It is a very common android studio error/warning .

[Hard_coding][1] ;

[how-to-solve-this-issue-of-hardcoded-string][2];

[hardcoded-string-row-three-should-use-string-resource][3];

  [1]: https://en.wikipedia.org/wiki/Hard_coding

  [2]: https://stackoverflow.com/info/34130513/how-to-solve-this-issue-of-hardcoded-string/34130992

  [3]: https://stackoverflow.com/info/8743349/hardcoded-string-row-three-should-use-string-resource

https://www.hongkiat.com/blog/code-optimization-coding-antipatterns/ https://en.wikipedia.org/wiki/Softcoding