Статьи с тегом "#node.js"

Закреплённые статьи

Осуждение чужой веры и обвинения в «поклонении сатане» - Слепая начитанность против истинной любви

Andrew

«Кадровая политика Бруклина: как анкеты превращаются в Святой Дух»

Andrew

Почему земной рай Свидетелей Иеговы противоречит Новому Завету

Andrew

«По дерзости своей»: библейский вердикт пророчествам и реформам Свидетелей Иеговы

Andrew

Тайна Тетраграмматона. Как Свидетели Иеговы манипулируют рукописями

Andrew

Повеления от Бога делать священные изображения собственными руками

Andrew

«Дело Дугласа Уолша» - Суд в Эдинбурге

Andrew

Как именно из четырех согласных букв Й-Х-В-Х и гласных от слова «Господь» случайно получилось слово Иегова ?

Andrew

Провальные заявления Свидетелей Иеговых - не владеют истиной.

Andrew

Главные особенности «Перевода нового мира» и какое имя Бога יהוה (ЙХВХ/YHWH)?

Andrew

Арианство - крупнейшее раннее течение в христианстве

Andrew
✅ Опубликовано: 3
📌 Показаны только опубликованные статьи.

Фильтры статей

node.js
  • Все теги
  • ai
  • algorithms
  • api
  • ascii
  • backend
  • bite
  • bubblesort
  • burnout
  • business
  • caching
  • cdn
  • ChatGPT
  • computer-science
  • conversion
  • csrf
  • css
  • datastructures
  • developer-life
  • digital
  • es6
  • eslint
  • express.js
  • flexbox
  • frontend
  • future
  • git
  • github
  • grid
  • growth
  • hono
  • html
  • http
  • iehova
  • Instagram
  • it
  • JavaScript
  • js
  • js nestjs
  • llm
  • losper
  • marketing
  • mobile-first
  • nad plus
  • next
  • next.js
  • nmn
  • node.js
  • Node.js
  • olx
  • OpenAI
  • philosophy
  • PHP
  • Python
  • React
  • reflections
  • rest
  • seo
  • sql-инъекции
  • tag1
  • tag3
  • teg1
  • teg2
  • Telegram
  • thoughts
  • TikTok
  • TypeScript
  • ux
  • Vue.js
  • xss
  • адаптивный-дизайн
  • адонай
  • арианство
  • архитектура
  • бады
  • базы-данных
  • беженцы
  • безопасность
  • безопасность
  • береза-картузская
  • библия
  • бизнес
  • бинарные эмодзи
  • блуд
  • бог
  • веб-сервисы
  • вера
  • верстка
  • ветхий завет
  • вефиль
  • волынь
  • воскрешение
  • гауди
  • гибриды
  • гносеомахия
  • господь
  • декалог
  • дело дугласа уолша
  • дизайн
  • догмат
  • дома бога
  • дух святой
  • ес
  • жизнь
  • защита
  • защита прав
  • здоровье
  • идолопоклонение
  • иегова
  • иерархия
  • ии
  • иисус
  • иисус христос
  • икона
  • иконопоклонение
  • испания
  • история
  • й-х-в-х
  • кадровая политика
  • книга судей
  • Контент-маркетинг
  • контроль сознания
  • контроль-версий
  • концлагерь
  • крещение
  • ксенофобия
  • лжепророчество
  • лжерелигия
  • машинное обучение
  • Машинное обучение
  • миграция
  • мышление
  • нейросети
  • Нейросети
  • новый завет
  • новый мир
  • новый свет
  • образ
  • оптимизация
  • пионеры
  • польская пропаганда
  • польша
  • православие
  • преображение
  • программирование
  • программирование
  • производительность
  • промывание мозгов
  • пропаганда
  • пытки украинцев
  • работа
  • разработка
  • растения
  • рациональное познание
  • религия
  • свидетели иегова
  • свидетели иеговы
  • святые
  • секта
  • септуагинта
  • си
  • скорость
  • служение
  • стандарты
  • стивен хассен
  • сторожевая башня
  • судный день
  • тетраграмматон
  • украина
  • фуллерен
  • храм
  • христианство
  • цитрусовые
  • эмодзи
  • яхве
Заголовок + текст Только заголовки
Все авторы
  • Все авторы
  • Andrew
  • AndrewPro
  • Digital
Структура для разных частей стека & Фундаментальные принципы организации

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

83 0 0.0 0
1
Категории: Технологии IT и программирование Языки программирования Веб-технологии

🧱 Фундаментальные принципы организации

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

  • Разделение ответственности (Separation of Concerns): Код разбивается на слои с четкими задачами. Например, слой представления (UI) не должен знать, как работает слой доступа к данным (DB). Это делает систему гибкой и тестируемой.

  • Feature-First (Предметно-ориентированная) vs. Type-First (Тип-ориентированная) структура: Вместо группировки файлов по их технической роли (components/, hooks/, utils/), feature-first подход группирует все файлы, относящиеся к одной бизнес-функции (например, profile/, checkout/), в одном месте. Это значительно упрощает навигацию и поддержку в больших проектах.

  • Масштабируемость (Scalability): Структура должна легко позволять добавлять новые функции, не ломая старые, и быть понятной для новых членов команды.

 

📁 Структура для разных частей стека

1. Backend: Express.js, Hono, Fastify

Для серверной части (API) хорошо зарекомендовала себя многослойная архитектура. Вот как она выглядит на практике.

Общая идея (Layered Architecture):

text
src/
├── config/           # Конфигурации (env, БД, логирование)
├── modules/          # Фичи/модули (feature-first подход)
│   └── users/        # Пример модуля "Пользователи"
│       ├── controllers/   # Обработка HTTP запросов
│       ├── services/      # Бизнес-логика
│       ├── repositories/  # Работа с БД
│       ├── schemas/       # Валидация (Zod, TypeBox)
│       ├── types/         # TypeScript типы для модуля
│       └── index.ts       # Точка входа модуля
├── shared/           # Общие утилиты, middleware, ошибки
│   ├── middleware/
│   ├── errors/
│   └── utils/
├── app.ts            # Инициализация приложения (роуты, middleware)
└── server.ts         # Запуск сервера
  • Express.js: Классический пример — server/ с src/, где лежат resolvers/, models/, prisma/. В более продвинутых шаблонах используют controllers/, services/, routes/.

  • Hono: Так как Hono не навязывает структуру, в сообществе предлагают гибкие подходы. Можно использовать feature-first структуру с папкой features/, где каждый модуль содержит свои api/ (эндпоинты), services/ (бизнес-логику), repositories/ (доступ к данным) и validation/. Общие части выносятся в core/ и shared/.

  • Fastify: Рекомендуется структура с routes/ (группировка по ресурсам), plugins/ (для регистрации функциональности), services/ и repositories/.

2. Frontend: React / Next.js

Здесь ключевой выбор — между App Router (рекомендуемый) и Pages Router.

Структура для Next.js (App Router):

text
my-nextjs-app/
├── app/                    # Маршруты и страницы (App Router)
│   ├── (auth)/             # Группа маршрутов для аутентификации
│   ├── (dashboard)/        # Группа для защищенных страниц
│   ├── api/                # API Routes (serverless функции)
│   ├── layout.tsx          # Корневой layout
│   └── page.tsx            # Домашняя страница
├── src/                    # Исходный код приложения (опционально)
│   ├── components/         # Переиспользуемые UI компоненты
│   │   ├── ui/             # Базовые (Button, Input)
│   │   └── layout/         # Структурные (Header, Sidebar)
│   ├── features/           # Фичи (самодостаточные модули)
│   │   └── profile/        # Пример фичи "Профиль"
│   │       ├── components/
│   │       ├── hooks/
│   │       ├── services/   # API вызовы для фичи
│   │       └── types/
│   ├── lib/                # Утилиты, конфигурация клиентов (API, React Query)
│   ├── hooks/              # Кастомные React хуки (глобальные)
│   ├── types/              # Общие TypeScript типы
│   └── context/            # React Context провайдеры
├── public/                 # Статические файлы
└── package.json

Ключевые моменты:

  • Используйте app/ для новых проектов.

  • Для изоляции кода применяйте Route Groups (groupName).

  • Код, относящийся к одной функции, группируйте в features/.

  • Общие компоненты храните в components/.

  • Серверную логику (работа с БД, сервисы) выносите в папку server/ или lib/server/.

 

🏗️ Архитектура на уровне решения (Monorepo)

Если вы разрабатываете фронтенд и бэкенд в одном репозитории, используйте монорепозиторий (monorepo). Это стандарт для полного цикла разработки.

Пример структуры монорепозитория:

text
my-monorepo/
├── packages/ или apps/
│   ├── frontend/          # Next.js приложение
│   │   ├── app/
│   │   ├── components/
│   │   └── package.json
│   └── backend/           # Express / Hono / Fastify приложение
│       ├── src/
│       │   ├── modules/
│       │   ├── shared/
│       │   └── server.ts
│       └── package.json
├── docker-compose.yml
├── package.json           # Корневой package.json с workspaces
└── turbo.json или pnpm-workspace.yaml

Инструменты для управления: pnpm workspaces, npm workspaces, или Turborepo для более сложных сценариев.

 

🚀 Специфика для Bun

Bun — это не только рантайм, но и пакетный менеджер, и сборщик.

  • Структура: Стандартный проект на Bun выглядит так:

    text
    my-bun-app/
    ├── src/           # Исходный код
    ├── index.ts       # Точка входа
    ├── package.json
    └── tsconfig.json
  • Монорепозиторий: Bun отлично поддерживает workspaces в package.json для создания монорепозиториев.

 

📈 От простого к сложному: Эволюция структуры

Важно понимать, что структура растет вместе с проектом:

  1. Начальный уровень (Small Project): app/, components/, lib/, types/. Просто и быстро.

  2. Средний уровень (Medium Project): Добавляются features/ для логической группировки, server/ для серверной логики, ui/ для общих компонентов.

  3. Продвинутый уровень (Enterprise): Внедряются Domain-Driven Design (DDD) с папкой entities/, четкое разделение на core/, modules/, shared/ и использование принципов Чистой архитектуры.

💎 Итог: Стратегия выбора

  1. Начните с малого: Для нового проекта используйте простую, но логичную структуру (например, app/ + components/ + lib/ для Next.js).

  2. Рефакторинг по мере роста: Как только проект начинает разрастаться, внедряйте feature-first подход, группируя код по функциям в папке features/.

  3. Разделяйте backend и frontend: Даже в монорепозитории четко разделяйте код клиента и сервера по разным пакетам.

  4. Следуйте соглашениям фреймворка: Используйте App Router в Next.js, роутинг по ресурсам в Fastify, и feature-based структуру в Hono.

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

Вам понравилась статья?
Read more
Cовременная веб-разработка и ряд отраслевых стандартов и лучших практик!

Cовременная веб-разработка и ряд отраслевых стандартов и лучших практик!

58 0 0.0 0
1
Категории: Технологии IT и программирование Языки программирования Веб-технологии

В современной веб-разработке с использованием TypeScript, React, Next.js и Node.js сложился ряд отраслевых стандартов и лучших практик. Эти практики помогают создавать код, который легко поддерживать, масштабировать и развивать в команде.

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

📝 Единые стандарты кода и TypeScript

  • Стиль кода: Для обеспечения единообразия в команде принято использовать один из популярных стилевых гайдов, например Airbnb JavaScript Style Guide или Google Style Guide. Их легко внедрить с помощью соответствующих конфигураций для ESLint (eslint-config-airbnb-typescript, eslint-config-google).

  • Строгий TypeScript: В файле tsconfig.json обязательно нужно устанавливать "strict": true. Это включает все строгие проверки типов, что является фундаментом надежности кода.

  • Инструменты линтинга и форматирования: Используйте ESLint для поиска проблем в коде и Prettier для автоматического форматирования. Это обязательный минимум для любого современного проекта.

⚛️ Стандарты для React и Next.js

  • Компоненты: Предпочтение отдается функциональным компонентам с четко описанными TypeScript-интерфейсами для props. По возможности используйте серверные компоненты (Server Components) по умолчанию.

  • Производительность: Для оптимизации используйте встроенные хуки: useCallback для мемоизации функций, useMemo для дорогих вычислений и React.memo для предотвращения лишних перерисовок компонентов.

  • Маршрутизация: В новых проектах на Next.js используйте App Router, так как это современный и рекомендуемый подход.

⚙️ Стандарты для серверных фреймворков (Express.js, Hono, Fastify)

Выбор фреймворка зависит от контекста задачи:

 
 
Фреймворк Лучшее применение
Hono Edge-окружения и serverless (например, Cloudflare Workers). Отличается нулевыми зависимостями и минимальным временем холодного старта.
Fastify Высокопроизводительные API. По скорости работы быстрее Express в 2-3 раза, имеет встроенную валидацию схем.
Express.js Легаси-проекты, стабильность и максимальная экосистема. Самый зрелый и распространенный фреймворк с огромным количеством middleware.

Общие для всех бэкенд-фреймворков практики:

  • Структура проекта (Layered Architecture): Следуйте четкому разделению ответственности, выделяя слои:

    • routes/ — определение эндпоинтов.

    • controllers/ — обработка HTTP-запросов и ответов.

    • services/ — бизнес-логика (не должна зависеть от HTTP).

    • repositories/ или models/ — работа с данными и базой данных.

    • middleware/ — кастомные middleware (аутентификация, валидация, логирование).

  • Валидация: Всегда проверяйте входные данные на границе приложения (в контроллере или middleware). Для этого отлично подходят библиотеки вроде Zod или TypeBox.

  • Обработка ошибок: Используйте централизованный обработчик ошибок и иерархию кастомных классов ошибок (например, ValidationError, NotFoundError).

🚀 Стандарты для рантаймов (Bun и Node.js)

  • Node.js: Это стандарт де-факто для серверной разработки с огромной экосистемой.

  • Bun: Позиционируется как более быстрая альтернатива. Его стоит рассматривать, если важна производительность, а встроенный бандлер и тест-раннер могут упростить тулинг.

    • Ключевая практика для Bun: Bun нативно поддерживает TypeScript, поэтому для запуска .ts файлов не нужны дополнительные инструменты вроде ts-node. Предпочтительно использовать встроенные Web API (fetch, fs, path) вместо Node.js-специфичных, где это возможно.

🏗️ Общие принципы архитектуры

  • Чистая архитектура: Стремитесь к тому, чтобы ваша бизнес-логика (сервисы) не зависела от внешних фреймворков и баз данных. Это делает код более тестируемым и гибким.

  • Single Responsibility (SRP): Каждый модуль, класс или функция должны иметь одну четкую зону ответственности.

  • DRY (Don't Repeat Yourself): Избегайте дублирования кода, выносите повторяющуюся логику в утилиты или переиспользуемые хуки/компоненты.

🛠️ Рекомендованный инструментарий

  • Линтер: eslint с плагинами для TypeScript, React и Next.js.

  • Форматтер: prettier.

  • Типы: typescript (строгий режим).

  • Валидация: zod (отлично работает с TypeScript для вывода типов).

  • Управление состояниями (React): Redux Toolkit или Zustand (более легковесный).

В целом, ключ к успеху — это строгая типизация, четкая структура проекта и автоматизированные инструменты для поддержания качества кода. Выбор между конкретными фреймворками (Express vs Fastify vs Hono) и рантаймами (Node vs Bun) зависит от конкретных требований вашего проекта к производительности, среде запуска и опыту команды.

Вам понравилась статья?
Read more
Три уровня современной веб-разработки и бэкенд-разработки

Три уровня современной веб-разработки и бэкенд-разработки

69 0 0.0 0
1
Категории: IT и программирование Языки программирования Веб-технологии
Вся эта путаница легко раскладывается по трём уровням (этажам) бэкенд-разработки. Представьте, что мы строим дом.

Этаж 1: Фундамент (Рантаймы — Где код выполняется)

Node.js, Bun, Deno
Браузер (например, Chrome) умеет запускать JavaScript, чтобы работали сайты. Но на компьютере или сервере браузера нет. Рантайм — это специальная программа, которую вы устанавливаете на компьютер, чтобы запускать JavaScript-код без браузера (напрямую на железе).
 
  • Node.js — это «дедушка» и абсолютный стандарт. Самый старый, супер-стабильный, на нем написан бэкенд 90% компаний в мире.
  • Deno — попытка создателя Node.js исправить свои старые ошибки. Он безопаснее и сразу поддерживает TypeScript, но большой популярности на рынке не сыскал.
  • Bun — самый новый и «модный» рантайт (хит последних лет). Он делает всё то же самое, что Node.js, но работает в разы быстрее, сразу понимает TypeScript и не требует сложной настройки.
Аналогия: Это марка операционной системы вашего сервера (как Windows, Linux или macOS). Вы выбираете один фундамент, на котором будет крутиться проект. В 2026 году чаще всего выбирают проверенный Node.js или ультрабыстрый Bun.

Этаж 2: Стены (Классические Бэкенд-фреймворки)

Express.js, Fastify, Hono, NestJS
Вы выбрали рантайт (например, Node.js). Теперь вам нужно написать сервер, который принимает запросы. Писать его на «голом» Node.js — это долго и мучительно. Поэтому поверх рантайма ставят бэкенд-фреймворк. Он дает удобные инструменты для создания маршрутов (типа создать пользователя по адресу /регистрация).
 
  • Express.js — старый, простой, как топор. На нем написаны миллионы уроков в интернете. Отличный, чтобы поучиться, но устаревает.
  • Fastify — современная замена Express. Работает намного быстрее и лучше дружит с TypeScript.
  • Hono — самый легкий и современный микробэкенд. Он одинаково круто работает и на Node.js, и на Bun, и в облачных сервисах. Идеален для быстрых, небольших API.
  • NestJS — это «тяжелая артиллерия». Если Express, Fastify и Hono — это свобода (пиши код как хочешь, хоть в одном файле), то NestJS — это строгая дисциплина для огромных проектов. Он заставляет раскладывать код по строгим папкам и правилам, чтобы проект не превратился в помойку через год разработки.
Аналогия: Это каркас вашего здания. Вы выбираете один бэкенд-фреймворк. Для простых вещей берете Hono/Fastify, для огромного корпоративного банка — NestJS.

Этаж 3: Крыша и Фасад (Fullstack-фреймворк)

Next.js
Все технологии выше (из Этажей 1 и 2) умеют работать только со скрытой логикой и базами данных. Они не умеют показывать пользователю красивые кнопки, картинки, шрифты и анимации. Для этого нужен фронтенд (библиотека React).
 
  • Next.js — это полноценная экосистема (Fullstack) на базе React. Он отвечает за то, чтобы пользователь увидел красивый сайт, чтобы этот сайт мгновенно открывался и правильно считывался поисковиками (Яндекс, Google) для SEO.
  • При этом у Next.js есть «мини-бэкенд» внутри. Для несложного сайта Next.js может сам сходить в базу данных и забрать информацию, поэтому Этаж 2 (типа NestJS или Express) ему часто просто не нужен.

🗺 Карта «Что с чем дружит» (Как собрать свой первый конструктор)

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

Сценарий А: Простой современный сайт (интернет-магазин, блог)

Вам не нужно плодить кучу серверов. Вы берете один инструмент, который делает всё:
 
  • Next.js (он и за внешний вид отвечает, и простенький бэкенд внутри себя содержит).

Сценарий Б: Современное мощное API (например, для мобильного приложения)

Вам вообще не нужен внешний вид сайта (фронтенд), нужна чистая скорость и логика:
 
  • Фундамент: Bun (или Node.js)
  • Бэкенд-фреймворк: Hono (или Fastify)

Сценарий В: Крупный и сложный IT-продукт (онлайн-банк, огромная соцсеть)

Здесь роли жестко разделяют между командами:
 
  • За бэкенд, безопасность и базы данных отвечает: Рантайм Node.js + Фреймворк NestJS.
  • За красивый интерфейс сайта, который обращается к этому бэкенду, отвечает: Next.js.

 


 
Вам понравилась статья?
Read more