Компьютерный форум NoWa.cc

Компьютерный форум NoWa.cc (http://nowa.cc/index.php)
-   PHP (http://nowa.cc/forumdisplay.php?f=305)
-   -   Свой движок - стоит ли? (http://nowa.cc/showthread.php?t=488380)

BuxarNET 02.07.2020 03:32

Свой движок - стоит ли?
 
Тема наверняка не раз поднималась по разным причинам и из разного ракурса.

Попробую её поднять не как разработчик которому некуда время девать, а как пользователь у которого с десяток проектов на разных начиная от коммерческих, заканчивая самописными движках.

Идея состоит в том, что бы объединить все существующие проекты на одном движке и создавать новые на нем же.

Силами конечно сторонних разработчиков, сам на начальном уровне.

Учитывая разнообразие проектов (биллинги, инфо сайты, обменники, биржки и т.п.) а так же разнообразие в конечных пользователях (языковые, страны размещения), нужен движок в котором уже на корню заложена мультиязычность, мультидоменность (разный функционал на разных доменах с общей базой), мультилокальность (от страны проживания так же должен определяться функционал в тех же модулях, к примеру требования при регистрации иди доступность платежных систем).

Вот мне пожалуйста подскажите, есть ли в природе что-то готовое?

Мультиязычность-Мультидоменность мне подсказали есть на Вордпрес и Битрикс.

Первый - думаю не годится для серьезных проектов, да и есть сомнение в корректности мультиязочности разных модулей.

Второй - для меня вообще зло по моим убеждение , да и к тому же платный брать смысла не виду, если все равно в написание платных модулей придется вкладывать.

В моем понимании остается одно, вложиться в написание своего движка, отвечающего следующим требованиям:

Мультиязычность - должна быть заложена в самом ядре и легко подхватываемая на любых модулях. Простой механиз добавления локального текста на нужном языке в движок и модули.

Мультидоменность - любой состав модулей и их настроек для разных доменов

Глубокая модульность - ядро должно быть совершенно пустым, только функции обработки модулей, все остальное на модулях которые могли бы легко заменяться/подключаться/отключаться без каких либо поломок, инсталов, деинсталов (простая иницилизация).

Глубокая локализация- в зависимости от страны должно быть возможно не только выводить определенные модули или настройки их, но и использовать хранение данных в отдельных базах (соблюдая требования некоторых стран о хранение конфиденциальной информации в локальной стране)

API для взаимодействия между разными сайтами на этом же движке.

Ну и конечно, движок должен отвечать всем современным требованиям, это: минимальная нагрузка на хостинг, быстрая работа, безопасность, СЕО оптимизация.

В общем решение я в принципе принял, он мне нужен, только начинать с белого листа или брать за основу какой либо open source я пока не могу решить, так как 100% подходящих open source я не нашел. Но и грамотно разработать структуру думаю не каждый программист сможет, а в этом я точно профан.

Итак, делаю (чужими руками) open source и жду ваших советов.

Возможно стоит за основу взять наработки человека с ником boolive https://habr.com/ru/post/51152/ или его последнее творение https://habr.com/ru/post/211488/ . Честно понравилось по описанию, но руками пока не щупал, да и что мне щупать, нужно сравнивать производительность, другие параметры а я врятли с этим справлюсь. Сам проект заброшен и не поддерживается

Так же интересный проект https://max-3000.com/, позиционирующий себя как более легкий аналог вордпресса, но он на флеймфорке и менее подвижный.

Есть какие советы какую структуру строить, может какие наработки взять в основу?

Может кто хочет присоединится как наемный программист или даже партнер?

AndrewKiew 29.10.2020 22:15

Сами же приведенные Вами требования и накладывают ограничения. В моем опыте преимущества использования такого объемного и сложного движка нивелируются временем на его развертывание, настройку и, как это ни парадоксально, последующую кастомизацию.
Я бы предложил решение типа "конструктор". Например, самый базовый функционал какого-нибудь простого быстрого фреймворка (как пример Phalcon) использовать для самых базовых вещей таких как роутинг, работа с БД, вывод в шаблоны.
Следующий элемент это несколько самых базовых расширений типа локализации, определения геолокации.
Следующий элемент - заточенные под этот фреймворк наборы миграций таблиц и компонент взаимодействия между ними. Для каждого типа проекта сделать свой базовый набор.
И на этом остановиться!
При развертывании, из этих модулей собирать каркас, который даст необходимый базовый функционал, а бизнес-логику дописывать. Это даст огромную экономию времени (и средств) по сравнению с огромным комбайном, который "умеет все" и который, в конечном итоге нужно будет допиливать, а по факту - перепиливать, что намного сложнее чем предложенный мною вариант.
Очень рекомендую выложить этот проект под GPL и это даст ему свежий взгляд и свежие наработки.
Желаю успехов!

BuxarNET 02.11.2020 13:40

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

На самом деле так и задумано. Мне комбайн не нужен.
Только использование фреймворка это не верный путь. Так как проект глобальный и насчитан на постоянное развитие, привязываться к чужому коду не хочется по разным причинам.
Разделение модулей предполагается следующим (уже по написаному ТЗ)
1. Разрабатываем ядро — должно содержать только логику взаимодействия модулей
2. Разрабатываем системные модули — модули без которых UMS не может существовать
3. Разрабатываем дополнительные модули — модули применимые почти во многих проектах
4. Разрабатываем основные модули — модули предназначенные под конкретный проект.
5. Разрабатываем универсальные модули — модули в одних проектах могут быть основными, в других дополнительными.
6. Разрабатываем вспомогательные модули (подмодули / дополнения/ плагины) — модули подключаемые к существующим для расширения функционала.

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

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


Текущее время: 19:36. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc. Перевод: zCarot
Copyright ©2004 - 2021 2BakSa.WS

Время генерации страницы 0.08590 секунды с 9 запросами