Rails через роки: Основні зміни від версії 1 до 8

pic

Рейлс через роки: ключові зміни з версії 1 до 8

Ruby on Rails став основою веб-розробки з моменту свого створення, надаючи розробникам можливість створювати масштабовані та підтримувані веб-додатки. З розвитком Rails кожна нова версія приносила нові функціональні можливості, покращення продуктивності та посилення безпеки. Завдяки відкритому вихідному коду розробники постійно вирішували існуючі проблеми та додавали поліпшення, зберігаючи фреймворк в синхронії з новими тенденціями. Отже, давайте разом розглянемо шлях Rails як фреймворка від його початку до останніх досягнень.

pic

Зміни — єдине постійне в технологіях

Народження Rails (2004): чому був створений Rails

На початку 2000-х створення веб-додатків часто вимагало написання повторюваного коду для … Читати далі

Швидкий посібник: 15 хвилин для створення декоратора методу у Flask

Flask — популярний веб-фреймворк для Python. Flask має багато корисних функцій, серед яких підтримка декораторів методів.

pic

Декоратори методів — це дуже корисна функція в Python.

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

Flask — популярний веб-фреймворк для Python. Flask має багато корисних функцій, серед яких підтримка декораторів методів.

У цьому блозі я покажу вам, як створити декоратор методу у Flask.

https://www.youtube.com/@halovina

Крок 1: Імпортуйте модуль Flask

from flask import Flask

Крок 2: Оголосіть метод декоратора

def my_decorator(func):  
 def wrapper(*args, **kwargs):  
 print("До виклику функції")  
 result = func(*args, **kwargs)  
 print("Після виклику функції")  
 return 
Читати далі

Вступ до Flask-Mail

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

Що таке Flask-Mail?

Flask-Mail — це розширення, яке додає можливість надсилання електронних листів у вашому додатку. Воно побудоване на основі вбудованої бібліотеки Python для Simple Mail Transfer Protocol (smtplib), що дозволяє легко працювати з поштовими протоколами та налаштуваннями.

Flask-Mail підтримує такі можливості:

  • Надсилання простих текстових і HTML листів
  • Використання шаблонів електронних листів для динамічного вмісту
  • Інтеграція з
Читати далі

Метакласи Python в дії

pic

Ми створювали моделі в Django / SQLAlchemy.

Ось приклад:

class Order(models.Model):  
 user = models.ForeignKey('user.User')  
 date = models.DateField()  
 order_id = model.CharField()

Чи замислювались ви над тим, чому, незважаючи на те, що ми встановили поле як екземпляр DateField(), коли ви робите:

order = Order.objects.last()  
print(order.order_id)

.. ви не отримуєте екземпляр DateField(), натомість ви отримуєте значення поля date з бази даних.

Справа в тому, що тут активно працює метаклас Python... метаклас фактично переназначив атрибути вашого класу Order, щоб вони мали кастомну поведінку; а саме, щоб повертати значення поля order_id з бази даних.

Ось погляньте на цей метаклас, який виконує цю магію: https://github.dev/django/django/blob/main/django/db/models/initЧитати далі

Прискорте роботу з Django проектами за допомогою Docker Compose!

Консистентність середовища: Забезпечує, щоб ваше застосування працювало однаково в середовищах розробки, тестування та продукції. Уникає проблеми "це працює на моєму комп'ютері".

pic

django framework

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

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

Цей процес може зайняти багато часу та спричиняти проблеми сумісності.

Тут на допомогу приходить Docker Compose, що є ідеальним рішенням для пришвидшення та спрощення розробки вашого проекту на Django.

https://www.youtube.com/@halovina

Що таке Docker та Docker Compose?

Перед тим, як ми продовжимо, давайте спочатку зрозуміємо, що таке Docker та Docker Compose.

  1. Docker: Платформа
Читати далі

Push і закриті проблеми в перший день роботи 2025 року

pic

Після того як минув тиждень (останній уікенд грудня 2024), і я зіткнувся з проблемами при інтеграції нового SSO Raniry (Keycloak v26) в додаток DDT, на перший день роботи 2025 року ця проблема нарешті була вирішена.

Виявилось, що проблема полягала в DNS. Контейнер додатку DDT не міг розв'язати домен IAM (нове SSO Raniry). Тому, коли спробували звернутись до посилання на SSO Raniry з DDT, з'являлась така помилка:

(Caused by NewConnectionError(‘: Failed to establish a new connection: [Errno -2] Name or service not known’))

Після пошуків і спроб виправити налаштування у конфігураційному файлі Django додатку DDT, з'ясувалось, що проблема не в цьому … Читати далі

Оволодіння Git: Посібник для початківців з контролю версій (Частина 1)

pic

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

Що таке Git?

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

Чому варто використовувати Git?

Читати далі

У чому різниця між require та import у Node.js?

У Node.js require та import використовуються для підключення модулів у вашому коді, але між ними є важливі відмінності щодо синтаксису, функціональності та використання:

pic

1. Синтаксис

  • require: Використовує синтаксис модулів CommonJS.
  • const fs = require('fs');
  • import: Використовує синтаксис модулів ECMAScript (ES6).
  • import fs from 'fs';

2. Модульна система

require:

  • Є частиною системи модулів CommonJS.
  • Синхронне завантаження модулів.
  • Доступно у всіх версіях Node.js за замовчуванням.
  • Модулі завантажуються та виконуються вперше, коли їх запитують, і результат кешується для подальших викликів.

import:

  • Є частиною системи модулів ES6.
  • Асинхронне завантаження модулів, що дозволяє здійснювати оптимізації, як-от tree-shaking.
  • Вимагає використання type:
Читати далі

Початок роботи з Node.js та Express.js: Ваш перший сервер

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

Пререквізити

Перед тим, як почати, переконайтесь, що на вашому комп’ютері встановлено наступне:

  • Node.js: Ви можете завантажити його з офіційного сайту: https://nodejs.org/en

  • npm (менеджер пакетів Node): Він йде в комплекті з Node.js.

Крок 1: Створення нового проекту Node.js

  1. Створіть директорію для проекту: Відкрийте термінал і створіть нову директорію для вашого проекту. Потім перейдіть у неї:
mkdir my-first-express-server  
cd 
Читати далі

Покращте продуктивність вашого React-додатку: сила правильно використаних посилань (refs)

У розробці додатків на React ефективне керування посиланнями (refs) є важливим для створення інтерактивних та чутливих компонентів. Посилання дозволяють розробникам безпосередньо отримувати доступ до елементів DOM або екземплярів компонентів, надаючи більш детальне керування взаємодією компонентів та їх поведінкою. У цій статті ми розглянемо, як використовувати useRef, forwardRef і useImperativeHandle для ефективного керування посиланнями, вирішуючи типові проблеми комунікації між батьківським і дочірнім компонентами.

Короткий опис призначення кожного:

  • useRef: useRef — це хук, який дозволяє зберігати змінні значення, що зберігаються між рендерами. Це ідеальний інструмент для прямого доступу до елементів DOM, наприклад, для фокусування на полі вводу при натисканні кнопки.
Читати далі