Рубріки: ДосвідДумка

Senior Developer копіпастив зі Stack Overflow. Чому так не варто робити

Андрій Губін

Анонімний блогер і розробник «The Secret Developer» поділився на своїй сторінці в Medium думкою про те, чому варто дуже обережно користуватися кодом, взятим в мережі, і чому senior developer взагалі не варто таке робити. Пропонуємо вам переклад блогу. Далі — слово автору.

У нас є senior розробники, і провели ревёю їхньої роботи.

Ми всі можемо робити промахи та помилки, але The Secret Developer були шоковані, коли побачили наступне.

Код

Я хотів розмістити в цій статті реальний код, який я бачив у запиті, але я хвилююся, що мою таємну особистість буде розкрито.

Замість цього я розмістив тут деякий код, який «схожий» на той, який я переглянув.

Повірте, це був справжній pull request, а не чернетка або гілка. Готовий до запуску у виробництво.

@RestController
@RequestMapping("/api/users")
public class UserController {
private final UserService userService;

@Autowired
public UserController(UserService userService) {
this.userService = userService; //1
}

@GetMapping("/{id}")
public ResponseEntity<User> getUserById(@PathVariable Long id) {
User user = userService.findById(id); //2
if (user == null) {
return ResponseEntity.notFound().build(); //3
}
return ResponseEntity.ok(user); //4
}

}

Коли розробник настільки лінивий, що копіює код, він викликає мою повагу. Ніхто з нас не повинен докладати більше зусиль, ніж насправді потрібно.

Однак, коли уникнення роботи заходить так далеко, що вони залишають в коментарях посилання на сайт, з якого вони вкрали код, то це вже занадто. Це вже зовсім інша річ. Це некомпетентність. Я можу лише уявити, наскільки добре вони протестували цей код і наскільки добре вони продумали своє рішення.

Ризики копіювання коду: Проблеми безпеки та ліцензування

У світі розробки програмного забезпечення спокуса скопіювати і вставити код з таких ресурсів, як Stack Overflow, завжди присутня. Це обіцяє швидке вирішення проблеми, миттєвий шлях крізь хащі проблем кодування.

«Як я вже пояснював вище, це також оголює некомпетентність відповідального програміста. Це свідчить про розробника, який надає перевагу швидкості, а не ретельності, і чия робота несе ризики для всіх учасників. Давайте розглянемо ці питання по черзі».

Ризики безпеки

Фрагменти коду, доступні в Інтернеті, не завжди перевіряються на безпеку. Вони можуть містити вразливості, починаючи від простих помилок і закінчуючи серйозними недоліками безпеки, такими як SQL-ін’єкції або вразливості крос-сайтового скриптингу. Інтеграція коду, який ви не розумієте, у кодову базу відкриває ваш проект для потенційних зловмисних атак.

Код, який працює некоректно

Коду з інтернету часто бракує контексту. Це фрагмент, рішення конкретної проблеми, відірваний від ширших міркувань безпеки.

Розробники можуть не помітити, як цей фрагмент взаємодіє з іншими частинами їхньої системи, що потенційно може створити лазівки в тому, що раніше було якісним додатком.

Чи відповідає код стандартам проєкту? Розробнику важко обґрунтувати, що це так, якщо по суті, він сам не писав код. Він може містити застарілі практики або не відповідати протоколам безпеки.

Ще гірше, зовнішній код може мати залежності, які «розробник» не врахував у процесі створення програмного забезпечення методом копіпасту.

Юридичні підводні камені

Це було зрозуміло вже давно. Код з Stack Overflow недоступний для використання в програмному забезпеченні з закритим вихідним кодом і повинен бути атрибутований. Якщо розробник цього не робить, вам потрібно поставити під сумнів його компетенцію в написанні коду, а також його етику.

Зниження ризиків

Щоб зменшити ці ризики, розробникам, особливо тим, хто займає керівні посади, вкрай важливо:

  • Ретельно перевіряти та розуміти будь-який зовнішній код, який вони мають намір використовувати.
  • Регулярно оновлювати та перевіряти залежності на наявність вразливостей безпеки.
  • Забезпечити дотримання всіх відповідних ліцензій на програмне забезпечення та авторських прав.
  • Розглянути можливість написання власного коду, де це можливо, особливо для критично важливих компонентів системи.

Висновок

Часто кажуть, що тільки дурні стрибають у воду. Коли ми копіюємо рішення з Інтернету, ми повинні переконатися, що ми продумали всі наслідки цього.

Кого я обманюю? Я думаю, що якщо ви це робите, то ви настільки некомпетентні, що взагалі не повинні працювати у сфері розробки програмного забезпечення. Senior developer? Я думаю, ти не можеш бути серйозним.

Останні статті

Мова програмування Rust оновлена до версії 1.93

Команда Rust оновила мову програмування до версії 1.93. Новий реліз, який має коміти від 406…

23.01.2026

«Дія» отримає функціонал для пошуку роботи

Кабінет міністрів України погодив пілотний проєкт, за яким послуги Центрів зайнятості будуть оцифровані через систему…

23.01.2026

Microsoft представляє новий інструмент WinApp CLI, який спрощує розробку програм для Windows

Microsoft анонсувала публічну попередню версію WinApp CLI, інтерфейсу командного рядка з відкритим вихідним кодом. WinApp…

23.01.2026

JetBrains інтегрувала Codex в свої IDE та показала, як з ним працювати

Інструмент кодування Codex тепер працює всередині чату JetBrains AI, що дає можливість використовувати його безпосередньо…

23.01.2026

Міноборони України разом з Palantir починає тестування військових моделей штучного інтелекту

Державна платформа військових технологій BRAVE1 разом з Міністерством оборони України та за підтримки американської компанії…

23.01.2026

«Вони використовували вайб-кодинг»: хакер створив каталог «небезпечних додатків»

Анонімний хакер запустив «магазин небезпечних iOS-додатків» — публічний реєстр програм, швидко створених за допомогою вайб-кодингу.…

22.01.2026