Эталонная модель OSI
Продолжаем рассматривать модель OSI и переходим к самым интересным, верхним уровням.
🔹 Уровень 5 – сеансовый. Отвечает за установку, управление и завершение сеансов связи между приложениями. Также обеспечивает синхронизацию и управление диалогом и восстановление сеанса в случае его обрыва.
Казалось бы, достаточно просто, но отдельных протоколов сеансового уровня придется поискать днем с огнем. Обычно здесь мы можем увидеть самые различные протоколы, традиционно считаемые протоколами иных уровней.
Это прикладные RDP, SMB, SIP, RPC, канальный PPP и использующие его PPTP или L2TP. Также здесь может оказаться TLS или даже НТТP, хотя у последнего сессии «ненастоящие».
Почему так? Потому что OSI – это абстракция, а реальные протоколы – это реальные протоколы, которые работают по-своему и без оглядки на эту модель. Поэтому здесь очень многое зависит от контекста и угла, под которым мы рассматриваем данный вопрос.
В целом – если протокол занимается созданием, управлением и завершением сеансов – то этот протокол работает на сеансовом уровне OSI.
🔹 Уровень 6 – представления. Отвечает за преобразование данных, получаемых с самого верхнего уровня L7 или предоставляемых ему. Сюда относится преобразование форматов, сжатие, кодирование и шифрование, если оно не связано с защитой передаваемых данных на сетевом или транспортном уровне.
Кодируем видео с рабочего стола для конференции – это L6, звук – тоже сюда же. Сжатие на лету HTTP-содержимого – тоже к нам. И в качестве протоколов шестого уровня у нас полноценно выступают алгоритмы сжатия и медиакодеки.
А вот с шифрованием все очень не просто. Описание шестого уровня содержит оговорку, что шифрование считается работающим на L6 только если шифруются данные самого приложения и это не связано с защитой канала передачи данных.
А вот тут начинаются еще более веселые приключения. Например, приложение, прежде чем отправить некий протокольный блок данных, который, скажем содержит данные о начисленной зарплате решает его зашифровать. Это шестой уровень, однозначно.
А вот если оно отправило этот блок как есть через защищенный канал IPsec или TLS, то это ни разу ни шестой, а третий или четвертый.
И тут снова всплывает контекст и угол обзора. Вот берем, например, классический HTTPS, не касаясь его современных вариаций.
Если посмотреть под углом, что в TLS заворачивается только HTTP содержимое и ничего больше, то можно отправить TLS на шестой уровень.
А если вспомним, что перед тем, как начать заворачивать HTTP-содержимое TLS установил соединение (уровень 5 – сеансовый) и предоставляет HTTP-защищенный канал, то он становится протоколом транспортного уровня.
А если… И таких если может быть очень много. Поэтому всегда помним, что OSI – это эталонная модель, помогающая понять принцип сетевого взаимодействия, но красиво наложить на нее современные протоколы не получится, это действо сродни натягивания совы на глобус.
🔹 Уровень 7 – прикладной, он же уровень приложений. Обеспечивает взаимодействие с сетью приложений операционной системы. И позволяет им общаться через сеть «понятным» языком.
Сюда относятся все протоколы, с которыми работают конечные приложения: браузер, почтовый клиент, сетевой плеер, клиент удаленного доступа. Это HTTP, FTP, SMTP, POP3, IMAP, RDP, SMB и т.д. и т.п.
Но здесь тоже далеко не все так просто, тот же RDP или SMB кроме всего прочего еще устанавливает и управляет сеансами, занимается кодированием и преобразованием данных от приложения, т.е. равномерно распределяет свои функции между L5 -L7.
Точно также, как и на предыдущих уровнях достаточно сложно выделить протоколы именно прикладного уровня, каждый из них может быть свободно представлен на нескольких уровнях, что модель OSI не запрещает.
Что касается самой модели и ее стройности, то на этих уровнях она сильно страдает. Но это удел любой теоретической абстракции. В тоже время OSI надо знать и понимать, так как по ее образу и подобию построены многие иные модели, которые как раз используются в реальной жизни.
Продолжаем рассматривать модель OSI и переходим к самым интересным, верхним уровням.
🔹 Уровень 5 – сеансовый. Отвечает за установку, управление и завершение сеансов связи между приложениями. Также обеспечивает синхронизацию и управление диалогом и восстановление сеанса в случае его обрыва.
Казалось бы, достаточно просто, но отдельных протоколов сеансового уровня придется поискать днем с огнем. Обычно здесь мы можем увидеть самые различные протоколы, традиционно считаемые протоколами иных уровней.
Это прикладные RDP, SMB, SIP, RPC, канальный PPP и использующие его PPTP или L2TP. Также здесь может оказаться TLS или даже НТТP, хотя у последнего сессии «ненастоящие».
Почему так? Потому что OSI – это абстракция, а реальные протоколы – это реальные протоколы, которые работают по-своему и без оглядки на эту модель. Поэтому здесь очень многое зависит от контекста и угла, под которым мы рассматриваем данный вопрос.
В целом – если протокол занимается созданием, управлением и завершением сеансов – то этот протокол работает на сеансовом уровне OSI.
🔹 Уровень 6 – представления. Отвечает за преобразование данных, получаемых с самого верхнего уровня L7 или предоставляемых ему. Сюда относится преобразование форматов, сжатие, кодирование и шифрование, если оно не связано с защитой передаваемых данных на сетевом или транспортном уровне.
Кодируем видео с рабочего стола для конференции – это L6, звук – тоже сюда же. Сжатие на лету HTTP-содержимого – тоже к нам. И в качестве протоколов шестого уровня у нас полноценно выступают алгоритмы сжатия и медиакодеки.
А вот с шифрованием все очень не просто. Описание шестого уровня содержит оговорку, что шифрование считается работающим на L6 только если шифруются данные самого приложения и это не связано с защитой канала передачи данных.
А вот тут начинаются еще более веселые приключения. Например, приложение, прежде чем отправить некий протокольный блок данных, который, скажем содержит данные о начисленной зарплате решает его зашифровать. Это шестой уровень, однозначно.
А вот если оно отправило этот блок как есть через защищенный канал IPsec или TLS, то это ни разу ни шестой, а третий или четвертый.
И тут снова всплывает контекст и угол обзора. Вот берем, например, классический HTTPS, не касаясь его современных вариаций.
Если посмотреть под углом, что в TLS заворачивается только HTTP содержимое и ничего больше, то можно отправить TLS на шестой уровень.
А если вспомним, что перед тем, как начать заворачивать HTTP-содержимое TLS установил соединение (уровень 5 – сеансовый) и предоставляет HTTP-защищенный канал, то он становится протоколом транспортного уровня.
А если… И таких если может быть очень много. Поэтому всегда помним, что OSI – это эталонная модель, помогающая понять принцип сетевого взаимодействия, но красиво наложить на нее современные протоколы не получится, это действо сродни натягивания совы на глобус.
🔹 Уровень 7 – прикладной, он же уровень приложений. Обеспечивает взаимодействие с сетью приложений операционной системы. И позволяет им общаться через сеть «понятным» языком.
Сюда относятся все протоколы, с которыми работают конечные приложения: браузер, почтовый клиент, сетевой плеер, клиент удаленного доступа. Это HTTP, FTP, SMTP, POP3, IMAP, RDP, SMB и т.д. и т.п.
Но здесь тоже далеко не все так просто, тот же RDP или SMB кроме всего прочего еще устанавливает и управляет сеансами, занимается кодированием и преобразованием данных от приложения, т.е. равномерно распределяет свои функции между L5 -L7.
Точно также, как и на предыдущих уровнях достаточно сложно выделить протоколы именно прикладного уровня, каждый из них может быть свободно представлен на нескольких уровнях, что модель OSI не запрещает.
Что касается самой модели и ее стройности, то на этих уровнях она сильно страдает. Но это удел любой теоретической абстракции. В тоже время OSI надо знать и понимать, так как по ее образу и подобию построены многие иные модели, которые как раз используются в реальной жизни.
👍30🔥1🤮1🥱1
Как читать таблицу маршрутизации в Windows
Как показывает практика, маршрутизация - одна из наиболее сложных тем для начинающих администраторов. Хотя, казалось бы, берем таблицу маршрутов, там все написано.
Но не все умеют правильно читать и понимать там написанное.
Следует запомнить несколько простых правил.
1️⃣ Сначала в таблице ищется маршрут с самой узкой маской. Минимальная маска - 255.255.255.255, максимальная - 0.0.0.0.
2️⃣ Если маршрутов несколько, то берется маршрут с самой маленькой метрикой.
3️⃣ После того, как маршрут найден, следует определить интерфейс выхода, который должен быть расположен в одной из непосредственно присоединенных сетей, т.е. быть доступен на канальном уровне.
Посмотрим на картинку внизу. Если мы хотим пропинговать сами себя, т.е. 192.168.233.154, то для этого сразу будет найден кратчайший маршрут в непосредственно присоединенной сети (зеленый). On-link обозначает непосредственно присоединенную сеть.
Если мы хотим обратиться к ПК из своего сегмента. то нам подойдет маршрут с более широкой маской /24 (желтый).
А если ни одного подходящего маршрута нет? Тогда нам следует использовать маршрут по умолчанию или нулевой маршрут 0.0.0.0/0.
Смотрим, таких маршрутов сразу два. Какой из них использовать? Тот у кого меньше метрика, т.е. на интерфейса 10.20.0.101 Он тоже доступен без маршрутизации.
Если же этого маршрута не будет (отключим VPN), то заработает верхний маршрут с метрикой 25. Но там стоит адрес шлюза - 192.168.233.2. Поэтому идем дальше и ищем маршрут уже для этого адреса.
Поиск такого маршрута производится только среди непосредственно присоединенных сетей и очень скоро мы снова находим нужный маршрут, который помечен желтым.
☝️ Поэтому всегда, составляя и анализируя маршруты, помним - любой маршрут должен приводить в непосредственно присоединенную сеть, иначе он работать не будет.
Почему? Да потому что IP - это 3-й уровень модели OSI - сетевой и нельзя просто так передавать IP-пакеты между ПК. Для того, чтобы это сделать, мы должны опуститься на канальный уровень и вложить их в датафреймы.
А потом еще ниже, на физический, но так глубоко мы копать не будем.
А канальный уровень - это непосредственно присоединенная сеть и только так. Это же ответ на многие вопросы типа: я написал маршрут, а он не работает. В этом случае всегда смотрим, а можем ли мы по нему достичь непосредственно присоединенной сети или нет.
Как показывает практика, маршрутизация - одна из наиболее сложных тем для начинающих администраторов. Хотя, казалось бы, берем таблицу маршрутов, там все написано.
Но не все умеют правильно читать и понимать там написанное.
Следует запомнить несколько простых правил.
1️⃣ Сначала в таблице ищется маршрут с самой узкой маской. Минимальная маска - 255.255.255.255, максимальная - 0.0.0.0.
2️⃣ Если маршрутов несколько, то берется маршрут с самой маленькой метрикой.
3️⃣ После того, как маршрут найден, следует определить интерфейс выхода, который должен быть расположен в одной из непосредственно присоединенных сетей, т.е. быть доступен на канальном уровне.
Посмотрим на картинку внизу. Если мы хотим пропинговать сами себя, т.е. 192.168.233.154, то для этого сразу будет найден кратчайший маршрут в непосредственно присоединенной сети (зеленый). On-link обозначает непосредственно присоединенную сеть.
Если мы хотим обратиться к ПК из своего сегмента. то нам подойдет маршрут с более широкой маской /24 (желтый).
А если ни одного подходящего маршрута нет? Тогда нам следует использовать маршрут по умолчанию или нулевой маршрут 0.0.0.0/0.
Смотрим, таких маршрутов сразу два. Какой из них использовать? Тот у кого меньше метрика, т.е. на интерфейса 10.20.0.101 Он тоже доступен без маршрутизации.
Если же этого маршрута не будет (отключим VPN), то заработает верхний маршрут с метрикой 25. Но там стоит адрес шлюза - 192.168.233.2. Поэтому идем дальше и ищем маршрут уже для этого адреса.
Поиск такого маршрута производится только среди непосредственно присоединенных сетей и очень скоро мы снова находим нужный маршрут, который помечен желтым.
☝️ Поэтому всегда, составляя и анализируя маршруты, помним - любой маршрут должен приводить в непосредственно присоединенную сеть, иначе он работать не будет.
Почему? Да потому что IP - это 3-й уровень модели OSI - сетевой и нельзя просто так передавать IP-пакеты между ПК. Для того, чтобы это сделать, мы должны опуститься на канальный уровень и вложить их в датафреймы.
А потом еще ниже, на физический, но так глубоко мы копать не будем.
А канальный уровень - это непосредственно присоединенная сеть и только так. Это же ответ на многие вопросы типа: я написал маршрут, а он не работает. В этом случае всегда смотрим, а можем ли мы по нему достичь непосредственно присоединенной сети или нет.
👍35❤7🤮1
gf_УФНС_о_поддержке_ФФД_в_ККТ_АВ_нб2025.pdf
283.9 KB
Получил сегодня по официальным каналам письмо ФНС, которое полностью подтверждает все изложенное во вчерашней заметке. А именно:
💬 Изменения в Приказе о ФФД носят ограниченный характер, не требуют масштабных доработок. Более того, большая часть новых тегов, предназначенных для записи информации о безналичных транзакциях в кассовый чек, может не включаться в состав фискальных данных в данной редакции Приказа о ФФД.
Т.е. теги 1234-1238 и 1082 формировать и передавать не нужно. Поэтому вам нужно только прошить кассу и обновить драйвер ККТ. Исключения касаются тех, кто торгует дистанционно, там потребуется дополнительно формировать и передавать 1125, 1187 и 1008.
Также плохая новость для тех, кто думал пересидеть, пересидеть не получится, снова цитирую:
💬 Учитывая изложенное, ФНС России сообщает об отсутствии весомых причин для переноса срока вступления в силу изменений в Приказ о ФФД и необходимости неукоснительного соблюдения его положений с 01.09.2025. Указанные изменения необходимо поддержать до 01.09.2025 и с этой даты исполнять обновленные требования Приказа о ФФД.
Поэтому, кто не успел – времени еще до понедельника, а работы не особо много. Иначе есть вполне реальные риски попасть под штрафные санкции.
💬 Изменения в Приказе о ФФД носят ограниченный характер, не требуют масштабных доработок. Более того, большая часть новых тегов, предназначенных для записи информации о безналичных транзакциях в кассовый чек, может не включаться в состав фискальных данных в данной редакции Приказа о ФФД.
Т.е. теги 1234-1238 и 1082 формировать и передавать не нужно. Поэтому вам нужно только прошить кассу и обновить драйвер ККТ. Исключения касаются тех, кто торгует дистанционно, там потребуется дополнительно формировать и передавать 1125, 1187 и 1008.
Также плохая новость для тех, кто думал пересидеть, пересидеть не получится, снова цитирую:
💬 Учитывая изложенное, ФНС России сообщает об отсутствии весомых причин для переноса срока вступления в силу изменений в Приказ о ФФД и необходимости неукоснительного соблюдения его положений с 01.09.2025. Указанные изменения необходимо поддержать до 01.09.2025 и с этой даты исполнять обновленные требования Приказа о ФФД.
Поэтому, кто не успел – времени еще до понедельника, а работы не особо много. Иначе есть вполне реальные риски попасть под штрафные санкции.
👌9❤1
Установка MikroTik RouterOS на VDS/VPS
Cloud Hosted Router - специальный продукт компании Mikrotik позволяющий установить MikroTik RouterOS практически на любую виртуальную машину.
Однако не все хостеры позволяют загружать собственные образы, но это не страшно, RouterOS можно поставить на любой VPS с Linux, о чем мы и расскажем в данной статье.
Также уделим отдельное внимание UEFI-системам и предварительной настройке образа, позволяющей избежать потенциальных проблем с безопасностью и уменьшить количество ручной работы, а также сразу получить требуемую конфигурацию RouterOS.
https://interface31.ru/tech_it/2024/11/ustanovka-mikrotik-routeros-na-vdsvps.html
Cloud Hosted Router - специальный продукт компании Mikrotik позволяющий установить MikroTik RouterOS практически на любую виртуальную машину.
Однако не все хостеры позволяют загружать собственные образы, но это не страшно, RouterOS можно поставить на любой VPS с Linux, о чем мы и расскажем в данной статье.
Также уделим отдельное внимание UEFI-системам и предварительной настройке образа, позволяющей избежать потенциальных проблем с безопасностью и уменьшить количество ручной работы, а также сразу получить требуемую конфигурацию RouterOS.
https://interface31.ru/tech_it/2024/11/ustanovka-mikrotik-routeros-na-vdsvps.html
2👍28❤1
Настройка файлового сервера ksmbd на платформе Debian / Ubuntu
Долгое время для организации файлового сервера, работающего по протоколу SMB, в Linux не было альтернативы Samba, но с недавних пор ситуация изменилась.
Начиная с ядра 5.15 в Linux появился новый модуль ядра - ksmbd - реализующий функции SMB-сервера. В отличии от Samba, которая имеет кроме файлового сервера широкий набор дополнительных функций, ksmbd, наоборот, только файловый сервер, простой и нетребовательный к ресурсам.
В этой статье мы расскажем, как подключить данный модуль и выполнить первоначальную настройку сервера.
https://interface31.ru/tech_it/2023/06/nastroyka-faylovogo-servera-ksmbd-na-platforme-debian-ubuntu.html
Долгое время для организации файлового сервера, работающего по протоколу SMB, в Linux не было альтернативы Samba, но с недавних пор ситуация изменилась.
Начиная с ядра 5.15 в Linux появился новый модуль ядра - ksmbd - реализующий функции SMB-сервера. В отличии от Samba, которая имеет кроме файлового сервера широкий набор дополнительных функций, ksmbd, наоборот, только файловый сервер, простой и нетребовательный к ресурсам.
В этой статье мы расскажем, как подключить данный модуль и выполнить первоначальную настройку сервера.
https://interface31.ru/tech_it/2023/06/nastroyka-faylovogo-servera-ksmbd-na-platforme-debian-ubuntu.html
👍22🔥4❤1🤔1
💥 Хватит сидеть дома — пора на корт! Если у тебя нет с кем играть — это не проблема. Проблема в том, что ты ещё не в нашем Telegram-канале 😎 👉 Там уже собираются IT-шники, дизайнеры и просто любители тенниса. Матчи, движ, новые друзья — и всё это доступно тебе прямо сейчас.
⚡️ Жми и врывайся
⚡️ Жми и врывайся
❤3
Cursor - новый уровень разработки
Про ИИ и разработку мы уже писали, но тогда мы просто использовали ИИ для написания отдельных фрагментов кода, но многим бы хотелось пойти дальше и отдать под управление нейросети целый проект.
Такая возможность есть, ее предоставляет редактор кода Cursor, на первый взгляд это еще один клон VS Code, и это действительно так, но под капотом у него кроется мощный ИИ ассистент, который используется возможности сразу нескольких нейросетей.
По умолчанию активированы Claude, GPT-5 и Grok, но вы можете включить собственный набор сетей из предложенных или подключить собственные по API.
Что дальше? А дальше возможны различные сценарии. Можно использовать Cursor как обычный редактор кода с умным автодополнением, когда ИИ будет анализировать проект и предлагать вам не просто закончить ввод, а дописать целый участок кода.
Можно выборочно работать с блоками кода по Ctrl + K, вы можете попросить ИИ помощника пояснить код, исправить ошибки, переписать или добавить новые функции.
И, наконец, чат, в котором вы можете обсудить с ИИ весь проект. При этом проект не ограничивается единственным файлом, а может включать в себя сложную взаимосвязанную структуру.
ИИ проанализирует ваш проект и в дальнейшем будет стараться соблюдать принятые в нем нормы и стиль написания, поэтому лучше не начинать с помощью ИИ проекты с нуля, а предлагать ему как минимум готовый каркас, чтобы он мог понять структуру проекта, его правила и стиль.
Может ли Cursor написать сам проект целиком? Может, только не стоит этого делать. Чем более размытые рамки вы поставили - тем шире диапазон фантазии ИИ и тем непредсказуемее будет результат. Возможно, прямо как в старой известной песенке: сделать хотел грозу, а получил козу…
Следует помнить, что при всех его достоинствах, ИИ – не волшебник, это скорее старательный, исполнительный, грамотный, но не слишком умный помощник. Ему сказали «копать отсюда и до обеда» - он копает.
Мы бы советовали начать работу с Cursor с уже существующего кода. Для начала попросите проверить код на ошибки и подсказать, где и как его можно улучшить.
Как правило ошибки он всегда найдет и быстро исправит. Чаше всего это будут ошибки неявные, скажем, пропущенная проверка типов в языках с неявной типизацией, фильтрация ввода, экранирование символов и т.д.
Потом можно заняться рефакторингом, очень часто это откладывают в долгий ящик по причине трудоемкости и монотонности данной работы. ИИ же старательности не занимать и с его помощью можно очень быстро и качественно причесать разнородный код, проработать техдолг и решить все те задачи, которые нужно было сделать еще давно, но никак не доходили руки.
Если проект начинался с чего-то простого, но потом вырос в нечто большее будет также полезно выделить повторно используемые участки кода и вынести их в отдельные функции. Здесь тоже Cursor будет отличным помощником. Выделите участок кода и попросите вынести его в функцию. Потом замените все аналогичные участки кода на вызов этой функции. Подобные вещи он делает хорошо.
Также он комментирует все свои действия и ведет полноценную историю изменений, вы всегда можете откатить его действия как целиком, так и точечно. Также вы можете смело править предложенный им код и тут же пояснять ему что он сделал не так и почему надо делать так, как вы указали.
Причем в начале вашей совместной работы это нужно делать постоянно, если вы хотите, чтобы он писал код так как нужно вам, а не как как ему заблагорассудится. Но ИИ быстро принимает все правки и очень скоро начинает работать именно так как нужно вам.
Немного освоившись уже, можно переходить к разработке чего-то нового. И снова, не замахивайтесь на грандиозное, держите процесс под контролем, реализуйте задумку модуль за модулем, функцию за функцией.
Проверили, подтвердили, продолжили. И не забывайте сообщать об этом помощнику. Что задачу А закончили, переходим к задаче Б. Это позволит не размывать контекст, а быть сосредоточенным на конкретной задаче.
Про ИИ и разработку мы уже писали, но тогда мы просто использовали ИИ для написания отдельных фрагментов кода, но многим бы хотелось пойти дальше и отдать под управление нейросети целый проект.
Такая возможность есть, ее предоставляет редактор кода Cursor, на первый взгляд это еще один клон VS Code, и это действительно так, но под капотом у него кроется мощный ИИ ассистент, который используется возможности сразу нескольких нейросетей.
По умолчанию активированы Claude, GPT-5 и Grok, но вы можете включить собственный набор сетей из предложенных или подключить собственные по API.
Что дальше? А дальше возможны различные сценарии. Можно использовать Cursor как обычный редактор кода с умным автодополнением, когда ИИ будет анализировать проект и предлагать вам не просто закончить ввод, а дописать целый участок кода.
Можно выборочно работать с блоками кода по Ctrl + K, вы можете попросить ИИ помощника пояснить код, исправить ошибки, переписать или добавить новые функции.
И, наконец, чат, в котором вы можете обсудить с ИИ весь проект. При этом проект не ограничивается единственным файлом, а может включать в себя сложную взаимосвязанную структуру.
ИИ проанализирует ваш проект и в дальнейшем будет стараться соблюдать принятые в нем нормы и стиль написания, поэтому лучше не начинать с помощью ИИ проекты с нуля, а предлагать ему как минимум готовый каркас, чтобы он мог понять структуру проекта, его правила и стиль.
Может ли Cursor написать сам проект целиком? Может, только не стоит этого делать. Чем более размытые рамки вы поставили - тем шире диапазон фантазии ИИ и тем непредсказуемее будет результат. Возможно, прямо как в старой известной песенке: сделать хотел грозу, а получил козу…
Следует помнить, что при всех его достоинствах, ИИ – не волшебник, это скорее старательный, исполнительный, грамотный, но не слишком умный помощник. Ему сказали «копать отсюда и до обеда» - он копает.
Мы бы советовали начать работу с Cursor с уже существующего кода. Для начала попросите проверить код на ошибки и подсказать, где и как его можно улучшить.
Как правило ошибки он всегда найдет и быстро исправит. Чаше всего это будут ошибки неявные, скажем, пропущенная проверка типов в языках с неявной типизацией, фильтрация ввода, экранирование символов и т.д.
Потом можно заняться рефакторингом, очень часто это откладывают в долгий ящик по причине трудоемкости и монотонности данной работы. ИИ же старательности не занимать и с его помощью можно очень быстро и качественно причесать разнородный код, проработать техдолг и решить все те задачи, которые нужно было сделать еще давно, но никак не доходили руки.
Если проект начинался с чего-то простого, но потом вырос в нечто большее будет также полезно выделить повторно используемые участки кода и вынести их в отдельные функции. Здесь тоже Cursor будет отличным помощником. Выделите участок кода и попросите вынести его в функцию. Потом замените все аналогичные участки кода на вызов этой функции. Подобные вещи он делает хорошо.
Также он комментирует все свои действия и ведет полноценную историю изменений, вы всегда можете откатить его действия как целиком, так и точечно. Также вы можете смело править предложенный им код и тут же пояснять ему что он сделал не так и почему надо делать так, как вы указали.
Причем в начале вашей совместной работы это нужно делать постоянно, если вы хотите, чтобы он писал код так как нужно вам, а не как как ему заблагорассудится. Но ИИ быстро принимает все правки и очень скоро начинает работать именно так как нужно вам.
Немного освоившись уже, можно переходить к разработке чего-то нового. И снова, не замахивайтесь на грандиозное, держите процесс под контролем, реализуйте задумку модуль за модулем, функцию за функцией.
Проверили, подтвердили, продолжили. И не забывайте сообщать об этом помощнику. Что задачу А закончили, переходим к задаче Б. Это позволит не размывать контекст, а быть сосредоточенным на конкретной задаче.
3👀7❤2🤔2🔥1👌1