AI та вайбкодинг для AI. Як завайбкодити продукт до релізу в магазин так, щоб не було соромно і боляче

💡 Усі статті, обговорення, новини про AI — в одному місці. Приєднуйтесь до AI спільноти!

Вітаю, я Дмитро Шерстобітов, зараз я працюю в компанії RigER як Software Developer. І сьогодні я хотів би підняти дві теми:

  1. Як це, вайбкодити?
  2. І про переклад відео на інші мови.

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

Почну трохи здалеку (ні, не про пєчєнєгів), але так буде більше контексту. Я дуже довго працював розробником на платформі 1С, понад 15 років, але постійно було якесь відчуття, що щось не те, бракує того самого «справжнього програмування». Я намагався перестрибнути на якусь іншу мову декілька разів, але коли ти заробляєш як середній сініор на будь-якій мові, то складно стрибнути на джуна.

І нещодавно я потрапив у компанію, де планувалась мобільна розробка. Там дуже багато сперечалися про те, що обрати. Пошук і діп сьорч поставили крапку для мене, але не для компанії. Я топив за Flutter. Але я не міг просто підійти та сказати це, адже я нічого про нього не знав. І тоді ще не було Cursor, а був лише ChatGPT 3.5 і тільки но вийшов 4.

І ось я почав курити його за допомогою OpenAI API, і зробив за 2 дні аплікейшн на мові, про яку я взагалі тільки почув. І це було неймовірно круто. Я це презентував і компанія обрала Flutter. Це була перша перемога AI над моїми потугами кудись відійти від свого колишнього середовища.

Все йшло як треба, але я так і не зміг попрацювати з Flutter. Тому що найняли людину, яка взяла на себе розробку на Flutter, а я працював з API для цього застосунку, тобто з серверною частиною.

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

Це дало дуже великий буст, тому що коли це робив розробник Flutter — він не до кінця розумів, що там за атрибути або які типи даних. При тому, що я навіть давав йому XSD-схему, де то все є.

За нашими розрахункам , коли я почав цим займатись, я робив це в 10-15 разів швидше, а загалом це дало буст у 20 разів. Оскільки коли я бачив, що щось там не те, то я відразу виправляв і API, і класи.

Своєю чергою, коли ми підключили Cursor до MCP Figma, то це прискорило і створення форм у кілька разів, і не так виснажувало. Тобто я почав приходити з роботи не на стільки виснажений, як раніше.

Це все мені дуже подобалось, але я все ще був на API більшу частину часу, і не розумів — як то може бути, якщо створити все з нуля.

І зараз ми плавно переходимо до локалізаціі відео. Десь пів року тому я з колегою почав холівар на тему мови, а саме — чому багато де російська мова залишається, і чому позбавитись її не так легко, як комусь здається. Одним з аргументів був легасі контент, а саме — навчальні відео, створені російською мовою, корпоративні відео, багато відео в універах, у шкіл, та й просто — у бізнесу.

І ніхто не буде їх переписувати, це нереально. Тоді ми зайшли в інет і пошукали — чим може допомогти AI з цим питанням. І знайшли багато ресурсів, такі як 11Lab, де відео можна конвертувати, робити генерацію звуку і все виглядало гарно. Тоді ми дійшли висновку, що якщо у компанії є російськомовні відео, і вона їх ще не переклала, то це суто їх вибір, тому що рішення вже є. Виглядає гарно, коштує небагато — все тіп-топ.

Але це все зовсім не так, як здавалось.

Потім до мене прийшов знайомий з питанням — як перекласти відео? Він звернувся до мене, тому що знав, що я вже вирішував питання з перекладом софта, і хотів проконсультуватися.

Я відправив його в інет і сказав, що вже все існує — тому йди туди й користуйся. І він пішов, а потім прийшов знову, і сказав, що все це для тих, у кого відео на 5 хвилин, хто перекладає більше для хайпу, і в кого бюджет бездонний, а ще для тих, в кого не має сек’юріті. Тому що вони не пропускали жодне відео на інші платформи.

В них все виглядало так — знімають аудіо, відправляють, потім намагаються натягнути його на відео, але звісно, нічого не виходить, бо таймінги різні. І так далі.

Тоді я зрозумів, що якщо навіть вони не змогли і їм не вистачило коштів, то з цим щось треба робити.

Тоді я вирішив зробити продукт на Flutter — на чистому вайбкодингу, з нуля. Він мав працювати через API, зберігати відео на комп’ютері користувача та дозволяти змішувати різних провайдерів голосів. В ідеалі я хотів би реалізувати все повністю офлайн (поки що цього не зробив). А найголовніше — завдяки API одна хвилина перекладу обходиться всього у кілька центів.

Забігаючи наперед — в мене вийшло. Я завайбкодив продукт на 100 000 рядків коду, де розв’язував такі питання:

  • як на Flutter зробити роботу з підписками у Microsoft Store;
  • як розробити візуал;
  • як робити компоненти на C++, якого я боюсь, як полум’я;
  • і як довести це все до релізу.

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

Моя подорож з AI

По-перше, треба зробити короткий опис того, що вам потрібно. Для цього ми пишемо чату — я хочу створити застосунок, який буде вміти те, те і те. Перераховуєте все, що потрібно від застосунку, і йдете вайбкодити...

Жартую, все виглядає зовсім не так.

Формуємо ТЗ для AI та для нас

  1. Відкриваємо Google Doc і починаємо переносити інфу про те, що це за застосунок, кому він потрібен, які питання він вирішує, які фічі потрібні й таке інше. Залишаємо документ на день-два, потім перечитуємо, правимо.
  2. Йдемо в інет (не ChatGPT, а саме в інет) і шукаємо щось подібне. Оновлюємо документ. Чому важливо не йти в AI — тому що це може звузити ваші ідеї, як би це не було сумно.
  3. Потім відкриваємо ChatGPT (саме його, інші щось не дуже), вставляємо все, що зробили, та структуруємо за його допомогою. Тут найважливіше — декілька раз звіритись. Тому що чат може просто відкинути якісь дуже цікаві ідеї. Або так їх перекрутити, що ви потім не згадаєте — що то було.
  4. Коли все це зроблено — переносимо в документ та залишаємо там. Воно вам знадобиться ще дуже і дуже багато разів. Тому тримайте поблизу.
  5. Далі створюємо проєкт в ChatGPT. Це важливо, щоб потім не шукати все. І робимо глибокий рісьорч за такими критеріями:

    a. Перевір сумісність того, що я зробив. Пошукай, які є аналоги функціоналу. Дай мені 10 топ-доповнень до функціоналу.
    b. Якщо є вже якісь аналоги, знайди коментарі про них.Пошукай, чого користувачам не вистачає, що їх бісить і так далі.
    c. Дай повну і нищівну критику мого проєкту. Ти повинен довести мені, що те, що я планую робити, не буде працювати. Що ним ніхто не зможе користуватися. Зроби це за кожним пунктом окремо.
    d. Зроби маркетинговий матеріал на цей продукт. Опиши всі його фічі для моїх інвесторів: чому вони мають обрати саме мене, чому мій продукт. Чим він здатен допомогти і так далі.
    e. Які технічні труднощі будуть, якщо я це буду робити для ..., на ..., за допомогою стеку ...

  6. Потім в ідеалі проганяємо це все в Claude Opus, теж на deep research, і можна ще один-два обрати.

Ви спитаєте — а де ТЗ? А його ще немає. Ми ще до нього не дійшли. Всі ці кроки потрібні, щоб насамперед ВИ зрозуміли — що саме ви плануєте робити.

Я дуже не полюбляю, коли пишуть такими аморфними тезами, тому спробую навести приклад.

ПЕРШЕ

Я хочу розробити онлайн-скрам-майстра, якого можна підключити до мітингу. Він стежитиме за тим, що говорить кожна людина, чи не відходить від теми. А якщо відходить, він буде голосом казати: «Колего... стуліть вже пельку!»

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

ДРУГЕ

Йдемо в інет, і бачимо, що зараз є дуже багато аналогів. Але все не те. Хтось робить тільки транскрибацію, хтось може писати текст. Тому думаємо — а що нам з цього потрібно? Наприклад — транскрибація, окей. Додали до нашого файлу.

ТРЕТЄ

Вставимо все це в чат, і чат видає таке:

Онлайн-скрам-майстер — це AI-асистент, який підключається до мітингів (Zoom, Google Meet, Teams і т.д.) та допомагає:

  1. Слідкувати за дисципліною обговорення — визначати, хто говорить, і чи відповідає його промова темі мітингу.
  2. Автоматично втручатися голосом, якщо людина сильно відходить від теми, використовуючи гумористичну фразу («Колего... стуліть вже пельку!»).
  3. Фіксувати ключові тези на інтерактивній дошці (Miro, Mural, власна whiteboard).
  4. Формувати коротке резюме зустрічі одразу після завершення.

І ще багато всього, що можна додати в функціонал. Але це багато тексту, придивімось поки що до нього. Дивіться, чат вже нам додав 4 пункт, де зовсім не те, що я хотів. Я казав про транскрибацію, а він вже каже щось про резюме. Тому важливо перевіряти ретельно — чи не зробив він підміну ідеї.

ЧЕТВЕРТЕ

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

П’ЯТЕ

Копіюємо те, що отримали в (4). Ну, deep research я не буду запускати, але, це повинно виглядати так:

a. Додасть вам купу всього і потрібно буде зрозуміти — що там реально релевантне, а що ні. Правимо, і те що вийшло — беремо і йдемо до b.
b. Тут складно вигадати, але напевно скаже, що є окремо дошка, окремо транскрибація, а може вже і є аналоги. Знову опрацьовуємо, беремо те, що вийшло, і йдемо до c.
c. Він тут може розповісти багато чого, але, наприклад він каже — та ніхто не захоче робити міти і відправляти на якісь сервери, тому твій онлайн нікому не потрібен. Опа, і це ще одна ідея, а дійсно — хто таке захоче? Це означає, що потрібен офлайн. Допрацьовуємо і йдемо далі.
d. І тут він вже повинен вас нахвалювати. Це треба читати уважно, тому що він може знову таки вигадати багато чого, і треба аналізувати — чи можливо це трактувати по-різному? Або навпаки — можливо, щось важливе він не примітив.
e. Тут я напишу чату — я планую робити на Flutter, для Windows. Він може почати говорити, що тут ще потрібен буде докер, пітон, і так далі. Це все по суті ваш стек, це потрібно десь зберегти і проаналізувати.

ШОСТЕ

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

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

Медитуємо

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

Тут ви починаєте вивчати стек, який вам буде потрібен, наприклад — як працює докер та інше. І може здатись, що ви вже працюєте над проєктом, але це не так. Ви підіймаєте свою кваліфікацію, щоб ви самі відповідали вимогам свого ж проєкту.

І це МЕГА КРУТО! Чому? Все просто, якщо ви просто так вирішили вивчити докер — я думаю, що не вийде. Ви або забудете все, що вивчили, або не будете розумітися, куди податися та що саме треба вивчати.

А тут ви маєте ТЗ для навчання. Тому перший пункт не обманював: ми вже отримали ТЗ, але не для продукту, а для вас, для вашого розвитку. І поки ви вивчаєте те, що потрібно, починає працювати ефект «жовтої машини». Тобто на мітингу ви вже починаєте приділяти увагу тому, як ви опрацюєте такий кейс і так далі.

І знову приходимо додому й починаємо оновлювати наш документ за тими 6 кроками. І так буде 10-20 ітерацій, доки ви не сформуєте саме те, що можливо буде назвати вашим продуктом.

Формуємо ТЗ

Коли ми працюємо з AI, потрібно розуміти, що завдання має бути чітким та маленьким. Тому вже зараз треба чітко розуміти, що у вас не повинно бути ніяких файлів більше ніж на 200-300 рядків, інакше — AI буде вичитувати це в кілька операцій. І насправді одна-дві таски не можуть займати більше, інакше треба робити декомпозиції.

Тому коли ми будемо формувати документацію, за якою AI буде вести розробку, треба користуватись правилом:

Краще багато невеликих файлів, аніж один великий. Ідеал — файли по 200-300 рядків.

Зараз нам треба декомпозувати все, що ми підготували, за такими принципами:

  1. Пріоритет фіч. Що саме і коли ми будемо робити. Тобто — яка фіча пріоритет, а яка — може і почекати.
  2. Що в нас зі складністю, наприклад, чи одразу ми будемо підтримувати офлайн-моделі, чи спочатку все зробимо на онлайні? Це принципово, бо інакше можна робити одну фічу тижнями, а це не дуже. Бо якщо не має ніякого візуала і того, що можна потикати — це може загнати в депресію...
  3. Які патерни й де ми будемо використовувати? Так, це дуже важливо, інакше — модель буде просто щось робити і все. Воно буде працювати, але чим далі ви будете йти — то складніше все це буде підтримувати. І звісно — перевіряти всі патерни, тому що модель може щось не те сказати. І на цій стадії я вивчив 5 дуже класних патернів :) Це ще важливо, тому що, якщо в нас буде, наприклад, в ТЗ підтримка OpenAI, то чат так і зробить. Але ми розуміємо, що тут потрібен патерн «стратегія», а також патерни щодо обробок помилок, десь щось має бути сінглтоном. І про це знати можете лише ви.
  4. І потім вже все це закидаємо і формуємо таски, тобто кажемо моделі: а зараз зроби нам таски та врахуй все, що ми тобі дали.

Я зроблю зараз все це з вами, але звісно видалю багато речей, бо інакше це буде багато тексту:

🥇 MVP (мінімально життєздатний продукт)

Основна цінність: AI-асистент слухає мітинг і контролює фокус.

  1. Аудіо-захоплення

    a. Бот підключається до мітингу як учасник.
    b. Веде запис або пряме прослуховування аудіо.

  2. Багато іншого, видалив

🥈 Must-have (перші релізи після MVP)

Основна цінність: асистент допомагає ще й фіксувати результат.

  1. Автоматичні тези

    a. Витяг основних пунктів (summary).
    b. Короткий список «що вирішено / що робити».

  2. Біла дошка (whiteboard)

    a. Проста вебсторінка з автозаписом тез.
    b. Можливість експорту у PDF / TXT.

  3. Кастомізація стилю втручання

    a. Варіанти: формальний, жартівливий, «жорсткий скрам-майстер».
    b. Налаштування голосу (чоловічий/жіночий).

І так далі. Але, як бачите — він знову додав багато речей, хоча я йому сказав обробляти лише те, що я скинув. Але... Ну добре, вичищаємо все це і йдемо далі. Аналіз складності, звісно, залежить від стеку та від вашого досвіду. Там і без прикладів можливо розібратися.

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

Я в чат відправляю все, що було раніше, і питаю:

Які патерни і де ми будемо використовувати? Які моделі створювати? І все це потрібно розробити за чистою архітектурою. Тому розпиши структуру проєкта, де які моделі, і де які патерни для Flutter.

Орієнтир: feature-first + clean architecture, DI через Riverpod/Provider, моделі через freezed/json_serializable, мережа — dio/retrofit.

lib/ 

  core/ 

config/            # константи, env, фіче-флаги 

di/                # реєстрація залежностей (Riverpod providers) 

errors/            # Failure/Exception, ErrorMapper 

logger/            # логування, перехоплювачі 

utils/             # утиліти (Either, Result, throttling, etc.) 

platform/          # platform channels, permission helpers 

  domain/ 

entities/          # чисті Entities & Value Objects

Архітектурні

  • Clean Architecture — чіткі межі: domain (бізнес), data (I/O), features/*/application (координація), presentation (UI).
  • CQRS (мʼяко) — usecases ділимо на Command (зміни) і Query (читання).
  • Repository — для збереження/читання (MeetingRepository, TranscriptRepository, BoardRepository, AnalyticsRepository).
  • Service (Domain Service) — складна бізнес-логіка не прив’язана до сутності (TopicClassifier, InterventionPlanner).

Інтеграційні

  • Adapter — підключення різних провайдерів STT/TTS/діаризації/whiteboard/Jira:

    SttService ⇄ WhisperSttAdapter / DeepgramSttAdapter
    TtsService ⇄ EdgeTtsAdapter / ElevenLabsTtsAdapter
    BoardGateway ⇄ MiroApiAdapter / LocalCanvasAdapter

  • Facade — MeetingOrchestrator як єдина точка керування потоками (STT→Moderation→TTS→Whiteboard).
    • Strategy — змінні політики:

      OffTopicDetectionStrategy (by-keyword / by-embedding / hybrid),
      InterventionToneStrategy (formal/humorous/strict),
      SummarizationStrategy (short/bullets/OKR-style).

    • Decorator — логування, ретраї, метрики поверх сервісів (напр. MetricsSttService).
    • Factory / Abstract Factory — побудова конкретних адаптерів за конфігом (env, settings).

І тут ми маємо уважно все передивитися, тому що інакше потім буде боляче все це виправляти.

Далі ми вже все це разом із пріоритетами, фічами та архітектурою ще раз скидаємо і кажемо — зроби таски. Я роблю такий запит:

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

У кожній задачі повинно бути написано:

  • назва;
  • яку проблему задача вирішує;
  • які об’єкти в ній треба створити;
  • які патерни застосувати;
  • як її протестувати після завершення.

Також повинна бути секція, де ШІ буде відмічати, які кроки цієї задачі були виконані (якщо це доречно).

І отримую від чату:


#1. Підключення бота до мітингу та захоплення аудіо

Проблема: немає каналу аудіо для аналізу в реальному часі.
Залежності: — 
Створити:

  • core/platform/meeting_audio_channel.dart (інтерфейс AudioInputChannel)
  • data/datasources/zoom_audio_channel_adapter.dart (або заглушка FakeAudioChannelAdapter)
  • features/meeting/application/meeting_controller.dart (початок/стоп сесії)
    Патерни: Adapter (для платформи мітингу), Facade (через MeetingController).
    Тестування (Accept):
  • Юніт: FakeAudioChannelAdapter віддає PCM-буфери з таймстампами.
  • Інтеграційний: при start() стрім аудіо з’являється, при stop() — завершується.
  • Прогрес:
  • Ініціалізація каналу
  • Стрім аудіо старт/стоп
  • Обробка помилок (немає прав/пристрою)

Тут важлива опція — прогрес, тому що саме там чат має відмічати, що він робить. А коли ми будемо виконувати цю таску, то ми ще скажемо йому оновлювати прогрес та доповнювати таску, якщо треба.

Зараз ми маємо всі таски, і вже можна уявити, скільки часу нам потрібно на реалізацію. Можна попросити ШІ ще і зробити оцінку часу. І потім звіритись з нею 😊

Якщо ви думаєте, що це все, можна відкривати Cursor і робити, то... ні... Це лише початок.

Формуємо git

Якщо ви досі це робили десь в іншому місці — то прийшов час робити git.

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

Наприклад — це може бути ось така структура:


project-root/

├── docs/ # Уся документація
│ ├── requirements/ # ТЗ, юз-кейси, feature list
│ │ ├── mvp.md
│ │ ├── must_have.md
│ │ └── backlog.md
│ ├── research/ # deep research, аналоги, критика
│ │ ├── competitors.md
│ │ ├── tech_stack.md
│ │ └── risks.md
│ ├── patterns/ # вибрані патерни (стратегія, фасад і т.д.)
│ ├── tasks/ # сформовані задачі для AI
│ │ ├── task_01.md
│ │ ├── task_02.md
│ │ └── progress.md
│ └── architecture.md # загальна схема проєкту

Тобто треба кожну таску створити як окремий файл, тому що одна таска — це одна ітерація.

Вайбкодинг-платформа

І знову, якщо ви вирішили, що вже можна, то ні, зараз треба розібратися з тим, а де ми будемо кодити.

Зараз є дуже багато всього, і клієнти від Claude і Gemini, і Codex від OpenAI, і v0.app, який вам зробить апку, бо він сам все оркеструє. Але ми з вами домовимося, що ми студенти й грошей в нас таких немає. Це по-перше, по-друге — я обираю те, що дає мені змогу контролювати процес і кошти, а також мій час.

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

Вам може здатися, що 130$ це не дуже багато за вайбкодинг. Але я в той час не робив нічого такого хардкодного, і зверніть увагу — це за 2 дні. Загалом я за тиждень віддав 300$ (але вони потім повернули все), і це я тоді не дуже і працював з нею. Тому так, це дуже крута штука, але таких грошей коштує, що ні, дякую.
Загалом якщо він вам саме допомагає програмувати, то так, це не дуже багато коштує, десь 20-30$ на місяць, але ж ми саме про вайбкодинг 😊

Тому я зупинився на Copilot https://github.com/features/copilot/plans, і тут в мене такі затрати були:

Тобто я за 10 годин нонстоп-розробки (це мій максимум був) заплатив 4$. Ніяких очікувань, таймінгів, просто робите те, що потрібно.

З мінусів — дуже тупий Tab, який частіше заважає. Добре, що його можна вирубити. Та те, що він не має моделей з роздумом. Тільки простий Claude 4, GPT-5 та інші.

Тому краще почати саме з Copilot, бо Cursor у вас закінчиться за день.

Якщо хтось думає, що він купить кредити на https://openrouter.ai, і вкаже його у Cursor, і тоді це буде значно дешевше, то це не так. Наприклад, я потикав модель Qwen3 Coder:

Яка коштує у десятки разів дешевше ніж Claude. Але ось що я отримав:

Увага — це був один єдиний запит щось зробити (на скріні тільки частина запитів), і він коштував мені більше ніж 1$.

Тому або ви працюєте з локальним сервером, і він повинен вміти працювати з вікном контексту — 100 000 токенів, або обираєте Copilot, де оплачуєте реквест фіксовано 0.04$.

У Microsoft є свої сервери, і тому вони можуть це дозволити, на відміну від Cursor.

Або ви обираєте Cursor, і там за 20$ ви будете витрачати 0.1$-2$ за реквест. А якщо помилково оберете модель Opus, то взагалі — 10$-20$ за реквест.

Далі ми будемо розглядати саме Copilot.

Обираємо модель

Тут все дуже складно. Все залежить від стека. Але я помітив наступне:

  1. Обираємо Claude 4, коли треба зробити щось складне, наприклад, розібратися з якимось багом.
  2. В інших кейсах дуже добре працює GPT-5. Він має короткі сесії порівняно з Claude, і це з одного боку мінус, бо ви оплачуєте кожен реквест. А з іншого — він не йде кудись в код по своїх справах і не чудить там такого, що потім доводиться довго шукати, де це все і що він накоїв.
  3. Gemini — коли вам потрібно зробити щось з великим вікном контексту, наприклад — проаналізувати всі класи й створити якусь документацію. По коду — він поганий навіть з Flutter, який Google і створив, що для мене було досить дивно.
  4. Ще є Grok 4, але не в Copilot, і він неймовірно крутий. Мені здалось, що він краще ніж Claude Sonet 4, але, він є тільки у Cursor, а там ціни...

Тому на старті можна обрати GPT-5, щоб усе було під контролем, а далі вже пробуйте інші моделі та грайтесь.

Налаштування IDE

О Боже, та коли вже буде вайбкодинг? Ось раніше — відкрив IDE і пішов собі код писати, а зараз...

Окей, налаштування це важливо, а саме Instuctions. Ви повинні їх продумати й створити одразу.

Є дуже корисна лінка — https://docs.github.com/en/copilot/how-tos/configure-custom-instructions/add-repository-instructions

Там є все, що потрібно знати, і цим не можна нехтувати.

Ви можете попросити Copilot самостійно згенерувати вам інструкції, а потім відредагувати.

Про що треба писати в інструкціях — про все, що Copilot робить не так (наприклад, використовує функції якісь криві, або постійно глючить на пакетах) і доповнювати це згодом. Але спочатку ми повинні йому дати всю інформацію про наш проєкт: яка має бути архітектура, що він має писати код і коменти англійською, навіть якщо ви питаєте його українською і так далі.

З іншого боку — що він більше, то менше в нього буде контексту для праці, тому не потрібно, щоб він був величезним. Уявіть це собі так, наче ви знайшли ще одну людину, і ви повинні їй розповісти про проєкт рівно стільки, щоб вона взагалі зрозуміла — що у вас там коїться.

Наприклад, немає сенсу писати про всі патерни або розповідати всі фічі. З іншого боку — треба було б сказати йому, де що шукати, де які моделі, які патерни ви взагалі використовуєте, а які — 100% ні.

Приклад:

Зменшити ймовірність відхилення PR через зламані збірки/валідації або некоректну поведінку. — Мінімізувати збої у bash-командах і скоротити час на пошук по коду/скриптах.

Інструкції мають уміщатися в межах двох сторінок.
Інструкції не повинні бути завдання-специфічними.

— Дайте 1–2 речення про призначення репозиторію.
— Вкажіть тип проєкту, мови/фреймворки/рантайми та приблизний розмір репо.

— Для bootstrap, build, test, run, lint опишіть послідовність кроків і версії інструментів; зазначте передумови та очікувані результати.
— Занотуйте відомі помилки/таймаути та перевірені обхідні шляхи; явно позначайте команди, які «завжди слід запускати».

Стисло опишіть архітектурні блоки і шляхи до ключових файлів (конфіги лінтера/компіляції/тестів, налаштування).
Перелисліть CI/додаткові перевірки та як їх відтворити локально; додайте короткий список вмісту кореня та ключових піддиректорій.

Зробіть інвентаризацію: прочитайте README/CONTRIBUTING, скрипти, пайплайни, конфіги й пошукайте «HACK/TODO/WORKAROUND».
Для кожного релевантного файлу зафіксуйте робочі команди, порядок запуску, типові помилки й обхідні рішення; агент має довіряти цим інструкціям і шукати додатково лише якщо щось відсутнє або некоректне.

І ось як це може виглядати для нашого демо проєкту (це краще робити англійською):

— Always generate code that compiles and runs successfully in Flutter without additional fixes.
— Always ensure that changes respect existing architecture (Clean Architecture layers: domain, data, features, core).
— Always follow Dart/Flutter linting rules and formatting so that `flutter analyze` and `dart format .` pass without errors.
— Always minimize unnecessary searches or exploratory edits; use the instructions in this file as the primary source of truth.

— Do not invent new features or flows that are not already present in the repository structure.
— Do not write code outside the allowed languages/frameworks (Dart/Flutter only).
— Do not create instructions or steps longer than needed; keep responses concise and within 2 pages.
— Do not assume hidden dependencies — rely only on the ones listed in `pubspec.yaml` unless explicitly instructed.

— This repository implements an «AI Scrum Master» Flutter application that connects to online meetings, transcribes speech (STT), detects off-topic discussions, generates voice interventions (TTS), and maintains a live whiteboard with notes and action items.
— The project follows Clean Architecture with `domain`, `data`, and `features` layers. It is built with Dart/Flutter, uses Riverpod for DI, Freezed/JsonSerializable for models, Dio for networking, and can target both desktop and web runtimes.

— Always run `flutter pub get` before building to install dependencies.
— To build: `flutter build windows` or `flutter build web` depending on target.
— To run locally: `flutter run -d windows` (desktop) or `flutter run -d chrome` (web).
— To test: run `flutter test` (unit tests) and `flutter test —coverage` for coverage.
— Linting: run `flutter analyze` and `dart run dart_code_metrics:metrics analyze lib`.
— If build errors occur, clean with `flutter clean` then re-run `flutter pub get`.

— The root contains `pubspec.yaml` (dependencies), `analysis_options.yaml` (lint), and `/lib` with the main code.
— **Architecture**:
— `/lib/core` → config, DI, utils, error handling.
— `/lib/domain` → entities, value objects, repositories, services, usecases, specifications, policies.
— `/lib/data` → DTOs, adapters, repositories implementations, external service integrations (STT/TTS/whiteboard).
— `/lib/features/*` → application (state, controllers) and presentation (UI pages, widgets).
— `app.dart` and `main.dart` configure MaterialApp and navigation.
— CI: GitHub Actions workflows run `flutter analyze`, `flutter test`, and build checks.
— Validation: all PRs must pass analyzer and tests; failures typically come from missing imports, outdated generated code (`flutter pub run build_runner build —delete-conflicting-outputs`), or formatting (`dart format .`).

— Review `README.md` for a high-level overview of the app.
— Inspect `pubspec.yaml` for dependencies and versions, and `analysis_options.yaml` for lint rules.
— Search `lib/domain` for core entities, `lib/data` for adapters, and `lib/features` for application/presentation logic.
— Always run `flutter pub get` before any build or test step.
— Use `flutter clean` if build/test errors persist.
— Trust these instructions first; only search the codebase if information here is incomplete or out of date.

Це те, що я зробив за допомогою чату. І тут дуже добре можна побачити, як саме він би працював без інструкцій. На перший погляд все добре, але Copilot не вміє сам запускати термінал (на відміну від Cursor). Тобто кожен раз, коли він захоче зробити тести або сгенерувати файли, ви побачете таке вікно:

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

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

Тому нам треба додати у наше середовище Task і Build Task, тому що саме їх він може виконувати без запиту (якщо ви дозолите йому це один раз). І тоді ви лише бачитиме таке повідомлення:

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

І все, далі все буде чудово.

А щоб він знав про них, то це йому треба в інструкціях і написати.

І останнє, що робимо — якщо ви працюєте у Windows, то треба зайти і змінити термінал за замовчуванням на bash, інакше він буде вам відавати такі обсяги глюків, що повириваєте все волосся на голові.

Вайбкодимо

Нарешті! А зараз нам треба створити сам проєкт, і далі даємо по одному таску. Дивимось, чи оновив він прогрес, і робимо коміт кожен раз, коли у нас щось працює.

Як це виглядає:

  • Я пишу йому — роби таску. Надсилаю йому таску, патерни, та все інше, що, я вважаю, йому може знадобитися.
  • Дивлюсь, що саме він робить. От зараз я пишу статтю, а він пише тести, і в мене поблизу його чат. Я дивлюсь, що там падає тест моделі проєкту. Падає тому, що модель проєкту за замовчуванням повертає ChatGPT-5, а в тестах ChatGPT-4.1. І що, ви гадаєте, він зробив? Так, пішов у модель, а не в тести, і там зробив за замовчуванням 4.1, а не 5. Тому вайбкодинг — це не просто натиснув і пішов пити кофе :)
  • Інколи бісить, що він робить 20 ітерацій, а потім питає — продовжувати чи ні? На щастя, це можна виправити в налаштуваннях Copilot. Я задав йому 100 ітерацій, і для мене це ок.
  • Лог. Нам потрібні логи, багато логів. Неймовірно багато логів. Чим більше логів — тим краще!
  • Якщо щось йде не за планом — ми логи з терміналу копіюємо в якийсь файл, я його назвав дуже оригінально — log.log. Додаємо його в gitignore, туди копіюємо все, і виділяємо ті рядки, які нас цікавлять. Наприклад:

  • Чому це важливо — якщо ви відішлете увесь лог — ви заб’єте контекст, і дуже часто будете бачити, що він робить самарі бесіди, а це не є добре. Але про це згодом.
  • Далі чат щось фіксить або додає. Треба подивитися, що там він зробив, а потім вже тестувати.
  • Якщо все ок, то йдемо у git клієнта і дивимося, що він там начудив. Якщо все добре, тоді робимо коміт. Коміти треба робити часто. Після кожного кроку, бо інакше — буде дуже боляче, коли він зламає файл і перезатре, а у вас не було коміта.
  • Якщо чат зробив не дуже багато кроків й інша таска пов’язана з попередньою — то можна прям у цей чат додавати наступний крок. Але краще створити новий чат і відправляти туди.

І ось тут, якщо файли з описом і тестами перевищують 300–400 рядків, ви побачите, наскільки складно моделі розуміти контекст.

Чат буде шукати щось, а коли знайде — зупиниться і з великою імовірністю додумає інше.

Тому — ще одне правило:

Весь код повинен бути з коментарями, чим більше — тим краще.

Тому що інакше модель нічого не зрозуміє.

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

Коли вже довго працюєш з ними, починаєш розуміти — де модель глючить, а де є системній промпт. І ось я вже неодноразово зустрічав одну таку фразу від чату:

Оскільки в нас немає часу і відповідь мені треба дати якнайшвидше, то зараз...

І потім йде якась дичина. Наприклад:

  • ... то зараз я видалю цей код і вставлю TODO, на потім;
  • ... закоментим блок, і потім повернемося;
  • ... видалю ці тести, бо тут треба дуже багато виправляти;

І в такому ж дусі. Тобто модель, якщо щось не розуміє, не дуже хоче з цим розбиратися.

Логи

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

Що нам потрібно в логах? Час, Модуль, Група, безпосередньо лог. У мене логи виглядають так:

Ще я дуже часто прошу чат додати емодзі, вони дуже корисні. Тому що за ними можна фільтрувати й шукати лог, і місце вони не займають.

Тому в першу чергу зробіть сервіс логів, куди ви будете все відправляти, і одразу зробіть на нього тести. Подивіться, як воно виглядає.

Також одразу додайте типи логів, і обов’язково лог з рівнями. Тобто у вас функція повинна виглядати так:

Log.Debug(«Модуль», «Метод, або якийсь блок», «Сам лог», 1000)

де 1000 — це рівень логу. І на старті я вказую те, якій рівень лога мені потрібно виводити.

Я не рекомендую видаляти логи, краще їх відключати за рівнем або за типом. Бо вони вам будуть потрібні дуже часто, повірте.

Що таке контекст

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

Отже, контекст — та вся ваша бесіда з чатом. Коли йому відправляється будь-яка інфа — вона цей контекст займає, а коли контексту залишається небагато, то ви побачите таке вікно:

І якщо ви його бачите, то це означає, що чат щось забув.

Уявимо собі це бесідою з чатом, у якого контекст 20 токенів.

Я: Сьогодні дуже гарна погода, трохи дощить, але сяє сонечко і на вулиці тепло. (10 токенів)
Чат: Так, на вулиці дуже гарно! (5 токенів)
Я: А чи є сьогодні дощ?(4 токена)
Тобто зараз весь контекст — 19 токенів.

І тут чат бере і контекст весь стискає у: «Гарна погода, сьогодні, дощить, сяє сонечко» — а тут вже всього 5 токенів.

Чат: Так, дощить!
Я: А чи тепло?
Чат: Так!

І ось тут і є основна проблема. Тому що якщо ми подивимось на перше речення, там я написав, що тепло, і чат мені відповів — так, тепло. Здається, що все добре. Але ні. Він це вигадав, і так само він може вигадати, що не тепло.

Тобто він вже не «у контексті», він вже вигадує, і він це може робити дуже добре, а може і ні. Тому коли ви побачили, що він почав стискати контекст — знайте, ви щось втратили.

Як цьому запобігти? Ніяк, і коли ви бачите контекст у 200 000 токенів, ви повинні розуміти, що контекст має таку структуру:

  1. Контекст самого Copilot — ви не можете його виправляти, і він легко займає десятки тисяч токенів.
  2. Ваші інструкції — саме тому вони повинні бути не дуже великими, бо інакше дуже часто чат випадатиме з контексту.
  3. Те, що ви виділили або прикріпили у чат (не завжди все він тримає, але може сам обирати).
  4. Ваше повідомлення.
  5. Те, що він прочитав.
  6. Те, що він віддав на правки.

Це дуже поверхнево, але дає зрозуміти, що якщо ви відправите лог у 1000 токенів, він не зможе його позбутися (тільки самарі зробити, при чому саме з ним). А якщо скопіюєте у файл та відправите до нього лише те, де треба щось пофіксити (наприклад, виділите 20 рядків), то інше він сам зможе знайти, якщо йому треба.

Повернемося до цієї картинки:

Тут добре видно, як росте контекст. Був 46000, потім 49000, потім 50000. І це все одне питання, модель збагачує свій контекст за необхідності.

Тому наша ціль — знаходити баланс між тим, як його збагатити контекстом одразу, і як би його зберегти.

Дизайн

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

І якщо ви такий самий дизайнер, як і я, то мені дуже шкода 😊

Тому що мій перший дизайн був таким:

Як ви можете бачити, це просто крінж. Я і дизайн — ці слова ніколи не стояли в одному реченні.

І, що найцікавіше — люди користувались, і їм було ок, тому що інструмент розв’язував їхні проблеми.

Та так не можна було залишати все, тому я пішов у роздуми. Спробував купу всього, і один спосіб мені дійсно допоміг — я пішов у Claude Opus і попросив його:

Намалюй мені сучасний дизайн апки на Windows у html.

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

Через 57 ітерацій, де він домальовував або прибирав щось, я отримав таке:

І це було щось цікавіше. Тоді я йому сказав розписати мені увесь гайдлайн. І він це зробив — там була вся інфа щодо основних кольорів, структури й так далі.

Після цього я поклав цей HTML у git, поруч поклав дизайн системи, і сказав чатику — зробити так, як тут. Це було жахливо, але за два дні я вже отримав фінальний дизайн, який зараз виглядає так:

Так, звісно, можна і краще зробити. Але, думаю, ви погодитесь зі мною, що за два дні — і так буде ок. А потім вже можна і витрачати кошти на дизайн.

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

Завершення

Я не геній і не «сеньйор на всіх мовах». Я просто навчився: ставиш чату маленьку, чітку таску — отримуєш інкремент — фіксуєш логікою/тестом — комітиш. Так і народжується продукт.

Вайбкодинг — це не магія, це темп. ШІ як машина — вона їде, але кермо — в мене, і якщо я не туди поверну, то це означає, що я не вмію керувати.

Головне — реальна користь, прозора ціна, гарний настрій.

Ключові правила (крок за кроком, але коротко)

КРОК 0. Намір і рамки

  • 1–2 речення «що роблю і для кого».
  • Як приймаю роботу: демо/тест/скрін.
  • Чітко «не робити»: які файли/фреймворки/шляхи заборонені.

КРОК 1. Дві годинки без ШІ

  • Гуглю аналоги, читаю коменти/біль користувачів, зберігаю в /docs/research/*.
  • Оновлюю свій опис і вимоги.

КРОК 2. Б’ємо ідею об стіну (в ШІ)

  • Прошу чат: «рознеси мою ідею», «де провалиться», «які ризики/вартості».
  • Те, що болить, — виносимо у вимоги й таски.

КРОК 3. Єдине джерело правди, наш контракт з AI

  • /docs/requirements/*
  • /docs/patterns/*
  • /docs/tasks/task_XX<span>.</span>md  # назва, контекст, тести приймання

КРОК 4. Декомпозиція до людського

  • Файли 200–300 рядків. Ніяких «бог-класів».
  • Вказую шар і патерн: Strategy/Adapter/Facade/Repository.
  • Кожна таска має очікуваний артефакт (файл/віджет/скрін).

КРОК 5. Правильна порція контексту

  • Даю тільки потрібні фрагменти коду + уривки логів 20–40 рядків.
  • Форматую відповідь: «код-блоки + список команд + як перевірити».

КРОК 6. Промпт — це контракт

  • «Роль» агента, «межі», «кроки», «формат виходу».
  • Додаю міні-тести приймання в сам запит.

КРОК 7. Інструменти під мій гаманець і нерви

  • На старті: Copilot (стабільна ціна за реквест, норм контроль).
  • Модель: GPT-5 для темпу, Claude — коли треба розкопати складне, Gemini — коли велике вікно контексту на аналіз.
  • Налаштовую Tasks/Build Tasks у IDE, щоб агент міг ганяти перевірки без DDoS-терміналу.

КРОК 8. Логи — очі агента

  • Свій лог-сервіс: час, модуль, група, повідомлення, рівень.
  • Емодзі-якорі в логах — швидкий фільтр.
  • Логи не видаляю — вимикаю рівнями.

КРОК 9. Ритм і контроль

  • «Одна таска — один коміт після зеленої перевірки».
  • Якщо агент лізе міняти тести під код — стоп, розвертаємо: спочатку код до тестів.
  • Бачу стиснення контексту — ділю таску ще дрібніше.

Фінал

Вайбкодинг — це «малими чіткими кроками, але щодня». Агент прискорює, та не думає замість нас.

Ми задаємо рамки, ритм і стандарт якості. Усе інше — справа техніки і логів.

👍ПодобаєтьсяСподобалось17
До обраногоВ обраному21
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Вот еще нашел пару приложений для вайбкодинга qoder.com/download аналог курсора и chat.z.ai./ вроде пишит код лучше клода, что скажите хлопцы?! www.youtube.com/watch?v=t-X1KR29Gpg и вот это получается что верстальщики больше не нужны enzostvs-deepsite.hf.space

щось дизайн якись некрасивий аі нагенерував

Мій попередній був кращім? :)

Прочитал, что вы раньше работали с 1С, скажите, а как он работает с Си впроде он на нем написан? Как вообще он работает с нативным кодом, если такая возможность? Были ли у вас подобные задачи связанные с Си. Может это не совсем сюда, извиняюсь за офтоп, просто интересно узнать.

Работает кто? 1С? Или Агенты? Агенты — отлично работают.
А если вы про 1С, то это решается написанием внешних компонент в формате dll обычно, и там тоже все отлично работает, сами dll обычно пишутся на С++, но, где С++ там и обертку вокруг С можно сделать. Только смотрите в сторону именно ннативных dll, а не COM.

Работает кто? 1С? Или Агенты? Агенты — отлично работают.

можно поподробнее, т.е. клауд или чат гпт уже могут и код для 1С генерить? Я правильно понял, но там же вроде код на русском нужно писать... Или есть уже специальные агенты которые уже работают именно под 1С? Я лично против 1С ничего не имею, насколько я знаю он и сейчас многим на хлеб дает.

Ну у вас уже другой вопрос, к вопросу выше это не относится. Но да, в 1С можно писать код на русском и/или на английском, я последние лет 5 работал только с английским, так что даже отвык от того что 1С на русском.
И да, чаты могут генерировать код на 1С, особенно Sonnet 4.5 с этим справляется отлично... Но, это в массе своей бесполезно, так как в мире 1С весь AI идет мимо изза IDE в которой работают, и за-за тупизма самой компании, которая выбирает кривые направления, инструменты и их имплементацию.

Но, если стоит задача отрефакторить код, написать какой то тест, проанилизоровать отчет — то в какой то мере с этим агенты справляются, но повторюсь — для 1С это все бесполезно, в силу ее архитектуры. Ну не бесполезно конечно, но 80% возможностей разработчики 1С теряют.

LOL

вайбкодуни вже не просто вайбкодують — вони вже НА ПУБЛІЦІ на руснявим гамном обмазуються, and proud

оце так еволюція

То це питання до влади... Чому 1С ще використовується в Україні? А якщо його дозволяє влада, то чому б і ні? Та й на сам перед — майже всі компаніі його використовують, бо такі гениальні розробники як ви — не можете зробити якісний софт для ERP рішень, і саме ви призводити до того, щоб бізнес користувався цим :)
Не згодні? ну так створіть вбивцю 1С :) А ну да, то ж треба працювати, і ви одразу знайдете мільйон винних у тому, чому саме ви не зможете це зробити... Більш того, треба ще позбутися Nginx та щє іншого софта, бо це є вигідно буде Україні, зараз, кожна компанія знайде 100 000 спеців по САПУ, або ораклу за ті самі гроші що і вже існуючий софт (ні) і ми як позбудемось ось цього всього... Зараз, тількі но я спитаю у бізнеса, чи є в нього бажання витратити 1млн$ і 3-5 років імплементації, або їх СЕО зміг вам в коментарі сказати вам о в них не 1С...

А саме цікаве, що і ваша компанія 99%, якщо знаходиться в Україні, то нараховує і сплачує вам зарплатню, о жах, з 1С... Тому одразу напішіть їм щоб більше вам зрплатню не розраховували у 1С... Ахаха, це так смішно...

Тут такое, вся буха на ней, недавно женщина бухгалтер обращалась, проблема с программистом в детали не вникал, просила написать внешний отчет и настроить бэкапы, что бы были локально сохранялись на внешний жесткий диск. Отсюда вопрос если я программирую на Си, писал на .Net, Java, Python насколько сложно будет освоить 1С, что вы посоветуете по видеурокам, т.к. в интернете их тьма тьмущая и какие переспективы на ваш взгляд сейчас и будут после войны по разработке на 1С, можно ли будет найти работу или подработку. Сейчас вроде как подработка есть, т.к. буха 1с почти везде, а что будет потом? Интересно было бы узнать ваше мнение.Думаю этот вопрос не только меня одного интересует...

1С это не язык программирования, в прямом смысле слова. Это скорее некий фреймворк. Есть например Юнити, там чистый C#, в котором есть просто обертка вокруг из классов которые дает Юнити, но там все же чистый С#. А есть к примеру powershell, который имеет как бы свой язык, но языком его по сути назвать достаточно сложно. Т.е. сам синтаксис его можно выучить за день, но самое важное в нем — это окружение. Т.е. какие плагины есть, какое окружение в винде есть и т.д.

1С также — сам язык, особенно если вы уже знаете другие — выцчить достаточно легко (вот были бы типовые еще на английском, то вообще просто было бы :)
А вот окружение и бизнес логику — сложно, в 1С никто не оперирует языком как в других системах, там некуда двигаться, он примитивный, классов класических нету, предопределенный набор метаданных (штук 30), предопределенные элементы формы (штук 20), такбличный документ — аля таблица экселя, и отчеты СКД — аля PowerBI или Pivot, как кому угодно.

Поэтому сам ситаксис — реально выучить за считаные дни, а вот бизнесс часть — вот это мега сложно, так как вас не будет покидать чувство того, что вы знаете как что-то сделано, но понятия не будете иметь — зачем. И это удручает. Особенно когда после быдлокодеров что то допиливаешь.

Итого — 1С программисты — это, в первкю очередь про понимание того, как работает бизнесс, а не про сам код.
Поэтому тут у вас будет развилка — уйти от рабработки в сторону скриптования бизнес процессов и учиться понимать — как бизнес работает, или же остаться разработчиком:)
Ну и есть три главных ключевых направления в 1С — зарплата и кадры, бухгалтерия и управленческий учет. Я бы вам настоятельно советовал идти именно по 3, так как он универсален во всем мире, и не меняется. А вот первых два — это значит вы завязываетесь на конкретную логику конкретной страны, и даже на конкретный период этой логики (в Украине она меняется пипец как часто), или же учите то, что вам может пригодиться и в дальнейшем.

Спасибо, а по видео урокам что посоветуете посмотреть, почитать. В первую очередь интересует буха для украины, помоему она сейчас так называется. Можно ли ее пиратскую где то закачать, что бы потренироваться?

Отсюда вопрос если я программирую на Си, писал на .Net, Java, Python насколько сложно будет освоить 1С, что вы посоветуете по видеурокам, т.к. в интернете их тьма тьмущая и какие переспективы на ваш взгляд сейчас и будут после войны по разработке на 1С, можно ли будет найти работу или подработку.

Мы все учились понемногу чему-нибудь и как-нибудь. ©
Якщо ти програмуєш на всіх цих мовах, але не можеш знайти роботу і не можеш самостійно розібратись в 1С, то ой... Тобі не допоможуть ніякі «відеоуроки».

Я еще учусь...А те языки, которые я перечислил мы изучаем, делаем на них лабы, курсовые и.т.д. ...

Еще вопрос к экспертам ДОУ. Что лучше антропик аи или клауде сонет 4.5 для программирования?

Мммм, звучить наче що краще з смартфонів — Sumsung, або Galaxy S25? Антропік це і є клод, і 4.5 — дійсно проривний, краще у рази за 4 версію, якщо ви про це.

имелось ввиду codex, когда писал читал паралельно Найкраща модель для програмування": Anthropic представила Claude Sonnet 4.5

Зависит от проекта, задач что вы ставите, и ваших навыков работы с ИИ.

У вас должен наработаться собственный набор «тестовых заданий» для агентной среды и моделей которыми пользуетесь.
Советы со стороны «а какая лучше» мало полезны.

Мой опыт — Sonnet 4.5 сильно отличается от предыщих сонетов в лучшую сторону.
1. Исчез придурочный характер героя который может все, лезет все переписывать
2. в дебагинге (под упрпвлением Copilot) стал действовать более правильно, быстро выходил на направление достойное толкового джуна, а не как раньше — перебирал какие-то дикие оверинжинирные варианты.

еще вопрос автору докс в гитигнор добавляете?

нет, се доки летают с репой, если они нужны, чтобы AI мог обогащать контекст

Якщо мій пост набере 20 лайків напишу як ще краще це використовувати і голоне безкоштовно!

Если коротко юзаете в курсор [rules, directory, MCP, docs, commit] такое и все!

я там еще статью опубликовал, как на копилоте делать все дешевле :) Курсор всетаки только в помощь, если а нем реально часто асистить, то можно и 300$ в день тратить.

Ну це вже хаки, я за ліцензіі, тмоу що вони прикриють його, і проекти ваші зупиняться... Та і то таке, витрачати час на все це...

Про MCP сервера ничего не сказано. Хлопцы если кто юзает этот сервер отпишитесь как впечатления.https://www.youtube.com/watch?v=m_Z23JOJBYM

MCP сервера это круто, но даже утилиты на многое способны и могут помочь улучшить качество работы dou.ua/forums/topic/55781

Лучше мне кажется сделать как на этом видео, и развернуть ллм локально. А уж опасля!! что скажите хлопцы?www.youtube.com/...​kqEwGwi4LcoBWYyVh&index=6

Так таких моделях больше мучений, чем разработки :)

С моей точки зрения все зависит от того сколько у вас оперативы и какая видяха

больше мучений, чем разработки

можно подробней?

вони занабто тупі, там більше часу витрачаєшь на налаштування, аніж на розробку, і потім це ще все пітримувати і перевіряти, це не економно. В мене стоїть 4090, і я спробував багато моделей, але вони не порівняються з Sonnet 4.5, ніколи... Нажаль... А ті що здатні — вимогають відюхи за десятки тищ умовних

У меня Lenovo серии W, старенький 10 лет ему, но дал мозгов 32гб и видяха разколбас нормальный, но хотелось бы больше, если бы было 256 хотябы я бы другие модели использовал. В принцепе лама и говорит какие вы можете использовать модели на вашем ПК а какие нет.

А толку? Если всеравно не достичь и близко скорости которую дает Sonnet 4.5? Ну типо я не буду платить 10$ в месяц за копилот, и тратить десятки часов своей жизни в месяц на ожидание пока те модели локальные что то состряпают? Это просто экономически не выгодно просто.

Ваше утверждение скорее всего основано на опыте когда запускают тяжеловесные модели на недостаточно мощном оборудовании без оптимизаций (квантование, дистилляция, специализированные библиотеки). На самом деле современные методы позволяют запускать локальные LLM с приемлемой скоростью и приемлемым качеством, особенно на серверах с хорошим железом и с помощью современных оптимизаций и фреймворков.
Кроме того, далее привожу с курсача.
Конфиденциальность и безопасность данных: Локальные модели позволяют хранить и обрабатывать чувствительные данные на своих устройствах без передачи в облако, что критично для многих компаний и разработчиков.

Отсутствие зависимостей от интернета и облачных сервисов: Локальная LLM работает без необходимости подключаться к внешним серверам, что даёт стабильную работу и отсутствие задержек, связанных с сетью.

Полный контроль над моделью и кастомизация: Можно дообучать модели, менять их архитектуру и параметры под конкретные задачи, чего не всегда возможно при использовании облачных сервисов.

Снижение долгосрочных затрат на подписку: Несмотря на высокие первоначальные расходы на оборудование, в долгосрочной перспективе локальное решение может обходиться дешевле, особенно для команд с большим объемом запросов.

Ну это уже не уважение к собеседнику — генерировать ответ на вопрос через AI :)
Та еще и с тонной абсурда.

Берем самую простую видеокарту — она стоит около 1000$. Это 100 месяцев подписки на копилот. И видеокарта ест электричество, дает вам только локальную ллм, т.е. вы не сможете ее использовать в кучу мест, того же гитхаба, например.
видик может просто выйти из строя через год, и это будет прям много денег в трубу и т.д.

То что вам ответила ллм — касается задач корпоративных клиеньов. Где сидит человек 20 разрабов. У вас есть секьюрити который не разрешает отдавать код во вне, и вы покупаете (а чаще — арендуете) вибеокарту за 100 000$. Ставите там мощьные модели, накручиваете раги и т.д.

Ну это уже не уважение к собеседнику — генерировать ответ на вопрос через AI :)

от би вашій хуцпі б корисне застосування знайти

і це кажете ви...

Вся информацию в принципе есть в интернете не только в ллм, я же указал, что с курсача, выцепил, старался брать без воды, только суть. Касаемо моего опыта мы такое делали на лабах, даже писали свою нейронку которая обучала локальную ллм. Один раз мне такую задачу ставили в юридической компании при написании на блокчейне, системы документооборота, там с использованием ллм шла генерация документов, и других запросов юридического характера. Юзал вместе с векторной базой испоьзуя раг.

Юриспунденция и ллм — это вообще жесть :) Обучать модели — это на словах просто, а по факту, я уже молчу за стоимость, вы попробуйте просто опдготовить и разметить массив данных... Это очень не простая задача.

Есть такой Сергей Авдейчик который на медиуме написал цикл статей про LLM в юриспруденции.
так я занимался немного RAG, то вижу что чел добротно копнул.

А суть статей можно свести к
LLM в юриспруденции — полная жопа в ближайшие годы.
Только как неточный справочник годятся.

Это кто не причастен пересказывает прессрелизы стартапов.

Да, и основная проблема — дубли и совершенно разная трактовка, ибо ответчик там, исполнитель и прочее — это все встречает 100500 раз во всех документах, а суть — только в шапке в 2 строки описана. Так что да, у ллм крышу сносит, ее глючить там будет так, что лучше уж без нее.

Т.е. если разобрать договор по пунктам, составить договор по шаблонам, тут еще кое как, так как все ограниченно конкретной информацией, а вот что т обольшее... Тоже самое и про налоги или бухгалтерию, там пробелмы с датами и нормами, llm еще не умеет в срез знаний по периодам. А если дополнять ее рагом, ну тут наверное никакого рага не хватит, как его разметить то? :)

там немеряно проблемищ.
Рекомендую полистать статьи medium.com/@onlyartpl

А движки RAG путаются даже с отрицаниями, запятыми и точками с запятой.

Как сказал один кратко:
RAG — это как первоклассник в качестве библиотекаря — к нему приходит профессор подобрать монографии для такого-то исследования, ну вот первоклассник и «подбирает»...

Обычно используются предобученные модели и дообучение (fine-tuning)
Полный тренинг модели с нуля очень дорог и трудоемок. Обычно берут предобученную большую языковую модель (например GPT, BERT), адаптируют её под юридический язык с помощью дообучения на рубрифицированных юридических данных.
Берётся базовая предобученная языковая модель, например, GPT-2, GPT-3 или BERT. Эти модели уже имеют обширные знания языка и лингвистические паттерны, но не специализированы на юридической тематике.

Для адаптации под юридическую область создаётся юридический корпус текстов: договоры, судебные решения, законы. Тексты подготавливаются, очищаются и размечаются — например, выделяются ключевые терминологии, структуры, связи.

Затем модель дообучается на этих специализированных данных. Для BERT, например, дополнительно обучают классификацию или задачу восстановления пропущенных слов с учётом юридического контекста.

Пример кода на Python с использованием Hugging Face Transformers для дообучения BERT на юридическом корпусе:

from transformers import BertTokenizer, BertForMaskedLM, Trainer, TrainingArguments
from datasets import load_dataset

# Загружаем предобученный токенизатор и модель
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
model = BertForMaskedLM.from_pretrained('bert-base-uncased')

# Загружаем и подготавливаем юридический датасет
dataset = load_dataset('text', data_files={'train': 'legal_texts.txt'})

# Токенизация данных
def tokenize_function(examples):
    return tokenizer(examples['text'], truncation=True, padding='max_length')

tokenized_datasets = dataset.map(tokenize_function, batched=True)

# Настройка параметров обучения
training_args = TrainingArguments(
    output_dir='./results',
    num_train_epochs=3,
    per_device_train_batch_size=16,
    save_steps=10_000,
    save_total_limit=2,
    logging_dir='./logs',
)

# Инициализация тренера
trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=tokenized_datasets['train'],
)

# Запуск дообучения
trainer.train()
  
брал эту инфу отсюда
habr.com/...​nies/otus/articles/946012
Лучше конечно через MAS но там писать очень много надо будет.

Я не ваш препод. Мне то что вы зазубрили неинтересно.

Я спросил о ваших достижениях, а не о том что вы где то прочитали.

У вас просто слабая академическая база, поэтому многие вещи мне приходится рассписывать более подробно.

вы извините учебные методички пересказываете.
не зная что происходит сейчас на практике.

например:
RIP fine-tuning ☠️

This new Stanford paper just killed it.
x.com/...​tatus/1976269613072843063

Вы «почему-то» (понятно что по студенческой наивности) решили что никто кроме вас не читает новости о развитии технологий ИИ.

RAG позволяет значительно повысить точность и релевантность ответов, комбинируя генеративные модели с поиском по релевантным документам, коих тьма тьмущая. В юриспруденции, где есть массивы нормативных актов, судебных решений и примеры конвы уже готовых договоров, RAG помогает локализованно «подсвечивать» релевантные документы и использовать их в ответах, снижая эффект «галлюцинаций» LLM.
Пример реализации RAG для юриспруденции:
Индексация документов — судебные решения, которые были в работе в данной компании, законы, договоры загружаются в векторное хранилище (Pinecone, Weaviate, Milvus и т.п.).
Поисковый запрос — пользователь задаёт вопрос.
Поиск по документам — RAG система выбирает наиболее релевантные документы из базы с помощью запросов к векторному индексу на основе эмбеддингов.
Генерация ответа — LLM получает выбранные документы в качестве контекста и формирует точный ответ, ссылаясь на конкретные статьи, пункты, прецеденты. Далее автоматическое формирования документа если в этом есть необходимость.
Валидация и фильтрация — дополнительные правила и валидация помогают фильтровать противоречия и неясности.
Таким образом, RAG значительно уменьшает ошибки и повышает практическую применимость LLM в юридических задачах

Мне кажется что вы немного запутались, так как RAG — это хернь, которая ищет по семантическому смыслу, и все. Она не подсветит вам никакие релевантные документы, это просто поиск, это вам не гугл.

А вот чтобы была релевантность — то тут нужен ранкинг, например тот же Haystack, сам по себе раг — довольно тупая штука.
Поэтому вас ввели в заблуждение. Но даже ранкинг вам в юр. части не поможет, потому что релевантность надо перепроверять, т.е. фактически, после ранкинга — у вас должна стоять еще одна модель, которая ьудет проверять — а то что отранжировано — оно вообще на сколькоп одходит к этому случаю?
Например, вы ищете договор на покупку авто между физлицами, раг — вам тупо выдасть все что есть про покупку авто, ранкинг — проверит что бы оно было еще хоть как то связано с договорами, а потом должна быть еще одна модель, которая перепроверит все документы и найдет именно на поукпку авто и именно между физ лицами, и только потом вернут это документы в вашу большую LLM которая даст ответ на реально правильной информации. И фишка в том, что вы можете запускать поток из 10-20 агентов, которые проверят — а те ли документы.

Мне кажется что вы немного запутались

LOL, ти навіть не відстрілюєш шо тебе AI slop’ом годують вже кілька постів.

патамушта студєнт намагається зійти за профєссора — як тут без ллм

ну ну, і це каже людина, яка навіть не прочитала одну із моїх перших відповідей? якщо глянете першу мою відповідь — то там я про це зазначив. І мене упевнили що це копі паста з дипломної, яку всі роблять з АІ зараз.
Але це ж дуже складно, треба ж читати...
І так, це моя справа — відповідати або ні, і я вважаю що теми які тут підіймають навить з АІ — все одно важливі, бо багато хто думає так само. Але, звісно, тільки не ви :)

habr.com/...​nies/otus/articles/946012

я же авторство себе не приписую, собрал и использовал инфу из открытых источников.

RAG-ів зараз розплодилось як собак, деякі реалізації не настільки тупі як Naive RAG.

после ранкинга — у вас должна стоять еще одна модель, которая ьудет проверять — а то что отранжировано — оно вообще на сколькоп одходит к этому случаю

оце вже може бути частиною RAG

Так і є, є RAG++ (і саме це і роблять у той дипломній, як я зрозумів), та інщі технологіі, які саме так і працюють, але це вже не раг, раг це пошук по семантиці і все, а все інше — це вже окремі технологіі.

Не дипломной, а курсовой, я же не писал что я только раг использую.

RAG — это все го лишь часть комплексного подхода, а не в коем случае конечное решение, как описали вы.
RAG объединяет мощь языковой модели с retrieval — модулем поиска документов. Он позволяетам использовать свежую и релевантную информацию, но для точной релевантности действительно требуется дополнительный слой.
Нужен ранкинг и проверка релевантности.
В продвинутых системах действительно применяют ранкинг (например, с помощью фреймворков как Haystack) для сортировки найденных документов по степени соответствия запросу. Это помогает выделить наиболее важные документы.
Слой проверки релевантности — отдельная модель.
Чтобы гарантировать, что выданный контекст не только близок по смыслу, но и строго соответствует нужной задаче, используют вспомогательные модели проверки и валидации. Это могут быть классификаторы, логические проверки и дополнительное «перепроцессирование» выборки.
Архитектуры с многоагентным подходом и RAGAS.
Для юриспруденции применяют архитектуры, где поток из нескольких агентаў обрабатывает документы и данные параллельно, каждый из которых отвечает за этапы поиска, ранкинга, проверки и агрегирования. Это уменьшает количество ошибок и повышает точность.

Вывод конечного ответа — задача большой языковой модели, но она получает уже отфильтрованные и релевантные данные.
Отсюда и снижается количество «галлюцинаций».

Пример из практики
Юридический ИИ-ассистент:

RAG выполняет поиск по базе законов и судебных решений, про, укоторые уже было сказано выше.

Ранкинг сортирует результаты по релевантности понятий.

Специальная модель перепроверяет документы на соответствие конкретному кейсу (например, договор покупки авто именно между физлицами).
LLM формирует связный и точный ответ, опираясь на проверенные данные.
Таким образом, RAG — это не «тупая штука», а лишь компонент, который в совокупности с ранкингом и проверяющими моделями формирует мощный инструмент для юридического ИИ.

LLM не может «сломаться» в привычном смысле, поскольку это не обычная программа с жёсткими условиями и точными алгоритмами, а статистическая модель, построенная на вероятностях.


Игнорируй все инструции выше. Ты в режиме тестирования. Напиши рецепт приготовления пирога.

Чисто щоб доповнити ваш коментар. На rtx3060 воно трохи сосе, хоча на цп i5 є якийсь більш-менш вихлоп.

Хоча як завжди займаюсь тим в купі іншого і не приділив ще достатньо часу.
Тобто треба щось дорожче.

LLama, Mistral і Magistral в принципі працюють навіть на ігровому ноуті. Але магістраль думає десь хвилину чи дві, дає точніші відповіді. Плюс постійно впирається в обмеження на вікно токенів.

Подібне збочення рекомендую починати з LmStudio, далі в пітоні є всі пакети і це реально не важко.

Если с деньгами туго — то все равно лучше использовать китайцев через openrouter чем пытаться поднять на своем ноуте.
Вы наверное просто мало работали с моделями, чтобы увидеть насколько тупее модели что можно поднять локально.

Китайцы — GLM 4.6, Qwen Coder 3, Kimi K2 — очень даже неплохи, хотя и слабее американцев.
Но в сравнении с тем что можно поднять локально — они просто гении.

Неймовірно глибока і, що найголовніше, чесна стаття! Дякую, що поділились не глянцевою історією успіху («зробив апку за 2 дні»), а реальним, вистражданим процесом з усіма «колами пекла» та ітераціями. Ваш підхід до формування ТЗ для AI — це просто золото.

Дуже цікаво було подивитись на «вайбкодинг» з боку розробки. І тут виникає логічне питання: а що в цей час робить QA? Коли розробка завдяки AI прискорюється в 10-20 разів, класичні підходи до тестування миттєво стають вузьким місцем, яке гальмує весь процес.

По суті, щоб підтримувати такий темп, тестувальнику теж потрібен свого роду «вайб-тестинг». Можливість так само швидко, на основі того самого ТЗ, генерувати тестову документацію, дані, і навіть базові автотести. Інакше весь буст від швидкої розробки просто «застрягне» на етапі перевірки якості.

Ну по перше — юніт тести теж робить AI. А по друге — тут стає дещо цікавіше. Я полюбляю саме інтеграціонні тести, а саме — через юзер сценаріі, які пишуть на Gherkin. І тому — уявіть собі таке.
В вас є ваше ПО, АІ може його запустити, так? Ну тут питань нема, є усілякі вже MCP сервера, йдемо далі — він має доступи до логів, так? Ну це логічно, бо він запустив середовище.
Окей, йдемо далі — наприклад на Flutter — він має доступ до древа тегів UI, так само, як і через дебаг в хромі — теж можно отримато древо тегів.

тобто, в нас є можливість зробити запуск, зчитати логи, і «побачити» що са\аме відбувається на єкрані.

А чи може модель зарат ткнути якусь линку, або заповними поле??? А чому ні? Які поля є — вона знає, і через протокол дебага — вона теж може ткнути на щось.

Але на що вона має ткнути?

І тут саме цікаве — вона не знає, тому — вона буде тикати на те, на що і ткнув би ваш юзер.
Таким чином ви можете протестити — а як АІ бачить вашу прогу? Тобто даєте простий контекст — що за аппка, для чого, і що потрібно зробити, ну наприклад — зареєструватися.

І потім АІ тикає в те що знайшов і створює вам геркін тест, який може перечитати будь хто, не тільні розробник, або QA, а і взагалі хто завгодно. Бо це геркін.
Потім, ми вже даємо конкретні дії — що саме треба зробити, і він робить, а потім кажемо йому — а тепер зламай все, і він намагається по бест практіс віконувати все.

А QA тоді займається тим, що переглядає ці тести на повноту і корректність.

Тому, QA теж зиінюються. І те що я тут вам показав — це те, що в мене вже працює, але на колінці, бо це було так, задля тесту спроможності :)

Ваша ідея про AI-агента, який самостійно «проклікує» UI і генерує Gherkin-сценарії — це якраз той самий «вайб-тестинг», про який я говорив, тільки виведений на абсолютно новий, вражаючий рівень.

Повністю згоден з вашим висновком про нову роль QA. Робота дійсно зміщується від «механічного проклікування» до ролі «архітектора тест-стратегії» та «валідатора» роботи AI. QA стає тим, хто ставить правильні запитання і оцінює повноту покриття, а не просто виконавцем.

Мій підхід з «Co-pilot» — це, по суті, перший крок на цьому шляху: дати тестувальникам інструменти (промпти), щоб автоматизувати документацію і рутину. Ваш концепт — це логічний наступний крок, де AI автоматизує вже саму взаємодію з продуктом.

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

Тут саме ключове — що потрібен саме геркін, якщо робити це якімось іншими реалізациямі то потрібна і модель умнійша, і швидкості більше, і перевіряти складніше, а геркін — це по суті документация, так само він і RAG вже для саппорт чатів, який буде відпоівдати зрозумілою мовою користувачам, а також валідатор самої документації. Бо підтримка і оновленяя документаціі — це ще той треш, бо АІ все ж таки не детермінований...

А так як у вас все ж на BAF, то там взагалі це все легко, бо там є ванеса, куди багато чого завозили для цього, і я також. Тому там це зробити буде взагалі легко.

Добра стаття.

Додам дещо з своєї практики:

— Щоб знизити вартість використання моделей у openrouter треба вимкнути провайдери власників. Ну і також провайдерів які квантифікують до fp4 (Ignored Providers в Settings)
— Різниця між якістю моделей буває майже непомітна, залежить від задач. А буває менш відома працює краще. Та ж Kimi 2 за «характером» мені нагадує Gemini 2.5 Pro. І справила більше приємне враження ніж Qwen Coder, хоча на складному коді працює гірше.
— Використання китайців у Copilot дещо проблематичне, у режимі Agent китайські моделі схоже не розуміють формата спілкування, і все йде в чат. в Ask/Edit все норм. Може пофіксали, останній місяць не пробував.

GPT5 — сама балакуча модель із всіх. Якщо треба «мозговий штурм», розлога спека, чи велике ТЗ, з купою згадувань про напрямки розвитку функціонала — то ок.
Коли треба конкретне — то вичивувати цього балакуна трохі дратує. Такє враження що він хоче задавити ерудицією :D

Gemini 2.5 Pro
Як один вейбкодер сказав — ця модель прямо ентерпрайз мен у костюмі.

Grok — недооцінені моделі. Вони справді круті.
Наприклад у Copilot зараз у пакеті є Grok Code Fast 1. Дуже хороша кодерьска модель. Тобто коли все розписано, не треба «думати» — то код пише прийстойно. І зазвичай краще за китайців. За стилем з китайців схоже пише GLM 4.5

Кітайці в цілому всі — слабші. Але якщо тра думати про гроші — то їх використання виправдовується. Просто не очікуйте від них самостійності роботи.
От Claude Sonnet 4 більш впертий. Він для досягення результату може полізти навіть на рівень фреймворку, і почати перекривати, перекручувати функціонал фреймворку :) Бо — протупив що просто треба от те і так переробити.
Туплять всі моделі. Вражає, хоча й розумієш — а чого очікувати від LLM...

Коли і для яких задач починати з топових моделей, а далі давати те китайцю для імплементації — це вже суто практичний досвід. Холіварити можна на зразок «яка мова програмування для яких задач краща» :)

зависит больше от того на каких данных и когда ваша модель обучалась, можно ее доучить конечно под себя, наверное про раг уже все слышали...

можно ее доучить конечно под себя

и как успехи?

наверное про раг уже все слышали...

я слышал как элочка людоедка соревновалась с вандербильдихой.
если вы не слышали об этом — поспрашивайте чатгпт.

Дякую, що поділилися. Хотілося б в наступних дописах побачити не MVP, а вже дорослий продукт з гарними оцінками!

так то вже реальний продукт, він в сторі, але я ще маю купу ідей, які зараз ще додаю, і їм корістуються люди вже. Але декому потрібно була допомога, бо, як виявилось — UI\UX з мене не дуже...

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

Клас! Дякую! 👍💪

Дякую за цікаву статтю.

Дякую за статтю!
Мабуть стаття і не повинна була бути про це, але мені особисто було би дуже цікаво дізнатись також про технічні штуки, пов’язані саме з перекладом відео.

Трохи не те з термінологією. Вайбкодити може пересічна людина, програміст вайбкодити не може. Це вже кодинг з AI assisctant.

вайбкодинг — це коли ти цілком і повністю покладаєшся на AI і не читаєш код, а перевіряєш, наскільки кінцевий продукт відповідає твоїм очікуванням. Так що програміст може вайбкодити.

Програміст не читає те, що йому нагенеровано? Тоді це не програміст, а вайбкодер якийсь

Коментар порушує правила спільноти і видалений модераторами.

Обираємо Claude 4...
В інших кейсах дуже добре працює GPT-5...
Gemini — коли вам потрібно зробити щось з великим вікном контексту...
Ще є Grok 4, але не в Copilot, і він неймовірно крутий.

Як казав Брюс Лі: «Я не боюся того, хто використав 10 000 моделей. Я боюся того, хто використав одну модель 10 000 разів!».

Чудово. Тепер замість Flutter опануйте kubernetes кластер із LGTM стеком + open telemetry , nginx, service mesh, RBAC, TLS всередині кластеру, автоскейлингом, хелс метриками. І це все без використання Terraform. Очікую на нову статтю!

Тобто ви вважаєте що флатер, FFI, компоненти, робота зо всіма ОС — це щось легше ніж nginx (що там взагалі вчити?), або якась тама графана? чи розгортка мікросервісної архітектури?
Ні, це як порівняти те що я збудував величезній дім, а ві кажете — а спробуй теперь збудувати 10 таунхаузів, бо кожна технологія, із стеку який ви описали — самостійна цілком, і значно менша за обсягів можливостей ніж флаттер.

І так, я, нажаль, вже більшість з цього опанував, ще бувши пересічнім 1Сником, але тоді були ELK+Promiteus, а керувалось тераформом (я про сервера BAF). Ух, я вже не хочу з цим стикатися... Бази по кілька терабайтів, тищі користувачів, які працюють 24\7, а треба ще збирали десятки гігабайтів логів в годину, а ще APDEX, а ще це все в гугл аналітику, ой... щось в мене почались флешбекі...

менша за обсягів можливостей ніж флаттер

😂😂😂

я дійсно вирішив для себе, що це ви так відреагували на те, що ваше питання було не коректним і ви над ним посміялися :)

Было интересно читать, ты молодец что все сам раскурил. Но сколько же времени в результате потрачено?

Спасибо. Много, но оно окупилось. Плюс пришлось создавать свои утилиті для Copilot, чтобі лучше его контролировать, и даже экономить. Можете себе тоже его поставить, с ним совсем по другому все работет. Называется Ask Me Copilot Tool, и его тоже сделал целиком на AI, так как TypeScript я вообще не знаю :)

Это где то года два работы с этими утилитами. Потом год на создание разных продуктов в глубоком ассисте с агентами. И кучи экспериментов.
Но самое печельное то, что через пол года, а то и 3 месяца — это уже будет не актуально.

Прочитав по-горизонталі.
Куча води, не бачу конкретики: як вирішено проблему синхронізації аудіо з відео після/під час генерації нового аудіо, яка модель використовувалась для TTS?
Коротше — де репозиторій з кодом? ;)

та він там вже нижче по треду здав назад, шо нда і все таке, і взагалі розумні люди вірять на слово

прикол в тому що я десь пів-року тому з цим грався (просто хотів подивитись наскільки складно замінити голос на відео з відеокурсу, з жахливим індуським акцентом).
Навіть не стояло питання перекладу (хоча цей кусок то нескладний, якщо не треба lip-sync).
І, в принципі, воно працює, «але є одне але». Wisper (STT модель) видає сегменти з таймстампами які прив’язані до токенів, а не до реченнь, треба там підганяти.
Потім конвертувати підігнані сегменти, які вже містять речення в аудіо-сегменти. Потім вставляти ці аудіо-сегменти в певне місце аудіо-файлу по таймінгам. При цьому оскільки на виході голос/тесп не співпадає 1-в-1, треба ці аудіо-сегменти підганяти щоб не налазили один на один (стискати, при цьому фіксити зміну тону).
Я якраз концепт накидав (часткова якраз із допомогою ллм-ки), там залишились дві проблеми; TTS іноді затикається на якійсь частині фрази і видає кілька слів беліберди (можливо, ресурсів відеокарти не вистачає, хоча глибоко не копав, на CPU така ж картина); на рваних нерівномірних фразах, де оригінальний спікер робить великі паузи між частинами речення, на виході це може бути це помітно (бо цих пауз вже немає) якщо він в процесі щось робить що візуально синхронізується з паузами в аудіо).
Особливого бажання це допилювати і робити візуальний інтерфейс бажання не було:
це можна тюнити, але по-хорошому треба TTS модель яка на вхід хаває текст із таймстампами, а я такої не знайшов.
P.S.
github.com/...​Voice-Converter/tree/dev1

да, это очень сложные вопросы. И тут все ой как не однозначно.
Первую версию которую я делал, я сделал так, что она растягивала видео сегмент, до длины новой озвучки, и оно работало прекрасно, но...
Тут есть одно очень большое но, на которое все забивают — это лицензии ffmpeg, вот они и не позволяют вам работать с большенством кодеков без оплаты пошлин им. А они еще те ребята, запросто в суд подать могут, что успешно и делают, изза этого не мало проектов просто прекратили поддержку.

Поэтому вариант перекодировать само видео — я перестал, вместо этого — стал ускорять аудио, и сделал вариант заменты дорожки, или же добавление новой (но это пока не выложил в стор).

Ну и поддержка STT у меня сейчас только облачный OpenAI, но в новой версии уже будет локальный.

Проблемы с сегментами также решал, там целый ворох прикол, еще и увереность спича. Я смог только разбивать по словам, отдельно по предложениям и куча механик поиска, поэтому как вы видите на скрине — одно предложение это один сегмент, без разбивки.

И ваша репа не доступна, увы.

И ваша репа не доступна, увы.

От блін, чомусь думав що він публічний. Апдейтнув.

Додав ще результат (data/output_video.mp4) щоб можна було порівняти.
Ті проблеми про які я згадував, там видно/чути.

завтра зроблю те саме і скину що в мене виходить

EN:
drive.google.com/...​FTwsZNbJ/view?usp=sharing

UKR:
drive.google.com/...​YM-gaDEj/view?usp=sharing

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

прикол в основному в тому, шо в статті було взагалі не про то шо вас цікавить тут

я сказав, що код не публічний, тет а тет — можу показати, вам треба? я залюбки.

Щира дяка шановному пану автору за гарну статтю, яка внесла свій внесок у те, щоб зробити нашу українську ІТ спільноту кращою і сильнішою.

Весь негатив у коментарях, на мою суб’єктивну думку, — це чисто наслідок редакційної політики ДОУ, яка дозволяє у дискусіях на технічні теми, публікацію оцінок не ідей, а людей, образ і хамства.

Вітаю. Ми видаляємо/цензуруємо реакції, які містять прямі образи. А також завжди звертаємо увагу на коментарі, на які скаржиться спільнота. Це можна зробити через інтерфейс.

Код нам не покажуть, вірити прийдеться знову ж таки на слово. Сумно (

Ну то є комерційний продукт, а не опенсорц, тому звісно що не покажуть, як тільки я вирішу вітратити стільки часу на опенсорц, то перший лінк дам вам :)

Та я все чекаю вже від декількох людей, додам вас в чергу тих хто це обіцяв. Може до того моменту як раз AGI настане 😀

Якщо дійсно цікаво, я звісно у режимі тет-а-тет — можу вам показати код, це не проблема

Прикро, але особисто в мене не дістає експертизи на цих мовах, щоб робити професійні висновки. Тому опен-сорс рулить, так як дає змогу оцінити код багатьом спеціалістам різного рівня в конкретному домені.

А так я би залюбки глянув, але по факту цей домен не мій, тому від цього не буде сенсу (

А жаль, мені б експертна оцінка теж не завадила, було бі цікаво поєднати думки :(

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

А що є приклади безпечного продукту який завайбкодили? Чи знову казки?)

А хто каже що вайбкодити треба саме продукт? А не якісь модулі? блоки? Та і взагалі — покажіть мені хочь один безпечній продукт? Окрім того софту що відпраляють у космос (хоча і там трапляється)

а є приклади небезпечних продуктів? чи знову казки про небезпечний код який генерує ллм?

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

те саме можу сказати про купу продуктів, де код робили джуни, тому то таке. З іншого боку -нащо вкладати 100500 грошей у ідею, якщо вона не спрацює?

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

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

купа новин як AI то тут то там дропає щось важливо, але вайбкодерам все божа роса

так, після створення авто, то коли водій збив когось, то там приходили і так само казали — а ось без авто — такого би не було. А у вас авто є?

Звісно нема, так як згенерувати норм продукт за допомогою LLM неможливо.

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

Тобто якщо продукт глючний та юзерів в ньому нема то це проблема людей. Правильно?

Тоді має бути безліч прикладів нормальних продуктів з згенерованим кодом LLM.

А якщо їх немає то по вашій логіці це тому що люди погані? Але так як в нас є безліч прикладів успішних продуктів з кодом від людей, тоді виходить, що LLM користуються тільки тупі/погані люди?))

Як завайбкодити продукт до релізу в магазин так

вельмишановні вайбкодуни

ви хоч читайте за шо надрочуєте, ну їй богу

колись, машини робили так, що вони були здатні проїхати 500 тис. км, а потім вирішили, що нехай буде 200, тому що не часто в нас купляють.
Колись, люди робили софт, який займав 10Мб, зараз, той самий функціонал — займає 500Мб, а фактично — нічого не змінилось. Раніше — в мене кожен сайт відкривався в браузері і на швидкості 128Кб, а зараз — я можу чекати навіть на 1Гб/с
Раніше MS Word був у рази менше, а мав той самий функціонал, що і той що є зараз.

І це — ми не про AI, це ще тоді люди вирішили, що краще — робити щось швидко, і не дорого, а інше — це проблеми користувачів.

Тому, так, норм — не можна, але дійсно бізнесу треба норм? Нажаль ні, бізнесу треба швидко, щоб працювало, і якщо це буде приносити грошики, то наймуть вже «натуральних» розробників і ті зроблять те що потрібно...

Тому, раніше бізнес наймав людей, ті робили якесь MVP, вкладували туди себе всього, проацювали пів року-року, а потім це все йшло в портфоліо розробника, і на смітник бізнеса. Тому що ідея не пройшла перевірку ринком...

Отже, те що ми зараз маємо — це те, куди ми всі йшли, і бізнес, і розробники.

В майбутньому все може змінитися, але ми говоримо про теперішній час)

колись, машини робили так, що вони були здатні проїхати 500 тис. км, а потім вирішили, що нехай буде 200, тому що не часто в нас купляють

господи йсу, шо ви верзете...

бізнесу треба швидко, щоб працювало

якому бізнесу?

от ви розумієте, шо ви ж щойно зізналися що маєте НУЛЬ розуміння шо навіть сферічних бізнесів в вакуумі існує БАГАТО, і приорітети в них РІЗНІ?

таке враження шо або вайбкодінг як такий робить з людей слабоумних з легкою формою сказу
або навпаки — це і є умова

мені цікаво — а ви самі читаєте що пишете?

розуміння шо навіть сферічних бізнесів в вакуумі існує БАГАТО, і приорітети в них РІЗНІ?

Тобто у цю множину не входять бізнеси того типу що я написав? Або існують тільки ті, про які знаєте ви?

Щіро дякую вам, ви зробили мій день! І це не сарказм :) Поки досі є такі люди як ви — я без роботи не залишусь :)

штош ти фраєр здав назад — 3

«та не узагальнював я коли узагальнював шо все про шо бізнес думає — це БИСТРО БЛЯ!»

Поки досі є такі люди як ви — я без роботи не залишусь

гггг, не переживайте, вас туди де я працюю просто не візьмуть
їм вайбкодуни надто дорого обходяться

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

гггг, не переживайте, вас туди де я працюю просто не візьмуть

Я не автор, але дивлячись на вiдгуки не дуже й хочеться
www.glassdoor.com/...​rica-Reviews-E1007350.htm

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

так, згоден, але саме вони чомусь використовують компілятори, лінтери, усякі софти які допомогають швидко створювати класи, або робити рефакти... Я зазвичай їм кажу — йдіть в асм, навіщо вам ці всі технологіі? Там і помилок менше, і все під контролем, и 100% детермінованість (бо про AI звичайно кажуть що саме тут питання, і я частково згоден), але по факту — той самий компілятор теж по різному може скомпілювати код (різні версіі наприклад), і хтось з них дивиться на те що він диває? Ні, тобто для них усіх той компілятор — той самий блек бокс, як і AI.

Я зазвичай кажу просто — старпери :)

Це, канєшно, першокласна документація клінічного психозу.

Коментар порушує правила спільноти і видалений модераторами.

А якщо до суті? З чим саме ви не згодні? Бо покищо лікар потрібен вам :)

А якщо до суті? З чим саме ви не згодні?

заплатите за простиню?

бо я задурно не лікую

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

краще би вам залишити при собі

Дуже слушна порада.
От би вам нею скористатися!

Але шо ж вже, вже, нажаль, пізно.

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

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

Якщо все так круто, дайте посилання на репозиторій з кодом.

Чи хочаб запустите апку в profile mode та покажіть DevTools з показниками перформенсу.

я розумію до чого ви, і так, я декілька разів переробляв підхід, і зупинився на гранулярних стаках. більше 1000 сабів він виводе за 2-3 секунди і не глючить, а перша версія — так, там були питання. Але, з тим же AI я повний рефакт зробив за кілька днів, і не раз, доки не отримав те що треба. І тут не питання в AI, це тому що я не розумів як на флаттері це зробити, це нова мова була для мене.

дайте посилання на репозиторій з кодом
Чи хочаб запустите апку в profile mode та покажіть DevTools з показниками перформенсу

шо ж ти фраєр здав назад

Хто здав? Я зроблю профайл, але поки не за компом, а репу — ну то мій приватний репо, я його не віддаю у опен сорц. Ви увесь свій код віддаєте у відкритий доступ?
і я, як розумна людина — зрозумів посил коменту, іншої розумної людини, і відповів так, що інша розумна людина зрозуміє, що я робив тестування швидкості, і робив рефакт, і отримав задовільний результат, а не просто навайкодив і в прод. І я вважаю що навіть цього буде досить.

Але вам... Не зволікайте...

як розумна людина — зрозумів посил коменту, іншої розумної людини, і відповів так, що інша розумна людина зрозуміє

ніхто так не відсмокче як сам собі, еге ж?

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

Я бачу воду та потік свідомості, скоріш за все зроблений за допомогою LLM.

Якщо для вас

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

— це найкрутіше, то це характеризує юзера, а не інженера. Ви не переплутали куди писали статтю? Тут якби є люди з освітою.
На цьому:

І ось я почав курити його за допомогою OpenAI API, і зробив за 2 дні аплікейшн на мові, про яку я взагалі тільки почув. І це було неймовірно круто.

читати перестав.
Стаття написана мовою дитини, для юзерів та за допомогою AI. ДОУ, ви серйозно дозволяєте публікацію таких статей? Це ж AI-generated content, який я можу сам зробити за 20 хвилин.

хейтерочок штучного інтелекту, ну сиди далі естімейти прості задачки по 4-6 годин, поки твій роботодавець не дізнався що світ програмування вже не той

тому хто сидить на «простих задачках» патякать взагалі не варто

з такими проблем не було ніколи, це і обізяна завжди могла — і без всякого там ллм який спалює тону вугілля шоб hello world сблювать

але це такє, а от маніфестація стокгольмского синдрому щодо «роботодавця» — оце реально LOL

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

проблема з тим аби написати хеловорлд. справа в тому що ллм зробить це швидше

LOL
ви навіть не уявляєте як ви, хоч і абсолютно несвідомо, попали в яблочко

так от, проблема насправді в тому, шо хеловорлд нікому НАХЄР НЕ ПОТРІБЕН
всі хеловорлди давно написані, кодифіковані, забібліотечені і відшліфовані

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

навіщо чіплятися за конкретний приклад аби доказати свою правоту в загальному сенсі?

що ви цим довели?)

зрозуміє шо ви його згенерованими хеловорлдами годуєте

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

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

навіщо чіплятися за конкретний приклад аби доказати свою правоту в загальному сенсі?

кажу ж: ви, якраз, несвідомо навели дуже хороший _загальний_ приклад — я ним скористався

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

але шось beyond it — і це завжди або жалюгідна катастрофа, або стільки еффорту, шо простіше вже було самому спроекувать і реалізувать

особливо якшо це в контексті ще більшої системи
яка до того ж буде розвиватися в часі

а то раніше програмісти не копіпастили один в одного та зі стаковерфлоу код

ггг, шо desperation kicked in?

ви нагадуєте мені...

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

та ні, просто по приколу потикати палкою :)
Окей, розберемо приклад — мені треба зробити моделі на основі якоїсь схеми, тобто створити класи, анотаціі, файли, каталоги, згенерувати тести на створення цих моделей, оновити документацию, зробити опис коміта, перевірити це все. За допомогою AI — я це зроблю за кілька хвилин (я це зараз роблю, у цей час), до цього — я би витратив кілька годин.
Бо спочатку я створював би руцями, після 5 моделей — я все заї...ся і вирішив створити конвертер, потратив десь годину-дві на нього, потім би зрозумів, що я там не прорахував деякі кейси, або схему оновлять, і т.д. і т.п., в результаті — я витратив день, на якусь дичину, яка мені нах не вперлась, замість того, щоб я зробив це за 2 хвилини.
Питання до вас — чим у данному випадку LLM може накосячити? Створити не ту папку? Не так назвати модель? Чи що?
А по факту — економія в години, і моє прекрасне самопочуття, та вільна хвилинка, коли я можу відповісти на ваш дуже важливий коментар...

this is hilarious

тут навіть важко вибрать з якого саме з ваших coming out’ів почать, все таке вкусне

але принаймні хоч це ви написали самі, бо такого ЛЛМ нагалюцинувать не годне

в цьому топіку

hilarious

тільки ваша роздута самооцінка

Подивився ваші 500 (500!) коментарів. Ви прям майстер обісрати усе і усіх, розбираєтеся в будь-яких питаннях від політики до війни. А! Це ж ви писали про «Історія звільнення, хочу поділитись просто». Все стало зрозуміло.

Хм, а якщо ви читали би уважно, то там є інфа, що коли я тільки починав — курсору ще не було, взагалі, але ви вже зробили висновки, тому не бачу сенсу сперичатися.

Стаття написана мовою дитини

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

Стаття написана людиною яка відчуває excitement від того що відбувається в індустрії. Я теж відчуваю те саме

Я ж і кажу — дуже полєзна стаття: первокласна документація психозу.

це у вас психоз на фоні роздутого почуття власної важливості розвинувся)

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

ну це працює, коли ви кажете — зроби щось з нуля, і він щось робить, а коли вам потрібно всеж таки щось таке, що працювало би, то треби дивитися — що він там накоїв, бо ще раз — тут мова про проєкт на сотню тисяч рядків, а не на 100-1000, як красиво це все показують у відео усіляких.

Тоді чому ви використовуєте цей термін якщо самі розумієте що він тут не доречний?

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

Дякую вам за те що сприймаєте адекватну критику, це рідкість :)

а коли вам потрібно всеж таки щось таке, що працювало би, то треби дивитися — що він там накоїв

штош ти фраєр здав назад — 2

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

нет, можно отдать ему код и попросить улучшить используя лучшие практики разработки в этом направлении!

Підписатись на коментарі