🚀 Автоматизація деплою Node.js додатків з GitLab CI/CD

В версії React Native 0.79 команда розробників значно покращила продуктивність, оновила інструменти та додала вдосконалення, що спрощують життя розробникам. Це оновлення особливо корисне для тих, хто працює з кросплатформенними додатками для iOS, Android та інших платформ, адже воно значно покращує продуктивність та оптимізує процес розробки.

Крок 1: Створення файлу .gitlab-ci.yml

Першим кроком у налаштуванні автоматизованого CI/CD pipeline для вашого Node.js проекту є створення файлу .gitlab-ci.yml у корені проєкту. Цей файл описує структуру pipeline, визначаючи етапи для тестування та розгортання.

Крок 2: Додавання змінних середовища

Необхідно створити змінну у GitLab CI/CD з іменем ENV_FILE_CONTENT та зберегти в ній вміст локального файлу … Читати далі

V-Build: Одне Рішення для Збірки та Розгортання Ваших React Проектів

Квітень 2025 — команда React Native випустила нову версію 0.79, яка приносить значні покращення продуктивності, модернізовані інструменти та вдосконалення, що роблять життя розробників простішим. Це оновлення важливе для тих, хто працює з кросплатформенними додатками для iOS, Android або інших платформ, адже воно спрощує розробку та значно покращує продуктивність додатків.

V-Build — це компактне рішення, яке об'єднує відстеження версій, побудову та розгортання на сервері для React проектів. З V-Build вам більше не потрібно проходити кілька етапів для того, щоб доставити зміни користувачам. Тепер все можна зробити за допомогою єдиної команди yarn vbuild або npm run vbuild.

V-Build автоматично створює версію … Читати далі

V-Build: Рішення для побудови та розгортання вашого React-проекту в один крок

Квітень 2025 — команда React Native випустила нову версію 0.79, яка приносить значні покращення продуктивності, модернізовані інструменти та вдосконалення, що роблять життя розробників простішим. Якщо ви працюєте з кросплатформенними додатками для iOS, Android або інших платформ, React Native 0.79 привносить важливі оновлення, що спрощують розробку і покращують продуктивність додатків. Давайте детальніше розглянемо нововведення та чому вони важливі.

Metro отримує суттєвий приріст швидкості

Одним з головних покращень у React Native 0.79 є оновлення до Metro 0.82, JavaScript бандлера для React Native проектів. Metro тепер використовує відкладене хешування, що дозволяє зменшити час холодного старту до 3x, особливо для великих … Читати далі

React Native 0.79: Швидше, легше і готове до майбутнього 🚀

Квітень 2025 — команда React Native випустила версію 0.79, і це оновлення привнесло багато корисних покращень. Продуктивність зросла, інструменти були модернізовані, а розробникам стало легше працювати завдяки вдосконаленням. Якщо ви створюєте кросплатформенні додатки для iOS, Android чи інших платформ, React Native 0.79 пропонує цілу низку оновлень, які спрощують розробку і покращують продуктивність додатків.

Одним із ключових покращень є оновлення Metro 0.82 — бандлера JavaScript для React Native. Тепер він використовує відкладене хешування, що значно скорочує час холодного запуску, особливо для великих проектів і монорепозиторіїв. Це змінило щоденний робочий процес для багатьох розробників, зменшуючи час на запуск.

Також з’явилася стабільна … Читати далі

Hoisting в JavaScript — те, що я хотів би дізнатися раніше

pic

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

У цій статті я намагатимусь пояснити, що таке hoisting, і сподіваюся, що це допоможе новачкам, як я колись.

Що таке hoisting?

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

Це може здатися складним, але давайте розглянемо на прикладі.

Приклад зі змінною

console.log(name); // … Читати далі

Розуміння утиліти Extract у TypeScript

TypeScript — потужний інструмент, який допомагає забезпечити типобезпеку в JavaScript-додатках. Однією з корисних, але менш відомих функцій є утиліта типу Extract. Вона дозволяє створювати гнучкі та типобезпечні функції. Розглянемо, як її застосовувати, за допомогою простого прикладу.

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

type TaskType = "PRINTTEXT" | "CALCULATESUM" | "FORMAT_DATE";

interface PrintTextProps {
content: string;
}

interface CalculateSumProps {
numbers: number[];
}

interface FormatDateProps {
date: Date;
}

type TaskPropsUnion = { type: "PRINTTEXT"; props: PrintTextProps }
| { type: "CALCULATE
SUM"; props: CalculateSumProps … Читати далі

## AJV проти class-validator проти Joi проти Yup проти Zod: Порівняння для Runtime валідації

Ми з колегою працювали над проектом бізнес-аналітики, аналізуючи три роки даних на рівні брендів, використовуючи Power BI, Python, SQL і AI-візуалізації. Мета полягала в розумінні ефективності продажів, трендів онлайн-замовлень і рентабельності, а також перетворення статичних даних на інтерактивні дашборди.

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

📦 Використовувані інструменти

  • Power BI
  • DAX
  • SQL (для зберігання та очищення даних)
  • Python (Pandas + Seaborn для початкового аналізу)
  • AI-візуалізації в Power BI:
    • Q&A Візуалізація
    • Декомпозиційне дерево
    • Ключові впливи
    • Розумні наративи

🔹 Крок

Читати далі

🚀 Створення бізнес-аналітичного дашборду з підтримкою ШІ в Power BI: Повний посібник

Ми з колегою працювали над проектом з бізнес-аналітики, аналізуючи дані за три роки по брендах, використовуючи інструменти Power BI, Python, SQL та AI-візуалізацію. Наша мета полягала в аналізі ефективності продажів, тенденцій онлайн-замовлень та рентабельності, а також у створенні інтерактивних дашбордів з використанням розумних, інтерактивних візуалізацій.

У цій статті я детально поясню, як створювати подібні дашборди, розглянувши крок за кроком весь процес, від обробки даних, створення візуалізацій до AI-розповідей в Power BI. 🎯

Використовувані інструменти

  • Power BI
  • DAX
  • SQL (для зберігання та очищення даних)
  • Python (Pandas + Seaborn для початкового аналізу)
  • AI-візуалізації в Power BI:
    • Q&A
Читати далі

Як симулювати ON UPDATE CURRENT_TIMESTAMP з MySQL у PostgreSQL за допомогою тригера.

pic

Якщо ви працювали з MySQL, вам, ймовірно, знайома функція ON UPDATE CURRENT_TIMESTAMP. Вона автоматично оновлює поле типу дата/час кожного разу, коли змінюється рядок у таблиці. Однак у PostgreSQL така функціональність відсутня за замовчуванням, і її необхідно реалізовувати вручну, використовуючи тригер.

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

Проблема

Розглянемо наступну таблицю:

CREATE TABLE users (
id SERIAL PRIMARY KEY,
name TEXT NOT NULL,
updated_at TIMESTAMP WITHOUT TIME ZONE DEFAULT now()
);

У MySQL можна було б просто написати:

updatedat TIMESTAMP DEFAULT CURRENTTIMESTAMP ON UPDATE CURRENT_TIMESTAMP

Це … Читати далі

Як симулювати ON UPDATE CURRENT_TIMESTAMP з MySQL у PostgreSQL за допомогою тригера

pic

Якщо ви працювали з MySQL, вам, ймовірно, знайома функція ON UPDATE CURRENT_TIMESTAMP. Вона автоматично оновлює колонку datetime кожного разу, коли рядок змінюється. У PostgreSQL такої функціональності "з коробки" немає, але це можна легко реалізувати за допомогою тригера.

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

📌 Проблема

Розглянемо таку таблицю:

CREATE TABLE users (
id SERIAL PRIMARY KEY,
name TEXT NOT NULL,
updated_at TIMESTAMP WITHOUT TIME ZONE DEFAULT now()
);

У MySQL це можна просто реалізувати так:

updatedat TIMESTAMP DEFAULT CURRENTTIMESTAMP ON UPDATE CURRENT_TIMESTAMP

Це дозволяє … Читати далі