Как ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΎΡ‚ AI-сгСнСрированного: ΡˆΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ° для программистов

Π£Π·Π½Π°ΠΉΡ‚Π΅, ΠΊΠ°ΠΊ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΎΡ‚ AI-сгСнСрированного. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ подСлимся простыми способами выявлСния сгСнСрированных Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² ΠΈ расскаТСм, Π½Π° Ρ‡Ρ‚ΠΎ стоит ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ программистам.

ОблоТка: Как ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΎΡ‚ AI-сгСнСрированного: ΡˆΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ° для программистов

Π‘ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ΠΌ ИИ-программирования всё слоТнСС ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, писал Π»ΠΈ ΠΊΠΎΠ΄ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ ΠΈΠ»ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ. AI-Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΡƒΠΆΠ΅ ΡƒΠΌΠ΅ΡŽΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ чистыС, Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Π½ΠΎ Ρƒ Π½ΠΈΡ… Π΅ΡΡ‚ΡŒ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Π΄Π°ΡŽΡ‚ ΠΈΡ… искусствСнноС происхоТдСниС. БСгодня ΠΌΡ‹ разбСрёмся, ΠΊΠ°ΠΊ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΎΡ‚ сгСнСрированного ИИ: Π½Π° Ρ‡Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ Ρ‡Π°Ρ‰Π΅ всСго ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π²Π°ΠΆΠ½ΠΎ ΡƒΠΌΠ΅Ρ‚ΡŒ это Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚ΡŒ.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ это Π²ΠΎΠΎΠ±Ρ‰Π΅ Π²Π°ΠΆΠ½ΠΎ?

AI-инструмСнты ΡƒΠΆΠ΅ Π½Π΅ просто ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ β€” ΠΎΠ½ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΏΠΈΡˆΡƒΡ‚ ΠΊΠΎΠ΄. GitHub Copilot, ChatGPT, Codeium ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ способны Π·Π° сСкунды ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ слоТныС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹, SQL-запросы, тСсты ΠΈ Π΄Π°ΠΆΠ΅ Ρ†Π΅Π»Ρ‹Π΅ API. Π‘ ΠΎΠ΄Π½ΠΎΠΉ стороны, это ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ способ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ, ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ Ρ€ΡƒΡ‚ΠΈΠ½Ρƒ ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Ρ‡ΠΈΡ‰Π΅. Но с Π΄Ρ€ΡƒΠ³ΠΎΠΉ β€” AI-ΠΊΠΎΠ΄ Π½Π΅ всСгда Π½Π°Π΄Π΅ΠΆΠ΅Π½, Π° слСпоС ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π±Π°Π³Π°ΠΌ ΠΈ уязвимостям.

Если Ρ€Π°Π½ΡŒΡˆΠ΅ СдинствСнной ΡƒΠ³Ρ€ΠΎΠ·ΠΎΠΉ Π±Ρ‹Π»ΠΎ Β«Π³ΡƒΠ³Π»ΠΈΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° Stack OverflowΒ», Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ситуация слоТнСС: AI-ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ логичСски Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΌ, Π½Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ бизнСс-трСбованиям ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ. ΠŸΡ€ΠΈ этом Π΅Π³ΠΎ слоТно сразу Ρ€Π°ΡΠΊΡ€ΠΈΡ‚ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ β€” ΠΎΠ½ выглядит идСально, Ρ‡Π΅Ρ‚ΠΊΠΎ структурирован ΠΈ, Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

Π‘ΠΎΠ±Ρ€Π°Π»ΠΈ основныС ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π²Π°ΠΆΠ½ΠΎ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒ AI-ΠΊΠΎΠ΄ ΠΎΡ‚ написанного Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ:

  • AI Π½Π΅ всСгда ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ контСкст ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ нСбСзопасныС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, SQL-ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ….
  • AI Π½Π΅ Π·Π½Π°Π΅Ρ‚ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… договорСнностСй ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, поэтому ΠΌΠΎΠΆΠ΅Ρ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ вписываСтся Π² ΠΎΠ±Ρ‰ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ.
  • AI Π½Π΅ Π·Π½Π°Π΅Ρ‚ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… договорСнностСй ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, поэтому ΠΌΠΎΠΆΠ΅Ρ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ вписываСтся Π² ΠΎΠ±Ρ‰ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ.
  • AI ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒ Ρ…ΠΎΡ‚ΡŒ ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΉ, Π½ΠΎ совсСм Π½Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ трСбованиям бизнСса ΠΊΠΎΠ΄.
  • НСкоторыС AI-Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΎΠ±ΡƒΡ‡Π΅Π½Ρ‹ Π½Π° ΠΊΠΎΠ΄Π΅ с лицСнзиями, нСсовмСстимыми с коммСрчСскими ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΡŽΡ€ΠΈΠ΄ΠΈΡ‡Π΅ΡΠΊΠΈΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ.
ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, AI-ΠΊΠΎΠ΄ всё Ρ‡Π°Ρ‰Π΅ встрСчаСтся Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½-Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ…, Π½ΠΎ ΠΈ Π½Π° собСсСдованиях. Π Π°Π±ΠΎΡ‚ΠΎΠ΄Π°Ρ‚Π΅Π»ΠΈ Π½Π°Ρ‡Π°Π»ΠΈ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Ρ‚ΡŒΡΡ с ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ просто ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ ΠΈΠ· ChatGPT ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈΡ… ΠΊΠΎΠ΄.

По Π΄Π°Π½Π½Ρ‹ΠΌ Stack Overflow Developer Survey 2024, Π±ΠΎΠ»Π΅Π΅ 70% Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΡƒΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ AI Π² ΠΊΠΎΠ΄ΠΈΠ½Π³Π΅, Π° 40% ΠΏΡ€ΠΈΠ·Π½Π°Π»ΠΈΡΡŒ, Ρ‡Ρ‚ΠΎ нСйросСти Ρ…ΠΎΡ‚ΡŒ Ρ€Π°Π· ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π»ΠΈ ΠΈΠΌ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ нСбСзопасныС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ сСйчас Π²Π°ΠΆΠ½ΠΎ Π½Π΅ просто ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ AI, Π½ΠΎ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Π³Π΄Π΅ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Π²Ρ€Π΅Π΄ΠΈΡ‚ΡŒ.

Π“Π΄Π΅ Ρ‡Π°Ρ‰Π΅ всСго встрСчаСтся AI-ΠΊΠΎΠ΄?

AI-сгСнСрированный ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ Π³Π΄Π΅ ΡƒΠ³ΠΎΠ΄Π½ΠΎ: ΠΎΡ‚ свСТСго pull request’а Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π΄ΠΎ ΠΎΡ‚Π²Π΅Ρ‚Π° Π½Π° Stack Overflow ΠΈΠ»ΠΈ тСстового задания ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚Π°. Иногда это просто Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ сниппСты, Π° ΠΈΠ½ΠΎΠ³Π΄Π° β€” ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹Π΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ выглядят слишком «чисто», Π½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΎΡ‰ΡƒΡ‰Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ Ρ‚Π°ΠΊ.

Π Π°Π·Π±Π΅Ρ€Π΅ΠΌ, Π² ΠΊΠ°ΠΊΠΈΡ… ситуациях Ρ‡Π°Ρ‰Π΅ всСго встрСчаСтся AI-ΠΊΠΎΠ΄ ΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Ρ‚ΡŒ.

ΠšΠΎΠ΄ΠΎΠ²Ρ‹Π΅ Ρ€Π΅Π²ΡŒΡŽ

Допустим, Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ pull request, ΠΈ ΠΎΠ½ выглядит… странно. Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ ΠΊΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π½ΠΎ:

  • Он слишком абстрактный ΠΈ Π½Π΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ спСцифику ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.
  • ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π½Π°Π·Π²Π°Π½Ρ‹ шаблонно: processData(), getResponse(), handleRequest().
  • ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½Ρ‹ ΠΈΠ»ΠΈ выглядят Ρ‚Π°ΠΊ, Π±ΡƒΠ΄Ρ‚ΠΎ ΠΈΡ… писал ΡƒΡ‡Π΅Π±Π½ΠΈΠΊ: Β«Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ сортируСт массив ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽΒ» (Π΄Π°, спасибо, КЭП).
  • Код слишком Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ, Π±Π΅Π· Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹Ρ… для ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΉ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Π’Ρ‹ проситС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ email-адрСса, Π° Π² PR ΠΏΡ€ΠΈΠ»Π΅Ρ‚Π°Π΅Ρ‚ Π½Π΅Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅:

			using System.Text.RegularExpressions;

public class EmailValidator
{
    private static readonly Regex EmailRegex = 
        new Regex(@"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$", RegexOptions.Compiled);

    public bool IsValidEmail(string email)
    {
        return EmailRegex.IsMatch(email);
    }
}
		

Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ всё ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ. Но Ссли Π² вашСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ встроСнныС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, DataAnnotations Π² .NET), Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ выглядит излишним. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, рСгулярка взята ΠΈΠ· ΡƒΡ‡Π΅Π±Π½ΠΈΠΊΠΎΠ² ΠΈ Π½Π΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ edge-кСйсы. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ явным ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠΌ AI-Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ.

Π€ΠΎΡ€ΡƒΠΌΡ‹ ΠΈ Stack Overflow: ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Π²Ρ‹ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ красивый, Π½ΠΎ ΠΏΠΎΠ΄ΠΎΠ·Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π°ΠΊΠ°Π΄Π΅ΠΌΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄

AI-ΠΊΠΎΠ΄ часто появляСтся Π² ΠΎΡ‚Π²Π΅Ρ‚Π°Ρ… Π½Π° Stack Overflow, GitHub Discussions ΠΈΠ»ΠΈ Reddit. На ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд, ΠΎΠ½ ΠΈΠ΄Π΅Π°Π»Π΅Π½, Π½ΠΎ:

  • НС ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ контСкст Π·Π°Π΄Π°Ρ‡ΠΈ;
  • НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ упрощСния, принятыС Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅;
  • Выглядит Ρ‚Π°ΠΊ, словно Π΅Π³ΠΎ писал ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚Π΅Π»ΡŒ для ΡƒΡ‡Π΅Π±Π½ΠΎΠ³ΠΎ пособия.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

ΠšΡ‚ΠΎ-Ρ‚ΠΎ ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚: «Как ΠΏΠ΅Ρ€Π΅Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ строку Π² Python?Β»

ΠžΡ‚Π²Π΅Ρ‚ ΠΎΡ‚ AI:

			def reverse_string(s: str) -> str:
    """
    This function takes a string as input and returns the reversed string.
    It utilizes Python's slicing mechanism to achieve the reversal.
    """
    return s[::-1]
		

Код тСхничСски ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ, Π½ΠΎ выглядит слишком Π·Π°ΡƒΠΌΠ½ΠΎ. ЧСловСчСский ΠΎΡ‚Π²Π΅Ρ‚ скорСС выглядСл Π±Ρ‹ Ρ‚Π°ΠΊ:

			return s[::-1]  # ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΈ понятно
		

Или

			''.join(reversed(s))  # Если Π²Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ это Π±Ρ‹Π» ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€
		

Π›ΡŽΠ΄ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠΈΡˆΡƒΡ‚ ΠΏΡ€ΠΎΡ‰Π΅ ΠΈ Π±Π΅Π· Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π².

AI-ΠΊΠΎΠ΄ Π² legacy-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…: «быстро сгСнСрили, Π° ΠΏΠΎΡ‚ΠΎΠΌ Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ разобрался»

AI ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ быстро Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ, Π½ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° это оборачиваСтся ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ для Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Π² legacy-ΠΊΠΎΠ΄Π΅ ΡƒΠΆΠ΅ Π½Π°Ρ‡Π°Π»ΠΈ ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΈΡ… сгСнСрировал AI, Π° Π°Π²Ρ‚ΠΎΡ€ ΡƒΡˆΠ΅Π» ΠΈΠ· ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (надССмся, Π½Π΅ ΠΆΠΈΠ·Π°).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Π’Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ Π² ΠΊΠΎΠ΄Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая Π²Ρ€ΠΎΠ΄Π΅ Π±Ρ‹ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚, Π½ΠΎ написана Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ Π΅Π΅ Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚:

			function processData(input) {
    return input.split('').map((char, index) => 
        String.fromCharCode(char.charCodeAt(0) ^ (index % 2 ? 5 : 9))
    ).join('');
}
		

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Π½Π΅Ρ‚, названия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½Ρ‹Π΅. ΠžΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ΡΡ, это Π±Ρ‹Π»ΠΎ быстроС AI-Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ, Π½ΠΎ Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ Π·Π½Π°Π», Ρ‡Ρ‚ΠΎ Ρ‚ΡƒΡ‚ XOR с Ρ‡Π΅Ρ€Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈΡΡ ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ.

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Ρ‚Ρ€Π΅Π²ΠΎΠΆΠ½Ρ‹ΠΉ сигнал β€” Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ выглядят слишком ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎ, Π½ΠΎ ΠΏΠ»ΠΎΡ…ΠΎ Π²ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. НапримСр, Π² ΠΊΠΎΠ΄Π΅ Π½Π° C# встрСчаСтся слоТная рСализация сортировки, хотя Π² .NET ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ встроСнныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Π΄Π΅Π»Π°ΡŽΡ‰ΠΈΠ΅ Ρ‚ΠΎ ΠΆΠ΅ самоС.

Π˜Π½Ρ‚Π΅Ρ€Π²ΡŒΡŽ ΠΈ тСстовыС задания: ΠΊΠ°ΠΊ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚ΡŒ, Ρ€Π΅ΡˆΠ°Π» Π»ΠΈ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ сам ΠΈΠ»ΠΈ просто скормил Π·Π°Π΄Π°Ρ‡Ρƒ нСйросСти?

Π‘ ростом AI-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° собСсСдованиях всё Ρ‡Π°Ρ‰Π΅ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ приносят Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈΠ· ChatGPT. Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»ΠΈ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ писал ΠΊΠΎΠ΄ сам, ΠΈΠ»ΠΈ просто скопировал Π±Π΅Π· понимания.

Как Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Ρ‚ΡŒ AI-ΠΊΠΎΠ΄ Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ:

  • ΠšΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ нСстандартныС ΠΈΠ»ΠΈ слишком Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ конструкции, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅Π΄ΠΊΠΎ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ Π² индустрии;
  • Π’ ΠΊΠΎΠ΄Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π², Π±ΡƒΠ΄Ρ‚ΠΎ ΠΈΡ… писал ΡƒΡ‡Π΅Π±Π½ΠΈΠΊ;
  • ΠšΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ использовал ΠΈΠΌΠ΅Π½Π½ΠΎ это Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅;
  • Π’ ΠΊΠΎΠ΄Π΅ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅ ΠΈΠ»ΠΈ ΠΌΠ°Π»ΠΎΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Π’Ρ‹ Π΄Π°Π΅Ρ‚Π΅ Ρ‚Π΅ΡΡ‚ΠΎΠ²ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ: Β«ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ для поиска всСх простых чисСл Π΄ΠΎ NΒ».

AI-ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ приносит это:

			def is_prime(n: int) -> bool:
    """
    This function checks if a given number is a prime number.
    A prime number is a number greater than 1 that has no divisors other than 1 and itself.
    """
    if n < 2:
        return False
    for i in range(2, int(n ** 0.5) + 1):
        if n % i == 0:
            return False
    return True

def find_primes(n: int) -> list:
    """
    This function returns a list of all prime numbers up to a given limit.
    """
    return [x for x in range(2, n + 1) if is_prime(x)]
		

Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ всё ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, Π½ΠΎ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ, скорСС всСго, объяснил Π±Ρ‹ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡ‰Π΅ ΠΈ Π±Π΅Π· Ρ‚Π°ΠΊΠΈΡ… Π·Π°ΡƒΠΌΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π².

Как ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚Π°? Π›ΡƒΡ‡ΡˆΠΈΠΉ способ β€” ΠΏΠΎΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄. Если ΠΎΠ½ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ строчку ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΎΠ½, скорСС всСго, просто скопировал ΠΎΡ‚Π²Π΅Ρ‚ ΠΈΠ· AI.

Π¨ΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ°: 6 ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠ², Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ написан AI

AI-ΠΊΠΎΠ΄ часто выглядит идСально с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния синтаксиса, Π½ΠΎ Π΅Π³ΠΎ Π²Ρ‹Π΄Π°Ρ‘Ρ‚ ΡΡ‚ΠΈΠ»ΡŒ, структура ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ нССстСствСнныС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. Π Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΡˆΠ΅ΡΡ‚ΡŒ Π³Π»Π°Π²Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ быстро ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ Π²Π°ΠΌΠΈ ΠΊΠΎΠ΄ ΠΎΡ‚ нСйросСти.

Блишком Π°ΠΊΠ°Π΄Π΅ΠΌΠΈΡ‡Π½Ρ‹ΠΉ ΡΡ‚ΠΈΠ»ΡŒ

AI часто ΠΏΠΈΡˆΠ΅Ρ‚ ΠΊΠΎΠ΄ Ρ‚Π°ΠΊ, Π±ΡƒΠ΄Ρ‚ΠΎ это ΡƒΡ‡Π΅Π±Π½ΠΎΠ΅ пособиС: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ синтаксис, лишниС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚Ρ‹Π΅ опрСдСлСния.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

ΠšΡ‚ΠΎ-Ρ‚ΠΎ просит Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π½Π° Python для поиска максимального значСния Π² спискС. Π§Π΅Π»ΠΎΠ²Π΅ΠΊ Π±Ρ‹ написал Ρ‚Π°ΠΊ:

			max_value = max(numbers)
		

AI ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚:

			def find_max_value(numbers: list) -> int:
    """
    This function iterates through the list of numbers
    and returns the maximum value.
    """
    if not numbers:
        raise ValueError("The input list cannot be empty.")
    
    max_val = numbers[0]
    for num in numbers:
        if num > max_val:
            max_val = num
    return max_val
		

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π½ΠΎ выглядит Ρ‚Π°ΠΊ, словно Π²Ρ‹ΡˆΠ΅Π» ΠΈΠ· ΡƒΡ‡Π΅Π±Π½ΠΈΠΊΠ°.

Π˜Π·Π±Ρ‹Ρ‚ΠΎΡ‡Π½Ρ‹Π΅ ΠΈ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

AI ΠΎΡ‡Π΅Π½ΡŒ Π»ΡŽΠ±ΠΈΡ‚ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Π΅Ρ‰ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ понятны ΠΈ Π±Π΅Π· пояснСний.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

			// Create a variable to store the sum
let sum = 0;

// Iterate through the array
for (let i = 0; i < numbers.length; i++) {
    // Add the current number to sum
    sum += numbers[i];
}
		

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Ρ‚Π°ΠΊ Π½Π΅ ΠΏΠΈΡˆΡƒΡ‚ β€” слишком ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ просто ΠΌΠ΅ΡˆΠ°ΡŽΡ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΠ΄.

НССстСствСнныС ΠΈΠ»ΠΈ ΡˆΠ°Π±Π»ΠΎΠ½Π½Ρ‹Π΅ названия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

AI Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠΎΠ΄ ΠΏΠΎ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ ΠΈ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ слишком ΠΎΠ±Ρ‰ΠΈΠ΅, Π½ΠΎ Β«ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅Β» названия.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

			public class DataProcessor {
    public void processData(List inputData) {
        for (String dataItem : inputData) {
            System.out.println("Processing: " + dataItem);
        }
    }
}
		

Π’ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ скорСС Π½Π°Π·Π²Π°Π» Π±Ρ‹ класс CsvParser ΠΈΠ»ΠΈ LogAnalyzer, Π° Π½Π΅ абстрактный DataProcessor.

НСоптимизированныС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ стандартныС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ

AI ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ вСлосипСд, Π΄Π°ΠΆΠ΅ Ссли Π΅ΡΡ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ΅ стандартноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Запрос: Β«ΠΠ°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ строки Π² список с запятыми».

AI-ΠΊΠΎΠ΄:

			def join_strings(words: list) -> str:
    result = ""
    for i, word in enumerate(words):
        result += word
        if i < len(words) - 1:
            result += ", "
    return result
		

Но Π² Python Π΅ΡΡ‚ΡŒ встроСнный join(), ΠΈ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ написал Π±Ρ‹ просто:

			", ".join(words)
		

Код слишком унивСрсалСн, Π½ΠΎ Π½Π΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ контСкст

AI пытаСтся ΠΏΠΈΡΠ°Ρ‚ΡŒ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Π΄Π°ΠΆΠ΅ Ссли это Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Допустим, Π½ΡƒΠΆΠ½Π° функция, которая складываСт Π΄Π²Π° числа. Π§Π΅Π»ΠΎΠ²Π΅ΠΊ просто сдСлаСт:

			int sum = a + b;
		

AI ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ с ΠΊΡƒΡ‡Π΅ΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ:

			public static int AddNumbers(int a, int b)
{
    if (a < 0 || b < 0)
    {
        throw new ArgumentException("Both numbers should be non-negative.");
    }
    return a + b;
}
		

На Π²ΠΈΠ΄ Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Π½ΠΎ Π·Π°Ρ‡Π΅ΠΌ здСсь ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ числа?

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅ ΠΈΠ»ΠΈ Ρ€Π΅Π΄ΠΊΠΎ примСняСмыС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹

AI ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выглядит Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ, Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΡƒΠΆΠ΅ Π½Π΅Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠ»ΠΈ ΠΌΠ°Π»ΠΎΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Для чтСния Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Python AI ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ:

			file = open("data.txt", "r")
content = file.read()
file.close()
		

Π₯отя ΡƒΠΆΠ΅ Π΄Π°Π²Π½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚:

			with open("data.txt", "r") as file:
    content = file.read()
		

Π’Π°ΠΊ ΠΊΠΎΠ΄ выглядит бСзопаснСС ΠΈ Π½Π΅ оставляСт ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ дСскрипторы.

Π₯отя AI часто ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ, это Π½Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ нСльзя ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ. Наоборот, Π² рядС случаСв нСйросСти ΠΌΠΎΠ³ΡƒΡ‚ Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Π“Π»Π°Π²Π½ΠΎΠ΅ β€” ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Π³Π΄Π΅ AI Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠΎΠΌ, Π° Π³Π΄Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Π²Ρ€Π΅Π΄ΠΈΡ‚ΡŒ. Рассмотрим нСсколько сцСнариСв, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… сгСнСрированный ΠΊΠΎΠ΄ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚.

AI-ΠΊΠΎΠ΄ Π½Π΅ всСгда ΠΏΠ»ΠΎΡ…: ΠΊΠΎΠ³Π΄Π° Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ (ΠΈ Π½ΡƒΠΆΠ½ΠΎ) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ

ГСнСрация шаблонного ΠΊΠΎΠ΄Π° (CRUD-ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, тСсты)

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ часто ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‚ΡΡ ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ. НапримСр, ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ REST API с Π±Π°Π·ΠΎΠ²Ρ‹ΠΌΠΈ CRUD-опСрациями, Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ»ΠΈ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ unit-тСсты.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Допустим, Π½ΡƒΠΆΠ½ΠΎ быстро ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒΡŽ User Π² Node.js + Express. Π§Π΅Π»ΠΎΠ²Π΅ΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΏΠΈΡΠ°Ρ‚ΡŒ стандартныС GET, POST, PUT ΠΈ DELETE, Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ€ΡƒΡ‡ΠΈΡ‚ΡŒ это AI:

			const express = require("express");
const router = express.Router();
const UserController = require("../controllers/userController");

router.get("/", UserController.getAllUsers);
router.get("/:id", UserController.getUserById);
router.post("/", UserController.createUser);
router.put("/:id", UserController.updateUser);
router.delete("/:id", UserController.deleteUser);

module.exports = router;
		

Π’Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ AI, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΡˆΠ°Π±Π»ΠΎΠ½Π½Ρ‹ΠΉ ΠΈ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ слоТной бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΈ.

Когда стоит ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ?

  • ГСнСрация стандартных CRUD-ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ;
  • Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, docker-compose.yml);
  • АвтоматичСскоС написаниС тСстов для Π±Π°Π·ΠΎΠ²Ρ‹Ρ… сцСнариСв.

Автоматизация Ρ€ΡƒΡ‚ΠΈΠ½Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ (гСнСрация SQL-запросов, скрипты для CI/CD)

AI ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ справляСтся с Ρ€ΡƒΡ‚ΠΈΠ½Π½Ρ‹ΠΌΠΈ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Π·Π½Π°Π½ΠΈΠΉ синтаксиса, Π½ΠΎ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ крСативности. НапримСр, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ быстро ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ слоТный SQL-запрос ΠΈΠ»ΠΈ YAML-скрипт для CI/CD.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

НуТно ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ SQL-запрос для получСния списка ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сдСлали Π·Π°ΠΊΠ°Π· Π² послСдниС 30 Π΄Π½Π΅ΠΉ. AI ΠΌΠΎΠΆΠ΅Ρ‚ сразу ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅:

			SELECT customers.name, customers.email
FROM customers
JOIN orders ON customers.id = orders.customer_id
WHERE orders.order_date >= NOW() - INTERVAL '30 days';
		

Π’Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ запросы нСслоТно, Π½ΠΎ Ссли ΠΈΡ… ΠΌΠ½ΠΎΠ³ΠΎ, AI ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ ΠΊΡƒΡ‡Ρƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Когда стоит ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ?

  • НаписаниС SQL-запросов Π½Π° основС простых описаний;
  • ГСнСрация ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ CI/CD (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, .gitlab-ci.yml ΠΈΠ»ΠΈ Jenkinsfile);
  • Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… скриптов для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, bash-скриптов для дСплоя).

ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании boilerplate-ΠΊΠΎΠ΄Π° ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ

Boilerplate β€” ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΡƒΠΆΠ΅Π½ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния, Π½ΠΎ Π½Π΅ нСсСт ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΈ. Π­Ρ‚ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΡˆΠ°Π±Π»ΠΎΠ½Π½Ρ‹Π΅ классы, интСрфСйсы, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΈ Ρ‚. Π΄.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

AI ΠΌΠΎΠΆΠ΅Ρ‚ быстро ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ интСрфСйс для TypeScript Π½Π° основС JSON-Π΄Π°Π½Π½Ρ‹Ρ…. Π’Π°ΠΊ:

			{
  "id": 123,
  "name": "John Doe",
  "email": "john@example.com",
  "isActive": true
}
		

AI-сгСнСрированный TypeScript-интСрфСйс:

			interface User {
    id: number;
    name: string;
    email: string;
    isActive: boolean;
}
		

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, AI ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ с Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. НапримСр, Ссли Π½Π΅Ρ‚ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π², ΠΎΠ½ ΠΈΡ… Π΄ΠΎΠ±Π°Π²ΠΈΡ‚, Ρ‡Ρ‚ΠΎ особСнно ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ‡ΡƒΠΆΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.

Когда стоит ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ?

  • НаписаниС интСрфСйсов ΠΈ Ρ‚ΠΈΠΏΠΎΠ² для TypeScript ΠΈΠ»ΠΈ Java;
  • ГСнСрация ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΈ логирования;
  • АвтоматичСскоС созданиС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для API Π² OpenAPI/Swagger).

ГСнСрация ΠΈΠ΄Π΅ΠΉ, Π½ΠΎ Π½Π΅ слСпоС ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (AI ΠΊΠ°ΠΊ ассистСнт, Π° Π½Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ)

AI ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΊΠΎΠ΄Π΅, Π½ΠΎ ΠΈ Π½Π° этапС обсуТдСния Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ΠΈΠ»ΠΈ поиска Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ. НапримСр, Ссли Π΅ΡΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ AI, ΠΊΠ°ΠΊΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Ρ…ΠΎΡ‡Π΅Ρ‚ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ поиск Π² ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠΌ массивС Π΄Π°Π½Π½Ρ‹Ρ…. AI ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ нСсколько Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² (B-Π΄Π΅Ρ€Π΅Π²ΠΎ, Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ поиск, Ρ…Π΅Ρˆ-Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹), Π° ΡƒΠΆΠ΅ сам программист Π²Ρ‹Π±Π΅Ρ€Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ Π»ΡƒΡ‡ΡˆΠ΅.

Когда стоит ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ?

  • Когда Π½ΡƒΠΆΠ½Π° структурированная ΠΏΠΎΠ΄Π±ΠΎΡ€ΠΊΠ° ΠΈΠ΄Π΅ΠΉ.
  • ΠŸΡ€ΠΈ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ Π½ΠΎΠ²Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ β€” AI ΠΌΠΎΠΆΠ΅Ρ‚ быстро ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹.
  • ΠŸΡ€ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ ΠΈΡ… ΠΏΠ»ΡŽΡΡ‹ ΠΈ минусы.
AI β€” Π½Π΅ Π·Π°ΠΌΠ΅Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Π° инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡƒΡΠΊΠΎΡ€ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ. Π•Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ€ΡƒΡ‚ΠΈΠ½Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡, Π½ΠΎ всСгда с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ΠΌ контСкста.

Как Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ быстро ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ AI-ΠΊΠΎΠ΄?

ПониманиС Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ Π²Π°ΠΌΠΈ ΠΊΠΎΠ΄, сгСнСрированный AI, β€” Π½Π΅ просто Π½Π°Π²Ρ‹ΠΊ, Π° ваТная Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ Π³ΠΈΠ³ΠΈΠ΅Π½Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π²Π°ΠΆΠ½ΠΎ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ быстро ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΎΡ‚ чСловСчСского. Π Π°Π·Π±Π΅Ρ€Π΅ΠΌ нСсколько стратСгий.

Π—Π°Π΄Π°Π²Π°ΠΉΡ‚Π΅ сСбС ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ вопросы

Когда Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΊΠΎΠ΄ (Π² PR, Π½Π° Ρ„ΠΎΡ€ΡƒΠΌΠ΅, Π² тСстовом Π·Π°Π΄Π°Π½ΠΈΠΈ), ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ мыслСнно ΠΏΡ€ΠΎΠΉΡ‚ΠΈΡΡŒ ΠΏΠΎ этим вопросам:

  • Π›ΠΎΠ³ΠΈΡ‡Π½Π° Π»ΠΈ структура? Если ΠΊΠΎΠ΄ выглядит идСально ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ, Π½ΠΎ ΠΏΡ€ΠΈ этом содСрТит Π½Π΅Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ ΠΈΠ»ΠΈ ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½Ρ‹Π΅ конструкции, это ΠΏΠΎΠ΄ΠΎΠ·Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ.
  • Π•ΡΡ‚ΡŒ Π»ΠΈ повторСния? AI Π»ΡŽΠ±ΠΈΡ‚ Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ куски ΠΊΠΎΠ΄Π°, Π΄Π°ΠΆΠ΅ Ссли ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.
  • РСализация слишком акадСмичная? Если ΠΊΠΎΠ΄ выглядит Ρ‚Π°ΠΊ, Π±ΡƒΠ΄Ρ‚ΠΎ Π΅Π³ΠΎ писал профСссор ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… Π½Π°ΡƒΠΊ, Π½ΠΎ Π±Π΅Π· ΡƒΡ‡Π΅Ρ‚Π° Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ использования β€” Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΅Π³ΠΎ сгСнСрировал AI.
  • Код соотвСтствуСт Π·Π°Π΄Π°Ρ‡Π΅ ΠΈΠ»ΠΈ просто «выглядит ΡƒΠΌΠ½ΠΎΒ»? Иногда AI Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ слишком слоТСн для простой Π·Π°Π΄Π°Ρ‡ΠΈ. НапримСр, вмСсто for-Ρ†ΠΈΠΊΠ»Π° ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ рСкурсивный Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π±Π΅Π· Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ нСобходимости.

Π‘Ρ€Π°Π²Π½ΠΈΠ²Π°ΠΉΡ‚Π΅ с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΈΠ· Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½-ΠΊΠΎΠ΄Π°

Если Π²Π°ΠΌ каТСтся, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ написан AI, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΈΠ· ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Π½Π°Π΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π²Ρ‹ ΠΈΠ»ΠΈ ваши ΠΊΠΎΠ»Π»Π΅Π³ΠΈ. Настоящий ΠΊΠΎΠ΄ часто:

  • содСрТит «слСды» Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (спСцифичныС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Ρ‹, соглашСния ΠΏΠΎ имСнованию, использованиС Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… ΡƒΡ‚ΠΈΠ»ΠΈΡ‚),
  • ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ Π½Π° Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ΅ использованиС, Π° Π½Π΅ Β«ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ синтаксис»,
  • ΠΈΠΌΠ΅Π΅Ρ‚ свою Π»ΠΎΠ³ΠΈΠΊΡƒ форматирования (Π½Π΅ всСгда акадСмичСски ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ).

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠΉΡ‚Π΅ ΠΊΠΎΠ΄ Π½Π° ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΈ нССстСствСнныС конструкции

AI часто Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ, Π½ΠΎ содСрТит странныС ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. НапримСр:

  • НСнуТныС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ (if True:);
  • Π›ΠΈΡˆΠ½ΠΈΠ΅ константы вмСсто прямых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ;
  • ЧрСзмСрная типизация Π² языках, Π³Π΄Π΅ это Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ;
  • Π‘Ρ‚Ρ€Π°Π½Π½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Ρ‹, ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ встроСнныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹.
ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ AI-ΠΊΠΎΠ΄ β€” Π½Π°Π²Ρ‹ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ развиваСтся с ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ. Π“Π»Π°Π²Π½ΠΎΠ΅ β€” ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π»ΠΎΠ³ΠΈΠΊΡƒ, ΠΎΡΠΌΡ‹ΡΠ»Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΈ соотвСтствиС Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ сцСнариям использования. Если ΠΊΠΎΠ΄ каТСтся слишком ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ, Π½ΠΎ ΠΏΡ€ΠΈ этом странным β€” скорСС всСго, Π΅Π³ΠΎ написал Π½Π΅ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ.
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ