Результати пошуку
Знайдено 447 результатів із порожнім запитом
- Півтора мільярда переглядів. Як SubSub працюють з YouTube Shorts
Комедійний персонаж Mr. Clabik має 1,3 млн фанатів, а кількість переглядів його відео на YouTube перевищила півтора мільярда. Над каналом працює автор та виконавець скетчів Єгор Самойленко і команда Creators Success з SubSub (в минулому — Genesis MCN). Як створювати й промотувати комедійний контент в YouTube, залучати мільйони підписників та використовувати потенціал формату Shorts, розповів YouTube Growth Specialist Андрій Салій. Mr. Clabik — персонаж однойменного YouTube-каналу , який створив і розвиває креатор Єгор Самойленко разом із командою SubSub з екосистеми Genesis. SubSub — це Сreator Service Provider для окремих каналів та CMS на YouTube. Команда допомагає налагодити процеси для розвитку на YouTube каналам в Україні, Канаді, США, Індії, Європі та Африці. Ніша каналу Mr. Clabik — комедійні скетчі одного актора про повсякденне життя. Парадоксальні, гіперболізовані побутові ситуації — основа його відео. Те, що зараз називають «крінж». Всі відео Mr. Clabik об’єднує універсальність тем. Вони підходять кожному з його глядачів із 233 країн. Кожен мав подібний або аналогічний досвід у своєму житті. Команда запустила канал наприкінці травня 2022 року. За літні місяці набрали перших підписників та сотні тисяч переглядів. Складові успіху Аналізуючи ретроспективно розвиток каналу, ми виокремили фактори, які допомогли залучити нам більше мільярда підписників. Тематика Сюжети відео підіймають теми сімейних стосунків, пранків та розіграшів з їжею чи побутовими речами. Це резонує із досвідом широкої аудиторії без прив’язки до віку, статі чи національності, і дає змогу залучити більше глядачів. Подача У відео на каналі емоції гіперболізуються та виражаються мімікою, з використанням прийомів клоунади та буфонади. Їх головна перевага — вони не потребують перекладу, всі жарти та геги зрозумілі на рівні сенсів. Методики гумору наслідують кращі приклади комедій епохи німого кіно, а перебільшені звукові ефекти посилюють емоцію та комедійний ефект. Мінімізація продакшну Автор створює контент самостійно. Єгор пише сценарій, готує реквізит, знаходить локації, знімає і монтує відео власноруч. Він не залежить від команди й сторонніх фахівців. Це прискорює продакшн і дає можливість генерувати контент на регулярній основі. «Робочий процес займає 2-3 дні на тиждень. Спочатку вигадую, знаходжу і придумую теми та конфлікти для 5-6 відео. Потім знімаю всі відео за один раз. Після цього монтую матеріал, додаю звук та ефекти. Все роблю сам на смартфоні, тому практично не залежу від конкретного робочого місця» — розповідає Єгор. Shorts Згідно з політикою платформи YouTube, для отримання доходів з Shorts Fund канал має бути монетизований. Mr. Clabik ми запустили в травні 2022. На той час жодних критеріїв для монетизації Shorts не існувало. Платформа оголосила їх лише в січні 2023 року. Тож постало питання — як нам монетизувати Shorts-контент? З вихідних даних ми мали лише старі критерії для довгих відео: 1000 підписників і 4000 годин перегляду за останні 365 днів. З відео по 30-40 секунд набрати 4000 годин — майже нереально. Але це були єдині критерії, на які ми могли спиратися. Тому вирішили зіграти на полі YouTube за його ж правилами. І виграли. Перше довге відео опублікували на каналі в липні, а другого вересня вже досягли необхідних для монетизації результатів. Швидко досягти позначки у 4000 годин переглядів допомогла віральність відео — кількість підписників ледь сягнула 1000, але переглядів сумарно було набагато більше. Судячи з коментарів, контент на каналі подобався далеко не кожному. І це стало додатковим бустом популярності. Реакція (не)шанувальників Ставлення глядачів до контенту Клабіка завжди полярне: чи то сміх, прихильність і захоплення, чи то гнів, обурення і лайка. Сильна емоція мотивує висловлювати свою думку. Тож на каналі досить швидко формуються групи як прихильників, так і критиків. Ці люди регулярно повертаються, щоби висловити свої емоції знову і знову. Отримання негативних коментарів під відео має неочевидні, на перший погляд, переваги. Їх дві — алгоритмічна та емоційна. Алгоритмічно YouTube-платформа сприймає появу нових коментарів позитивно. Це додатковий аргумент для органічного просування відео. Що ж до емоцій, то саме за ними глядачі приходять на YouTube. Захоплення, як і гнів, мотивує до повторного перегляду та шерингу відео. Що далі? Нині команда SubSub разом із Єгором працює над декількома новими напрямами подальшого росту і розвитку проєкту. Розширення пантеону героїв Наразі персонажна сім’я складається з тата, мами, старшого сина, середньої дочки, молодшого сина та бабусі. Інколи з’являються персонажі з Багатої та Бідної сім'ї. Кілька разів в кадрі були Хуліган, Ботан, Вчителька. Є ідеї введення персонажа Дідуся, ще парочки героїв. Аби передбачити потенційну реакцію на нових героїв, Mr. Clabik періодично влаштовує опитування серед глядачів. Впровадження формату серіалу Плануємо спробувати опублікувати низку сюжетно пов'язаних між собою відео. Зараз плануємо запустити 5-6 відео в тестовому режимі, Але гіпотезу треба досліджувати та експериментувати. Складність такого формату в тому, що серії мають бути самостійними епізодами з власним конфліктом. Щоби глядач, подивившись, наприклад, лише п’яту серію, зрозумів контекст. Запуск контент-експорту на інші ринки Нині вже розвиваємо іспаномовний Señor Clabiko . Відео потроху набирають перегляди та базу підписників. Цього разу наші кроки вже базуються на досвіді. Знаємо, яких складнощів чекати та як їх вирішувати. Тестування нових форматів взаємодії з глядачем Двосторонній формат спілкування з аудиторією має великий потенціал. Це зміцнює живий контакт із глядачами та спонсорами каналу. Першою ластівкою став live-стрим на каналі Mr. Clabik 31 грудня 2022 року. Наживо відео одночасно дивилися 120 осіб. На сьогодні відео має 14000 переглядів. Будемо розвивати напрям, бачимо, що стримінг — один із трендів 2023 року. Попри всі ініціативи у сфері контенту, необхідно і далі ретельно досліджувати можливості монетизації YouTube Shorts. Нові правила короткостроково приносять трохи менший дохід, аніж Shorts Fund. Пов’язуємо це з тим, що рекламодавці ще приглядаються до нового формату й оцінюють потенціал. В найближчому майбутньому очікуємо появи нових гравців у сфері контенту, загострення конкуренції та збільшення доходів. Загалом, очікуємо встановлення прозорих і зрозумілих правил гри.
- MVP: принципи створення та головні помилки фаундерів
Думки про запуск власного продукту рано чи пізно зʼявляються у більшості розробників. З чого почати? Якою має бути команда? Та як не витратити безліч ресурсів та часу на проєкти, які можуть зрештою зазнати невдачі? Один зі способів дізнатися, чи є шанс перетворити ідею в успішний бізнес — протестувати її, запустивши спочатку MVP (Minimal Viable Product — мінімальний життєздатний продукт). Ми поспілкувалися з Михайлом Галяном, СЕО Boosters та лектором в School of Digital Business . Він розповів, як створювати MVP, чому за нього має бути соромно, а також яких помилок припускаються фаундери. > Що т реба знати про MVP > Яким має бути MVP > З чого почати: формуємо гіпотезу > Сім поширених помилок при створенні MVP > Як дізнатися, що MVP варто розвивати у повноцінний продукт > Що далі Що треба знати про MVP Часто розробники мають безліч ідей технологічних продуктів і одночасно з цим — сумнівів, чи злетять ці проєкти. Якщо з технічною складовою у них все чудово, то з розумінням аудиторії, ринку та маркетингу — все складніше. Хто мій користувач? Чи потрібен йому мій продукт? Чи приноситиме він дохід? Знайти відповіді на ці питання допоможе запуск MVP (Minimal Viable Product) — базової спрощеної версії продукту, яка містить найнеобхідніші функції та може задовольнити потребу користувача. MVP створюється з метою визначити: Чи є попит на такий продукт на ринку? Чи готові користувачі за це платити? Чи має ця бізнес-модель потенціал для зростання? MVP є частиною методології Lean Startup, яку розробив Ерік Райз 2011 року, щоби допомогти стартапам мінімізувати ризики й витрати на початкових етапах розробки продукту та підвищити їхні шанси на успіх. Він був впевнений, що причина невдач більшості стартапів — у тому, що традиційний підхід до розвитку бізнесу не підходить. Планування, побудова фундаментальної стратегії та глибинне дослідження ринку не працюють в умовах крайньої невизначеності, в яких функціонують стартапи. Підхід «Just do it» (спочатку зроби, потім думай) — теж не підходить, адже відмова від будь-якого менеджменту призводить до хаосу. В основі методу Lean Startup лежить створення правильної гіпотези, яка має швидко пройти коло «BML» (Build-Measure-Learning): проведення експерименту, аналізу результатів і метрик та отримання даних. На основі цих знань фаундер ухвалює рішення продовжувати розвивати продукт або шукати нову гіпотезу та проходити з нею нове коло «BML». «Керувати стартапом, як ракетою, в якої чітко визначена траєкторія та по хвилинах розписаний план польоту, — це велика помилка. Краще управляти ним, як автомобілем: щоби можна було відхилятися від курсу, швидко змінювати траєкторію, розвертатися та маневрувати», — Михайло Галян . За його словами, фаундерам необхідно вчитися на помилках та максимально швидко перевіряти гіпотези, уникаючи великих витрат на розробку продукту, який може не мати попиту. Яким має бути MVP « Якщо ти випустив першу версію продукту, і тобі за неї не соромно, ти зробив це запізно », — стверджував американський бізнесмен, венчурний інвестор та співзасновник LinkedIn Рейд Хофман. Чимало підприємців бояться випускати продукт, поки він не буде «тим самим». Але затягуючи із релізом, вони витрачають дорогоцінний час та ресурси, а також демотивують команду довгим очікуванням і невідомістю. Уявімо, що у стартапа є фінансування, якого вистачить на 10 місяців. Чим більше гіпотез встигнуть протестувати фаундери, тим більше знань про ринок вони отримають, тим більше шансів на успіх вони матимуть. «В ефективних стартапах продуктивність команди оцінюється кількістю валідованих знань, а не кількістю випущених фіч. Тому MVP має містити тільки онбординг та базовий функціонал, який вирішує проблему користувача. Всі інші фічі, процеси чи зусилля, які не впливають на підтвердження гіпотези, варто прибрати», — пояснює Михайло Галян. Наприклад, тестова версія продукту для вивчення іноземних мов Promova називалася «10 words». Це був застосунок на два екрани з єдиною функцією: зберігати картки з новими словами для подальшого вивчення. Команда складалася з чотирьох людей: розробник, дизайнер, маркетолог та BI-аналітик. Додаток створили за декілька днів, взявши за основу відкриту базу найпопулярніших англійських слів. Паралельно із запуском MVP команда проводила ряд тестів: валідувала гіпотезу цінності (чи є попит у користувачів на застосунок для вивчення слів та чи готові вони платити), перевіряла ефективність бізнес-моделі та тестувала маркетингові креативи. Сьогодні Promova — ціла екосистема для вивчення мов, з безліччю фіч, унікальних курсів, базою репетиторів та великим комʼюніті. Застосунок увійшов в топ-10 продуктів для вивчення мов в App Store та має понад 2,25 млн завантажень. MVP продукту Avrora (перша назва — Sleep Booster) був ще простішим. «Застосунок виглядав так: чорний екран з величезною кнопкою, яка встановлювала будильник та запускала вправу для дихання, щоби користувач міг розслабитися перед сном. Це приклад продукту в один клік/тап/свайп, за яким стоїть базовий функціонал», — пояснює Михайло Галян. У результаті команда прийшла до комплексного продукту, який повністю супроводжує ритуал сну, має багато фіч, зокрема моніторинг сну на базі штучного інтелекту, розумний будильник, велику бібліотеку контенту тощо. З чого почати: формуємо гіпотезу Суть запуску MVP полягає у формуванні чіткої гіпотези та тестуванні її емпіричним шляхом. Існує два види ідей: Гіпотеза цінності . Підходить тим стартапам, які хочуть запустити новий інноваційний продукт, аналогів якого немає на ринку. Запуск MVP має визначити, чи вирішує цей продукт проблему користувачів, чи є він цінним для них. Гіпотеза зростання . Підходить бізнесам, у яких вже є конкуренти зі схожими пропозиціями. У цьому випадку мета запуску MVP — перевірка потенціалу зростання, юніт-економіки та креативів. За наявності конкурентів продукту часто важливіше відрізнятися креативом, адже боротьба точиться за стартову увагу користувача. Гіпотеза може стосуватися не тільки запуску нового продукту, але й нових фіч у вже існуючому продукті. «Якось ми протестували фічу моніторингу якості сну у застосунку Avrora з допомогою креативу в маркетингу, ще не маючи її в самому продукті. Ідея полягала в тому, щоби відстежувати звуковий потік від користувача з допомогою машинного навчання, визначення типів звуків і підсвічування їх на звуковій доріжці, щоби користувач знав, що сталося з ним/нею цікавого. Цей креатив викликав ажіотаж серед користувачів, і ми почали нарощувати аудиторію стрімкими темпами. Тож протягом трьох тижнів розробили фічу та зробили реліз», — розповідає Михайло Галян. За його словами, далеко не всі гіпотези підтверджуються, і варто сміливо їх відкидати, не шкодуючи витраченого часу та зусиль. Це ще одна причина робити MVP простими та швидкими, не інвестуючи багато ресурсів. Антиприклад: у команди була ідея створити чотиритижневу програму для покращення сну на основі когнітивно-поведінкової психотерапії. Її вирішили не тестувати, а одразу реалізовувати. Для розробки методології залучили професора зі Стенфордської школи медицини та витратили чимало ресурсу. Однак ця ідея не знайшла підтримки в користувачів і була відкинута. Сім поширених помилок при створенні MVP 1. Фокус на якості Важливіше сформувати правильну гіпотезу, а не створити ідеальну фічу та довго розробляти її. 2. Марнування часу на користувацькі дослідження На першому етапі не варто спілкуватися з користувачами. Перш за все, вони можуть самі не знати, чого хочуть. Або чогось хотіти, але насправді не бути готовими за це заплатити. Користувацькі дослідження — складні та довготривалі. І на старті ці дані можуть «завести» команду в хибному напрямку. Натомість продуктова аналітика дасть набагато більше відповідей. 3. Не фіксувати результати Варто дотримуватися правила «що не записано, того не існує». Наприклад, в Boosters всю інформацію збирають в базах даних: журнал релізів; журнал A/B тестів; журнал монетизаційних тестів; журнал юзер-сториз; журнал гіпотез. 4. Якщо гіпотеза не підтвердилася, сприймати це як поразку Якщо ви не витратили на MVP багато місяців роботи та всі гроші компанії, засмучуватись немає причин. MVP — це спосіб відкинути всі нерелевантні ідеї, щоби не витрачати на них час та ресурси у майбутньому. Launch fast — fail fast. Треба рухатись далі. 5. Тестувати тільки цінність продукту, без монетизації MVP має повноцінно протестувати бізнес-модель, а отже містити пробну та платну версію. Також, важливо побачити, скільки користувачів повернуться після першої оплати. Монетизацію варто починати одразу, не чекаючи тисяч користувачів — це важливо. Щоби побачити, чи сходиться юніт-економіка, достатньо близько 200 підписників. 6. Створювати MVP, що не вирішує проблем користувачів Продукт має виконувати свою функцію на базовому рівні. Тобто пропонувати користувачам рішення, за які вони готові платити. 7. Запускати маркетинг після запуску повноцінного продукту Залучення користувача — невіддільна частина розвитку продукту, яку варто також одразу тестувати. Як дізнатися, що MVP варто розвивати у повноцінний продукт Рішення розвивати MVP у повноцінний продукт варто ухвалювати, коли в результаті експериментів ви отримали виміряні та підтвердження факти, що користувачі готові платити за продукт. «Навіть якщо юніт-економіка зійшлася, варто звернути увагу на низку метрик, щоби комплексно оцінити картину. Наприклад, користувачі можуть зацікавитися продуктом, недовго «погратися» з ним та відмовитися від підписки. Тому усі показники варто порівнювати, співставляти та шукати патерни, які допоможуть знайти ключик до вашої аудиторії. Варто враховувати не тільки продуктові, але й маркетингові метрики», – розповідає Михайло Галян. Продуктові метрики: Retention — скільки користувачів повертаються до вашого продукту. Rebill Rate — як регулярно користувачі платять: з місяця в місяць (якщо підписна модель) чи як часто проводять транзакції (якщо транзакційна модель). Product Stickiness (DAU/MAU) — співвідношення щоденної активної аудиторії до місячної. Usage Frequency — як часто використовують продукт: раз на день, раз на тиждень чи раз на місяць. PMF (Product Market Fit) — чи відповідає продукт очікуванням користувачів. Маркетингові метрики: Engagement Rate — показує, як люди взаємодіють з креативом (коментують, лайкають, шерять). Ця метрика демонструє рівень зацікавленості цільової аудиторії в темі. CTR (Click Through Rate) — показує, скільки користувачів клікають на рекламу. ROMI (Return on Marketing Investment) — коефіцієнт повернення маркетингових інвестицій. Показує, чи сходиться юніт-економіка. Конверсії : з пробного періоду в онбординг, з онбордингу в оплату, з оплати в наступну оплату. Показує, скільки з тих користувачів, що завантажили застосунок, пройшли реєстрацію, оформили пробний період, потім придбали підписку та повторили оплату. Scalability — показує, наскільки креатив «продається» і підхоплюється аудиторією. Чим вищими будуть всі ці метрики, тим більше цінності дає ваш продукт користувачам. Що далі Якщо гіпотеза підтвердилася, а метрики показали хороші результати, є два шляхи: допрацьовувати наявний MVP або ж паралельно створювати з нуля повноцінний продукт в цій же ніші. «Переливати» юзерів зі старого застосунку в новий — доволі важко і неефективно, тож найчастіше компанії просто поступово відключають маркетинг MVP-версії та запускають рекламу повноцінного продукту, пояснює Михайло. У випадку, якщо нічого не вийшло, компанії часто роблять півот — змінюють бізнес-модель продукту чи сфери діяльності стартапу для його подальшого розвитку. Варіанти півоту: зміна аудиторії (наприклад, продукт змінює фокус з B2C на B2B); зміна продукту, зберігаючи фокус на потребах аудиторії; зміна бізнес-моделі. «Як казав американський вчений та теоретик з менеджменту Пітер Друкер, немає нічого більш марного, ніж з високою ефективністю робити те, чого не треба. Тому на етапі запуску MVP стартапам варто одразу планувати простір для маневру та можливого півоту, адже від цього ніхто не застрахований, — розповідає Михайло Галян. — Також, важливо щоби команда стартапу від самого початку була налаштована на тривалий режим тестів, ітерацій, відмов, залишалася вмотивованою, доки не знайдеться ідея, що злетить». Щоби не пропустити набір на другий курс зі створення цифрових продуктів School of Digital Business, слідкуйте за оновленнями Genesis Academy .
- Як працювати із ChatGPT: поради та підходи генезійців
Перші хвилі обговорень ChatGPT уже вщухли, тож настав час поговорити про те, як новий інструмент вписався в робочі процеси. Фахівці компаній екосистеми Genesis також протестували чат у своїх доменах. За допомогою нового ШІ-інструменту вони автоматизували рутинні завдання, знайшли помилки в коді, розібралися в нових технологіях та знайшли відповіді на інші специфічні запити. Втім, у чату є і недоліки, які варто врахувати під час роботи. Разом зі співробітниками компанії розповідаємо, як ChatGPT покращує та інколи погіршує робоче життя. ChatGPT вміє агрегувати, редагувати та збирати інформацію, й, загалом, найкраще підходить для роботи з будь-якими текстами. Код — це теж текст. Втім, чату добре вдаються лише прості завдання. Зазвичай я використовую його, аби поверхнево ознайомитися з технологіями — наприклад, працюємо з AWS, а потрібно розібратися з Google Cloud, — або якщо потрібно вирішити точкову задачу на кшталт отримання методу чи класу. Це досить зручна альтернатива десяткам посилань у Google, на кожне з яких треба витратити мінімум пару хвилин. Сам запит варто формулювати якомога конкретніше, в ідеалі — з прикладами. Зараз уже є цілий сайт , на якому можна купити готові prompts (тобто мовні конструкції-запити) до ChatGPT за $3-4. Поясню, як вони працюють на простому прикладі. Припустимо, що ви створили презентацію, але формулювання занадто сухі та офіційні. Можна довго описувати зміни до кожного слова, а можна використати персонажа. Тобто, сказати чату: «Уяви, що зараз ти — Стів Джобс. Перепиши презентацію в його стилі». Чат добре впишеться й у повсякденність. Наприклад, за допомогою prompts я створив собі діалог з рекомендаціями фільмів: пояснив, у якому форматі потрібно надавати рекомендацію, та зазначив, що хочу оцінювати кіно через лайк та дизлайк. Важливо! Часто написати код вручну буде швидше й простіше, ніж детально описувати контекст . Наприклад, у запиті «напиши алгоритм сортування числового масиву» ChatGPT зрозуміє кожен термін та надасть ідеальну відповідь. От тільки подібних завдань у реальній роботі майже немає — все організовано більш комплексно з купою нюансів. Код ніколи не пишеться у відриві від цілей компанії. Їх розумітиме розробник, але поки не ясно, як описувати бізнес-логіку, аби її зрозуміла нейромережа . Тому, ChatGPT можна використовувати для написання окремих шматочків коду, але точно не для об’ємних класів чи цілих додатків. До того ж він може помилятися та фантазувати . Нещодавно я намагався згенерувати код, який буде визначати «якість» фото з урахуванням багатьох параметрів, як-от різкість, контраст тощо. В результаті отримав метод, який навіть не хотів запускатися. У OpenAI говорять, що база знань обмежується 2021 роком, проте фактично це не так — чат навчається у режимі реального часу. Однак я б не радив користуватися ним для роботи з інформацією, що може оновитися або втратити актуальність. Взаємодія з ChatGPT схожа на те, як Тоні Старк працював із Д.Ж.А.Р.В.І.С. Це такий собі розумний помічник, що може виконувати різноманітні команди. Нещодавно я почав користуватися ним майже щоденно. Як він може допомогти в роботі? Провести автотести. Раніше їх делегували фахівцям рівня трейні чи джуніор, зараз цим чудово може впоратися ChatGPT. Ізольований файл можна «завантажити» у чат, «попросити» зробити юніт-тести. Він далі сам створює mock і пише тест для коду, показує, яке у нього покриття тощо. Задокументувати код. У нас є стандарт — прописувати самарі до всіх файлів з кодом. Так кожен розумітиме, для чого потрібен той чи інший документ. Писати їх — досить буденне завдання, й воно часто робиться за залишковим принципом. Втім, його можна делегувати ChatGPT — він непогано аналізує та описує готовий код. «Підхопити» рутинні чи одноманітні завдання. Наприклад, у нас є запит на E2E-тести з тестувальниками. Для них потрібно зробити підготовчу роботу, тобто визначити різні конфігурації користувачів. І от я написав одну конфігурацію, додав у чат і попросив зробити інших 15 технік за аналогією. Ще один приклад — нещодавно я хотів зробити перформанс-тести, перевірити, наскільки швидко працює алгоритм. І щоб не писати ці тести, я «згодував» ChatGPT вимоги — й він досить швидко все автоматизував. Виправити помилки. Як виявилося, ChatGPT може допомогти зі «свіжими» кейсами, попри те, що його знання про світ після 2021 року досить обмежені. Наприклад, нещодавно ми зіштовхнулися з багом в оплатах Apple. Відповідно до документації, дані, мають віддаватися у певному форматі. Ми його дотримуємося, однак іноді підписки у деяких користувачів обробляються неправильно. Я описав проблему ChatGPT і виявилося, що це поле віддається тільки за певних обставин, не завжди, хоча в документації Apple цього не зазначали. Пояснити складний код, тобто підсумувати та описати, що саме він робить. GPT-4 працює з цим краще, вона загалом більш помічна для розробників. Зокрема, добре справляється з рефактором та підходить для складних завдань з великою кількістю даних. Важливо! З ChatGPT потрібно бути обережним у всьому, що стосується оновлень та нових даних, не покладатися повністю та завжди перевіряти написане. Він запросто поділиться неактуальною документацією чи згенерує стару версію, яка не буде працювати. Тому я б не радив фахівцям рівня джуніор та трейні писати код разом із ним — поки в них немає достатньо досвіду, аби відрізняти достовірну інформацію. Навряд чи нас всіх замінять роботи, але мені здається, що майбутнє саме за штучним інтелектом. ChatGPT як інструмент допомагає пришвидшити та оптимізувати купу процесів, а сліпе копіювання відповідей без розуміння, що ви робите, одразу впадає в око. Ось декілька кейсів, де чат допоміг… …знайти помилки. Якось я мала побудувати дашборд у DataStudio. Потрібно було вивантажити дані з MS Excel, а перед цим — розподілити їх за категоріями та відфільтрувати. Однак Excel категорично відмовлявся працювати коректно. Я ніяк не могла знайти причину проблеми, й вирішила «запитати» ChatGPT. Спочатку детально описала своє завдання, потім — формулу, яку використовую, і помилку, яку видає. Експеримент виявився вдалим — чат допоміг зрозуміти, де проблема. Єдиний нюанс — у подібних запитах потрібно прописувати, з якою версією Exel ви працюєте, бо синтаксис різних версій не однаковий. Іншим разом я мала виправити баг у нашій HR-системі. Вона написана на специфічній мові програмування, яка призначена конкретно для цієї платформи. Я точно розуміла, у чому баг, але не знала, як його виправити. Тут мені знову таки допоміг ChatGPT — він «вказав» на проблемне місце та надав варіанти рішень. …попрацювати з малознайомим інструментом. Колись давно я обрала для себе мову програмування Java. Однак для дипломної роботи в університеті вирішила використовувати Dart — вона кросплатформна і більш гнучка. І от мені потрібно знайти найкоротший шлях у зваженому графі, я знаю, яким має бути алгоритм, але не розумію, як прописати його саме на Dart. Я знову-таки звернулася до чату, щоб зрозуміти, як діяти. Окремо попросила задокументувати код та надати приклади використання, аби розуміти, що відбувається у кожному рядку. Формулювати запит влучніше допомагають тригерні фрази. Наприклад, «Дій, як [ хтось ]» або питання «Чи потрібні тобі якісь додаткові дані?» Тоді він надасть більш ґрунтовну відповідь на запит. Важливо! Проблема ChatGPT в тому, що він занадто самовпевнений й не завжди визнає свої помилки. Він може придумати статті або надати «биті» посилання, причому на пристойні сайти. Було таке, що з 15 посилань, які він надав, працювали лише три — всі інші вели на сторінки з помилкою 404. Або інша ситуація: нейромережа згенерувала відповідь на запит, але посилання на інформацію надавати «не хоче», пояснюючи це тим, що текст, який вона згенерувала, повністю унікальний. Тому це корисний інструмент, але не надто досконалий, щоб використовувати його без уваги людини. ChatGPT дуже прискорює процес ознайомлення і пошуку. Звичайно ж, всі відповіді потрібно перевіряти, але це точно швидше, ніж «чистий» пошук. В певний момент я зрозуміла, що уже не гуглю те, що мені цікаво, а просто «закидаю» питання у ChatGPT. Ось декілька завдань, з якими може допомогти ця нейромережа. Підготувати річний звіт. Точніше, запакувати його в патерн дизайн-мислення. Я готувала приклад для креативної техніки, мала готовий матеріал, але вирішила поцікавитися, чи може допомогти чат. Спочатку змоделювала ситуацію: «У мене є завдання — підготувати річний звіт. Хочу спроєктувати його за методикою дизайн-мислення. Що я маю зробити?». У відповідь чат досить непогано адаптував фреймворк до мого завдання: розказав про всі основні етапи, та пояснив, як працювати зі звітом на кожному з них. Написати скрипти для Adobe Illustrator. Програма дає змогу автоматизувати ряд процесів за допомогою скриптів. Більшість можна знайти у мережі, але не завжди вони підходять до конкретних специфічних завдань. Дизайнер, у якого я підгледіла цей метод, мав опрацювати декілька інфографік різними мовами: уніфікувати написання деяких символів та замінити шрифти. Він створив скрипт через ChatGPT й додав у Illustrator, трохи відредагувавши. На завдання пішло хвилин 30 замість декількох годин. Вирішити дрібні дизайн-завдання. Потрібно створити гіфку на прозорому фоні, колеги сплять, а Google видає дивні варіанти? Немає питань — ChatGPT сформулює два детальні та зрозумілі алгоритми, щоб вирішити це завдання. Знайти відповідь на специфічні запити. Нещодавно я почала працювати з Webflow й мала купу питань, в яких потрібно розібратися. Але є запити, коли навіть не розумієш, як краще це загуглити. Наприклад, треба було зробити анімацію елемента під час наведення мишки. Google тоді не дуже допоміг, а от ChatGPT — цілком. Я описала, яка анімація потрібна і запитала, як я можу це зробити. І отримувала покроковий мануал. Навчитися нового. Підібрати матеріали про розвиток дизайн-команди, доповнити лекцію про креативне мислення, розповісти про професію Design Ops, яку Google ще погано знає — з цим усім ChatGPT здатний впоратися. Важливо ! Сильна сторона чату — це текст, а от у візуальному контенті він слабкий . Нещодавно я працювала над сайтом, і ніяк не могла придумати вдале оформлення блоку «Команда» на головній сторінці. Якраз тоді ChatGPT став доступним в Україні, і я вирішила його протестувати — хотіла знайти релевантні референси. Попри те, що я формулювала максимально конкретні запити з урахуванням дизайн-характеристик, належні варіанти нейромережа так і не знайшла. Думаю, що ChatGPT підбирав референси на основі коду, але навіть попри схожу структуру, дизайн подібних сайтів може суттєво відрізнятися. Знаю, що GPT-4 краще працює з зображеннями. Ми працюємо з SEO-контентом на новинних медіа сайтах, тому наші з апити повʼязані з оптимізацією текстів під пошукові системи та кластеризування, а також написанням самарі, листів, повідомлень, метаданих, постів для соціальних мереж та JSON-LD скриптів. Можу сказати, що чат досить непогано генерує списки питань та відповідей на основі наших текстів, а далі може створити скрипт JSON-LD. У цьому випадку наш алгоритм такий: Даємо готовий текст і запит на п’ять запитань та відповідей на основі статті. Одержуємо список, редагуємо його за потреби. Надсилаємо запит на створення скрипту JSON-LD (FAQs). Отримуємо готовий код, який можна додати в CMS. Підхід для створення текстів для соціальних мереж дуже схожий, але можна ще «гратися» з tone-of-voice та створювати інтригу. Ось декілька інших сильних сторін чату, які я помітила: NLP-модель ChatGPT правильно інтерпретує запити користувача. Текст написаний дуже грамотно (хоча не ідеально). Є можливість придумувати ідеї для свого контенту. Відповіді досить релевантні — завдяки системі NLP, ключовим словам і механізму генерації відповідей. Під капотом — хороша база загальних знань та здатність пояснювати складні теми простими словами. Найскладніший виклик минулого місяця — це тестові завдання, виконані ChatGPT. Ми не проти використання штучного інтелекту для роботи — він чудово пришвидшує та автоматизує процеси. Однак якщо людина просто копіює те, що він написав, не перевіряючи — ми маємо відмовити такому кандидату. Помилки дуже легко відстежити, як і «авторство» нейромережі. Наприклад, одне з наших завдань звучить так: «Оцінити сайти з точки зору алгоритмів E-E-A-T and YMYL». ChatGPT в цьому випадку генерує неправильну відповідь, тому що знає лише модель E-A-T (розшифровується як Expertise, Authoritativeness, Trustworthiness — три фактори, які Google використовує для вимірювання ступеня довіри до сайту). Однак у грудні 2022 року Google оновився — і до алгоритму додалася ще одна E (тобто experience). У завданні кандидата другої E бракувало — ось і фактична помилка. Важливо ! Чат має і низку слабких сторін. Ось вони: Основний масив даних зібрали до кінця 2021 року , тож інформація у відповідях на запити може бути застарілою. Буває так, що ChatGPT генерує неправдиву інформацію, й не каже про це, доки не запитаєш напряму. Іноді ChatGPT посилається на статистику та джерела, але якщо перейти за посиланням, то виявляється, що воно або дуже застаріле , або ніколи не існувало. ChatGPT добре вміє давати нечіткі описи та визначення, але рідко надає реальні деталі. Чат не здатний створювати контент на основі досвіду чи глибоких знань теми. А це необхідна складова стандартів контенту для пошукових систем . Нейромережа просто об’єднує уже доступну інформацію й сама собою не генерує унікальний контент — а це ще один « червоний прапорець » для Google. Ми декілька разів запускали один запит, і отримували майже однаковий текст, який при цьому ідентифікувався як матеріал з високим відсотком оригінальності. Якщо багато компаній почнуть використовувати подібні тексти, Google, ймовірно, песимізує весь такий контент. Якщо ви керуєте командою копірайтерів, потрібно обовʼязково прокомунікувати, яким чином можна використовувати ChatGPT в роботі. Він не годиться для генерації контенту з нуля, а якщо ним зловживати, матеріал можуть потрапляти під Google Update та опускатися нижче у видачі. Я використовую ChatGPT у двох напрямах — це робота з текстом та менеджмент освітніх проєктів. Перший підхід зрозумілий — чат допомагає дібрати більш вдалі формулювання, відстежити комунікаційні патерни, скоротити чи розширити текст або підкоригувати tone-of-voice. Наприклад, моя команда працює з університетами, тож буває, що нам потрібен академічний стиль. Другий кейс цікавіший — нейромережа допомагає брейнштормити «дорожню карту» освітніх курсів та ефективніше супроводжувати subject-matter experts (це професіонали, що мають провідні знання у своїй галузі) у їхній підготовці до лекцій та воркшопів. Як проєктні менеджери в освітній сфері, ми маємо конвертувати досвід та експертизу спеціалістів компанії в учбову програму. Водночас курси мають відповідати багатьом критеріям: вимоги партнерів та університетів, підготовка слухачів, навчальні цілі. Створення подібних програм — це багатоетапний процес, де потрібно вивчати десятки референсів, брифувати експерта, тож треба бути готовою хоча б приблизно орієнтуватися в його доменній експертизі. Це важливо, бо не завжди людина може декомпозувати свою експертизу, накласти на рівень підготовки аудиторії й запропонувати «дорожню карту» навчання. Це — задача проджект-менеджера, який також застосовує методичні та методологічні принципи для формування навчального шляху студента. Власне, ChatGPT виявився крутим інструментом, який допомагає якісно оптимізувати етапи дослідження та підготуватися до спілкування з доменними спеціалістами. Як це працює? Ось, наприклад, завдання — скласти програму з вивчення PHP для студентів. Раніше я робила величезне дослідження, переглядала десятки курсів, аналізувала логіку донесення матеріалу. Підготовка попереднього плану, який ми потім допрацьовували з доменними спеціалістами, займала від тижня до місяця. Зараз, завдяки ChatGPT, я сформувала його в десятки разів швидше. Спілкуватися починала з простого запиту на кшталт «склади програму для вивчення PHP», на що очікувано отримала досить загальну відповідь. Тоді поставила питання: «Які модулі потрібно включити до програми з вивчення PHP для початківців?». Чат видав більш конкретну відповідь й окреслив потрібні блоки. Далі я звужувала контекст: просила його надати короткі самарі навчальних програм найбільш популярних курсів PHP для початківців, питала, за яким принципом їх будують, та які навчальні цілі закладають. Паралельно я все одно робила власне дослідження та збираю референси. І до розробників уже йшла з готовим проєктом та проханням його валідувати. Звичайно, цей інструмент не зможе замінити ні проєктного менеджера, ні доменного спеціаліста, але він точно допомагає працювати швидше та якісніше. Важливо! При роботі з чатом варто пам’ятати принципи роботи моделі, на якій він побудований. Зокрема, що це генеративна модель. Тому, особисто я зараз приділяю час розвитку навички prompt engineering . Наприклад, один із базових прийомів — це «звуження контексту». Модель не може думати самостійно та враховувати всі обставини, тож свої питання важливо формулювати деталізовано. Наприклад, якщо я роблю запит «згенеруй план воркшопу на певну тему», я також одразу зазначаю, які навчальні цілі закладаю у такий воркшоп, які знання мають мої слухачі, і яких у них немає. ChatGPT — це мій асистент у створенні креативних ідей. Найефективніше — застосовувати його в роботі з різноманітними текстами. Наприклад, генерувати креативні заголовки . Чат дає безліч варіантів, які можна доповнювати чи адаптувати до певної тематики, треба тільки детально описати специфіку продукту та цільову аудиторію. Так само і з іншим неймінгом. Скоро ми плануємо зарелізити нашого маскота й зараз шукаємо ім’я. Нейромережа згенерує багато цікавих, якщо детально описати характер персонажа, продукт та загалом дати розгорнуте ТЗ. Поки ми не зупинилися на жодному, але маємо дуже класне джерело додаткового креативу . Що стосується менеджерської частини роботи, чат допомагає писати розгорнуті та дуже структуровані рев‘ю . Звичайно ж, подібні документи потрібно редагувати, надавати більшої персоналізації та деталей. Ще один підхід, який я використовувала — це самарі профільної книги . Її також можна оформити в презентацію, виділити основні тези — все це скорочує час та допомагає оптимізувати робочі процеси. А от ідеї для сценаріїв та ТЗ для моушн-дизайнерів виходять не надто оригінальні. Тут перевага точно за людиною, адже креативник має більше досвіду, експертність та надивлене око. Важливо! За чотири місяці роботи я дуже часто зустрічала помилки у відповідях . Буває так, що ChatGPT просто вигадує історії та видає їх за факти. Тому це класний допоміжний інструмент, але ставтеся до нього, як до бездоганно достовірного джерела. До того ж є сумніви щодо безпеки та захисту даних. Навіть сам ChatGPT застерігає від того, аби поширювати йому робочий код та інформацію з корпоративними даними.
- Пропозиція від Apple: як застосунок від Boosters потрапив на Apple Watch
Наприкінці 2022 року Apple запропонувала команді Boosters з екосистеми Genesis оптимізувати застосунок для покращення сну Avrora під Apple Watch в межах програми AppleLab. Остання дозволяє розробникам переймати найкращий досвід техногіганта — використовувати найновіші технології, консультуючись із дизайнерами та інженерами Apple. Попри те, що Avrora уже мала аналог під watchOS, застосунок розробили з нуля — за три місяці. Про всі нюанси процесу, співпрацю з Apple та особливості розробки продукту для смартгодинника розповідає Богдан Бессараб, продакт-менеджер в Boosters. За півтора року в Genesis Богдан попрацював з мобільними та вебзастосунками, а віднедавна — і з продуктами для Apple Watch. Пропозиція, від якої неможливо відмовитися Ідея від Apple була пов’язана з оновленнями технології трекінгу сну. Після релізу iOS 16 та watchOS 9 компанія дала розробникам змогу збирати та використовувати відповідні користувацькі дані, зокрема показники фаз сну. Є три типи продуктів, які можна розробити для Apple Watch: Dependent watchOS app працює в парі з застосунком на iPhone та залежить від нього у своїй роботі; Independent watchOS app може працювати самостійно на годиннику Apple Watch та не залежить від iPhone; Standalone app призначений спеціально для годинників Apple Watch та може не мати аналога на iPhone. Два роки тому ми вже розробили Dependent watchOS app. Застосунок працював як віддалений контролер для iOS-додатку та дозволяв юзерам коригувати типи контенту в апці. Зараз завдання полягало у створенні окремого продукту для Apple Watch із використанням нових можливостей від платформи. Спочатку ми думали робити Standalone, однак представники Apple порадили обрати варіант Independent. Рішення справді стало більш виграшним, адже дає кращі можливості для дистрибуції застосунку. Жорсткого дедлайну нам не ставили, однак ми розуміли: чим швидше впораємося, тим краще. Розробка продукту тривала три місяці. Працювали командою з п’ятьох людей — двох iOS-розробників, продакт-дизайнера, тестувальника та продакт-менеджера. З чого складається продукт Проєкт почали зі створення макета нового застосунку. Ми накидали основний функціонал — всього вийшло шість частин: Main Screen — основний екран. Sleep Ritual — медитації, дихальні вправи та calming sounds. Sleep Data — дані, які ми отримуємо, обробляємо та показуємо користувачу. Smart Alarm — будильник, який допомагає користувачу легко прокидатися у швидкій фазі сну. Notifications — система сповіщень у застосунку. Complications — функція на кшталт віджетів, яка дає змогу виводити користувацькі показники застосунку на Watch Face. Інтерфейс та технологічний стек обговорювали з представниками Apple — кожну частину окремо. Після п’яти ітерацій у дизайні ми нарешті затвердили фінальний макет і змогли перейти безпосередньо до розробки. Весь перелік необхідних кроків виглядав так: спроєктувати User Interface, обрати технологічний стек, обрати архітектуру та рушій, розробити застосунок, забезпечити аналітику, тестування й реліз. Особливості продуктів для смартгодинника Функціонал основного продукту потрібно було реалізувати, враховуючи обмежені можливості Apple Watch. Наприклад, на iPhone є плеєр, через який ми запускаємо Sleep Ritual. А от у годинника можливості програвати аудіоконтент немає — якщо тільки не підключити навушники або колонки. Крім того, в Apple Watch маленький акумулятор, тому ми оптимізували продукт так, щоб він не витрачав багато заряду. Зробили сповіщення, яке попереджає про оптимальний стан батареї: якщо показник падає до 30%, гаджет треба підзарядити. Водночас інші особливості Apple Watch дали змогу зробити продукт кращим. Наприклад, щоби зіграв будильник, апка має піднятися з бекґраунду у встановлений момент. На iPhone є проблема: застосунок не вийде підняти, поки юзер не зробить активну дію. Ми викручувалися, залишаючи calming sounds на нульовому звуці — так Avrora продовжувала працювати в фоновому режимі. А от на Apple Watch можна запланувати виклик апки з бекґраунду в конкретний проміжок часу. Це дає нам змогу реалізувати функцію будильника набагато елегантніше. Раніше ми не знали про цю особливість — про неї розказали представники Apple. Також за їхньою порадою ми реалізували Notifications Actions. Опція дає юзеру змогу відстежити показники сну на головному екрані, не заходячи у безпосередньо в застосунок. Так, зранку після пробудження він отримує сповіщення із визначенням рівня сну та одним з чотирьох показників (Good, Bad, Well та Poor). Технологічний стек У проєкті ми застосували MVVM архітектуру. Оскільки ми мали справу з останньою на той момент watchOS 9, могли собі дозволити попрацювати з усіма новими технологіями від Apple. Підтримувати старіші версії не було сенсу, адже на них немає нових опцій для трекінгу сну. Основний стек виглядає ось так: SwiftUI. На ньому легко створювати User Interface, зокрема кастомні графіки. Єдина проблема — навігація. Хоча ми й могли використовувати новий NavigationStack, він не розв'язував проблему ініціалізації наступної View з батьківської. Хотілося винести створення View та збір модулей в окрему фабрику або білдер. Спочатку ми придумали кастомне рішення для навігації з Routers, де ViewModel викликала потрібний метод у свого Router, а та своєю чергою «проштовхувала» тип, пов‘язаний з наступним View. На жаль, на етапі відтворення аудіо у бекґраунді, ми помітили баг — під час переходу з бекґраунду у фореґраунд аудіо відтворювалося заново. Через кастомну навігацію View губила свій State, тому від роутерів довелося відмовитися. Combine. Уся комунікація між об‘єктами реалізована саме через Combine, ми не використовували делегування. Технологія дає змогу легко керувати асинхронними стрімами й добре поєднується зі SwiftUI. HealthKit. З нього ми дістаємо усі дані щодо фаз сну та серцебиття юзера, щоб далі опрацювати їх за допомогою нашого алгоритму для визначення якості сну. CoreMotion. Технологія використовується для визначення фази сну, в якій краще розбудити користувача. Цей підхід ми обрали для MVP як найпростіший варіант, пізніше плануємо замінити його на CoreML-модель з розпізнаванням руху. AVFoundation. Використали для відтворення аудіо. Local Notification. Більшість сповіщень прив’язані до «івентів», наприклад, коли користувач виставив будильник на новий час. З цікавого — ми реалізували сповіщення, які приходять через певний проміжок часу після того, як користувач прокинувся. Це вдалося зробити за допомогою трекінгу даних про сон у бекґраунді. WidgetKit. Його ми використали для створення Complications. Тут ми зіштовхнулися одразу з декількома проблемами. Наприклад, функціонал, пов’язаний з будильником та трекінгом сну потрібно оновлювати досить часто, але, на жаль, Apple не дає такої можливості. Тому довелося адаптувати ідеї під їхні вимоги. Інша проблема — некоректне відображення зображень на деяких девайсах. Втім, це вирішилося простим зменшенням розміру картинки. Extended runtime sessions. Використовується для пробудження застосунку в момент, коли потрібно моніторити фази сну користувача та відтворювати звук будильника. Багато проблем було пов’язано з тим, що Smart Alarm неможливо зробити повторюваним, тому довелося писати кастомну логіку, щоб завести будильник під капотом. Як тестувати застосунок на Apple Watch Ця задача була досить складною, бо ніхто раніше не працював з повноцінними застосунками для Apple Watch. Виявилося, що порівняно з iOS, watchOS набагато вибагливіша. Серед особливостей, на які потрібно було зважати: інсталяція. Якщо користувач уже встановив Avrora на iPhone, ми маємо стежити, щоб застосунок автоматично завантажувався й на watchOS — за умови, що годинник під’єднаний до телефону; дозвіл та права доступу . Ми використовуємо дані з Apple Health Sleep Data, тому при тестуванні потрібно впевнитися, чи коректно застосунок запитує та використовує відповідні дозволи; адаптивність інтерфейсу. Оскільки екран годинників суттєво менший, ніж у мобільних пристроїв, потрібно переконатися, що контент буде оптимізованим для всіх розмірів та варіацій шрифтів. Крім того, варто звернути увагу на адаптивність у різних локалізаціях. Avrora підтримує шість мов — і треба перевірити кожну з них на різних розмірах екрана; взаємодія з іншими пристроями. Як зазначалося вище, аудіоконтент на кшталт Sleep Rituals відтворюється тільки у додаткових бездротових девайсах, тому окремо потрібно пересвідчитися, чи під’єднується гарнітура до годинника, чи коректно програється звук тощо; обмеженість ресурсів. Окремо потрібно перевірити, як застосунок працює під час низького рівня зарядки годинника та в різних режимах економії батареї; віджети та сповіщення. Важливо, щоби дані про користувача у віджетах вчасно оновлювалися. Цікава особливість тестування конкретно нашого застосунку — це необхідність спати з Apple Watch, щоби стежити, як саме апка буде трекати фази сну, та чи коректно працюватиме Smart Alarm. Труднощі на шляху Можливості Apple Watch передбачають низку цікавих технологій, але не всі з них можна адаптувати під себе. Наприклад, попри те, що Extended runtime sessions дає змогу викликати будильник з бекґраунду, вона майже не дозволяє кастомізувати UI. Або момент з даними щодо сну. Apple надає їх лише після того, як користувач прокинувся. Але нам було б корисніше отримувати їх у режимі реального часу. Це, наприклад, дає змогу простіше та точніше реалізувати функцію Smart Alarm, та будити людину у швидкій фазі сну. Ще один недолік — Apple Watch дає дуже обмежені можливості для дистрибуції, і майже ніяких можливостей для монетизації застосунку. Є можливість пропонувати підписки через Store Kit, але з точки зору маркетингу це не надто вдале рішення. Тому зараз важко похвалитися якимись шаленими цифрами щодо завантажень — всього продукт встановило десь три тисячі осіб. Попри те, що ми вперше працювали з Apple Watch, можна стверджувати, що, з точки зору функціонала, Avrora — найкращий застосунок для цієї платформи у ніші апок для сну. Ми пропонуємо і графіки відстеження сну, і медитації, і інші «сонні ритуали», і «віджети» — аби юзер міг розв'язувати свої проблеми зі сном найбільш комплексно. А нові технології та експерти з команди Apple допомогли зробити крутий та довершений продукт з точки зору користувацького досвіду.
- Як проводити тестування безпеки з ChatGPT. Інструкція з використання
ChatGPT від OpenAI з'явився восени минулого року, і з того часу вже багато написано про те, як використовувати його для розробки й тестування, зокрема для автоматизації тестів. Проте є ще один великий сегмент, в якому штучний інтелект може допомогти — тестування застосунків на вразливості. Невирішені питання безпеки в майбутньому можуть коштувати компанії-розробнику коштів, часу і витрачених зусиль. Про те, як використовувати найпопулярніше надбання індустрії ШІ для тестування безпеки, розповів Head of QA у компанії EVO Свят Логін на мітапі DOU QA Community. Свят вже понад десять років працює в тестуванні й понад п'ять років займається тестуванням вразливостей на Web та Mob. Окрім цього, веде блог із тестування безпеки . Публікуємо конспект найважливішого з його виступу на мітапі. Використання штучного інтелекту для тестування вразливостей — найкращий варіант для компаній, які бачать необхідність в тому, аби убезпечити свої продукти, проте не мають достатньо бюджету для найму пентестерів. Компаніям, для яких безпека є одним з найважливіших пріоритетів, краще обрати послуги тестувальника, або навіть команди пентестерів, аніж залучати ChatGPT. У будь-якому випадку штучний інтелект стане в пригоді всім. Чому? Тому що нові вразливості з'являються щодня, і навіть найдосвідченіший тестувальник може не знати, як з ними обходитись. Проблеми тестувальників, які може вирішити ChatGPT Нестача досвіду у сфері тестування на проникнення. Звичайні QA перевіряють все на предмет функціональності. Нині, під час війни, ворог використовує інтернет для завдання ударів також. Саме тому тестувальникам варто розібратися в тому, як шукати вразливості та реалізовувати тестування безпеки. Відсутність чіткого флоу. Штучний інтелект може швидко надати покроковий план того, як варто тестувату ту чи іншу вразливість. Брак часу. Навіть досвідчені пентестери використовують ChatGPT, тому що він допомагає суттєво оптимізувати роботу, беручи на себе рутинні завдання. Він може реалізувати навіть написання тест-кейсів та чеклістів (але тут варто перевірити, чи все вірно він зробив). Критичні вразливості за OWASP OWASP (Open Web Application Security Project) — це міжнародна некомерційна компанія, яка займається промотуванням безпеки вебзастосунків. OWASP створює велику кількість ґайдлайнів із безпеки, як для вебу, так і для мобайлу. OWASP Top-10 — це світова методологія оцінки вразливостей вебдодатків, яка містить десять найбільш розповсюджених вразливостей та методи їх визначення. На малюнку вище ми бачимо порівняння OWASP Top-10 за 2017 та 2021 рік. Насправді вразливості залишилися ті ж самі, при цьому деінде змінилася їх пріоритезація та повна назва. Якщо ви лише починаєте знайомитись із тестуванням вразливостей, вам допоможе базове флоу для пошуку вразливостей з OWASP Top-10 за допомогою ChatGPT. Штучний інтелект і вразливості Для пошуку вразливостей можна використовувати як платну, так і безоплатну версії ChatGPT. Різниця між ними невелика: платна дещо швидше генерує відповіді та необмежена в обсязі написаного. Безоплатна генерує не більше ніж 2048 символів за одну відповідь. Окрім цього, платну можна інтегрувати з різними додатками, зокрема з Postman. Як правильно користуватися чатом? Визначаємо для нього певну роль. Так він буде шукати й аналізувати інформацію вузьконаправлено, з точки зору тої ролі, яку ми йому запропонували. Якщо цього не зробити, він буде шукати інформацію у всій мережі, а це означає дуже абстрактну відповідь. Пишемо завдання. Вказуємо уточнення до завдання. Тут варто згадати всі додаткові уточнення, які можуть бути — це зробить відповідь максимально релевантною саме для вашого кейса. Для питань з різних тематик створюємо різні кімнати. З кожним питанням ChatGPT навчається, і формує свою думку на основі попередніх питань, що ви ставили. Якщо ваші питання стосуються різних сфер, наприклад, тестування безпеки й менеджменту, то варто ставити їх в окремих кімнатах, аби не отримати заплутану відповідь. Типи вразливостей Вразливості мережі й бібліотек Вони виникають у випадку неправильно налаштованих серверів та використання бібліотек від розробників, які можуть містити вразливі компоненти. Якщо така бібліотека використовується в додатку, і лише один компонент вразливий — вразливим стає весь додаток. Через таку вразливість був розповсюджений вірус notPetya у 2017 році. Як це працює? У нас є вебзастосунок, який містить бекенд, фронтенд, базу даних та мікросервіси. У мікросервісів можуть бути також свої фреймворки, за якими вони працюють. В якийсь момент ми вирішуємо, що ця версія нашого застосунку застаріла, ми хочемо переїхати на нову, а може на навіть і на нову базу даних. Тож ми переїжджаємо, але на те, щоб забрати з інтернету стару базу даних, не маємо часу або грошей. Якщо зловмисник просканує наш додаток, і знайде база даних, то він матиме змогу без перешкод залізти в неї exploit. Така сама схема працює і з бекендом, і з мікросервісами. Тому обов'язково потрібно видаляти ваші застарілі сервіси, бібліотеки й бази даних. Як має виглядати запит для ChatGPT для пошуку вразливостей цього типу. У інструменту nmap є різноманітні плагіни, і ви навіть можете попросити у ChatGPT, аби він сказав, як користуватися певним плагіном за допомогою nmap. Він пам'ятає тему про яку ви говорили минулого разу, тому одразу напише, що вам робити з плагіном. Веб-вразливості Найрозповсюдженіші вразливості типу А3: Cross-Site Scripting. 90% сайтів мають таку проблему. Це вразливість, яка дозволяє стороннім користувачам додавати сторонній js код у ваш додаток. Якщо у вашому вебдодатку немає екранування символів, які вводяться звичайними користувачами, то саме це може бути джерелом вразливості. Зловмисник може написати шматок кода на js, закинути вам в input, зберегти в базі даних, і потім зламувати ваших користувачів. За допомогою XSS він може вкрасти cookies, змінювати ваш сайт, встановлювати keylogger (програма, яка допомагає бачити, що інші користувачі набирають на клавіатурі, до того, як це відправлено на сайт). Також він матиме змогу додавати фішингові поп-апи, і за їх допомогою діставати дані користувачів. Як сформувати запит для цієї вразливості? Вразливості логіки Ці вразливості з’являються через прагнення UI/UX-дизайнерів та продактів зробити найзручніший та найпростіший для користувача продукт. Часто для цього нехтують безпекою. Це призводить до того, що з'являються вразливості системи, через які потім можна виводити кошти, обманювати користувачів тощо. Як протестувати цю вразливість? Запит для чату має бути наступний:
- Що таке LinkedIn та як з ним розвивати карʼєру. Кейси CTO та рекрутера
Соціальна мережа LinkedIn збирає найбільш неоднозначні відгуки. Для одних це осередок рекрутерів із недоречними пропозиціями роботи та коучів із постами про успіх у стилі Тоні Роббінса. А для інших LinkedIn — це спосіб розвивати карʼєру, знаходити корисні знайомства та безліч можливостей. Якщо ви в першій команді, ймовірно , ви не розібралися, як працює LinkedIn. Юрій Мокрушин, СТО Universe та Софія Татунчак, Recruitment Team Lead в Quarks , партнерській компанії Genesis, поділилися кейсами використання цієї соціальної мережі, розповіли, як правильно заповнити профіль, чому тут не можна постити меми та як будувати комунікацію з «холодними» контактами, щоби отримати відповідь. > Що таке LinkedIn > Як працювати з LinkedIn: кейс CTO > LinkedIn для рекрутерів: як налагоджувати ефективну комунікацію > Як правильно заповнити профіль LinkedIn Що таке LinkedIn LinkedIn — це одна з найстаріших соціальних мереж. 2002 року Ріду Гоффману, який на той момент був виконавчим віцепрезидентом PayPal, прийшла ідея обʼєднати професіоналів з усіх галузей за допомогою інтернету, — і наступного року він запустив LinkedIn. 2004 року, коли на світ зʼявився Facebook, LinkedIn вже мав перший мільйон користувачів. Своє двадцятиріччя в травні 2023 соціальна мережа відсвяткувала, перетнувши мітку в 900 мільйонів користувачів. Місія LinkedIn проста: створити найбільше професійне комʼюніті та допомогти кожному його члену розвивати карʼєру та бути продуктивнішим. Перші версії соціальної мережі не передбачали найму та розміщення вакансій. Тоді профілі складалися лише з імені, актуальної посади та освіти, а сама платформа була схожою на простий сайт для пошуку користувачів та обміну повідомленнями. У потужний інструмент для рекрутингу та нетворкінгу LinkedIn перетворився пізніше. Від самого початку менеджери компанії робили ставку на дорослу аудиторію та не спонукали її проводити в соціальній мережі якомога більше часу. «Класичний LinkedIn — це простір, де обговорюють суто професійні питання. Здебільшого тут не діляться статусами, мемами, смішними «тіктоками», не сперечаються на хайпові теми. Facebook переповнений лютими політичними суперечками, а в LinkedIn ви побачите, як розробники емоційно дискутують про оновлення Docker. І це безцінно», — ділиться Юрій Мокрушин, CTO Universe. Основні джерела прибутку LinkedIn — це реклама, преміум-акаунти (до речі, вони одними з перших випробували цей спосіб монетизації) та сервіси для бізнесів: Recruiter (надає платні послуги для кадрових відділів компаній), Sales Navigator (продажі та лідогенерація). Маючи профіль у LinkedIn, можна: знайти спеціаліста з унікальною вузькою експертизою для нетворкінгу; знайти вакансію будь-якої компанії чи стартапу світу; будувати особистий професійний бренд; проводити дослідження; просувати бренд компанії чи стартапу; знаходити професійні курси та навчальні програми. Як працювати з LinkedIn: кейс CTO Перш ніж створити сторінку в LinkedIn, треба визначити, для чого вона вам потрібна. Цей інструмент може допомогти з реалізацією різних цілей: особистий бренд, найм, пошук роботи або клієнтів. Я зареєструвався в LinkedIn понад шість років тому. Чув, що це комʼюніті, де представлена ІТ-спільнота, але першою реакцією було: «а що тут взагалі робити?». Довгий час я туди майже не заходив. Пізніше акаунт знадобився для дослідження ринку, коли я запускав стартап для рекрутерів. Так у мене з‘явилося 25 000+ зв‘язків, але навіть тоді я не використовував усіх можливостей соціальної мережі. Нещодавно я взяв участь у тренінгу з нетворкінгу, під час якого зрозумів, наскільки важливо розвивати особистий бренд, та що я втрачаю, ігноруючи спілкування. В Україні майже не розвинутий професійний нетворкінг в ІТ. Вкрай рідко трапляються маленькі локальні івенти, але можливості завести корисні знайомства зі спеціалістами в інших країнах обмежені. Водночас LinkedIn — це соціальна мережа, де люди готові спілкуватися. Якщо ви напишете незнайомій людині в Facebook: «Привіт, у тебе цікавий досвід, давай звʼяжемося і поспілкуємося?», з високою ймовірністю вас заблокують. У LinkedIn це сприймається більш дружньо, — тут люди відкриті, готові ділитися експертизою, відповідати на питання. Так я завів кілька дуже корисних знайомств із CTO інших компаній. Зараз я стараюся бути активнішим, писати як мінімум кілька постів на місяць. LinkedIn — не дуже зручний для постійного обміну повідомленнями: зазвичай ти знайомишся і переходиш до звичних форматів спілкування. У середньому я витрачаю на цю соціальну мережу 5–15 хвилин на день. Це дуже невелика «плата» за ту цінність, яку вона приносить. Особисто я не наймав людей, але це корисний інструмент для менеджерів, щоби знаходити таланти. Якщо правильно оформити профіль, можна безкоштовно дотягтись до великої кількості спеціалістів. Часто СТО самі пишуть потенційним кандидатам. Технічному спеціалісту завжди цікавіше поспілкуватися з можливим керівником, аніж із рекрутером. Мені досить часто пишуть люди, які цікавляться вакансіями в Universe. Пропозиції роботи від рекрутерів мені не заважають — я просто чемно відмовляюся. А от хто докучає, так це менеджери з продажів. Коли вони бачать посаду CTO, то застосовують усі можливі способи «продати» сервери, залізо, послуги хостингу тощо. LinkedIn для рекрутерів: як не спамити, а налагоджувати ефективну комунікацію Я використовую LinkedIn насамперед для найму: пошуку кандидатів, публікації вакансій, для поширення інформації про наш бренд та компанію, а також для розвитку особистого бренду. Також можна провести дослідження інших компаній: подивитися, які люди там працюють, як сформовані команди. Особливо цінно це для вивчення іноземних компаній. Основна зручність для рекрутерів у тому, що тут можна прописати складні запити із багатьма критеріями: локацією, досвідом, освітою та певними навичками. Система може фільтрувати кандидатів не тільки за назвою посади, яку вони вказали, але й за попереднім бекграундом, наприклад, роботою в певній компанії. Можна шукати як на українському ринку, так і поза ним. Заповнений профіль може дати багато інформації про кандидата, а його професійні звʼязки та рекомендації допомагають верифікувати скіли. За останні три місяці в мене було вісім наймів. Три з них — через LinkedIn. Щоразу комунікація складається по-різному. Інколи я пишу сама, але часто ініціатива йде від кандидатів. Якісний найм — це завжди комплексне поєднання різних інструментів, але я вважаю LinkedIn одним із найкращих для пошуку «холодних контактів». Втім, іноді з боку рекрутерів це перетворюється на масову розсилку пропозицій роботи та суцільний спам, що закономірно викликає негативну реакцію. Рекрутер має застосовувати індивідуальний підхід — вивчити сторінку людини, її досвід та написати персоналізоване повідомлення. Для кандидата це буде знаком, що ним справді цікавляться, а не надіслали типове повідомлення. Перш ніж кидати вакансію, краще завʼязати знайомство та спитати дозволу. Такі делікатні повідомлення значно рідше залишаються без відповіді, а якщо людина не зацікавлена в роботі, то охоче може порекомендувати когось із колег. Це не раз допомагало мені закрити вакансії. Як правильно заповнити профіль LinkedIn Найпопулярніший профіль в LinkedIn має Біл Гейтс (понад 34,7 млн фоловерів). Крім того, що він — засновник корпорації Microsoft, яка 2016 року придбала LinkedIn за $26,2 млрд, він також активно веде сторінку. Еталоном правильно заповненого профіля можна вважати сторінку Ріда Гоффмана , засновника LinkedIn. Є чотири ключові поля в профілі, за допомогою яких алгоритми зможуть знайти вас серед сотень мільйонів людей: Headline, About, Experience, Skills. Headline Заголовок розміщується під іменем, і це перше, що бачать про вас на сторінці пошуку або в профілі. Найчастіше тут вказують актуальну посаду та назву компанії. Також можна зазначити сферу роботи, ключові компетенції. Джуніори часто залишають тут примітку «відкриті до пропозицій». Важливо писати тут лише ключові фрази, які допоможуть вас знайти. Поширена помилка — абстрактний заголовок, коли замість посади пишуть кредо життя або дотепний жарт. У Ріда Гоффмана в заголовку вказані його ключові сфери діяльності. About Напишіть коротке самарі про свій досвід, вміння та мету. Можна коротко описати проєкт, у якому зараз працюєте, з якими викликами стикаєтеся. Також у цей розділ доречно додати посилання на портфоліо чи сайт. Experience Тут створюється таймлайн вашого робочого досвіду. Щоби він був релевантним, важливо обирати назви посад та компаній з автоматичного списку, який пропонує система. Якщо писати їх довільно, ваш профіль може не відображатися в пошуку. У цьому розділі можна прописати ключові обовʼязки, при цьому варто уникати перенавантаження інформацією. Якщо у вас багаторічний досвід у різних компаніях, краще детально розписати лише останнє місце роботи. Також зверніть увагу не тільки на дату початку роботи, але і звільнення, інакше система сприйматиме це, наче ви працюєте на різних позиціях одночасно. У Ріда в профілі вказано 32 місця роботи, починаючи з 1994 року. З них більшість описані коротко, а останнє місце роботи — детальніше (зазначені ключові сфери відповідальності). Skills У цьому розділі можна додати до 50 навичок. Карʼєрні консультанти радять не соромитися та писати максимальну кількість релевантних хард- та софт-скілів. Важливо розмістити їх у правильному порядку, починаючи із найголовніших для вашої професії. Краще писати англійською мовою та обирати зі списку, який пропонує система LinkedIn. У профілі Ріда зазначено 44 скіла, серед яких найголовніші — стартапи, підприємництво та стратегія. «Рекрутери звертають увагу на таймлайн досвіду роботу: якщо кандидат занадто часто змінює компанії та не затримується надовго, — це поганий знак. Також дивляться на освіту та наявні сертифікати, скіли, — ділиться Софія Татунчак. — Окрім цього, дивимося на рекомендації від колишніх або теперішніх колег, рівень англійської та соціальну активність». Якщо в людини рідкісна позиція та досвід, то скоріше за все їй напишуть і з мінімально заповненим профілем. А от тим, хто шукає роботу на ринку з високою конкуренцією, краще приділити максимум уваги своїй сторінці. «Нещодавно ми найняли талановитого менеджера, у якого на сторінці було не більше двох рядків інформації. Це як в Instagram: якщо в людини роками не зʼявляються нові пости, це зовсім не означає, що в нього немає соціального життя. Проте кандидати із повною інформацією в профілі завжди краще запамʼятовуються і швидше отримують запрошення на співбесіду. Коли рекрутер не знаходить інформації про навички й досвід, він мусить дізнаватися це в приватній переписці, а це займає досить багато часу, — розповідає Софія. Отже, LinkedIn — це соціальна мережа з чималими можливостями. Щоби ними скористатися, недостатньо просто зареєструватися. Алгоритми системи просувають у пошуку активних користувачів, тому, щоби налагодити якомога більше корисних звʼязків, оптимізувати профіль у пошуковій видачі та налаштувати стрічку новин, регулярно приділяйте увагу своїй сторінці, спілкуйтеся та будьте відкритими.
- Використання транзакцій в реляційних базах даних. Досвід дата-інженерки з Boosters
Транзакція — це основна робоча одиниця при взаємодії з базою даних. Катерина Медведська, Data Еngineer в Boosters , на мітапі генезійського бекенд-ком’юніті розповіла про особливості транзакцій в базах даних, гарантії, які надають AСID-транзакції та про те, навіщо потрібні різні рівні ізольованості транзакцій. Катерина працює в Boosters більше року. Раніше вона понад десять років працювала в сфері автоматизації торгових підприємств. Відповідала за автоматизацію торгових і складських процесів, обліку залишків. Працювала з оптимізацією баз даних — як для збільшення пропускної здатності конкурентного доступу, так і для вирішення проблем з блокуваннями. Публікуємо конспект з найважливішими тезами з виступу спікерки. Проблема паралельного доступу Уявімо, що в нас є інтернет-магазин, назвемо його «Ruletka». В нього є сайт, через який здійснюються всі продажі. У магазина є також склад, і інформація про наявні товари на цьому складі зберігається в певній реляційній базі даних (БД). Склад додає інформацію про товари в БД, а сайт вичитує її з цієї бази, аби відобразити користувачам. Уявімо, що магазин отримує партію із тисячі штук відомих всім марок «воєнний корабль». Склад, відповідно, вносить ці дані в базу, і вони через певний час відображаються на сайті. Одразу набігає більше п'яти тисяч охочих купити марку. Що ж при цьому відбувається в базі даних інтернет-магазину? Для кожного користувача, який додає товар в корзину, сайт повинен запросити дані з БД про наявність товару, одразу заблокувати його під користувача, і лише після цього «сказати» сайту, що все успішно, можна показувати сформоване замовлення клієнту. На кожну одиницю товару у нас по п'ять користувачів, які одночасно намагаються забронювати собі цей товар. На рівні бази даних це виглядає наче вони всі намагаються змінити таблицю вільних залишків в БД складу. Тут важливо, щоби всі користувачі, які замовили раніше, отримали свій товар першими, при цьому магазин не продав нічого в мінус, а база даних витримала таке навантаження. В цьому процесі може бути безліч проблем і складних ситуацій. Програмне або апаратне забезпечення БД може відмовити, при чому це може статись в будь-який момент, наприклад, посередині операції запису. Інша ситуація: розриви мережі неочікувано відріжуть ваш додаток від БД. Кілька користувачів зможуть виконати записи операції одночасно, при чому перезаписати один одного, і хтось не отримає свою марку. Ще одна потенційна проблема: клієнт може прочитати дані, які не матимуть сенсу, тому що вони були оновлені лише частково. Навіщо потрібні транзакції? Протягом десятиліть транзакції вважались оптимальним механізмом вирішення всіх вищеописаних проблем. Транзакція – це спосіб групування додатком кількох операцій запису та читання в одну логічну одиницю. По суті, всі операції запису і читання в ній виконуються як одна, і вся транзакція або цілком виконується успішно з фіксацією змін, або завершується невдало з перериванням і відкатом. І якщо відбувся збій, додаток може спокійно спробувати виконати операцію ще раз, бо він знає, що ніяких часткових операцій запису не було виконано. Це значно спрощує обробку помилок, оскільки не потрібно пам'ятати, що там щось могло частково записатись або не записатись взагалі. Гарантії функціональної безпеки, які надаються транзакціями, часто описуються абревіатурою ACID, яка розшифровується як Atomicity, Consistency, Isolation and Durability. Це атомарність, узгодженість, ізоляція та довговічність відповідно. Атомарність — це неможливість розбиття на менші частини. В контексті ACID атомарність транзакції гарантує, що будуть або виконані всі операції, які беруть участь в транзакції, або не буде виконано жодної. Тобто, якщо операції запису згруповані в атомарну транзакцію і її не вдається завершити через збій, то вона переривається, і в базі даних необхідно відкатити всі вже ці виконані зміни перед тим, як відповісти юзеру, що транзакція була перервана. Узгодженість. Під цим поняттям мається на увазі, що БД перебуває з погляду додатка в хорошому стані, тобто система має перебувати в узгодженому, несуперечливому стані до початку дії транзакції і по її завершенню. Що саме вважаємо узгоджений станом? До прикладу, при переведенні коштів з рахунку на рахунок, кошти необхідно спочатку зняти з першого рахунку, після чого нараховувати на другий. Відповідно, після зняття коштів, але до їх нарахування система перебуває в неузгодженому стані: коштів немає на жодному з рахунків. Але після завершення транзакції повна сума перебуватиме на другому рахунку, або, якщо сталась якась помилка, на першому, що буде узгодженим станом. Ізоляція. До більшості баз даних звертається одночасно кілька клієнтів. І в цілому це не викликає проблем, поки вони читають і записують дані в різні частини бази, в різні таблиці, в різні рядки. Але якщо вони звертаються до одних і тих самих записів, то тут можуть виникати проблеми конкурентного доступу, які називаються race condition або стан гонитви. Ізоляція існує саме для уникнення таких проблем. БД повинна гарантувати, що результат фіксації кількох конкурентних транзакцій такий самий, як наче вони виконуються послідовно, одна за одною. Довговічність. Основна задача СУБД — це надати надійне місце для зберігання даних. Під довговічністю мається на увазі зобов'язання бази не втратити успішно зафіксовані дані транзакції, навіть в разі якогось апаратного збою чи фатального збою самої БД. Чотири рівні ізоляції B ідеальному світі ізоляція повинна була б полегшити життя розробників, які б могли зробити вигляд, що жодного конкурентного виконання взагалі не відбувається. На практиці витрати на серіалізовану ізоляцію досить високі, і багато баз даних не згодні платити таку ціну. Саме тому були створені слабші рівні ізоляції, які захищають лише від частини проблем конкурентного доступу, але при цьому мають значно кращу продуктивність при паралельному виконанні транзакцій. Стандарт SQL-92 визначає чотири рівні ізоляції. Це Read Uncommitted, Read Committed, Repeatable Read і Serializable. Всі ці рівні відрізняються певними мінімально допустимими гарантіями, які повинна надавати СУБД, і описуються в документації через присутність конкретних проблем паралельного доступу. Більш високий рівень ізольованості підвищує точність даних, зменшує кількість проблем, але при цьому знижує кількість паралельних транзакцій. Відповідно, чим нижчий рівень ізольованості, тим більше транзакцій може виконуватись паралельно, але при цьому може знизитись точність даних, якщо ви все не врахували. Read committed Базовий і найпоширеніший рівень ізоляції транзакцій — read committed. Він забезпечує дві основні гарантії. Перша — жодних брудних операцій читання (dirty read). Це означає, що при читанні з БД клієнт бачить лише зафіксовані дані. Тобто якісь середні, неузгоджені дані він не може прочитати. І друга гарантія — це жодних брудних операцій запису. Тобто при записі в БД можна перезаписувати лише зафіксовані дані. Для запобігання «брудним» операціям запису частіше за все бази використовують блокування рядків. Перш ніж модифікувати конкретний об'єкт, транзакція повинна спочатку встановити блокування на цей об'єкт. Дане блокування має утримуватись аж до фіксації або переривання транзакції. Утримувати блокування на конкретний об'єкт може тільки одна транзакція одночасно. Іншим транзакціям, які хочуть виконати операцію запису в цей об'єкт, доведеться дочекатися фіксації або переривання першої транзакції і лише потім отримати блокування і продовжити свою роботу. Подібні блокування виконуються базами автоматично в режимі читання зафіксованих даних (і на сильніших рівнях ізоляції). Більшість БД запобігають «брудним» операціям читання за допомогою підходу, коли база запам'ятовує для кожного об'єкта, що записується, як старе зафіксоване значення, так і нове, яке встановлюється поточною транзакцією. А в цей час всім іншим транзакціям, що читають об'єкт, просто повертається старе значення. І тільки після фіксації транзакції запису інші транзакції починають одержувати нове значення. Repeatable read Коли в нас є якісь аналітичні запити або перевірки цілісності, то зазвичай сканують велику частину БД і сканування виконується певний час. Якщо такі запити будуть бачити, частину старих даних, а потім додавати частину нових даних, то в результаті ми отримуємо неузгоджені дані, які не матимуть жодного сенсу і вважатимуться помилковими. В таких варіантах рівень read committed не підходить, а для запобігання цим проблемам існує рівень ізоляції знімків стану — snapshot isolation, який ще називають repeatable read. Основна ідея полягає в тому, що кожна транзакція читає дані з узгодженого знімка стану бази, тобто це повний зріз даних на певний момент часу. Навіть якщо дані потім були змінені іншими транзакціями в моменті читання, то наша транзакція не буде бачити цих змін. Механізм ізоляції знімків стану підтримується багатьма СУБД. Як і в read committed, в реалізації snapshot isolation зазвичай використовується блокування запису для запобігання брудним операціям запису. Але при цьому операції читання не вимагають жодних блокувань. Отже, основним принципом ізоляції знімків стану є «читання ніколи не блокує запис, а запис ніколи не блокує читання». Завдяки цьому БД здатна виконувати тривалі запити на читання і в цей же час виконувати операції запису. Цей рівень ізоляції використовується найчастіше. Для реалізації ізоляції знімків стану бази використовують такий механізм, який називається Multi-Version Concurrency Control (MVCC). В ньому кожен SQL-оператор бачить знімок даних — повну версію БД на певний момент часу, незалежно від поточного стану даних. При читанні застосовується окремий знімок стану для кожного запиту, а для транзакцій — один і той самий знімок для всієї транзакції. Розглянемо детальніше, як реалізується цей механізм на прикладі PostreSQL. На початку виконання транзакція отримує свій унікальний, монотонно зростаючий ідентифікатор, який називається txid. Будь-які дані, записані цією транзакцією, позначаються цим номером. В кожному рядку таблиці є поле created by, що містить ідентифікатор транзакції, в якій був доданий в цей рядок. І в кожному рядку також є поле deleted by, яке початково порожнє. Коли транзакція змінює дані, вона насправді залишає старі в своєму рядку, дописуючи в нього свій txid в поле deleted by. А також додає рядок з оновленими даними, зі своїм txid в полі created by. Пізніше, вже коли жодна транзакція точно не звернеться до цих даних, vacuum в PostgreSQL почистить ці видалені рядки. БД не збирає фізичний знімок бази, щоби надати його кожній транзакції. Читання узгоджених знімків стану реалізується завдяки ідентифікаторам та низці правил видимості. Нижче перерахую основні: На початку кожної транзакції БД створює список всіх інших транзакцій, які ще не завершились на поточний момент, і всі зміни, які виконуються цими транзакціями, просто ігноруються для поточної транзакції. Усі операції запису, які виконані перерваними транзакціями, також ігноруються. Усі операції запису виконані транзакціями з більш пізнім ідентифікатором, також ігноруються. Результати всіх інших операцій запису видимі для поточної транзакції.
- Як використовувати Github Copilot: кейси та лайфхаки
GitHub Copilot — один із ШІ-інструментів, які змінюють підходи розробників до щоденного кодування. Він допомагає прискорити робочі процеси, однак, як будь-яка нова технологія, викликає чимало критики та непорозумінь: чи правда дає оптимізацію до 55%, як заявляють у компанії? Олексій Румянцев, Максим Драгомірецький та Олесь Марола, розробники компаній з екосистеми Genesis , діляться кейсами використання GitHub Copilot на фронтенді та бекенді, а також лайфхаками, як бути продуктивнішим із допомогою цього інструменту. Вони також розповіли, як не можна використовувати Copilot, як запобігти витоку конфіденційної інформації, та як він працює в сторонніх програмних середовищах. > Що таке GitHub Copilot > Як використовувати GitHub Copilot > Плюси і мінуси > Кейси використання GitHub Copilot на фронтенді та бекенді > Чи безпечний GitHub Copilot: ліцензії та збереження даних > Лайфхаки роботи з Copilot > Що далі Що таке GitHub Copilot GitHub Copilot — ШІ-інструмент для розробників, який працює в IDE. Він надає підказки автодоповнення та генерує фрагменти коду, використовуючи систему OpenAI Codex, розроблену Microsoft. Copilot підтримує всі популярні мови програмування та фреймворки, а також інтегрований у різні середовищами розробки (Visual Studio Code, JetBrains, Neovim, Visual Studio, Azure Data Studio тощо). Модель навчається на базі відкритих репозиторіїв GitHub — найбільшого осередку вихідного коду світу, який налічує понад 100 млн розробників. Основні функції GitHub Copilot включають : автоматичне доповнення коду; підказки для використання API та бібліотек; документацію для функцій та класів; виявлення потенційних помилок; створення тестів тощо. Бета-версія GitHub Copilot зʼявилася в липні 2021 року. У дослідженні 2022 року в компанії заявили, що розробники приймають у середньому 30% пропозицій інструменту. В останньому звіті цей показник зріс до 55%. GitHub Copilot позиціонують як продукт, що виконує нецікаві рутинні завдання, дозволяючи розробникам фокусуватися на високорівневих завданнях. Його творці не планували замінити розробників і не передбачали виконання завдань зі складною логікою, проте з кожним новим продуктом його можливості зростають. Так, Copilot Labs пропонує функції рефакторингу та автоматичної документації, перекладу та пояснення коду, а також покращену функцію генерації тестів, Copilot X — автоматичну генерацію pull-реквестів та чат із підтримкою GPT-4. Компанія відкриває доступ до нових продуктів спочатку для середовища Visual Studio Code, а після офіційного релізу — для всіх інших IDE. Як використовувати GitHub Copilot Щоби розпочати роботу з Copilot, потрібно встановити плагін в IDE та пройти автентифікацію за допомогою логіна GitHub. Часто розробники починають тестувати інструмент у пустому проєкті, коли він взагалі не розуміє контексту, тому якість пропозицій досить низька. Наприклад, якщо ми відкриємо пустий проєкт і почнемо вводити console.log, він запропонує рішення для найпоширенішої задачі «Hello, world». Натомість Copilot навчається не тільки на відкритих репозиторіях, але й на коді розробника. Чим довше ним користуєшся, тим більш релевантні пропозиції він надає. Так, якщо одразу відкрити робочий проєкт і почати писати назву функції, Copilot проаналізує код навколо й запропонує варіанти реалізації. Якщо інструмент генерує нерелевантні пропозиції, можна залишити коментар і пояснити, що має виконувати код, або сформулювати конкретний запит. Таким чином розробник виконує роль оператора, який ставить задачі, перевіряє рішення, приймає або відхиляє їх. Плюси GitHub Copilot Прискорення розробки. Швидке створення прототипів програмного коду для експериментів та валідації ідей. Спрощення рутинних завдань, таких як генерація шаблонного коду або документації. Підтримка багатьох мов та фреймворків. Мінуси GitHub Copilot Код не завжди працює і не тестується інструментом. У коді трапляються критичні помилки та вразливості. Якщо розробник не розуміє, як працюють згенеровані рішення, це може бути шкідливо. Ліцензійна політика GitHub Copilot та непрозора схема збереження даних. Інструмент не завжди розуміє специфічні вимоги та контекст проєкту. Кейси використання GitHub Copilot на фронтенді та бекенді Уперше спробував GitHub Copilot, коли він тільки викотив безкоштовну бета-версію та був доволі «сирим». Перші враження були приємні, але його адаптивність до синтаксису та зчитування контексту проєкту не зовсім відповідають можливостям, заявленим у рекламі. На мою думку, одна з його найбільших проблем — те, що він навчається на публічних кодових базах, які не завжди містять якісний код. За моїми спостереженнями, у 2 з 10 випадків він дає нерелевантні пропозиції. Здебільшого він пропонує не вивірені продумані рішення, а перше-ліпше, що буде працювати. Це наче трейні, якому ви можете довірити найпростіше, а потім маєте ретельно перевірити виконання. Я рідко прошу Copilot створити функцію, метод чи цілий клас, адже на перевірку і виправлення його пропозицій піде більше часу, ніж на написання власноруч. Користуюся ним виключно для вирішення рутинних завдань — прописування полів, написання інтерфесів, коли потрібно перенести код з одного місця в інше, та для написання коментарів — у цих випадках Copilot чудово зчитує контекст. Я б не радив користуватися ним, як основним інструментом для написання коду. Скоріше це допоміжний інструмент, який інколи дозволяє зекономити час та прискорити виконання рутинних завдань. Загалом він економить до 10% мого часу, що теж є непоганим результатом. Усі розробники періодично гуглять базову інформацію, наприклад, функції або RegEx для форматування чи пошуку. На мою думку, ШІ-інструмент економить час саме на ручний пошук та прямий перехід у Google, GitHub чи Stackoverflow. Наприклад, можна залишити коментар створити регулярний вираз, який прибирає пробіли, натиснути Enter, і він одразу запропонує вираз або функцію з ним. Це дуже зручно! Також я використовую Copilot для створення статичних обʼєктів, генерації коментарів, переносу статичних даних із дизайну та багатьох інших рутинних завдань. Наприклад, мені потрібен масив, для якого вже є заготовки та дані, тоді пишу коментар створити обʼєкт, і він виконує. Думаю, якщо зараз Copilot перестане працювати, у мене виникне дисонанс, адже тепер всю цю дрібну рутину треба писати самому. Щоби Copilot коректно працював, найкращий лайфхак — добре розуміти, що саме ти хочеш отримати та лаконічно та поетапно формулювати завдання. Не варто просити видати одразу готовий результат. Трапляються моменти, коли Copilot конфліктує з IDE та редактором. Це неприємно, але цей інструмент настільки добре прискорює мою роботу, що це здається несуттєвим. Вважаю, що GitHub Copilot може бути корисним для джунів, якщо підходити до його використання відповідально. Так само як не варто копіювати першу ліпшу відповідь зі Stackoverflow, треба ретельно аналізувати та розбиратися, що пропонують ШІ-інструменти. Приклад генерації методу видалення зайвих пробілів із допомогою ШІ: Найчастіше я використовую GitHub Copilot для роботи з DI-контейнером. У ньому ми прописуємо всі наявні компоненти та сервіси, які створюють залежності між собою, і конфігуруємо це в спеціальних файлах. Це завдання — суцільний бойлерплейт, адже ти мусиш вказати залежності при написанні сервісу, потім — у конфігураційному файлі. А якщо це загальні інтерфейси, потрібно ще додатково вказати конкретну реалізацію. Таких сервісів — багато: великих і маленьких, з різними залежностями. До того ж у цій рутині можна помилитися і випадково поміняти місцями компоненти, що додасть нових проблем. Раніше це вимагало багато ручної роботи, зараз цю рутину виконує Copilot. Усе, що мені потрібно зробити — зайти в конфігураційний файл і натиснути одну кнопку. Далі він сам пропонує встановити залежності та зібрати із цих компонентів той сервіс, який мені потрібен. Також копайлот непогано вміє доповнювати код при написанні методу, який імплементує якусь маленьку частину великої логіки. Це відбувається за умов вдалої назви для методу, щоби ШІ зміг зрозуміти, які аргументи він має приймати. Я випробував його на написанні юніт-тестів для функцій, але результат мені не сподобався. По-перше, кожен пише тести по-різному, і для того, щоб він писав їх у твоєму стилі, йому потрібно спочатку показати, як це робити. Також він виконує це завдання максимально стандартно. І найскладніше — після генерації десятків тестів, треба в них розібратися та впевнитися, що вони працюють. Отже, це не дуже економить час. У великих фрагментах коду буде важко відловити баги, адже пропозиція Copilot може містити приховану логіку. Якщо це не базова задача, на кшталт порахувати числа Фібоначчі, а стосується складної бізнес-логіки, краще зробити її власноруч. Щоби Copilot справді економив час, треба делегувати йому лише повторювані бойлерплейт-завдання. Не згоден, що раціональне використання ШІ-інструменту призводить до деградації розробників. Рутинні завдання, з якими допомагає Copilot, не сприяють навчанню чи прокачуванню якихось навичок — хіба що тайпінгу по клавіатурі. Натомість у розробників з’являється більше часу для цікавих високорівневих задач. Приклад роботи з DI-контейнером: Спочатку Copilot створює аргументи у useFactory в такому ж порядку, як вказано в Inject-масиві. Далі він пропонує створити PaymentsService з усіма цими параметрами на своїх місцях. Це не тільки значно швидше, ніж писати вручну, але і значно безпечніше. Приклад написання невеликої функції з розумінням загальному контексту та інтерфейсів сервісів: Чи безпечний GitHub Copilot: ліцензії та збереження даних У користувачів виникає чимало питань щодо безпеки використання GitHub Copilot. Відомо, що він зберігає згенерований код для навчання, але як використовує його? Кому насправді належать права на згенерований код? У листопаді 2022 року користувачі подали в суд за порушення GPL-ліцензії з вимогою компенсації $9 млрд. Компанія зізналася, що до терабайтів датасету для навчання моделі увійшли всі публічні репозиторії на GitHub без обмежень. Своєю чергою команда GitHub Copilot запевнила, що не копіює фрагменти коду, а відтворює оригінальний код на базі отриманих даних. Однак у спільноти є питання, як зберігається код, який GitHub парсить для навчання, та чи не може він потрапити в руки зловмисників. «Достеменно невідомо, яка саме інформація з вашого проєкту відправляється на сервери GitHub, адже фактично в нього є доступ до всієї локальної інформації, у тому числі .env-файлів, — ділиться Олексій Румянцев. — Користуючись цим інструментом, треба максимально відгороджувати усю чутливу інформацію, не відкривати поруч файли із секретами та креденшиалами». Доступ до .env-файлів може призвести до витоку чутливої інформації, такої як паролі, ключі доступу, токени й інші конфіденційні дані. Щоби цьому запобігти, рекомендується не додавати .env-файли до репозиторію та включити їх до файлу .gitignore, щоб їхній вміст не зберігався в системі керування версіями. Розробнику краще заборонити GitHub Copilot доступ до системи керування версіями. Варто також шифрувати конфіденційні дані, перш ніж зберігати їх у .env-файлах, та подбати про аудит доступу. Загалом, GitHub Copilot — це інструмент, який полегшує роботу, але відповідальність за безпеку залишається на розробниках. Необхідно завжди перевіряти та тестувати генерований код на вразливості. Лайфхаки роботи з Copilot Розбийте завдання на етапи та робіть прості конкретні запити . Дозвольте GitHub Copilot генерувати код після кожного кроку, а не просіть його створити великий фрагмент одразу. На відміну від ChatGPT, де промпт може містити багато повідомлень та ітерацій уточнень, у базовому Copilot такої можливості немає — промпт у коментарях до коду має бути максимально коротким. Наведіть приклад . Такий підхід корисний на початку роботи з інструментом. Наприклад, створюючи юніт-тести, можна відкрити файл із тестами в сусідній вкладці. Так Copilot швидше зрозуміє контекст та стиль написання, а не виконуватиме задачу, як йому заманеться. Слідкуйте за відкритими вкладками в IDE. GitHub Copilot використовує техніку навчання «сусідні вкладки», яка дозволяє йому контекстуалізувати ваш код, обробляючи всі відкриті файли. Наприклад, працюючи із сервісом, можна відкрити конфігураційний файл, щоби Copilot зрозумів його залежності. Розробники GitHub Copilot рекомендують тримати відкритими 2–3 вкладки, які допоможуть інструменту контекстуалізувати код. Водночас при роботі з Copilot не рекомендується тримати відкритими файли із конфіденційною інформацією. Використовуйте хороші практики кодування . Структурований код, надання описових імен змінних, методів і функцій, а також дотримання стилів та шаблонів сприятимуть релевантним пропозиціям ШІ. Якщо інструмент не реагує на коментар, почніть самостійно виконувати своє завдання , написавши кілька літер. Так Ші зорієнтується, що саме вам потрібно й надать вдалу пропозицію. Що далі Щороку на ринку зʼявляються нові ШІ-інструменти з розумними чатами, автодоповненням коду, підготовкою документації та виправленням помилок. Ймовірно, можна очікувати, що скоро аналоги Copilot будуть «прикручені» до кожної IDE. Розробникам важливо знати, як користуватися цими інструментами та слідкувати за новинками ринку, щоби тримати себе в тонусі. Правильне використання ШІ робить їх продуктивнішими, тому не можна ігнорувати розвиток цих технологій. Популярні ШІ-інструменти для розробки: Tabnine Amazon CodeWhisperer Replit Ghostwriter Codeium Mintlify Grit.io SourceGraph Cody Tabby AdrenalineAI CodeComplete Нідерландський розробник Гвідо ван Россум, автор мови програмування Python, використовує GitHub Copilot щодня . В Lex Fridman Podcast він стверджує: «хіба розробники втрачають роботу, використовуючи Stackoverflow? Я так не думаю. Це просто допомагає справитися з нудною рутиною. Проте ви не маєте використовувати Copilot в речах, у яких ви погано розумієтеся. Такий інструмент потрібен для завдань на кшталт «нагадай мені, як я це робив». Це лише асистент, який економить час на тайпінгу, але вся креативна робота та прийняття рішень — за вами».
- 20 найочікуваніших відеоігор 2025 року
У 2024 році масове впровадження штучного інтелекту в геймдев дозволило розробникам створювати складні світи з динамічним сюжетом та адаптивними NPC. Зростання популярності віртуальної реальності (VR) та доповненої реальності (AR) відкрило нові можливості для занурення у гру, а ігри з відкритим світом стали ще більш інтерактивними. Особливо помітним став розвиток кооперативних ігор, які дозволяють гравцям з різних куточків світу об’єднувати зусилля для досягнення спільних цілей. Розробники прагнуть не лише поліпшити графіку, а й запропонувати нові механіки, які забезпечують глибокий і незабутній ігровий досвід. Ми підготували для вас добірку найбільш очікуваних ігор 2025 року. У ній знайдуться і популярні хіти від великих студій, і маловідомі, але перспективні новинки. 1. Grand Theft Auto VI Дата виходу : Осінь 2025 Платформи : PlayStation 5, Xbox Series X/S Grand Theft Auto VI — безперечно одна з найбільш очікуваних відеоігор останнього десятиліття, і цілком заслужено. Rockstar повертається до культового всесвіту Vice City, де гравці зможуть поринути у кримінальний світ, що нагадує легендарні часи серії, але з новими можливостями та ще більшим відкритим світом. Окрім добре знайомого міста, гравців чекають нові персонажі — два головних герої, що нагадують історичну пару Бонні й Клайда. Вони втілюють у собі різні характери й стиль життя, що дає можливість випробувати різноманітні підходи до виконання місій та взаємодії з навколишнім світом. Гра пропонує безпрецедентну свободу вибору, забезпечуючи максимальну інтерактивність, завдяки новим технологіям, які дають ще більш деталізовані ландшафти та вдосконалену фізику рухів. Платформи нового покоління забезпечують приголомшливу графіку та динамічні зміни в погодних умовах, що надають відчуття живого і постійно змінюваного світу. GTA VI буде орієнтовано не тільки на фанатів серії, але й на новачків, які шукають нові гостросюжетні пригоди у світі криміналу. Гра стане справжнім еталоном для відкритих світів та пригод у відеоіграх на нових консолях. Сайт розробника 2. Assassin's Creed Shadows Дата виходу : 11 лютого 2025 Платформи : PC, PlayStation 5, Xbox Series X/S Assassin's Creed Shadows — новий реліз від Ubisoft, який переносить фанатів культової серії до Японії середини 16 століття, епохи самураїв та ніндзя. У цьому проєкті гравці опиняються в ролі двох персонажів, кожен з яких має свої унікальні можливості й стиль боротьби. Один з героїв — Наое, спритний і хитрий ніндзя, який використовує стелс, а інший — Ясуке, могутній самурай, що втілює силу та честь воїна. Гравець буде мати можливість обирати, як діяти, чи через ближній бій, чи завдяки хитрощам і підступності. Важливою частиною гри є акцент на історичних подіях того часу. Гравці зможуть не тільки вивчати японську культуру, а й брати участь у важливих історичних подіях, відчути дух самураїв та ніндзя. Нові механіки бою, що дозволяють інтерактивно взаємодіяти з навколишнім середовищем, та розвинена система стелсу, обіцяють ще більше занурення в атмосферу Японії 16 століття. Assassin’s Creed Shadows стане справжнім подарунком для тих, хто любить історичні екшн-ігри та хоче познайомитись з одним з найцікавіших періодів японської історії. Сайт розробника 3. Monster Hunter Wilds Дата виходу : 28 лютого 2025 Платформи : PC, PlayStation 5, Xbox Series X/S Monster Hunter Wilds — новий етап у популярній франшизі від Capcom. Ця гра пропонує гравцям абсолютно новий світ для полювання, де небезпека підстерігає на кожному кроці. Гравці матимуть можливість не тільки відправлятися на полювання на монстрів, але й взаємодіяти з навколишнім світом. Одним із нововведень стане система супутників, зокрема емулоподібний компаньйон Сейкрет, який може допомогти гравцеві під час полювання, а також подорожувати з ним через величезні ландшафти гри. Нове доповнення до відкритого світу дозволить гравцям більше взаємодіяти з природою, використовувати ландшафт у своїх інтересах під час боїв і досліджень. У грі є нові види зброї та ще більш інтенсивні, динамічні бої, які зроблять кожен полювання незабутнім. Вдосконалена система боїв та розширений світ для дослідження обіцяють, що Monster Hunter Wilds стане однією з найкращих частин серії для фанатів цієї франшизи. Сайт розробника 4. Split Fiction Дата виходу : 6 березня 2025 Платформи : PC, PlayStation 5, Xbox Series X/S Split Fiction від Hazelight Studios — творців знаменитої гри It Takes Two — пропонує новий кооперативний досвід, який поєднує елементи фантастики та наукової фантастики. Гра дозволяє двом гравцям вирушити в подорож через контрастні світи, де кожен світ має свої правила фізики й можливості для вирішення головоломок. Гравці повинні спільно долати перешкоди, такі як втеча від наднової зірки або участь у танцювальних битвах з мавпами, що додає комічних елементів до напружених моментів гри. Розробники наголошують на важливості кооперації, що дозволить гравцям поглиблювати зв'язок між собою, вирішуючи головоломки та долаючи виклики. Split Fiction приверне увагу любителів інді-ігор, адже вона вражає оригінальністю та творчим підходом до геймплею, а також фанатів нестандартних пригод в стилі наукової фантастики. Сайт розробника 5. Wanderstop Дата виходу : 11 березня 2025 Платформи : PC, PlayStation 5 Wanderstop — це інді-проєкт, що пропонує гравцям неспішну подорож через красиві ландшафти, в яких кожен день приносить нові емоційні та філософські питання. В ролі героя, який працює в магазині чаю в лісовій місцевості, ви будете пізнавати нові аспекти життя та взаємодії з людьми, відкриваючи теми, що стосуються втечі від реальності та пошуку зцілення. Ця гра створена для тих, хто шукає затишну атмосферу, але готовий задуматись над важкими питаннями існування та справжнього відновлення душі. Wanderstop ставить на перше місце атмосферу і глибину відчуттів, а не динамічний екшн чи складні механіки. Гравці зможуть зануритись у цей спокійний, але глибокий світ, який створює можливість для самопізнання і роздумів. Сайт розробника 6. Avowed Дата виходу : 18 лютого 2025 Платформи : PC, Xbox Series X/S Avowed — нове амбітне RPG від студії Obsidian Entertainment, яка відома своїми іграми з глибокими світами та складними сюжетами. У Avowed гравці поринуть у світ Еора, знайомий фанатам Pillars of Eternity, але з новими персонажами та місцями. Гра пропонує відкритий світ, що поєднує в собі фентезі та магію, із можливістю створення персоналізованих персонажів та численними варіантами розвитку їхніх здібностей. Важливою особливістю є система магії, яка буде набагато більш інтерактивною та гнучкою, що дозволить гравцям експериментувати з різними стилями бою та магічними комбінаціями. Історія знову ставить гравців перед важкими моральними виборами, що впливатимуть не лише на розвиток сюжету, а й на відносини з іншими персонажами. Країна Еора буде багатою на історії, місії та скарби, що робить Avowed справжньою епопеєю для любителів RPG-ігор. Сайт розробника 7. Fable 4 Дата виходу : 2025 Платформи : Xbox Series X/S, PC Fable IV — нова частина культової франшизи, яка дасть гравцям повну свободу вибору: чи стати героєм, чи зануритись у темний бік і втілити злочинні амбіції. Світ Fable завжди славився тим, що кожне рішення впливає на події, а тепер цей механізм буде ще більш гнучким і інтерактивним. У грі з’явиться нова система створення персонажа, де гравці зможуть не лише детально налаштувати вигляд героя, але і його моральний компас, що відкриє безліч варіантів розвитку історії. Механіка гри обіцяє бути ще більш динамічною. Розвиток персонажа включатиме нові системи магії та боїв, а також цікаві можливості для взаємодії з навколишнім світом. Можна буде побудувати власні стосунки з іншими персонажами, обираючи шляхи дружби чи ворогування, що суттєво вплине на розвиток сюжету. Світ Fable IV буде багатий на нові регіони: від величезних замків до темних лісів, а також приховані таємниці, які чекають на своїх дослідників. Гра не є прямим продовженням попередніх частин і перенесе нас у новий етап історії в знайомому світі Альбіону. Гравці візьмуть на себе роль нової героїні, яка приєднується до спільноти героїв і вступає в боротьбу з потужною загрозою. Творці обіцяють зберегти фірмовий гумор і атмосферу серії, доповнивши їх сучасною графікою і новими механіками. Розробкою займається Playground Games, студія, відома серією Forza Horizon, і хоча Пітер Моліньє та його Lionhead Studios не причетні до проєкту, фанати сподіваються, що унікальний стиль Fable залишиться незмінним. Сайт розробника 8. Directive 8020 Дата виходу : 2025 Платформи : Windows, PS5, Xbox Series X/S Directive 8020 — новий проєкт від студії Supermassive Games, що стане частиною серії The Dark Pictures. Хоча гра є ідейним продовженням таких частин, як Little Hope, House of Ashes та The Devil in Me, розробники вирішили зробити великий крок і відійти від формату інтерактивного кіно, створивши повноцінний survival-horror від третьої особи з елементами стелсу. У центрі сюжету — екіпаж космічного корабля-колонії Кассіопея, члени якого після невдалого інциденту намагаються знайти нову домівку для людства. Але їхня місія стає ще складнішою, коли на борт корабля проникають прибульці-доппельгангери, що можуть копіювати вигляд членів команди. В результаті ситуація на борту стає критичною, а гравцям доведеться протистояти невідомій загрозі, що обіцяє запаморочливу напругу в кожному моменті гри. Очікується, що Directive 8020 принесе поєднання класичного survival-horror і багатогранного сюжету із жахаючими поворотами та напруженими моментами. Сайт розробника 9. Mafia: The Old Country Дата виходу : Середина 2025 Платформи : PC, PlayStation 5, Xbox Series X/S Mafia: The Old Country переносить гравців у ранні 1900-ті роки, в Сицилію, де починається історія організованої злочинності. Гравці слідуватимуть за Енцо Фаварою, який виростає в умовах важкої праці на сірчаних шахтах і врешті стає частиною злочинної родини Торрісі. Гра змінює підхід серії, відходячи від відкритого світу, надаючи більше уваги лінійному, сюжетно орієнтованому процесу. Основна ідея гри — це стратегічне управління, соціальні взаємодії і моральні вибори. Цільова аудиторія — фанати кримінальних історій, стратегії і відкритих світів. Унікальність гри полягає в можливості будувати свій шлях до верхівки кримінального світу через вибір шляхів і методів ведення бізнесу, а також прийняття етичних рішень. Сюжет обіцяє бути емоційно насиченим, із великими сюжетними поворотами і численними драматичними моментами. Цей проєкт буде ідеальний для любителів кримінальних драм з історичним контекстом. Сайт розробника 10. Ghost of Yotei Дата виходу : 2025 Платформи : PlayStation 5 Продовження знаменитої Ghost of Tsushima, Ghost of Yotei розгортається через 300 років після подій оригінальної гри. Гравці опиняються в ролі Ацу, що бореться в красивих, але жорстоких пейзажах Хоккайдо. Трав'янисті рівнини та величний вулкан Ютей створюють вражаючий фон для боїв. Гра поєднує елементи традиційного самурайського бойового мистецтва з містичними й надприродними аспектами. Гравці можуть досліджувати стародавні храми, протистояти злим духам і розкривати таємниці свого минулого. Основна ідея гри — це поєднання відкритого світу з елементами самурайської боротьби та містичного виживання. Цільова аудиторія — фанати бойових ігор, історій самураїв і темних містичних наративів. Унікальність гри полягає в поєднанні класичного японського самурайського досвіду з надприродними елементами й глибокою атмосферою. Завдяки вдосконаленим візуальним ефектам та новим елементам геймплею, гра обіцяє стати новим етапом розвитку серії. Для фанатів культового світу самураїв ця гра обов’язкова до перегляду. Сайт розробника 11. Subnautica 2 Дата виходу : 2025 Платформи : PC, Xbox Series X/S Subnautica 2 продовжує історію, що захоплює з самого початку, занурюючи гравців у глибини океану з новими небезпеками та можливостями для дослідження. У новій частині гравці відправляться в подорож по безмежним морям, де їх чекають величезні морські чудовиська і таємничі глибини. Завдяки мультиплеєрному режиму, гравці зможуть об'єднати свої зусилля і разом виживати в цих підводних світах. Основна ідея гри — дослідження та виживання в екстремальних умовах з максимально реалістичними механіками океанського середовища. Цільова аудиторія — любителі пригод і виживання, фанати першої частини, а також гравці, які цінують великі відкриті світи та глибокі дослідження. Механіка виживання, підвищена тривожність і невизначеність, що відчувається під водою, зроблять кожен похід в глибину неймовірно захоплюючим. Унікальність гри полягає в надзвичайно реалістичному відтворенні підводного світу та інтерактивному дослідженні морського дна. Сайт розробника 12. Clair Obscur: Expedition 33 Дата виходу : весна 2025 Платформи : PlayStation 5, Windows PC, Xbox Series X Clair Obscur: Expedition 33 — це захоплююча покрокова RPG від студії Sandfall Interactive, яка привертає увагу завдяки своєму унікальному поєднанню елементів темного фентезі та історичного сеттингу, натхненного Францією кінця 19 — початку 20 століття. Гра створена на основі Unreal Engine 5, що дозволяє створити стильний і детализований дизайн персонажів, де поєднуються реалістичні та стилізовані елементи. На гру значно вплинули такі відомі серії, як Final Fantasy та Persona, що дозволяє очікувати глибокий сюжет, емоційні персонажі та унікальну атмосферу. Ігровий процес у Clair Obscur: Expedition 33 вражає своєю бойовою системою, де важливі кожен рух та ритм. Гравці керують останнім залишеним загоном, який вирушає в подорож, щоб зупинити загадкову Художницю, здатну "малювати смерть", що загрожує знищити увесь світ. Бої тут не просто тактичні, а й ритмічні, де важливий ідеальний таймінг. Сюжет гри розвивається у світі, де магія і реальність переплітаються з елементами бель епок, даруючи кожному моменту сюрреалістичний відтінок. Ваша подорож не буде легкою: на шляху вам зустрічатимуться унікальні супутники, сюрреалістичні вороги та таємничі місця, де кожне знайдене сховище може приховувати нові можливості або приховані квести, які глибше розкривають цей світ. Clair Obscur: Expedition 33 обіцяє стати однією з найбільш атмосферних RPG 2025 року, пропонуючи не лише захоплюючий сюжет, а й складні бойові механіки, що робить гру привабливою для справжніх любителів жанру. Сайт розробника 13. Death Stranding 2 Дата виходу : 2025 Платформи : PlayStation 5 Сіквел культової гри Death Stranding приведе гравців назад у світ, де все ще доведеться відновлювати зруйнований зв'язок між людьми в постапокаліптичному світі. Головний герой, Сем Портер Бріджес, відправиться на нові місії через безкраї пейзажі, розбираючи таємниці та боротьбу за майбутнє людства. Він повинен відновити зв'язок між ізольованими людськими поселеннями, долати випробування, що чекають на нього у спустошеному світі. Основна ідея гри — це побудова соціальних зв'язків у постапокаліптичному світі, в якому кожен вибір має значення. Цільова аудиторія — любителі психологічних ігор, дистопій, а також фанати першої частини. Знову нас чекають унікальні механіки взаємодії з іншими гравцями, що є основною темою гри. Чудова графіка, непередбачувані сюжетні повороти та глибокі філософські питання роблять Death Stranding 2 неймовірно захоплюючим і багатошаровим досвідом. Сайт розробника 14. Doom: The Dark Ages Дата виходу : 2025 Платформи : PC, PlayStation 5, Xbox Series X/S Doom: The Dark Ages занурює гравців в темний середньовічний світ, де буде відбуватись епічна боротьба з монстрами, що нагадують істот з темних часів. Гравці знову відправляться в боротьбу проти зла, але цього разу в абсолютно новій атмосфері. Стиль гри зміниться, зокрема нові елементи додадуть непередбачуваності, адже стародавні монстри тепер не тільки фізично, але й магічно здатні завдавати шкоди. Пригода обіцяє бути гучною, насиченою та повною екшену. Сайт розробника 15. Sid Meier's Civilization VII Дата виходу : 11 лютого 2025 Платформи : PC, Xbox Series X/S, PlayStation 5 Civilization VII продовжує легендарну серію 4X-ігор, де гравці зможуть розвивати свою цивілізацію від стародавніх часів до майбутнього. Цього разу буде застосовано новий підхід до історії, де менш часті та довші етапи цивілізацій допомагають глибше зануритись у розвиток вашої нації. В новій частині буде ще більше стратегічних варіантів для управління цивілізацією, а також нові механіки й вивчення планети. Основна ідея гри — це захоплення територій, дипломатія, економіка і технологічний прогрес, що впливають на розвиток цивілізації. Цільова аудиторія — стратеги, геймери, що люблять думати й планувати на декілька кроків уперед. Розробники з Firaxis обіцяють нові механіки, що зроблять гру ще більш складною і цікавою, а також дозволять дослідити нові стратегії й підходи до побудови імперії. Сайт розробника 16. Kingdom Come: Deliverance 2 Дата виходу : 4 лютого 2025 Платформи : PlayStation 5, Xbox Series X/S, PC Це продовження історії середньовічної епопеї, що переносить гравців у більш розвинену та деталізовану версію Європи XV століття. У грі буде розширено можливості для створення персонажа, а також додано нові механіки для битв, дипломатії та досліджень. Гравці повинні вирішувати важливі моральні дилеми та брати участь у політичних інтригах середньовічного світу. Основна ідея гри — реалістичне відтворення історичних подій з акцентом на історичну достовірність та занурення в середньовічну атмосферу. Цільова аудиторія — фанати історичних ігор, RPG і гравці, що цінують детальне відтворення історичних епох. Унікальність гри полягає в її увазі до деталей, історичній точності й глибокому зануренні в середньовічний світ. Сайт розробника 17. Judas Дата виходу : 2025 Платформи : PC, Xbox Series X/S, PlayStation 5 Це новий науково-фантастичний шутер від геймдизайнера Кена Левіна, відомого по BioShock. Гра розгортається на величезному космічному кораблі «Мейфлауер», що перевозить останніх людей із Землі до Проксими Центавра. Однак, через технічну аварію все йде шкереберть. Головна героїня, Іуда, втрачає пам'ять і стає ключовою фігурою в розслідуванні причин катастрофи. Вона повинна знайти шлях до порятунку, вирішуючи, з якою фракцією об'єднатися, адже на борту корабля панує хаос. Іуда має унікальну здатність — технологія відновлення дає їй можливість повертатися до життя після кожної смерті, але це коштує їй частини пам'яті. Корабель наповнений ворогами, а система взаємодії з фракціями змушує постійно робити вибір, що впливає на сюжет. Бойова система схожа на BioShock, де герой може комбінувати вогнепальну зброю і спеціальні імпланти для атак, наприклад, стріляти електрикою або підпалювати ворогів. Особливістю Judas є система «Narrative Lego», яка адаптує сюжет залежно від ваших рішень. Цей елемент дає гравцям свободу дій і дозволяє проходити гру кілька разів, кожного разу переживаючи нову історію. Гра обіцяє бути не лише захоплюючим шутером, але й складною та інтелектуальною, з глибокими персонажами та інтригуючими сюжетними поворотами. Judas стане справжнім хітом для фанатів Кена Левіна і всіх, хто любить космічні пригоди з глибоким сюжетом і динамічними боями. Сайт розробника 18. Atomfall Дата виходу : 27 березня 2025 Платформи : PlayStation 5, Xbox Series X/S, PC Atomfall — це науково-фантастична екшн-гра, де гравець бере на себе роль героя, що бореться проти апокаліптичної загрози у вигаданому світі майбутнього. Світ занурений у хаос після катастрофи, і тепер залишки людства повинні об'єднатися, щоб вижити. Гравець використовує різні види зброї, а також покладається на свою кмітливість, щоб боротися з ворогами. Основна ідея гри — це поєднання швидкого бою і науково-фантастичного сюжету з постапокаліптичною атмосферою. Цільова аудиторія — фанати наукової фантастики, постапокаліпсису та інтенсивних екшенів. Унікальність гри полягає в її яскравому і глибокому світі, що занурює гравця в непередбачувану боротьбу за виживання. Сайт розробника 19. Dune: Awakening Дата виходу : 2025 Платформи : PlayStation 5, Windows PC, Xbox Series X Dune: Awakening — це нова гра від Funcom, яка перенесе гравців у всесвіт «Дюни». Тут ви зможете вибрати фракцію і боротися за контроль над Арракісом. Гра пропонує глибоке налаштування персонажа, поєднуючи можливості ближнього та дальнього бою, зокрема вогнепальну зброю, що є відхиленням від класичного канону. Розробники гри надихнулися фільмом Дені Вільньова, тому гравці зможуть будувати бази та керувати транспортними засобами, дизайн яких був створений під впливом ідей, реалізованих у його екранізації. Сайт розробника 20. Marvel 1943: Rise of Hydra Дата виходу : 2025 Платформи : PlayStation 5, Windows PC, Xbox Series X Marvel 1943: Rise of Hydra — це новий проєкт від Емі Генніг, відомої завдяки роботі над серією Uncharted, який розробляється в її студії Skydance New Media. Гра заснована на коміксах Marvel 2010 року та переносить гравців у альтернативну реальність Другої світової війни, де Стів Роджерс (Капітан Америка) та дідусь Т'Чалла об'єднуються, щоби протистояти нацистській загрозі. У складі команди є чотири персонажі: окрім Капітана Америки і Т'Чалли, гравці зможуть грати за Габріеля Джоунса — члена елітного підрозділу «Howling Commandos», і Наналі, лідерку мережі шпигунів Ваканди та колишню королеву цього королівства. Кожен персонаж має свої унікальні здібності, що дає можливість створювати різні тактики в бою. Гра пропонує захоплюючий сюжет та глибоку взаємодію між героями, що дає змогу краще зрозуміти їхні стосунки в умовах війни з нацистами. Сайт розробника Це були 20 найочікуваніших відеоігор на 2025 рік, які привернули увагу геймерів по всьому світу, зокрема й в Україні. Гравців чекають захоплюючі історії, нові механіки та можливості для інтерактивного досвіду, тому кожен любитель відеоігор знайде тут щось для себе.
- 8 tech-трендів, що змінять 2025 рік – передбачення від WSJ
Редакція WSJ має багаторічну традицію публікувати щогрудня прогнози про те, що чекатиме на людство у технологічній сфері наступного року. Наприкінці 2024 WSJ також зібрав технологічні зміни, які вплинуть на наше життя вже 2025-го. Серед них — розвиток генеративного ШІ, новий криптобум та альтернативна енергія. Ми обрали зі статті головне — ділимось! ШІ-агенти 2024 року генеративний ШІ здебільшого використовували для створення текстів, зображень та відео. Тепер генеративні моделі почнуть діяти — агенти розумітимуть контекст, враховуватимуть ваші уподобання та будуть взаємодіяти з іншими програмами, щоби бронювати ваші подорожі, замовляти їжу, чи навіть шукати нові кросівки. Девід Сінглтон, співзасновник і CEO компанії /dev/agents, що розробляє операційну систему для агентів, стверджує — вона має на меті допомогти в рутинних завданнях, які ми повторюємо до 20 разів на день. Запуск цієї ОС заплановано на 2025 рік. Google вже називає наступну версію Gemini «моделлю для епохи агентів» і показав, як ШІ-агенти зможуть, до прикладу, купувати квитки на літаки. Американський стартап Anthropic розпочав тестування функції «використання комп’ютера», яка дозволяє їх ШІ-моделі Claude шукати в інтернеті, відкривати програми та вводити текст за допомогою миші й клавіатури. OpenAI також планує запустити платформу ШІ-агентів на початку 2025 року. Claude 3 Opus аналізує економічні дані та надає прогнози щодо ринкових тенденцій. ШІ-гаджети Цього року побутові (й не тільки) пристрої вдосконалять завдяки ШІ. Як пише Bloomberg, Apple готується випустити 6-дюймовий розумний дисплей для дому — на кшталт iPad для кухні або вітальні, з акцентом на Siri та Apple Intelligence. Щоправда, Apple поки відмовилась коментувати оновлення. Alexa від Amazon нарешті отримає обіцяне оновлення з генеративним ШІ. Очікуємо на розумніші динаміки Echo та глибшу взаємодію з голосовим асистентом. Однак будинком усе не обмежиться — Марк Цукерберг каже, що 2025 рік «буде важливим для окулярів Meta». Amazon Echo Hub. Джерело: Bloomberg Бонус: легендарний ексдизайнер Apple Джоні Айв і CEO OpenAI Сем Альтман співпрацюють над створенням пристрою на базі ШІ. Невідомо, чи з'явиться він до кінця 2026 року. Точні прогнози погоди Не треба бути метеорологом, щоб знати — прогнози часто помиляються. Екстремальні погодні явища все ще важко передбачити. Однак, GenCast, нова модель лабораторії штучного інтелекту DeepMind від Google, зможе надавати точні прогнози до 15 днів наперед. Прогнози GenCast стануть доступними в реальному часі вже найближчими тижнями. За даними Національного управління океанічних і атмосферних досліджень (NOAA), 10-денний прогноз погоди є точним лише приблизно в половині випадків. Google стверджує, що їхня модель прогнозування на основі машинного навчання точніша на 97,2% порівняно з європейською моделлю, яку зараз активно використовують. GenCast також працює швидше за традиційні моделі — їм потрібні години для створення прогнозу, а розробка DeepMind впорається за вісім хвилин. Альтернативні джерела енергії для дата-центрів Бум в галузі ШІ та хмарних обчислень означає зростання кількості дата-центрів по всьому США, а вони потребують багато електроенергії. Технологічні гіганти шукають джерела для неї. Так, Amazon, Google і Microsoft інвестують мільярди у ядерну енергетику. Microsoft нещодавно підписала угоду з Constellation Energy щодо постачання електроенергії з неушкодженого реактора на території Three Mile Island — місця найбільшої ядерної катастрофи в США. На початку 2024 року Amazon уклав угоду з енергетичним заводом у Пенсільванії. Ядерна електростанція Three Mile Island у Пенсильванії. Джерело: NBC News Компанії також досліджують можливості малих модульних реакторів — міні-електростанцій, схожих на ті, що використовують на ядерних підводних човнах. За словами керівника відділу хмарних обчислень Amazon, якщо ці реактори взагалі працюватимуть, їх можуть почати використовувати тільки протягом наступного десятиліття. Тим часом додавання великих акумуляторів до сонячних та вітрових електростанцій може стати дешевшим способом накопичення та зберігання енергії, тому великі хмарні провайдери також інвестують у цей напрямок. Є й екзотичніші рішення: Google вже використовує енергію з геотермальної електростанції. Британська компанія Drax сподівається побудувати електростанцію, яка буде працювати на деревної трісці. Новий криптовалютний бум На початку грудня 2024 року Bitcoin перетнув позначку у $100 000 (станом на 10.01.2025 його вартість складає $93 449 — Ред.) . Він може й піднятися ще вище, й різко впасти. Але є багато тих, хто готовий ризикувати. Це стало простіше з появою біржових фондів (ETF) на основі біткоїна. Великі банки та Уолл-стріт активно залучаються до ринку. Навіть колишні скептики, як CEO BlackRock Ларрі Фінк, тепер керують фондами, що інвестують у криптоактиви . Ринок також підтримуватиме адміністрація Трампа, дружня до криптовалюти. Як каже Ґрант Енгельбарт, інвестиційний радник Carson Group, біткоїн поступово стає для інвесторів більш «нормальною» частиною ризикового портфеля. Однак під час наступної криптозими ентузіазм може згаснути. Моніторинг біологічного віку та уповільнення старіння Люди хочуть не лише жити довше, а й зберігати «біологічний» вік молодшим — скажімо, у 55 років фізіологічно відповідати середньостатистичній 45-річній людині. Є застосунки, що допомагають відстежувати процесс старіння. Наприклад, застосунок Death Clock відтворює, як ви виглядатимете в 70 років за умови хороших чи поганих звичок, а FaceAge аналізує селфі для визначення біологічного віку. Алгоритм також адаптують для аналізу пацієнтів з діабетом чи ортопедичними проблемами. Також у тренді моніторинг рівня глюкози у крові, адже стрибки цукру пов’язують із ризиками серцевих хвороб та діабету. Наприклад, ШІ-застосунок January прогнозує рівень глюкози по фото їжі — без додаткового обладнання. Для точнішого моніторингу підійдуть безперервні глюкометри, як-от Stelo від DexCom, який використовує ШІ для звʼязку рівня цукру з режимом сну, дієтою та іншими звичками. Носимий гаджет Stelo для моніторингу при діабеті Самокеровані таксі Про такий тренд говорять вже понад 7 років, але з 2025 року клієнти вже можуть викликати повністю автономний автомобіль Waymo через додаток Uber в Атланті та Остіні. Цю послугу надає Alphabet, материнська компанія Google. Сервіс також планують запустити у Токіо. Крім цього, Waymo вже виконує до 150 000 поїздок на тиждень в Сан-Франциско, Фініксі, Лос-Анджелесі — там автономні автомобілі можуть навіть почати виїжджати на автомагістралі. Тим часом Amazon працює над своїм роботаксі Zoox. Цього року компанія почне пропонувати поїздки в Лас-Вегасі і у Сан-Франциско. Крім того, Zoox нещодавно почав тестування в Остіні та Маямі. Роботаксі Zoox від Amazon Ілон Маск обіцяє автономну версію ПЗ «Повне самокерування» для Model 3 та Model Y від Tesla в Техасі та Каліфорнії цього року. Це може означати, що люди-водії вже не будуть потрібні для підстрахування (як зараз). Автомобіль буде під повним контролем алгоритмів. Запуск Cybercab — автомобіля без керма та педалей — очікується не раніше 2026 або 2027 років. Час покаже, які з цих передбачень справдяться, але ми вже можемо впевнено сказати, що цього року на нас очікує багато змін завдяки ШІ.
- Що таке GraphQL і чому розробники обирають його замість REST?
GraphQL — це мова запитів API, яку обирають сучасні розробники для створення гнучких і ефективних додатків. Ви коли-небудь стикалися із ситуацією, коли доводилося виконувати кілька запитів до сервера, щоб отримати всі потрібні дані? GraphQL пропонує елегантне рішення цієї проблеми та дозволяє клієнту точно визначити, які дані потрібні в одному запиті. Завдяки цьому GraphQL значно спрощує розробку клієнтських додатків і робить їх більш ефективними. GraphQL був створений у 2012 році компанією Facebook для оптимізації роботи з даними у масштабних проєктах. Відкритий вихідний код у 2015 році зробив його популярним серед розробників, адже він вирішує багато проблем, характерних для REST. Сьогодні разом із Сергієм Гіденко, Senior Software Engineer в Osavul, ми розберемо, чому GraphQL стає все популярнішим і чим він відрізняється від REST API. 📄 Що таке GraphQL? 📄 Як працює GraphQL? 📄 Переваги і особливості GraphQL 📄 GraphQL vs REST: Порівняння 📄 Основні компоненти GraphQL 📄 Як почати працювати з GraphQL 📄 Використання GraphQL на практиці: кейси Що таке GraphQL? GraphQL для початківців може здатися складним через свою новизну та потужність. Але спробуємо пояснити, чи все так складно як здається. Уявіть, що ви створюєте додаток і хочете отримати дані про користувача з сервера. Вам потрібні його ім'я, електронна пошта та список замовлень. У REST API це може потребувати кількох запитів до різних ендпоінтів. Але навіть після цього ви можете зіткнутися з двома основними проблемами: Over-fetching — отримання надлишкових даних, які вам не потрібні. Under-fetching — нестача потрібної інформації, що змушує робити додаткові запити. GraphQL усуває ці недоліки. Замість того, щоб надсилати кілька запитів до різних ендпоінтів, клієнт формує один запит, отримуючи лише ті дані, які йому дійсно потрібні. Це не лише зменшує кількість запитів, а й оптимізує використання мережі. Якщо говорити про захист GraphQL API від небезпечних запитів (наприклад, надто глибоких або важких для обробки), то тут існує кілька методик: «Серед них можна виділити обмеження глибини запиту за рівнями вкладеності, контроль складності запитів та використання пагінації. Для запобігання SQL ін'єкціям важливо дотримуватися загальноприйнятих практик, таких як екранування даних та використання ORM, які можуть перед запитами до бази даних попередньо обробляти вхідні дані», — пояснює Сергій Гіденко з Osavul. Як працює GraphQL? GraphQL — це не просто мова запитів, а комплексний підхід до взаємодії з даними, побудований навколо поняття схеми (schema). Схема — це своєрідна "карта" даних, яка визначає, які об’єкти, поля та взаємозв’язки доступні в API. Вона є основою для взаємодії між клієнтом і сервером, слугуючи інструкцією для обох сторін. Завдяки схемі клієнт знає, які дані можна запитати, а сервер — які саме дані потрібно надати у відповідь. Робота з GraphQL зводиться до трьох основних концепцій: запити (queries), мутації (mutations) та підписки (subscriptions). Запити Запити дозволяють клієнту отримувати дані з GraphQL API. На відміну від REST, де запити повертають весь ресурс, GraphQL дозволяє клієнту запитувати лише потрібні поля. Це оптимізує використання трафіку та зменшує навантаження на сервер. Мутації Мутації відповідають за зміну даних — створення, оновлення або видалення записів. Як і у випадку із запитами, мутації дозволяють отримати точну відповідь від сервера. Це значно спрощує інтеграцію, оскільки клієнт отримує лише релевантні дані. Підписки Підписки дозволяють отримувати актуалізовані дані в реальному часі. Це незамінна функція для додатків, що потребують постійного оновлення, наприклад, чатів чи дашбордів. Як зазначає Сергій: «Велика кодова база потребує належної архітектури проєкту незалежно від використаного типу API. GraphQL API особливо вимагає уваги до структури проєкту, такої як організація схем, запитів та мутацій. Розподілення їх у вигляді окремих модулів з різними сутностями, розташованими у відповідних файлах, може бути ефективним методом. Цей підхід дозволяє логічно організувати проєкт і допомагає інженерам швидше знаходити необхідні компоненти API». Ефективність сервера — ще один важливий аспект. За словами Сергія, важливо належним чином організувати взаємодію з базою даних, щоб уникнути зайвих витрат ресурсів. Для цього є кілька стратегій: Кешування: для рідко змінюваних даних використовуйте кешування на серверному або клієнтському рівнях. Дата-лоадери: щоб уникнути проблеми N+1, Сергій рекомендує використовувати дата-лоадери. Вони агрегують вкладені дані та виконують один запит замість багатьох. Відкладені поля: у певних сценаріях варто використовувати поля, які поступово завантажують більш повільні дані, не блокуючи основну відповідь. Ці підходи дозволяють досягти балансу між швидкістю відповіді сервера та ефективністю використання ресурсів. Переваги і особливості GraphQL GraphQL обирають все більше розробників завдяки його численним перевагам: Отримання лише потрібних даних: клієнти можуть запитувати тільки ті поля, які їм потрібні. Менша кількість запитів: GraphQL дозволяє об’єднувати кілька запитів у один, що значно спрощує взаємодію з API. Економія трафіку: завдяки тому, що сервер повертає лише запитувані дані, використання мережевого трафіку оптимізується. Гнучкість у розробці: клієнт отримує більше контролю над тим, які саме дані і як вони мають бути представлені. Типізація даних: використання строго типізованих схем зменшує ймовірність помилок і робить API більш передбачуваним. Попри переваги GraphQL, у нього є свої особливості, які можуть стати викликами для розробників. Вирішенням цієї проблеми є використання сучасних бібліотек для розмежування доступу, таких як GraphQL Shield або кастомних middleware. Проте це може потребувати більше часу та ресурсів на налаштування порівняно з REST API. Ще одне обмеження, на яке звертає увагу Сергій, — відсутність стандартних HTTP статус-кодів у GraphQL. Оскільки вся відповідь надсилається через один ендпоінт, розробникам потрібно створювати власну систему обробки помилок. «Це вимагає додаткових зусиль, але дозволяє створити більш контрольовану і гнучку систему управління помилками», — додає він. На питання, чи є специфічні інструменти для моніторингу продуктивності GraphQL на рівні бекенду, Сергій рекомендує використовувати систему моніторингу, яка застосовується у компанії: «Незалежно від системи моніторингу, налаштування збору метрик з GraphQL ендпоінту буде однаково простим. Щодо спеціалізованих систем для GraphQL, рекомендую розглянути використання Apollo Server Studio. Цей інструмент є одним із найпопулярніших і забезпечує вбудовану підтримку Apollo Studio, а також можливість аналізу запитів та виявлення помилок». GraphQL vs REST: Порівняння Розглянемо основні відмінності між GraphQL та REST API: GraphQL найкраще підходить для складних та динамічних проєктів, де дані мають багато взаємозв’язків, потрібна гнучкість та мінімізація трафіку — наприклад, у мобільних додатках. Для простіших або легасі-проєктів із фіксованою структурою даних, де важливі простота розробки й підтримки, оптимальним вибором залишається REST. Основні компоненти GraphQL GraphQL API складається з декількох ключових компонентів, які працюють разом, щоб забезпечити гнучкий і ефективний доступ до даних. Розглянемо їх детальніше. Схема Схема є центральним елементом GraphQL API. Вона визначає, як виглядають дані, описуючи всі доступні типи об’єктів, їхні поля та взаємозв’язки. Завдяки їй клієнти можуть створювати передбачувані запити, точно знаючи, які дані доступні. Наприклад, GraphQL схема дозволяє чітко описати, що у користувача є ім'я, email та список замовлень. Це гарантує, що клієнт отримає лише ті дані, які були визначені схемою. Резолвери Резолвери — це функції, які безпосередньо відповідають за отримання даних для кожного поля, визначеного у схемі. Вони обробляють запити та мутації, перетворюючи запити клієнта на відповідні виклики до бази даних або зовнішніх сервісів. «У GraphQL часто виникає проблема зайвих запитів до бази даних, коли один запит може спричинити каскадне виконання додаткових запитів» — попереджає Сергій. І, щоб уникнути цього, він рекомендує наступне: Організовувати резолвери за типами, щоб кожен резолвер відповідав лише за свій тип даних. Використовувати дата-лоадери (data loaders), які дозволяють групувати запити та виконувати їх оптимально, уникаючи проблеми N+1 запитів. Це забезпечує не лише ефективність, а й мінімізує навантаження на базу даних. Типи даних Типи даних GraphQL визначають структуру даних і дозволяють забезпечити передбачуваність API. Вони можуть бути примітивними (наприклад, рядок чи число) або складними (об’єкти, списки тощо). На думку Сергія, чітка типізація даних є однією з найсильніших сторін GraphQL. «Надзвичайно важливо визначати типи полів та їх обов'язковість, оскільки це не лише спрощує взаємодію з API, але й дозволяє автоматизувати створення клієнтської частини», — підкреслює він. Крім цього, Сергій пропонує такі підходи: Власні скалярні типи : їх можна використовувати для додаткової валідації та серіалізації даних, наприклад, для обробки дати чи email. Input-типи для мутацій : замість передачі багатьох параметрів у запиті доцільно використовувати input-типи, що спрощує код і зменшує ймовірність помилок. Перелічувані типи (Enums) : вони підходять для полів із заздалегідь визначеним набором значень, що значно підвищує зручність роботи з API. Як почати працювати з GraphQL Щоби почати роботу з GraphQL, можна використовувати бібліотеки, такі як Apollo Server або GraphQL.js. Ось приклад налаштування сервера з використанням Apollo Server: Встановлюємо Apollo Server: const { ApolloServer, gql } = require('apollo-server'); Оголошуємо схему GraphQL: const typeDefs = gql` type Query { hello: String } `; Створюємо резолвери для обробки запитів: const resolvers = { Query: { hello: () => 'Привіт, GraphQL!', }, }; Налаштовуємо сервер: const server = new ApolloServer({ typeDefs, resolvers }); server.listen().then(({ url }) => { console.log(`🚀 Сервер працює за адресою ${url}`); }); Цей код налаштовує простий сервер, який обробляє запит і повертає рядок «Привіт, GraphQL!» при запиті до поля hello. Запити у GraphQL дуже гнучкі та дозволяють запитувати лише потрібні дані. Наприклад, щоб отримати ім'я та електронну адресу користувача з ID 1, запит буде виглядати так: query { user(id: "1") { name email } } Цей запит поверне тільки ці два поля, що дозволяє мінімізувати обсяг даних у порівнянні з REST, де часто повертається весь об'єкт з зайвими полями. Використання GraphQL на практиці: кейси GraphQL знайшов широке застосування серед провідних технологічних компаній завдяки своїй гнучкості та ефективності. Розглянемо кілька реальних прикладів, які ілюструють його переваги у практичному використанні. Як компанія-розробник GraphQL, Meta активно використовує цю технологію у своїх мобільних додатках. Завдяки GraphQL клієнти Meta можуть отримувати лише ті дані, які їм потрібні. Це дозволяє знизити трафік і підвищити продуктивність додатків, забезпечуючи швидку та плавну взаємодію. Компанія обрала GraphQL для побудови свого API, забезпечуючи розробникам простий і гнучкий доступ до даних, таких як репозиторії, issues і користувачі. Замість багатьох різних ендпоінтів у REST API, GitHub API на GraphQL дозволяє об'єднувати кілька запитів в один. І це значно спрощує роботу з їхньою платформою. У випадку Shopify, провідної платформи для створення інтернет-магазинів, GraphQL допомагає API підтримувати широкий спектр запитів. Наприклад, розробники можуть отримати дані про продукти, замовлення або покупців у тому форматі, який найкраще підходить для їхнього застосунку. Усі ці приклади нам говорять про те, що GraphQL універсальним рішенням для багатьох типів проєктів — від соціальних мереж до платформ електронної комерції. «Але, — попереджає Сергій, — на мою думку, однією з найпоширеніших проблем інтеграції GraphQL API з API іншого типу, базами даних та іншими технологіями є відсутність підтримки декларативного отримання даних цими технологіями. Для вирішення цього, часто необхідно використовувати сторонні бібліотеки для роботи з базами даних або вносити зміни до зовнішніх APІ». GraphQL пропонує новий підхід до управління даними, що надає гнучкість, ефективність і контроль над запитами. «В порівнянні з REST, GraphQL дозволяє більш точно визначати, які саме дані потрібні, і запитувати їх без зайвого навантаження на сервер», — зазначає Сергій. — Його переваги стають особливо помітними в складних додатках, де оптимізація трафіку і точність запитів є критичними. Він також є вигідним рішенням у довгостроковій перспективі, особливо для проєктів з високими вимогами до масштабування та гнучкості». Як бачимо, сьогодні GraphQL активно використовується у багатьох проєктах, і його популярність продовжує зростати, що робить його вигідним вибором для сучасних команд розробки. Зважаючи на свою 8-річну історію, GraphQL вже змінив підхід до побудови API, і, за словами Сергія, "ці технології будуть продовжувати змінювати спосіб розробки API в майбутньому". Одним із важливих кроків у розвитку GraphQL є GraphQL Federation, яка дозволяє об'єднувати кілька сервісів в один запит. Це робить інтеграцію клієнтської частини з бекендом значно простішою і більш гнучкою. «Однак, тим бекенд-розробникам, які тільки починають впроваджувати GraphQL, я б рекомендував утриматися від поспіху при впровадженні цієї технології, оскільки вона складніша за звичайний REST API. У випадку pet-проекту або початкового стартапу варто пам'ятати, що використання GraphQL може сповільнити розробку та негативно позначитися на результативності. Однак, за наявності чіткого бачення проєкту, розуміння моделі даних, масштабування та дедлайнів, використання GraphQL може бути вигідним на перспективу. Також, я б рекомендував приділяти особливу увагу резолверам, дата-лоадерам та кешуванню», — додає Сергій.
- ШІ-асистент від TikTok, новий Android та інші новини тижня, які вам треба знати
ByteDance запустила ШІ-редактор коду на основі технологій Microsoft ByteDance, власник TikTok, представила новий штучний інтелектуальний редактор коду Trae. Це сталося після того, як адміністрація Дональда Трампа відклала вимогу до компанії продати TikTok. Trae, побудований на основі Microsoft Visual Studio Code, дозволяє програмістам спілкуватися з ШІ-асистентом під час роботи, генерувати фрагменти коду чи створювати цілі проєкти за допомогою текстових запитів. Інструмент використовує GPT-4o від OpenAI або Claude-3.5-Sonnet від Anthropic. Зараз усі AI-функції доступні безкоштовно, а інтерфейс підтримує англійську та китайську мови. Платформа запущена для macOS, а версія для Windows знаходиться у розробці. Trae створено через модифікацію популярного відкритого редактора Visual Studio Code. Запуск Trae став відповіддю на конкурентів, таких як Alibaba, яка нещодавно презентувала Tongyi Lingma — інструмент, здатний створювати програми «за хвилини». YouTube Premium запускає нові експериментальні функції для тестування YouTube Premium надає своїм користувачам можливість тестувати одразу декілька експериментальних функцій, а також пропонує знижку на підписку при поєднанні з іншими сервісами Google. Серед новинок — підвищення якості звуку до 256 кбіт/с у відео та можливість для користувачів iOS переглядати YouTube Shorts у режимі «картинка-в-картинці». Також з’явилася функція автоматичного завантаження рекомендованих Shorts для перегляду офлайн. Крім того, ШІ-функція, яка дозволяє швидко переходити до найбільш переглянутих частин відео, тепер доступна у веббраузерах. Раніше вона працювала лише на мобільних пристроях. Незабаром YouTube планує розширити опції відтворення відео на мобільних пристроях, включно зі швидкістю до 4х. Однак конкретних дат запуску цього оновлення поки що не оголошено. Також користувачі можуть зекономити, придбавши YouTube Premium у комплекті з хмарним сховищем Google One. Знижка в $2 на підписку YouTube Premium діє для тарифів Google One Premium, починаючи від 2 ТБ ($9.99/місяць). Це повертає ціну підписки до рівня 2023 року. Android 16: Перший бета-реліз вже доступний Google випустила першу бету Android 16 для пристроїв Pixel. Серед головних новинок – адаптивність додатків, оновлення в реальному часі та покращення камер і медіа. Тепер додатки автоматично адаптуються до екранів шириною від 600dp, навіть якщо раніше вони обмежували розмір чи орієнтацію. Це поліпшить роботу на планшетах і складаних смартфонах. Оновлення в реальному часі (Live Updates) дозволяють відстежувати важливі процеси, як-от доставки чи поїздки, із візуалізацією прогресу. Також додано підтримку Advanced Professional Video (APV) для створення відео професійної якості та API для автоматичного визначення нічного режиму камер. Вертикальний текст тепер підтримується для мов, як-от японська. Окрім цього, покращено елементи доступності, як, наприклад, визначення обов’язкових полів у формах. Бету можна встановити через програму Android Beta або протестувати в Android Studio. Трамп підписав план дій з розвитку ШІ та скасував ініціативи Байдена Президент США Дональд Трамп підписав указ, що ставить за мету зробити США світовим лідером у сфері штучного інтелекту, повідомляє Reuters. Документ передбачає розробку протягом 180 днів плану дій, який забезпечить глобальну перевагу США у сфері AI, сприятиме економічній конкурентоспроможності та національній безпеці. Трамп також доручив своїм радникам ліквідувати політики, запроваджені його попередником Джо Байденом. У понеділок він скасував указ Байдена 2023 року, який вимагав від розробників небезпечних AI-систем проводити тестування безпеки та надавати результати уряду США. Байденовий указ спрямовувався на зменшення ризиків для споживачів, працівників і національної безпеки, зокрема через механізми Закону про оборонне виробництво. Новий підхід Трампа акцентує на зростанні AI-технологій, усуваючи попередні регуляції задля швидшого розвитку цієї галузі у США. Українсько-американський стартап отримав інвестиції на розвиток квантових технологій DIGITAL, Канадський кластер інновацій у сфері цифрових технологій, оголосив про співінвестицію в розмірі $1,6 млн у проєкт Compilation Open Design (CODE). Ця ініціатива з бюджетом $4,1 млн спрямована на демократизацію доступу до квантових технологій через відкритий код. До співпраці долучилися Open Quantum Design (OQD), некомерційна організація, що працює над створенням першого відкритого квантового комп’ютера, Xanadu, провідна компанія у сфері квантового апаратного та програмного забезпечення, а також стартап українсько-американський стартап Haiqu, який розвиває сучасні квантові обчислення. Проєкт CODE передбачає розробку компілятора Catalyst, який стане містком між класичними та квантовими обчисленнями. Catalyst дозволить запускати гібридні програми на квантовому обладнанні, прискорюючи дослідження та практичне використання технології. «Відкритий код сприяє інноваціям. Співпраця з партнерами Xanadu і Haiqu дозволить швидше масштабувати квантові технології», — зазначив CEO OQD Грег Дік. CODE допоможе розвивати квантову інфраструктуру Канади, підтримувати розвиток кадрів та відкривати нові можливості у галузі.