Попробовал этот ваш Cursor. Мне прям несколько человек независимо советовали.
Ну, что могу сказать, да, вполне впечатляет. Точнее так: автокомплит хоть и хитрый, но лично у меня восторга не вызвал. Иногда угадывает очень круто, иногда очень плохо. А вот режим агента — это да. Я бы сказал, что это новый значительный качественный шаг в программировании. Большим моделям как раз и не хватало какой-то пристройки, которая позволяет им не только выдавать текст, но и совершать действия.
У вас как бы под рукой есть джун, который хорошо знает теорию и делает всё очень быстро. Он не понимает, зачем, не умеет проектировать, склонен к шаблонным решениям. Но всё равно теперь ваша работа состоит в том, чтобы аккуратно объяснять ему задачу обычной человеческой речью (в том числе на русском языке) и указывать на ошибки. Вся утомительная, но когнитивно простая рутина теперь делается за секунды вместо десятков минут. А рутины в разработке очень много, особенно если это продуктовая или заказная разработка на многословном энтерпрайз языке.
Стоит сказать, что Cursor, конечно, как и все форки VS Code, остаётся просто текстовым редактором, и ощущается соответственно. Если вы пишете настоящую программу на серьёзном языке, а не текстовый файл, то для надёжной работы вам всё равно параллельно нужно открыть взрослую IDE. Тем не менее, Cursor умеет читать структуру каталогов и учитывать устройство вашего проекта, а к контексту запроса в LLM можно вручную присоединять любое подмножество файлов.
Можно ли назвать это явным шагом к исчезновению работы программиста? Я искал информацию о том, какие профессии были уничтожены автоматизацией, и наткнулся на статью, где упоминались кучер и колёсник (тот, кто делал колёса для карет). Один из популярных комментариев: «Буквально вчера заказывал кучера, потому что свою карету отдал колесникам на ремонт помятого диска». Но это шутки, конечно. А так, есть профессии, где увеличение степени автоматизации в конце концов полностью исключает человека (расстановщик кеглей в боулинге, телефонистка, фонарщик), а есть те, где автоматика просто упрощает людям жизнь и помогает выполнять свою работу эффективнее (компьютер помогает математикам, экскаватор строителям, телескоп астрономам). В чём же отличие первых и вторых? Я бы сказал, что у вторых профессий есть факторы непредсказуемости, вызванные необходимостью создания нового. В расстановке кеглей новых задач не появляется, как и в переключении телефонных линий. А в программировании появляется, и вот почему: у человечества возникают как новые процессы, требующие автоматизации, так и видоизменяются старые. И это, по всей видимости, бесконечный процесс. Да, разумеется, сильный ИИ с сознанием и способностью принимать решения будет уметь всё, что умеет человек, и даже больше. Но до этой технологии нам далеко, и нейросети не являются тропинкой к ней.
Другое дело, что джуны теперь не нужны, простите. Там, где раньше требовалась команда из сеньора, пары мидлов и пары джунов, теперь справится один сеньор, ну может ещё с одним мидлом, и всё. Советую всем начинающим программистам учить не то, как делать, а то, почему нужно делать именно так. Архитектуру, паттерны, принципы, лучшие практики. Тогда в уходящий айти-поезд ещё можно заскочить.
#dev
• Нашел интересный ресурс, который содержит информацию об основных веб-уязвимостях. Особенность данной платформы в том, что каждый из перечисленных методов можно выполнить самостоятельно, следуя подсказкам и примерам. А еще каждый пример является интерактивным, поэтому вам будет легче воспринимать материал и практиковаться. Содержание следующее:
➡SQL Injection;
➡Cross-Site Scripting;
➡Command Execution;
➡Clickjacking;
➡Cross-Site Request Forgery;
➡Directory Traversal;
➡Reflected XSS;
➡DOM-based XSS;
➡File Upload Vulnerabilities;
➡Broken Access Control;
➡Open Redirects;
➡Unencrypted Communication;
➡User Enumeration;
➡Information Leakage;
➡Password Mismanagement;
➡Privilege Escalation;
➡Session Fixation;
➡Weak Session IDs;
➡XML Bombs;
➡XML External Entities;
➡Denial of Service Attacks;
➡Email Spoofing;
➡Malvertising;
➡Lax Security Settings;
➡Toxic Dependencies;
➡Logging and Monitoring;
➡Buffer Overflows;
➡Server-Side Request Forgery;
➡Host Header Poisoning;
➡Insecure Design;
➡Mass Assignment;
➡Prototype Pollution;
➡Regex Injection;
➡Remote Code Execution;
➡Cross-Site Script Inclusion;
➡Downgrade Attacks;
➡DNS Poisoning;
➡SSL Stripping;
➡Subdomain Squatting.
➡️https://www.hacksplaining.com/lessons
#web
🔴 Уязвимости аутентификации | Безопасность web приложений.
• В этом ролике подробно описаны механизмы аутентификации, чем опасны их уязвимости и как можно их защитить. Также автор рассказывает, как работают механизмы аутентификации и разбирает на примерах прохождение лаб на платформе — https://portswigger.net/web-security
• 0:00 — уязвимости аутентификации;
• 0:22 — аутентификация это / типы аутентификации;
• 1:30 — как возникают уязвимости / последствия уязвимостей;
• 2:16 — как используются уязвимости на практике / Лаба 1;
• 6:18 — как используются уязвимости на практике / Лаба 2;
• 8:45 — как защитить механизмы аутентификации;
• 10:32 — где проходить лаборатории.
➡️https://youtu.be/lWYJ1vD9OEM
#web