Статьи с тегом "#PHP"

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

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

Принципы и парадигмы (Clean Code)

Принципы и парадигмы (Clean Code)

13 0 5.0 0
4
Категории: IT и программирование Веб-технологии
🌟 Принципы и парадигмы (Clean Code)
SOLID — пять базовых принципов объектно-ориентированного программирования и проектирования (Single responsibility, Open/closed, Liskov substitution, Interface segregation, Dependency inversion).
DRY (Don't Repeat Yourself) — принцип недопущения дублирования кода.
KISS (Keep It Simple, Stupid) — принцип проектирования, при котором простота системы является главным приоритетом.
YAGNI (You Aren't Gonna Need It) — принцип, согласно которому не стоит добавлять функциональность, пока она не понадобится.
📜 Оформление и соглашения (Code Style)
PSR (PHP Standards Recommendations) — общепринятые стандарты кодирования для PHP (например, PSR-1, PSR-4 для автозагрузки).
PEP (Python Enhancement Proposals) — предложения по развитию Python. Самый известный — PEP 8, стандарт оформления кода.
Airbnb Style Guide — строгие и популярные руководства по стилю для JavaScript, React, CSS и других технологий. [1, 2]
📚 Национальные и системные стандарты
ГОСТ ЕСПД (Единая система программной документации) — комплекс государственных стандартов РФ, устанавливающий правила разработки, оформления и обращения программ.
ISO/IEC/IEEE 12207 — международный стандарт, описывающий процессы жизненного цикла программного обеспечения (ЖЦ ПО). [1]
⚙️ Процессы и методологии (DevOps)
SDLC (Software Development Life Cycle) — жизненный цикл разработки ПО (этапы от анализа требований до поддержки).
CI/CD (Continuous Integration / Continuous Delivery) — практики непрерывной интеграции и доставки кода.
TDD (Test-Driven Development) — разработка через тестирование.


💻 Стандарты для TS, React и Express
В экосистеме JavaScript/TypeScript стандарты чаще всего внедряются через конфигурации инструментов автоматической проверки (ESLint, Prettier) и архитектурные паттерны.
TypeScript (TS)
  • TSConfig Strict — официальный стандарт строгого режима компилятора ("strict": true), запрещающий неявные типы any и потенциальные ошибки с null/undefined.
  • TypeScript Style Guide (by Google / Microsoft) — внутренние стандарты ИТ-гигантов, ставшие публичными ориентирами для именования интерфейсов, типов и модулей.
React
  • Airbnb JavaScript/React Style Guide — самый популярный в мире стандарт оформления React-компонентов (правила деструктуризации, использования хуков, JSX-синтаксиса).
  • FSD (Feature-Sliced Design) — современный архитектурный стандарт проектирования фронтенд-приложений. Он делит код на слои (layers), слайсы (slices) и сегменты (segments) для высокой масштабируемости.
Express (Node.js)
  • Node.js Best Practices — крупнейший открытый стандарт (GitHub-репозиторий) по архитектуре бэкенда. Включает правила обработки ошибок, структуры папок и безопасности Express-приложений.
  • REST API Conventions — стандарт проектирования сетевых интерфейсов (правильное использование HTTP-методов, статус-кодов и структуры URL).

 
📋 Методологии управления проектами
В управлении разработкой ПО используются гибкие (Agile) и классические стандарты.
  • Scrum — фреймворк гибкой разработки, основанный на спринтах (1–4 недели), ежедневных созвонах (Daily) и регулярных поставках работающего инкремента продукта.
  • Kanban — метод визуализации работы с помощью досок (To Do, In Progress, Done) для оптимизации потока задач и ограничения незавершенного производства (WIP limits).
  • Agile — общий манифест гибкой разработки программного обеспечения, провозглашающий приоритет людей и работающего продукта над процессами и документацией.
  • Waterfall (Каскадная модель) — традиционная методология с жесткой последовательностью фаз (Анализ → Проектирование → Разработка → Тестирование → Внедрение).
  • PMBOK (Project Management Body of Knowledge) — всемирный стандарт и свод знаний по управлению проектами от института PMI.
  • PRINCE2 (Projects in Controlled Environments) — структурированный британский стандарт управления проектами, сфокусированный на продуктах и контроле стадий.

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

Правильная комбинация инструментов и набор ключевых технологий на клиентской и серверной части.

42 0 5.0 1
3
Категории: IT и программирование

🧱 Архитектура решения

Создание такой студии потребует разделения на три ключевых уровня:

  1. Клиентская часть (Frontend): Здесь пользователь будет работать с макетом в реальном времени. Этот уровень отвечает за отрисовку, перемещение, масштабирование объектов и работу с кривыми.

  2. Серверная логика (Backend - PHP/MySQL): Обрабатывает запросы от фронтенда, сохраняет данные макетов в базу данных и управляет файлами.

  3. Система конвертации: Компонент, который преобразует сохраненный макет в необходимые форматы для скачивания (SVGPNGPDFEPSCDR).

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


🎨 Клиентская часть (Frontend)

Это мозг вашего редактора. Пользователь видит и взаимодействует с макетом именно здесь.

  • Fabric.js: Это, вероятно, ваш лучший выбор в качестве основы.

    • Что это? Мощная JavaScript-библиотека для работы с элементом ``. Она предоставляет объектную модель для векторных и растровых изображений.

    • Плюсы: Идеально подходит для создания графических редакторов, поддерживает сложные объекты, кривые Безье, слои, фильтры. Создана для интерактива.

    • Как использовать: Вы передаете в браузер пользователя HTML-страницу с Fabric.js. Он создает холст, а когда пользователь завершает работу, вы сериализуете состояние холста в JSON и отправляете на сервер через обычный PHP-скрипт.

  • Альтернативы:

    • Paper.js: Более ориентирован на векторную графику и кривые. Отлично подходит для сложного рисования пером, но порог входа выше, чем у Fabric.js.

    • Three.js: Используется только если вам нужна работа с 3D-объектами или сложными 3D-эффектами. Для 2D-дизайна это избыточно.


⚙️ Серверная часть (Backend - PHP)

Здесь хранятся пользовательские данные и управляется бизнес-логика.

  • Сохранение макетов:

    • При сохранении вы получаете от фронтенда JSON-строку (например, {"objects":[{"type":"rect", ...}]}).

    • Вы можете сохранить эту строку напрямую в базу данных MySQL в поле типа TEXT или JSON. Это самый быстрый и простой способ.

    • Альтернативно, вы можете генерировать и хранить на сервере SVG файлы, но JSON удобнее для последующего редактирования.

  • Библиотеки для работы с векторной графикой:

    • Imagick (PHP Extension): Это обязательное расширение для вашего сервера. Оно является оберткой над мощнейшей библиотекой ImageMagick, которая умеет читать, конвертировать и записывать изображения в более чем 100 форматах, включая SVG, PDF, EPS и множество растровых. Оно станет основой для вашей системы конвертации.

    • Alto\Bezier: Если вам нужна чисто PHP-библиотека для сложных математических операций с кривыми (оценка, разбиение, измерение), это отличный инструмент. Он идеально подходит для экспорта данных в SVG.


🖨️ Система конвертации (SVG/PNG/PDF/EPS/CDR)

Это самый сложный, но решаемый этап. Ожидать, что PHP на 100% нативно создаст файл .cdr, не приходится, поэтому стратегия строится на конвертации через другие форматы.

  • Схема конвертацииJSON (из базы) -> SVG -> (нужный формат)

    1. Из JSON в SVG: Это ваша первая и ключевая задача. Нужно написать PHP-скрипт, который берет JSON из базы данных и превращает его в чистый XML-код SVG-файла. Это можно сделать с помощью простых манипуляций со строками или специализированной библиотеки (например, norkunas/php-svg).

    2. Из SVG в PNG: Это делается через Imagick одной-двумя строками кода.

    3. Из SVG в PDF:

      • Вариант А (Простой): Использовать Imagick. Он тоже умеет конвертировать SVG в PDF.

      • Вариант Б (Качественный): Использовать Inkscape через командную строку (exec или shell_exec). Inkscape — это профессиональный векторный редактор, и его консольная версия дает очень качественный результат. Пример: inkscape input.svg --export-filename=output.pdf.

    4. Из SVG в EPS:

      • Здесь тот же выбор: либо Imagick, либо Inkscape.

    5. Из SVG в CDR (Самое сложное):

      • Честное решение: Конвертировать SVG -> PDF (как описано выше), а затем использовать сторонний сервис или API. Формат CDR является проприетарным (собственность Corel).

      • Возможные сервисы: Посмотрите в сторону API для конвертации документов, например, от Aspose или GroupDocs. У них есть облачные сервисы, которые могут преобразовать PDF или SVG в CDR. Это будет платным, но наиболее надежным решением.

      • Альтернатива: Можно попробовать через LibreOffice в headless-режиме, который может открывать SVG и экспортировать в другие форматы. Это может сработать, но результат с CDR не гарантирован и может быть нестабильным.


📦 Сторонние API для конвертации

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

  • Aspose.Total / Aspose.PDF: Мощные коммерческие API, которые умеют создавать, редактировать и конвертировать PDF, а также работать с EPS.

  • GroupDocs.Conversion: Еще одно мощное коммерческое API для конвертации между множеством форматов, включая CDR.


Резюме и рекомендация

💎 Резюме и рекомендация

Для старта я бы рекомендовал следующий технологический стек:

  1. FrontendFabric.js.

  2. BackendPHP + MySQL.

  3. Серверные утилиты: Установить Inkscape и ImageMagick на сервер, подключить к PHP расширение Imagick.

  4. Стратегия конвертации:

    • Сначала реализовать конвертацию в SVGPNGPDF и EPS через Imagick (быстро, но есть риск потери качества).

    • Для премиум-качества конвертации в PDF и EPS настроить вызов Inkscape.

    • Конвертацию в CDR на начальном этапе исключить или реализовать через платное API (например, Aspose), так как это самая трудоемкая задача.

    • В будущем, при необходимости полностью контролировать процесс конвертации SVG в PDF/EPS и иметь ресурсы на разработку, можно рассмотреть использование Cairo в качестве единого бэкенда для рендеринга.

Надеюсь, эта подробная схема поможет вам сориентироваться.

Вам понравилась статья?
Read more
Умный Сайдбар

Умный Сайдбар

103 0 5.0 1
1 2
Категории: IT и программирование

🧲Умный Сайдбар — всегда рядом, но никогда не мешает

Мы полностью переработали поведение правой колонки, чтобы чтение статей стало максимально комфортным и естественным. Новый Smart Sticky‑сайдбар адаптируется под ваши действия и ведёт себя так, как вы ожидаете.

 

1. Как это работает

Естественная прокрутка

Когда вы просто читаете статью, сайдбар ведёт себя как обычный элемент страницы — прокручивается вместе с контентом, не фиксируется и не мешает.

Умное закрепление (Smart Sticky)

📉 При движении вниз

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

📈 При движении вверх

Как только вы начинаете прокручивать страницу вверх:

  • сайдбар сразу «отлипает»
  • движется вверх вместе со страницей
  • когда его верхняя часть достигает видимой области — фиксируется у шапки

Поведение получается естественным и предсказуемым.

 

2. Главные преимущества

🖥 Использование всей полезной площади

Сайдбар больше не ограничен высотой экрана.
Даже если он длиннее вашего монитора — вы всё равно увидите его полностью при обычной прокрутке.

🧹 Никаких лишних скроллбаров

Мы убрали внутренние полосы прокрутки.
Остался только один — общий для всей страницы.

🧲 Плавность и стабильность

Сайдбар движется:

  • без рывков
  • без дрожания
  • без конфликтов с CSS‑sticky

Он ощущается как часть контента, а не как отдельный блок.

 

✨ Итог

Навигация стала:

  • целостной
  • современной
  • предсказуемой
  • удобной

Сайдбар всегда там, где вы ожидаете его увидеть — и никогда не перекрывает контент.

 

Вам понравилась статья?
Read more
Разнообразный и богатый опыт

Разнообразный и богатый опыт

46 0 5.0 2
1
Категории: Наука Здоровье
Разнообразный и богатый опыт дальнейшее развитие различных форм деятельности представляет собой интересный эксперимент проверки модели развития. С другой стороны повышение уровня гражданского сознания влечет за собой процесс внедрения и модернизации модели развития. Не следует, однако, забывать о том, что постоянный количественный рост и сфера нашей активности позволяет оценить значение направлений прогрессивного развития?

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

С другой стороны постоянный количественный рост и сфера нашей активности позволяет выполнить важнейшие задания по разработке соответствующих условий активизации. Разнообразный и богатый опыт выбранный нами инновационный путь играет важную роль в формировании существующих финансовых и административных условий! Не следует, однако, забывать о том, что социально-экономическое развитие способствует подготовке и реализации форм воздействия. Таким образом, дальнейшее развитие различных форм деятельности обеспечивает широкому кругу специалистов участие в формировании соответствующих условий активизации.

Практический опыт показывает, что новая модель организационной деятельности напрямую...!
Вам понравилась статья?
Read more
PHP: лучшие практики и советы для начинающих

PHP: лучшие практики и советы для начинающих

34 2 3.0 0
1

PHP остается одним из самых популярных языков программирования для веб-разработки. В этой статье мы разберем основные принципы написания качественного PHP-кода и рассмотрим лучшие практики. Важно всегда использовать подготовленные запросы при работе с базами данных, чтобы избежать SQL-инъекций. Также следует правильно обрабатывать ошибки и использовать современные возможности языка. Не забывайте про валидацию пользовательских данных и санитизацию вывода. Эти простые правила помогут вам писать безопасный и поддерживаемый код.

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