Хотя это, как правило, проблема, я думаю, что проблема не существует из-за установки.
Заявитель отправил вам некоторый исходный код. Как или почему это произошло?
Ну, очевидно, есть только три возможности:
- Вы дали заявителю задание для решения конкретной (четко определенной) проблемы с целью оценки его навыков.
- Заявитель хочет похвастаться чем-то классным, что он написал.
- Заявитель является придурком, шпионом или иным злонамеренным лицом и на самом деле не заинтересован в приеме на работу. Все, на что он надеется, - это то, что ты достаточно глуп, чтобы запустить его код.
О 2) и 3)
Основным риском является различие между 2) и 3). Высоки шансы, что если на то, что он написал, стоит взглянуть , это то, что вы можете либо получить исходный код для онлайн (из «нейтрального» источника), и что вы, возможно, даже уже знакомы, или это то, что вы на самом деле надеваете не хочу смотреть, потому что вы нарушите интеллектуальную собственность конкурента (бывшего работодателя). Последнее будет означать, что вы все равно не захотите нанимать этого человека.
Если вы можете получить источник в Интернете, сделайте это. Если вы можете проверить вклад заявителя в известное программное обеспечение (включая проприетарное программное обеспечение) по его имени где-то в титрах, сделайте это.
В любом другом случае просто игнорируйте все, что он вам послал. На это либо не стоит смотреть, либо нелегально, либо рискованно.
О 1)
Заявитель отправил вам что-то, потому что вы дали ему задание. Если вы обладаете какой-либо компетенцией (что, я полагаю, вы делаете!), То для типичного задания по программированию (... которое вы даже выбрали сами!) Вы сможете определить, является ли это правдоподобным решением, которое выглядит так, как будто оно может работать глядя на исходный код менее 30 секунд (более вероятно, 10 секунд).
Если вы не можете сказать, что программа, вероятно, будет работать (или что она вообще делает) в течение 30 секунд, тот, кто написал ее, не тот человек, которого вы хотите нанять, полный ход. Вам нужны люди, которые пишут код, который другие люди могут понять и поддерживать. Вы не хотите, чтобы кто-то, кто пытается стать умным на вас, или кто-то, кто регулярно побеждает в запутанном конкурсе Си. Даже не имеет значения, работает ли программа. Как только другой человек не может понять код, он никогда не «работает».
Если программа выглядит так, как будто она, вероятно, будет работать, но вы найдете все, что выглядит «странно» (скажем, escape-последовательности Java Unicode, литералы необработанных строк C ++, вещи, которые выглядят как триграфы, что угодно), обработайте присвоение как «fail», переместите к следующему заявителю. Нет необходимости включать что-либо подобное в 99% всех программ (и, разумеется, не в вашем назначении - я надеюсь). Поэтому, если вы обнаружите что-то «странное», заявитель не тот, кого вы захотите нанять.
Если код проходит эту первую сортировку, вы можете потратить еще 2-3 минуты на его тщательное изучение. Если вы все еще довольны тем, что видите после этого, вы можете запустить его через статический анализатор и скомпилировать его на виртуальной машине с высоким уровнем предупреждения.
Это должно вызвать проблемы, которые вы, возможно, пропустили при чтении источника (например, вызов неопределенного поведения или сужение конверсии).
Компиляция прежде всего скажет вам, обладает ли заявитель необходимым усердием и вниманием к деталям, а не тем, обладает ли он навыками программирования. Подобно правильному написанию имени работодателя в вашем приложении и проверке правописания вашего резюме перед его передачей, лучше всего убедиться, что любой исходный код, который вы передаете, компилируется без ошибок (и желательно без предупреждений). Если кому-то это не удается, вы не хотите его нанимать.
Риск злых вещей, происходящих в этот момент (использование компилятора и взлом виртуальной машины), пренебрежимо мал, видя, как вы уже выполнили проверку достоверности кода. Не произойдет.