Mặc dù điều này nói chung là một mối quan tâm, tôi nghĩ rằng vấn đề này không tồn tại do thiết lập.
Người nộp đơn đã gửi cho bạn một số mã nguồn. Làm thế nào hoặc tại sao điều đó xảy ra?
Rõ ràng là chỉ có ba khả năng:
- Bạn đã cho người nộp đơn một nhiệm vụ để giải quyết một vấn đề cụ thể (được xác định rõ) để đánh giá các kỹ năng của anh ta.
- Người nộp đơn muốn thể hiện một cái gì đó mát mẻ ông viết.
- Người nộp đơn là một kẻ ngốc hoặc một gián điệp hoặc một người độc hại khác và không thực sự quan tâm đến việc được thuê. Tất cả những gì anh ấy hy vọng là bạn đủ ngu ngốc để chạy mã của anh ấy.
Khoảng 2) và 3)
Nguy cơ chính là phân biệt giữa 2) và 3). Rất có thể là nếu bất cứ điều gì anh ấy viết đều đáng xem , thì đó là thứ mà bạn có thể lấy mã nguồn trực tuyến (từ nguồn "trung tính") và thậm chí bạn có thể quen thuộc với nó, hoặc đó là thứ mà bạn thực sự không tặng Tôi không muốn xem xét vì bạn sẽ xâm phạm quyền sở hữu trí tuệ của đối thủ cạnh tranh (chủ cũ). Điều thứ hai có nghĩa là bạn sẽ không muốn thuê người đó.
Nếu bạn có thể lấy nguồn trực tuyến, hãy làm như vậy. Nếu bạn có thể xác minh đóng góp của người nộp đơn cho một phần mềm nổi tiếng (bao gồm cả phần mềm độc quyền) bằng tên của anh ta ở đâu đó trong các khoản tín dụng, hãy làm như vậy.
Trong mọi trường hợp khác, chỉ cần bỏ qua bất cứ điều gì anh ấy gửi cho bạn. Điều đó không đáng để xem xét, hoặc bất hợp pháp hoặc rủi ro cao.
Khoảng 1)
Người nộp đơn đã gửi cho bạn một cái gì đó bởi vì bạn đã giao cho anh ta một nhiệm vụ. Nếu bạn có bất kỳ năng lực nào (mà tôi cho là bạn làm!), Thì đối với một bài tập lập trình điển hình (... mà bạn thậm chí đã chọn chính mình!), Bạn sẽ có thể biết liệu đó có phải là một giải pháp hợp lý trông giống như nó có thể hoạt động không bằng cách xem mã nguồn trong ít hơn 30 giây (nhiều khả năng là 10 giây).
Nếu bạn không thể nói rằng chương trình có thể sẽ hoạt động (hoặc những gì nó đang làm) trong vòng 30 giây, thì người đã viết nó không phải là loại người bạn muốn thuê, fullstop. Bạn muốn những người viết mã mà những người khác có thể hiểu và duy trì. Bạn không muốn ai đó đang cố gắng thông minh với bạn, cũng không phải ai đó thường xuyên giành chiến thắng trong cuộc thi C khó hiểu. Nó thậm chí không quan trọng cho dù chương trình hoạt động. Ngay khi một người khác không thể hiểu được mã, nó không bao giờ "hoạt động".
Nếu chương trình có vẻ như sẽ hoạt động, nhưng bạn tìm thấy bất cứ thứ gì trông "lạ" (giả sử, các chuỗi thoát mã unicode của Java, chuỗi ký tự thô C ++, các công cụ trông giống như ba chữ, bất cứ thứ gì), coi phép gán là "fail", di chuyển vào người nộp đơn tiếp theo. Không cần thiết phải bao gồm bất cứ điều gì giống như trong 99% tất cả các chương trình (và, chắc chắn, không phải trong bài tập của bạn - tôi nên hy vọng). Vì vậy, nếu bạn tìm thấy bất cứ điều gì "kỳ lạ" như thế, người nộp đơn không phải là người bạn sẽ muốn thuê.
Nếu mã vượt qua lần xử lý đầu tiên đó, bạn có thể muốn dành thêm 2-3 phút để xem xét kỹ hơn. Nếu bạn vẫn hài lòng với những gì bạn thấy sau đó, bạn có thể chạy nó thông qua một bộ phân tích tĩnh và biên dịch nó trong một máy ảo ở mức cảnh báo cao.
Điều đó sẽ đưa ra các vấn đề mà bạn có thể đã bỏ lỡ trong khi đọc nguồn (chẳng hạn như gọi hành vi không xác định hoặc thu hẹp chuyển đổi).
Việc biên dịch trước hết sẽ cho bạn biết liệu người nộp đơn có cần mẫn và chú ý đến từng chi tiết hay không, không quá nhiều cho dù anh ta có kỹ năng lập trình hay không. Giống như viết chính xác tên của nhà tuyển dụng vào ứng dụng của bạn và kiểm tra chính tả CV của bạn trước khi nộp, cách tốt nhất là bạn đảm bảo bất kỳ mã nguồn nào bạn đưa vào biên dịch mà không có lỗi (và tốt nhất là không có cảnh báo). Nếu ai đó không làm điều đó, bạn không muốn thuê anh ta.
Nguy cơ của những điều xấu xảy ra tại thời điểm này (khai thác trình biên dịch và thoát ra khỏi VM) là không thể chấp nhận được, xem cách bạn đã chạy kiểm tra tính hợp lý đối với mã. Sẽ không xảy ra.