Правила Форума редакция от 22.06.2020 |
|
|
|
|
|
Опции темы | Опции просмотра | Language |
02.07.2020, 04:32 | #1 |
Пользователь
Пол: Регистрация: 10.09.2009
Адрес: Вильнюс, Литва
Сообщений: 87
Репутация: 12
|
Свой движок - стоит ли?
Тема наверняка не раз поднималась по разным причинам и из разного ракурса.
Попробую её поднять не как разработчик которому некуда время девать, а как пользователь у которого с десяток проектов на разных начиная от коммерческих, заканчивая самописными движках. Идея состоит в том, что бы объединить все существующие проекты на одном движке и создавать новые на нем же. Силами конечно сторонних разработчиков, сам на начальном уровне. Учитывая разнообразие проектов (биллинги, инфо сайты, обменники, биржки и т.п.) а так же разнообразие в конечных пользователях (языковые, страны размещения), нужен движок в котором уже на корню заложена мультиязычность, мультидоменность (разный функционал на разных доменах с общей базой), мультилокальность (от страны проживания так же должен определяться функционал в тех же модулях, к примеру требования при регистрации иди доступность платежных систем). Вот мне пожалуйста подскажите, есть ли в природе что-то готовое? Мультиязычность-Мультидоменность мне подсказали есть на Вордпрес и Битрикс. Первый - думаю не годится для серьезных проектов, да и есть сомнение в корректности мультиязочности разных модулей. Второй - для меня вообще зло по моим убеждение , да и к тому же платный брать смысла не виду, если все равно в написание платных модулей придется вкладывать. В моем понимании остается одно, вложиться в написание своего движка, отвечающего следующим требованиям: Мультиязычность - должна быть заложена в самом ядре и легко подхватываемая на любых модулях. Простой механиз добавления локального текста на нужном языке в движок и модули. Мультидоменность - любой состав модулей и их настроек для разных доменов Глубокая модульность - ядро должно быть совершенно пустым, только функции обработки модулей, все остальное на модулях которые могли бы легко заменяться/подключаться/отключаться без каких либо поломок, инсталов, деинсталов (простая иницилизация). Глубокая локализация- в зависимости от страны должно быть возможно не только выводить определенные модули или настройки их, но и использовать хранение данных в отдельных базах (соблюдая требования некоторых стран о хранение конфиденциальной информации в локальной стране) 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/, позиционирующий себя как более легкий аналог вордпресса, но он на флеймфорке и менее подвижный. Есть какие советы какую структуру строить, может какие наработки взять в основу? Может кто хочет присоединится как наемный программист или даже партнер? |
Реклама: | Магазин компьютерной техники КНС предлагает Acer TravelMate - Подарок каждому покупателю! | схема теплохода княжна анастасия теплоход | Фанкойл SYSIMPLE FWM54A | новогодняя корзина с фруктами | подвесная реклама |
29.10.2020, 23:15 | #2 |
Новичок
Пол: Регистрация: 18.12.2012
Сообщений: 7
Репутация: 1
|
Сами же приведенные Вами требования и накладывают ограничения. В моем опыте преимущества использования такого объемного и сложного движка нивелируются временем на его развертывание, настройку и, как это ни парадоксально, последующую кастомизацию.
Я бы предложил решение типа "конструктор". Например, самый базовый функционал какого-нибудь простого быстрого фреймворка (как пример Phalcon) использовать для самых базовых вещей таких как роутинг, работа с БД, вывод в шаблоны. Следующий элемент это несколько самых базовых расширений типа локализации, определения геолокации. Следующий элемент - заточенные под этот фреймворк наборы миграций таблиц и компонент взаимодействия между ними. Для каждого типа проекта сделать свой базовый набор. И на этом остановиться! При развертывании, из этих модулей собирать каркас, который даст необходимый базовый функционал, а бизнес-логику дописывать. Это даст огромную экономию времени (и средств) по сравнению с огромным комбайном, который "умеет все" и который, в конечном итоге нужно будет допиливать, а по факту - перепиливать, что намного сложнее чем предложенный мною вариант. Очень рекомендую выложить этот проект под GPL и это даст ему свежий взгляд и свежие наработки. Желаю успехов! |
02.11.2020, 14:40 | #3 |
Пользователь
Пол: Регистрация: 10.09.2009
Адрес: Вильнюс, Литва
Сообщений: 87
Репутация: 12
|
AndrewKiew, Вы правильно говорите по поводу модульности и не нужности в комбайне.
На самом деле так и задумано. Мне комбайн не нужен. Только использование фреймворка это не верный путь. Так как проект глобальный и насчитан на постоянное развитие, привязываться к чужому коду не хочется по разным причинам. Разделение модулей предполагается следующим (уже по написаному ТЗ) 1. Разрабатываем ядро — должно содержать только логику взаимодействия модулей 2. Разрабатываем системные модули — модули без которых UMS не может существовать 3. Разрабатываем дополнительные модули — модули применимые почти во многих проектах 4. Разрабатываем основные модули — модули предназначенные под конкретный проект. 5. Разрабатываем универсальные модули — модули в одних проектах могут быть основными, в других дополнительными. 6. Разрабатываем вспомогательные модули (подмодули / дополнения/ плагины) — модули подключаемые к существующим для расширения функционала. Все ТЗ выкладывать не буду, но думаю суть понятно. Системыне модули обязательные, а остальные в зависимости от чередования позволят запустить любой проект без излишнего функционала, будет браться в виде модулей только то, что нужно конкретно к этому проекту. GPL предусмотрена на основною систему кроме некоторых основным модулей, которые будут писаться под коммерческие проекты |