Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Кто защитит наш код от ИИ?

Avatar for Yegor Bugayenko Yegor Bugayenko
January 16, 2026
65

Кто защитит наш код от ИИ?

Avatar for Yegor Bugayenko

Yegor Bugayenko

January 16, 2026

Transcript

  1. Image by Sora Враг у ворот Что защитит наш код

    от ИИ? Егор Бугаенко ZEROCRACY
  2. Image by Sora Помехи LLM Defense 2∕45 29 октября 2025

    @yegor256 Chapter #1: Что нам всегда мешает?
  3. Помехи LLM Defense 3∕45 29 октября 2025 @yegor256 От чего

    программисты страдают больше всего: 1. Баги 2. Дыры в безопасности 3. Грязный код
  4. 1 int[] nn = {1, 2, 3, 4, 5}; 2

    for (int i = 0; i <= nn.length; i++) 3 System.out.println(i); Помехи LLM Defense [ 1.Баги 2.Дыры 3.Грязь ] 4∕45 29 октября 2025 @yegor256 1. Дефекты (они же баги)
  5. Помехи LLM Defense [ 1.Баги 2.Дыры 3.Грязь ] 5∕45 29

    октября 2025 @yegor256 STEVE MCCONNELL «Microsoft обнаруживает около 10–20 дефектов на 1000 строк кода во время внутреннего тестирования и 0.5 дефектов на 1000 строк кода в выпущенном продукте.» —Steve McConnell. Code Complete. Pearson Education, 2004. DOI: 10.5555∕1096143
  6. Помехи LLM Defense [ 1.Баги 2.Дыры 3.Грязь ] 6∕45 29

    октября 2025 @yegor256 Статистика нескольких современных продуктов Продукт Stack KLoC Issues I∕KLoC kernel C 27,300 220,600 8.1 tensorflow C++ 3,600 40,200 11.2 flutter Dart 2,100 103,000 49.0 rust Rust 2,100 56,500 26.9 vscode TypeScript 1,500 210,000 140.0 spark Java 1,400 53,750 38.4 kafka Java 980 19,800 20.2 angular TypeScript 800 28,700 35.9 guava Java 346 3,600 10.4
  7. 1 "SELECT * FROM user WHERE name = '" +

    x + "'" Помехи LLM Defense [ 1.Баги 2.Дыры 3.Грязь ] 7∕45 29 октября 2025 @yegor256 2. Дыры в безопасности
  8. Помехи LLM Defense [ 1.Баги 2.Дыры 3.Грязь ] 8∕45 29

    октября 2025 @yegor256 «Центральный и критический аспект компьютерной проблемы безопасности — это проблема программного обеспечения. Дефекты ПО с последствиями для безопасности — включая ошибки реализации, такие как переполнение буфера, и недостатки проектирования, такие как непоследовательная обработка ошибок — обещают быть с нами годами.» —Gary McGraw. Software Security: Building Security in. Addison-Wesley, 2006. DOI: 10.5555∕1121680
  9. 1 while (!(x = read())) 2 if (x = 5

    && !(b & 3)) 3 print( x−− ); 4 else return; Помехи LLM Defense [ 1.Баги 2.Дыры 3.Грязь ] 9∕45 29 октября 2025 @yegor256 3. Сложность, дублирование и smells
  10. Помехи LLM Defense [ 1.Баги 2.Дыры 3.Грязь ] 10∕45 29

    октября 2025 @yegor256 «Чем проще ваше решение, тем лучше вы как разработчик. Большинство разработчиков могут написать код, который работает. Создать код, который работает и настолько прост, насколько это возможно — вот истинный вызов.» —Vladimir Khorikov. KISS Revisited. https: ∕∕enterprisecraftsmanship.com∕posts∕kiss-revisited∕. [Online; accessed 22-09-2024]. Июнь 2015
  11. Помехи LLM Defense [ 1.Баги 2.Дыры 3.Грязь ] 11∕45 29

    октября 2025 @yegor256 ROBERT C. MARTIN «Дублирование — это главный враг хорошо спроектированной системы.» —Robert C. Martin. Clean Code: A Handbook of Agile Software Craftsmanship. Pearson Education, 2008. DOI: 10.5555∕1388398
  12. Помехи LLM Defense [ 1.Баги 2.Дыры 3.Грязь ] 12∕45 29

    октября 2025 @yegor256 MARK SEEMANN «Мне нравится, как метафора садоводства подчеркивает действия, которые борются с беспорядком. Точно так же, как вы должны обрезать и пропалывать сад, вы должны рефакторить и погашать технический долг в вашей кодовой базе.» —Mark Seemann. Code That Fits in Your Head: Heuristics for Software Engineering. Addison-Wesley, 2021
  13. Помехи LLM Defense 13∕45 29 октября 2025 @yegor256 Chapter #2:

    Почему сейчас становится хуже?
  14. Image by Sora Помехи LLM Defense [ 1.Качество 2.Влияние 3.Утечки

    4.Начальство ] 14∕45 29 октября 2025 @yegor256 1. Иллюзия качества
  15. Помехи LLM Defense [ 1.Качество 2.Влияние 3.Утечки 4.Начальство ] 15∕45

    29 октября 2025 @yegor256 CHUN JIE CHONG «С точки зрения качества, мы обнаружили, что LLM генерирует голый код, лишенный конструкций защитного программирования, и обычно более сложный (на строку кода) по сравнению с кодом, написанным человеком. Фаззинг показал, что код, сгенерированный LLM, более склонен к зависаниям и сбоям, чем код, написанный человеком.» —Chun Jie Chong, Zhihao Yao и Iulian Neamtiu. Artificial-Intelligence Generated Code Considered Harmful: A Road Map for Secure and High-Quality Code Generation. 2024. arXiv: 2409.19182 [cs.CR]
  16. Помехи LLM Defense [ 1.Качество 2.Влияние 3.Утечки 4.Начальство ] 16∕45

    29 октября 2025 @yegor256 ALTAF ALLAH ABBASSI «33.54% изученных образцов продемонстрировали множественные неэффективности, указывая на то, что неэффективности в коде, сгенерированном LLM, разнообразны и взаимосвязаны. Наши результаты выявляют критический пробел в способности LLM генерировать корректный, оптимизированный и высококачественный код.» —Altaf Allah Abbassi и др. A Taxonomy of Inefficiencies in LLM-Generated Python Code. 2025. arXiv: 2503.06327 [cs.SE]
  17. Помехи LLM Defense [ 1.Качество 2.Влияние 3.Утечки 4.Начальство ] 17∕45

    29 октября 2025 @yegor256 ADAM ALAMI «Внедрение LLM в социальную систему ревью кода вызывает нарушение присущей социальной динамики процесса и переход ответственности от индивидуальной к коллективной.» —Adam Alami, Victor Vadmand Jensen и Neil A. Ernst. «Accountability in Code Review: The Role of Intrinsic Drivers and the Impact of LLMs». В: ACM Transactions on Software Engineering and Methodology 2025.1 (2025). DOI: 10.1145∕3721127
  18. Image by Sora Помехи LLM Defense [ 1.Качество 2.Влияние 3.Утечки

    4.Начальство ] 18∕45 29 октября 2025 @yegor256 2. Дурное влияние
  19. Помехи LLM Defense [ 1.Качество 2.Влияние 3.Утечки 4.Начальство ] 19∕45

    29 октября 2025 @yegor256 XUANHUA SHI «Стиль кодирования человеческого кода может быть подвержен влиянию LLM: они могут не только отражать существующие нормы, но и тонко изменять их, постепенно подталкивая разработчиков к большему стилистическому соответствию с конвенциями, предпочитаемыми LLM.» —Yuliang Xu и др. code_transformed: The Influence of Large Language Models on Code. 2025. arXiv: 2506.12014 [cs.CL]
  20. Image by Sora Помехи LLM Defense [ 1.Качество 2.Влияние 3.Утечки

    4.Начальство ] 20∕45 29 октября 2025 @yegor256 3. Утечки данных
  21. Помехи LLM Defense [ 1.Качество 2.Влияние 3.Утечки 4.Начальство ] 21∕45

    29 октября 2025 @yegor256 https:∕∕support.google.com∕gemini∕answer∕13594961
  22. Помехи LLM Defense [ 1.Качество 2.Влияние 3.Утечки 4.Начальство ] 22∕45

    29 октября 2025 @yegor256 https:∕∕developers.sber.ru∕docs∕ru∕policies∕gigachat-agreement∕beta
  23. Image by Sora Помехи LLM Defense [ 1.Качество 2.Влияние 3.Утечки

    4.Начальство ] 23∕45 29 октября 2025 @yegor256 4. Давление менеджмента
  24. Помехи LLM Defense [ 1.Качество 2.Влияние 3.Утечки 4.Начальство ] 24∕45

    29 октября 2025 @yegor256 Недавний опрос в моем Telegram канале: https:∕∕t.me∕yegor256news∕1721
  25. Image by Sora Помехи LLM Defense [ 1.Ревью 2.Тесты 3.Стандарты

    4.Стиль 5.Архитектура ] 26∕45 29 октября 2025 @yegor256 1. Ревью кода малыми порциями
  26. Помехи LLM Defense [ 1.Ревью 2.Тесты 3.Стандарты 4.Стиль 5.Архитектура ]

    27∕45 29 октября 2025 @yegor256 CAITLIN SADOWSKI «Корреляция между размером изменения и качеством ревью признается Google, и разработчикам настоятельно рекомендуется вносить небольшие, инкрементальные изменения (за исключением больших удалений и автоматизированного рефакторинга).» —Caitlin Sadowski и др. «Modern Code Review: A Case Study at Google». В: Proceedings of the 40th International Conference on Software Engineering: Software Engineering in Practice. 2018, с. 181—190. DOI: 10.1145∕3183519.3183525
  27. Помехи LLM Defense [ 1.Ревью 2.Тесты 3.Стандарты 4.Стиль 5.Архитектура ]

    28∕45 29 октября 2025 @yegor256 Source: Peter C. Rigby и Christian Bird. «Convergent Contemporary Software Peer Review Practices». В: Proceedings of the 9th Joint Meeting on Foundations of Software Engineering. 2013, с. 202—212. DOI: 10.1145∕2491411.2491444 «Both Android and AMD have a median change size of 44 lines. This median change size is larger than Apache, 25 lines, and Linux, 32 lines, but much smaller than Lucent where the number of non-comment lines changed is 263 lines. Bing, Chrome’s median change is 78 lines and includes 5 files.»
  28. Image by Sora Помехи LLM Defense [ 1.Ревью 2.Тесты 3.Стандарты

    4.Стиль 5.Архитектура ] 29∕45 29 октября 2025 @yegor256 2. Контроль покрытия тестами
  29. Помехи LLM Defense [ 1.Ревью 2.Тесты 3.Стандарты 4.Стиль 5.Архитектура ]

    30∕45 29 октября 2025 @yegor256 GORAN PETROVIĆ «Google не применяет принудительно никаких порогов покрытия кода по всей кодовой базе. Проекты (или группы проектов) свободны определять свои собственные пороги и цели. Многие проекты подключаются к централизованной добровольной системе оповещения, которая определяет пять уровней порогов покрытия кода.» —Goran Petrović и др. «Code Coverage at Google». В: Proceedings of the 27th Joint Meeting on ESEC/FSE. 2019. DOI: 10.1145∕3338906.3340459
  30. Помехи LLM Defense [ 1.Ревью 2.Тесты 3.Стандарты 4.Стиль 5.Архитектура ]

    31∕45 29 октября 2025 @yegor256 Code Coverage Threshold Levels in Google Source: Goran Petrović и др. «Code Coverage at Google». В: Proceedings of the 27th Joint Meeting on ESEC/FSE. 2019. DOI: 10.1145∕3338906.3340459
  31. Image by Sora Помехи LLM Defense [ 1.Ревью 2.Тесты 3.Стандарты

    4.Стиль 5.Архитектура ] 32∕45 29 октября 2025 @yegor256 3. Стандарты кодирования
  32. Помехи LLM Defense [ 1.Ревью 2.Тесты 3.Стандарты 4.Стиль 5.Архитектура ]

    33∕45 29 октября 2025 @yegor256 Our «Agent Coding Manifest» https:∕∕github.com∕yegor256∕prompt
  33. Помехи LLM Defense [ 1.Ревью 2.Тесты 3.Стандарты 4.Стиль 5.Архитектура ]

    34∕45 29 октября 2025 @yegor256 Leaked System Prompts: asgeirtj∕system_prompts_leaks
  34. Помехи LLM Defense [ 1.Ревью 2.Тесты 3.Стандарты 4.Стиль 5.Архитектура ]

    35∕45 29 октября 2025 @yegor256 https:∕∕x.com∕karpathy∕status∕1617979122625712128
  35. Image by Sora Помехи LLM Defense [ 1.Ревью 2.Тесты 3.Стандарты

    4.Стиль 5.Архитектура ] 36∕45 29 октября 2025 @yegor256 4. Контроль стиля
  36. Помехи LLM Defense [ 1.Ревью 2.Тесты 3.Стандарты 4.Стиль 5.Архитектура ]

    37∕45 29 октября 2025 @yegor256 Несколько популярных контролёров стиля: • ESLint для JavaScript • Clang-Tidy для C++ • Pylint для Python • Rubocop для Ruby • PHP_CodeSniffer для PHP • rustfmt для Rust • Qulice для Java: Checkstyle + PMD
  37. Помехи LLM Defense [ 1.Ревью 2.Тесты 3.Стандарты 4.Стиль 5.Архитектура ]

    38∕45 29 октября 2025 @yegor256 Сколько правил в контролёрах стиля: • 690+ в Clang-Tidy (C++) • 550+ в Rubocop (Ruby) • 400+ в PMD (Java) • 130+ в Checkstyle (Java) • 120+ в Pylint (Python) Некоторые/большинство правил не только проверяют стиль, но и находят баги.
  38. Помехи LLM Defense [ 1.Ревью 2.Тесты 3.Стандарты 4.Стиль 5.Архитектура ]

    39∕45 29 октября 2025 @yegor256 Экзотические контролёры стиля: • Shellcheck для Bash • Hadolint для Dockerfile • markdownlint для Markdown • Checkmake для Makefile • xcop для XML
  39. Image by Sora Помехи LLM Defense [ 1.Ревью 2.Тесты 3.Стандарты

    4.Стиль 5.Архитектура ] 40∕45 29 октября 2025 @yegor256 5. Описание архитектуры
  40. Помехи LLM Defense [ 1.Ревью 2.Тесты 3.Стандарты 4.Стиль 5.Архитектура ]

    41∕45 29 октября 2025 @yegor256 Некоторые баги на уровне дизайна: Код ошибки: 1 class Foo { 2 int get_content(char* path) { 3 if cant_read() return -1; 4 ∕∕ do the rest 5 return 0; 6 } 7 } Исключение: 1 class Bar { 2 void storeIt() { 3 if cant_save() 4 throw "Can't save file" 5 ∕∕ do the rest 6 } 7 }
  41. Помехи LLM Defense [ 1.Ревью 2.Тесты 3.Стандарты 4.Стиль 5.Архитектура ]

    42∕45 29 октября 2025 @yegor256 SIMON WEBER «В ходе исследования было обнаружено, что популярные проекты имеют более объемные README (медиана 2 килобайта против 500 байт). Также 95% популярных проектов имеют непустые README, по сравнению с только 65% непопулярных проектов.» —Simon Weber и Jiebo Luo. «What Makes an Open Source Code Popular on GitHub?» В: Proceedings of the International Conference on Data Mining Workshop. IEEE. 2014, с. 851—855. DOI: 10.1109∕ICDMW.2014.55
  42. Помехи LLM Defense [ 1.Ревью 2.Тесты 3.Стандарты 4.Стиль 5.Архитектура ]

    43∕45 29 октября 2025 @yegor256 ArchUnit устанавливает ограничения https:∕∕www.archunit.org∕
  43. Помехи LLM Defense [ 1.Ревью 2.Тесты 3.Стандарты 4.Стиль 5.Архитектура ]

    45∕45 29 октября 2025 @yegor256 Список литературы [1] Altaf Allah Abbassi и др. A Taxonomy of Inefficiencies in LLM-Generated Python Code. 2025. arXiv: 2503.06327 [cs.SE]. [2] Adam Alami, Victor Vadmand Jensen и Neil A. Ernst. «Accountability in Code Review: The Role of Intrinsic Drivers and the Impact of LLMs». В: ACM Transactions on Software Engineering and Methodology 2025.1 (2025). DOI: 10.1145∕3721127. [3] Chun Jie Chong, Zhihao Yao и Iulian Neamtiu. Artificial-Intelligence Generated Code Considered Harmful: A Road Map for Secure and High-Quality Code Generation. 2024. arXiv: 2409.19182 [cs.CR]. [4] Vladimir Khorikov. KISS Revisited. https:∕∕enterprisecraftsmanship. com∕posts∕kiss-revisited∕. [Online; accessed 22-09-2024]. Июнь 2015. [5] Robert C. Martin. Clean Code: A Handbook of Agile Software Craftsmanship. Pearson Education, 2008. DOI: 10.5555∕1388398. [6] Steve McConnell. Code Complete. Pearson Education, 2004. DOI: 10.5555∕1096143. [7] Gary McGraw. Software Security: Building Security in. Addison-Wesley, 2006. DOI: 10.5555∕1121680. [8] Goran Petrović и др. «Code Coverage at Google». В: Proceedings of the 27th Joint Meeting on ESEC/FSE. 2019. DOI: 10.1145∕3338906.3340459. [9] Peter C. Rigby и Christian Bird. «Convergent Contemporary Software Peer Review Practices». В: Proceedings of the 9th Joint Meeting on Foundations of Software Engineering. 2013, с. 202—212. DOI: 10.1145∕2491411.2491444. [10] Caitlin Sadowski и др. «Modern Code Review: A Case Study at Google». В: Proceedings of the 40th International Conference on Software Engineering: Software Engineering in Practice. 2018, с. 181—190. DOI: 10.1145∕3183519.3183525. [11] Mark Seemann. Code That Fits in Your Head: Heuristics for Software Engineering. Addison-Wesley, 2021. [12] Simon Weber и Jiebo Luo. «What Makes an Open Source Code Popular on GitHub?» В: Proceedings of the International Conference on Data Mining Workshop. IEEE. 2014, с. 851—855. DOI: 10.1109∕ICDMW.2014.55. [13] Yuliang Xu и др. code_transformed: The Influence of Large Language Models on Code. 2025. arXiv: 2506.12014 [cs.CL].