Pull to refresh

Comments 81

Осталось всё это переписать на laravel, тесты, архитектуру нормальную, intl, деньги научиться обрабатывать правильно, докер… Всё осталось в общем.

Не поймите меня неправильно — я видел очень много вполне себе успешных проектов, написанных в таком же стиле, но на перспективу оно не особо жизнеспособно; особенно если планируется «в opensource» отдать
laravel врядли, тесты было бы здорово, разное представление денег/чисел добавится с eng-версией, докер с версии 1.0
Работаем дальше :)
переписать на laravel

Зачем?
Затем же зачем другие люди пишут на laravel/zend/yii/symfony/whateverelse — не изобретать колесо по новой — сэкономить времени, воспользоваться наработками community, получить начальные рельсы для архитектуры
Мы не стали брать фреймворки тк решили не добавлять еще один слой абстракции, не рисковать воткнуться через год разработки в неожиданное ограничение, не зависеть от их обновлений и не терять в скорости обработки на сервере. Поделитесь, если помните, похожими проектами. Мы знаем например ozma.io
UFO just landed and posted this here

Использование Laravel в плане архитектуры само по себе ничего не даст. В маркетинге тоже не особо поможет или помешает. Вот, например, одна из самых популярных CMS на PHP в штатах: https://craftcms.com/. Не Laravel.


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

А вот это нужно, да. В обратном порядке причём. И про SaaS подумать сразу.

Я не говорю про laravel конкретно — любой вменяемый фреймворк. CMS — больше шансов упереться в ограничения, которых ребята боятся
Тригеры ясное дело не сработают если данные изменены напрямую в БД?
Да, не сработают. Если нужно отработать действие в этом случае — добавляется Remote, который вызывается после вставки.
API генерируется автоматически по всем данным?
В таблице указываются какие поля должны быть видны через API и возможность чтения/изменения/добавления с привязкой к роли. Или пишется Remote с конкретным функционалом — посчитать-отдать/изменить/добавить. Вот здесь видео: docs.totum.online/vzaimodeystvie_pri_pomoshchi_api
Можно ли реализовать «из коробки» мультиорганизации с полностью разделенными юзерами и данными, но с одним функционалом?
Можно разработать конечное решение, а потом дублировать его на разные схемы в одной БД. У нас для этого есть техническое конечное решение (тоже на Totum). Оно управляет множеством схем для разных клиентов. Наверное мы его через некоторое время выложим его как платное дополнение — заодно потестим сервер лицензий.
В такой реализации код функционально будет один, а вот данные просто в разных схемах.
Правильно понимаю?

Да, код всего Totum будет один. Но Totum-коды и настройки полей внутри схемы могут при этом отличатся тк они относятся к данным и хранятся внутри схемы. Обновление будет выглядеть так — залить в схемы новые Системные таблицы и потом обновить общие скрипты.
Добавьте тег low-code тут и в гите в проекте

Динамические фильтры к таблице — Хочу иметь Х вариантов фильтров данных к данной таблице + логику применить к данным.
?

У полей в плейсменте Префильтр есть коды — поэтому результирующий фильтр может формироваться на основе данных в Хедере или вообще в другой таблице. Мы так делаем в каком-то количестве мест. Например одному пользователю показывать одни строки, другому другие.
У нас есть похожий функционал Ярлыков для Дерева связанных с Префильтрами таблицы. Он недавно добавлен и не успели еще в документацию закинуть.

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


  • вся бизнес-логика строится на хуках, написанных ручками в codemirror — что фигово тестируется и легко может вызвать сбои в данных (Что выдают за плюс, так как вроде бы легко поменять, без лазания в код и долгих сложных деплоев)
  • всё это очень хреново масштабируется и при увеличении данных начнет тормозить, так как будет трудно добиться оптимальной индексации за счёт такой универсальности: в результате недорогое решение на начальном этапе выльется гораздо дороже в эксплуатации, чем решение изначально заточенное под конкретную задачу
На корпорации мы вообще не рассчитывали. Если у людей есть большой поток данных и деньги на разработку — не надо брать конструкторы подобные этому.

Малый бизнес не генерит таблицы на десятки миллионов строк. Поэтому сделанные нами проекты для людей с оборотом 3-15 млн в месяц прекрасно себя чувствуют. Крупные таблицы до 1 сек. Сервер на несколько проектов загружен на 0.15

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

У нас есть проект в одной из баз которого хранятся стоимости доставок на 8К товаров на 16К населенных пунктов. 8Кх16К = 128М. Ну быстро отвечает — Pg с этим нормально справляется даже на виртуалке среднего ценового сегмента.
Пошел смотреть в код — а там даже composer.json нет :( Визуал классный, но под капотом причесать бы под соответствие PSR-ам
Сейчас мы реально зависим только от phpmailer и выкладываем ее вместе с основным кодом. Дальше все разрастется и можно будет добавить зависимости и причесать код. Это нужно будет сделать, когда появится сообщество. Сейчас и еще какое-то время мы концентрируемся на функционале, визуале и документации для пользователя Totum.

Код очень печальный. Без тестов, с самописным автолоадером в 2020 году проект серьёзно не воспринимается, чтобы что-то ковырять. Опять таки — как вы без тестов собираетесь валидировать PR?
На фронте судя по всему еще jquery.


Сейчас мы реально зависим только от phpmailer и выкладываем ее вместе с основным кодом

Это очень печально


С одной стороны видно, что проделана большая и непростая работа… С другой, вникать в это и развивать никакого желания, потому что поддерживать такое очень сложно

Выглядит очень интересно, если забыть про jquery :) Но вот необходимость ioncube реально напрягает поставить и попробовать. Пересобирать контейнер php с ioncube ну вообще никакого желания нет. Есть ли возможность ioncube использовать опционально?
Хорошо было бы переписать на нативный JS. В какой-то момент мы это сделаем. С ionCube нет, основной класс таблицы шифрован — это нужно для полей лицензий. Попробуйте на demo-сервере: demo.totum.online
На нативный — перебор :) Для таких задач например Svelte отлично подойдет.

Демо-сервер потыкаю обязательно, но это не так интересно — я хочу посмотреть возможность интеграции с собственным управленческим софтом для упрощения отчетной части с возможностью простой и быстрой кастомизации стандартных проводок без пересборки проекта. Должно отлично подойти, но необходимость специального контейнера php как-то странно выглядит. Я не совсем понимаю — если это open source под MIT — в чем проблема сделать ioncube опцией, все ж открыто? Вон не у одного меня такие вопросы :)
Идея в том, что если кто-то захочет написать на Totum конечное решение, например, «Нано-CRM для химчисток», он бы имел возможность закрыть это конечное решение коммерческой лицензией. Если сделать 2 сборки, то этот фокус не пройдет.
Пардон, получается код открыт весь — кроме того, что зашифровано?
Да, зашифровано корневое поле таблиц проверяющее ее лицензию.

А такие коммерческие решения уже существуют?

На текущий момент мы знаем людей, которые разрабатывают ERP для себя с перспективой превращения его в коммерческую коробку. Сам механизм с лицензированием еще в разработке.
А если бы ещё печать документов нормально работала…
Тестировал в Firefox и печать в PDF
А что за скрипт такой странный? Почему не приделали тот же PHP или JS?
Простенький скрипт под конкретную структуру и задачи. Выучить просто в том числе тем кто не знает ни одного языка программирования.
Самый большой вопрос — какова реальна TCO проектов на этом конструкторе?

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

В настоящее время, сделал для себя простой вывод — брать SaaS, которые можно быстро развернуть и доточить под себя с ожидаемым качеством сервиса от поставщика.
Что имеется в виду под ТСО? Мы предполагаем, что между Totum и конечным потребителем в бизнесе будет разработчик или микроинтегратор из 2-3 человек.
  1. Стоимость железа, на котором все крутится
  2. Компетенции админа, который будет сопровождать сервис и поднимать в случае краха и его загрузка на поддержку
  3. Стоимость проекта (тут вы озвучили от 300К)
  4. Стоимость доработок в течении 3 лет (в случае с конструктором учитывать обязательно)
1. Простенький сервер/шаред – 200 р/мес, наш demo-сервер стоит нам 1700 р/мес
2. Компетенция в серверах почти-нулевая, вот все, что требуется что бы работало на netangels: docs.totum.online/ustanovka_i_konfiguraciya#na
3. Зависит от размера разработки и стоимости разработчика. Мы делали и маленькие, просто они скорее самостоятельно разрабатываются чем на заказ. Посчитать время разработки можно здесь: start.demo.totum.online/An/52
4. Тоже очень индивидуально. Клиенты для которых мы выступаем конечным интегратором тратят на обслуживание и доработки ~0.3-0.5% оборота в год.
Спасибо!
Но весь мой прошлый опыт говорит о том, что поддержка все же нужна — появится чуть более сложный сниппет и система начнет тормозить. Без внутренних компетенций такую проблему уже не решить.
Если что-то непонятное с сервером — мы обращаемся в поддержку хостера. ispservers на котором наш прод лежит нормально помогает и именно с totum ни одно обращение не было связано, сервер клал лежащий рядом CS-Cart. Сам totum никакого серверного эксклюзива не требует и рассчитан на шареды в том числе.

Если что-то работает не так, как описано в документации в самом Totum — да, такое случается. В текущей стадии встречается всякая мелочевка. Чиним если сами обнаружили, или нам сказали. Вот например: github.com/totumonline/totum-mit/issues?q=is%3Aissue+is%3Aopen+label%3Abug

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

На шареде можно запустить?
Смущает NGINX  + PostgreSQL 

А формы там у Вас есть? Если есть, то можно ли заполнить шаблон документа данными из формы и открыть (скачать) его в doc/docx или еще каком-то формате?
Спасибо за ответ и статью, очень заинтересовали! Будем посмотреть.

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

+1

Если вы знаете еще какие-то похожие системы — напишите. Мы стараемся смотреть по сторонам и внедрять хорошие штуки.
EspoCRM — как по мне самый удобное коробочное решение если нужно накидать данные + роли и тд.
Как вариант, Directus — но это чисто админка + апи

У всех есть «минус», только mysql
Из открытых: Руководитель — www.rukovoditel.net.ru, Активити — www.activiti.org
Из платных: Бипиум — www.bpium.ru, clevadesk.com, Идея — ideaplatform.online

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

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

ваш подход мне понравился, но нужно тестировать в какие углы упремся.

А почему СРАЗУ не писать нормально? С тестами, соблюдая стандарты и шаблоны проектирования?
Сначала заинтересовался идеей, потом немного напрягло описание в статье, а потом я заглянул в код, ужаснулся и закрыл. Нет уж, ешьте сами с волосами!

При чем тут деньги? Вот это вот все надо переписывать с нуля. Это гораздо больше денег, чем сразу писать нормально. Вы просто плохой программист (или не вы, а тот, кто это писал). И учиться, судя по всему, не желаете. Перенимать опыт и лучшие практики других разработчиков — тоже. Страшно даже подумать, что у вас там с безопасностью. Использовать это даже для небольшого бизнеса — крайне опасно.
Так что нет, через год-два я тоже не зайду. Ничего не поменяется принципиально, уверен.

Безопасность там тоже ниже плинтуса, там даже проверок на то что цены/проценты и т.п. нельзя отрицательные вводить. xss в лёгкую. Там похоже вообще не очень догадываются что пост запросы можно и без ui-интерфейса отправить, введя что угодно

Для энтузиастов с пониженным уровнем опыта еще бы парочку «горячих» шаблонов с возможностью допиливания…
Попробую на Open Server запуститься вечером, интересно получиться ли я связать Totum с Mit App inventor?
Да, мы тоже очень хотим пару крутых шаблонов :)
Изи старта на Open Server не вышло, ioncube по умолчанию в последнем php не прикручен, будем гуглить… энтузиазм упал на 5 позиций…
Странно. Нужен php 7.3 и у них на сайте написано, что для него есть ionCube. 7.4 принципиально отличается прелоадом, который для тотума не дает преимуществ.
Спасибо,
Заголовок спойлера
пожадничал, решил сразу с php7.4…
+10
Супер, а то мы запереживали :) Скорее всего 7.4 вообще пропустим и будем обновляться на 8.0 через год после его выхода. Есть предположение, что JIT будет помогать на таблицах с большим количеством полей.
> основной класс таблицы шифрован

Ваш продукт не опенсорс. Бинарь под MIT открыть — это не опенсорс. :-) не называйте его опенсорсом.

Ну и (я уж не знаю, ВДРУГ вы этого не осознаёте) при желании всё всегда можно расшифровать. Кому оно конечно надо… Ну, если бы мне было надо, я бы из принципа расшифровал, да :-)

А так, если по делу — ну такая себе попытка сделать свой 1С-ик. Ну, нормальная идея, но она, в общем-то, очевидная. Будет ли успех — зависит от реализации.

Но в целом заниматься шифрованием кода — это какая-то фигня, нормальные проекты таким не занимаются.

Угу, концепция поменялась и мы выпилим шифрованный класс в следующем обновлении.

и можно будет запуститься без ionCube?
АЛИЛУЯ.
А то костыльно выходит.
Конечно лучше всего что бы среда запускалась спокойно под чем то типа
dockerfile.readthedocs.io/en/latest/content/DockerImages/dockerfiles/php-apache.html
Либо даже dockerfile.readthedocs.io/en/latest/content/DockerImages/dockerfiles/php-nginx.html

Кстати, какая концепция развития сейчас?
Все наши дополнения для удобства разработки и управления несколькими схемами выйдут бесплатно. Мы доработаем кучу всяких мелочей именно для разработчика, в том числе возможность писать коды на php внутри Totum. Доделаем PSR-совместимость. Сегодня обновим дизайн. В следующем году будем заниматься облаком с комьюнити фишками. Облако будет платным. Возможно потом мы сделаем отдельную версию с шифрованием.
2 недели свершилось через почти 4 месяца)

Теперь вопрос, что поменялось, какие ограничения остались?
Начиная с какого-то момента главное не останавливаться :) Ограничений не осталось. Инструкции по установке и миграции будут обновлены завтра в течении дня. До НГ выйдет еще пара обновлений. Улучшили производительность, архитектуру, безопасность кода. Добавили консольную утилиту.

Сел разбираться предметно. 2-3 недели :)

Скорей бы уже…
Сел разбираться предметно. 2-3 недели :)

Выглядит как возможная замена Notion, осталось взять и прочитать статью)

Notion мне кажется про другое, он такой глянцевый, а мы такие, такие — квадратные :)

Sign up to leave a comment.

Articles