Как стать автором
Обновить
49
lsFusion
Не очередной язык программирования
Сначала показывать

Диагностика работы приложения на платформе lsFusion

Время на прочтение22 мин
Количество просмотров1.3K

Часто на нашей практике у пользователей возникают жалобы, что “программа тормозит”. За долгое время поддержки, у нас сформировался большой опыт по диагностике и решению таких проблем. Речь пойдет о приложениях, написанных на открытой и бесплатной платформе lsFusion. В частности, о самом сложном решении - lsFusion ERP, на котором работают крупнейшие розничные сети Беларуси, а также розничные сети в России и Узбекистане.

За несколько лет сформировалось некоторое сообщество разработчиков на платформе lsFusion, у которых на больших объемах данных могут возникать схожие проблемы. В этой статье я опишу основные причины торможений и последовательность действий по их выявлению. Некоторые из причин актуальны только для решений на основе платформы, но многие из описанных проблем касаются любых java-приложений, работающих с PostgreSQL.

Читать далее
Всего голосов 15: ↑15 и ↓0+15
Комментарии0

Настройка и мониторинг Java приложений

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров8.7K

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

Речь пойдет о бизнес-приложениях с одним сервером Java-приложения и одним сервером базы данных PostgreSQL, в каждом из которых одновременно работают от 500 до 2000 сотрудников компании. Приложения разработаны на базе открытой и бесплатной платформы lsFusion (пример приложения), но все описанные проблемы и настройки не являются специфическими именно для нее.

Читать далее
Всего голосов 23: ↑21 и ↓2+22
Комментарии3

Особенности логики lsFusion  в ERP для торговли

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров2K

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

Самый распространенный на сегодня коммерческий продукт, разработанный на платформе - lsFusion ERP. Это решение для управления розничной и оптовой торговлей, которое используют ⅔ крупных торговых сетей Беларуси, и активно начинают внедрять в России и Узбекистане.

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

Читать далее
Всего голосов 19: ↑18 и ↓1+18
Комментарии12

Консерватизм пользователей программных продуктов

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров4.3K

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

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

Читать далее
Всего голосов 20: ↑18 и ↓2+18
Комментарии53

Визуальное программирование vs DSL

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров3.6K

В последнее время набирают популярность low-code и no-code платформы. В них для разработки приложений предлагается использовать визуальное программирование. При таком подходе, разработчики, в качестве которых выступают обычные бизнес-пользователи, вместо написания программного кода создают приложение при помощи мыши в графическом интерфейсе. Также визуальное программирование в некотором виде используется, например, в Конфигураторе 1С.

Однако, возникает вопрос. Какие преимущества дает визуальное программирование по сравнению с Domain Specific Language ? Безусловно это зависит области применения. С одной стороны, в классических языках визуальное программирование практически не используется. В то же время при разработке графического интерфейса такой подход конечно же имеет много преимуществ. Однако, при создании интерфейсов, например, с помощью популярной библиотеки React все-таки больше используется плоский код.

Читать далее
Всего голосов 20: ↑17 и ↓3+16
Комментарии27

Время переходить на open-source

Время на прочтение8 мин
Количество просмотров5.5K

В последнее время большое количество крупных мировых поставщиков бизнес-приложений ушли с российского рынка. Например, SAP, Microsoft и Oracle. Однако, много их решений все еще используются в российских компаниях. За время их работы накопилась значительная экспертиза по их доработке и поддержке как внутри компаний, так и в ИТ-интеграторах. Можно продолжать их использовать их еще определенное время, но никто не защищен от внезапных проблем, которые, например, случились с Meraki.

К сожалению, основная проблема в том, что для многих узкоспециализированных решений от крупных мировых поставщиков не существует готовых российских аналогов. И одним из немногих выходов в таком случае является создание нового решения “с нуля”. Однако, разработка с использованием классических языков программирования занимает много времени и человеческих ресурсов, что в условиях значительного оттока ИТ-специалистов в РФ является существенной проблемой. 

Одним из решений этих проблем является использование платформ для быстрой разработки приложений (RAD). В этой статье сделан краткий обзор современной открытой и бесплатной платформы lsFusion, которая очень хорошо подходит для решения вышеописанных задач. При этом платформа может быть запущена с использованием исключительно программ из Единого реестра российского ПО (Astra Linux, Liberica JDK, Postgres Pro). При этом лицензия платформы позволяет создавать собственные решения на ее основе и вносить их в реестр.

Читать далее
Всего голосов 21: ↑18 и ↓3+17
Комментарии30

Настройка PostgreSQL под Linux

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров115K

Время от времени приходится слышать мнение от некоторых системных администраторов, а также некоторых 1С-разработчиков, что установка, настройка и поддержка PostgreSQL под Linux очень сложна. Что гораздо дешевле покупать лицензии Windows и Microsoft SQL Server, чем нанимать высококвалифицированных администраторов, которые будут администрировать все эти open-source системы.

На наших бизнес-приложениях, использующих в качестве СУБД PostgreSQL, работают 70% крупнейших розничных сетей в Беларуси. Во всех из них одновременно работают от 500 до 1500 пользователей. В приложениях реализованы практически все основные процессы розничных сетей (демо, чтобы оценить сложность). Размер баз данных на данный момент составляет от 2 до 4ТБ. И все они работают практически со стандартными настройками PostgreSQL на одиночных серверах без какой-либо кластеризации. При этом даже в самых загруженных серверах есть еще значительный резерв по ресурсам для дальнейшего увеличения нагрузки без потребности в кластеризации.

Да, конечно же, многое зависит от запросов к СУБД, и несколькими кривыми запросами можно положить весь сервер. Однако, точно также можно положить и Oracle, и MSSQL. Да, платформа lsFusion, на которой написаны наши приложения, делает много различных оптимизаций запросов конкретно под PostgreSQL. Но вручную SQL-запросы можно оптимизировать еще лучше.

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

Читать далее
Всего голосов 42: ↑39 и ↓3+38
Комментарии16

Организуем собственный мини-тотализатор на матчи ЧЕ 2020 по футболу

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров5.6K

Через несколько дней начнется чемпионат Европы по футболу - второй по значимости турнир среди сборных. Как и в любом другом турнире в нем будут как интересные, так и достаточно проходные для нейтрального болельщика матчи вроде “Дания - Финляндия” или “Польша - Словакия”. Смотреть такие матчи не всегда интересно, поэтому мы придумали в офисе игру, благодаря которой всегда есть за кого болеть, что значительно добавляет интерес просмотру. Мы играли в нее во время каждого крупного футбольного турнира, и правила игры претерпели ряд изменений по сравнению с первоначальными, чтобы сделать ее более интересной.

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

Читать далее
Всего голосов 17: ↑17 и ↓0+17
Комментарии13

Почему lsFusion, а не 1С?

Время на прочтение32 мин
Количество просмотров27K


Предыдущая статья “Почему не 1С?” вышла больше года назад и вызвала достаточно живой интерес (совсем немного не дотянула до 100к просмотров и 2к комментариев). Впрочем, как и ожидалось, у многих возник резонный вопрос: “Если не он, то кто?” Безусловно, как многие поняли, та статья писалась не просто так, а чтобы вслед за ней выпустить еще одну, где было бы рассказано, как описанные в первой статье проблемы можно и нужно решать. Однако, по различным причинам, выпуск этой “ответной” статьи был отложен на весьма долгое время. Но, как говорится, лучше поздно, чем никогда.

Читать дальше →
Всего голосов 26: ↑24 и ↓2+23
Комментарии362

MyCompany — бесплатное и открытое решение для небольшого бизнеса

Время на прочтение11 мин
Количество просмотров17K


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

По этой причине мы решили создать базовое решение с названием MyCompany, которое реализует основные бизнес-процессы малого бизнеса. Оно полностью бесплатно, выпускается под Apache лицензией, и ее исходники находятся на Github. Решение легко устанавливается и поддерживает российское законодательство.

В качестве системы управления базой данных используется PostgreSQL. На сервере решение устанавливается и запускается как Java приложение, состоящее из сервера приложений и веб-приложения под управлением Apache Tomcat. В качестве GUI может использоваться как веб-интерфейс, так и десктоп-клиент, запускающийся через Java Web Start.
Читать дальше →
Всего голосов 35: ↑35 и ↓0+35
Комментарии33

Зачем нам понадобился еще один язык программирования

Время на прочтение5 мин
Количество просмотров9.1K

Более чем год назад мы публично представили нашу открытую и бесплатную платформу lsFusion. Многие тогда задавали нам вопрос : зачем мы создавали свой собственный язык, ведь уже существует огромное множество других популярных языков.

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

Но оглядываясь назад я, к сожалению, не вижу вариантов, как мы могли поступить иначе. В этой статье я попытаюсь объяснить почему.

Читать далее
Всего голосов 29: ↑21 и ↓8+17
Комментарии64

lsFusion 5, 6: больше асинхронности, агрегация / расширение / пользовательская настройка форм, новые представления

Время на прочтение11 мин
Количество просмотров2.6K


После выпуска первой публичной (третьей) версии платформы мы получили огромное количество фидбэка, большая часть работы над которым нашла отражение в недавно вышедшей четвертой версии платформы. Впрочем, значительная часть этого фидбэка осталась “за бортом”, но не была забыта, и соответственно сформировала план развития платформы на ближайшее будущее. Именно об этом плане и пойдет речь в этой статье.


Читать дальше →
Всего голосов 20: ↑20 и ↓0+20
Комментарии0

lsFusion 4: сводные таблицы, графики, карты и календари, OAuth-аутентификация, темная тема и многое другое

Время на прочтение24 мин
Количество просмотров5.7K


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


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


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


Читать дальше →
Всего голосов 17: ↑16 и ↓1+17
Комментарии0

Особенности реализации динамических списков в пользовательских интерфейсах

Время на прочтение9 мин
Количество просмотров9.1K
image

В интерфейсе каждого современного приложения в том или ином виде присутствуют списки объектов. При работе с ними у пользователя часто возникают потребности в однотипных действиях вроде сортировки, фильтраций, экспорта и так далее. Реализация этих операций часто осложняется тем, что списки могут быть “динамическими”. В этом случае данные будут по мере необходимости считываться не только с сервера на клиент, но и с сервера базы данных на сервер приложений.

В открытой и бесплатной платформе lsFusion все списки по умолчанию являются динамическими и добавляются на любую форму в несколько строк кода. В этой статье я расскажу некоторые технические подробности их реализации, а также возможности в интерфейсе, которые автоматически предоставляются пользователю при работе с любым списком на любой форме.
Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии9

Где же начинается программирование

Время на прочтение9 мин
Количество просмотров16K
image


Давным давно мы разработали высокоуровневую платформу для разработки бизнес-приложений lsFusion. Оставалось дело за малым: найти того, кто будет на ней писать. Было решено разместить на сайтах по поиску работу соответствующую вакансию. Но возник вопрос: что указывать в качестве должности или профессии.

По уровню сложности язык платформы не сильно отличался от SQL, который изначально создавался не для программистов, а для бизнес пользователей. Поэтому мы также решили указать в качестве должности “Бизнес аналитик”.

Соискателям мы предлагали решить относительно несложное тестовое задание, в котором нужно было немного доработать простой пример. Некоторые люди справились, но от многих пришли гневные письма с возмущением вроде: “Вы ищите программиста или бизнес аналитика ?”.

В итоге мы нашли нужных нам людей, но анализируя этот опыт, я невольно задавался вопросом: где заканчивается бизнес анализ и начинается программирование?
Читать дальше →
Всего голосов 34: ↑31 и ↓3+28
Комментарии75

Почему не 1С?

Время на прочтение55 мин
Количество просмотров111K


Совсем недавно мы опубликовали статью с описанием проблем одной из самых популярных технологий, используемых в IT, и на наше удивление она вызвала достаточно живой интерес (во всяком случае для технической статьи). Поэтому мы решили на этом не останавливаться, и сегодня мы «идем в гости» к одному из самых популярных продуктов на российском рынке разработки бизнес-приложений — платформе 1С.

Так сложилось, что на хабре многие 1С не любят, но порой складывается впечатление, что немногие из этих людей хорошо понимают, за что они его не любят. Этой статьей мы восполним этот пробел и убьем сразу двух зайцев: с одной стороны, расскажем, как в 1С все устроено изнутри, а с другой стороны — почему это все работает не так как нужно / хотелось бы. Надо сказать, что 1С многими своими решениями смог реально нас удивить, впрочем, не будем забегать вперед.

Статей с критикой 1С на Хабре достаточно (например, один, два, три), но, на мой взгляд, они либо слишком много внимания уделяют всяким мелочам, вроде неправильной организации меню, либо рассуждают о слишком абстрактных вещах, в которых 1С, возможно, и не виноват. В этой же статье, как и в статье про SQL, речь пойдет исключительно о фундаментальных (и вполне осязаемых) проблемах, которые касаются всех и каждого, кто разрабатывает / дорабатывает решения на 1С, и приводят либо к существенному росту порога вхождения, либо к серьезному падению производительности, либо к значительным трудозатратам со стороны разработчика.
Читать дальше →
Всего голосов 108: ↑98 и ↓10+88
Комментарии1789

Управление параметрами в бизнес-приложениях по аналогии с системой контроля версий

Время на прочтение13 мин
Количество просмотров3.7K
image

В различных приложениях регулярно возникает задача по поддержке логики изменения во времени некоторого атрибута объекта относительно некоторого субъекта (или субъектов). Например, это может быть изменение розничной цены товара в магазинах или показателей KPI для сотрудников.

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

Реализация будет представлена на базе открытой и бесплатной платформы lsFusion, но подобную схему можно применять и при использовании любой другой технологии.
Читать дальше →
Всего голосов 24: ↑24 и ↓0+24
Комментарии18

Работа с иерархиями в lsFusion

Время на прочтение6 мин
Количество просмотров2.9K
image

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

В этой статье я покажу, каким образом эту логику можно реализовать в открытой и бесплатной платформе lsFusion.
Читать дальше →
Всего голосов 15: ↑14 и ↓1+13
Комментарии0

Расчет странового коэффициента УЕФА

Время на прочтение14 мин
Количество просмотров3.2K
image

В футболе есть два популярных турнира: Лига Чемпионов и Лига Европы. На основании их результатов рассчитывается так называемый Рейтинг футбольных ассоциаций. На базе этого рейтинга в дальнейшем определяется, какое количество команд от каждой страны будет участвовать в последующих турнирах.

В этой статье я создам приложение на основе открытой и бесплатной платформы lsFusion, которое будет рассчитывать этот рейтинг. Оно будет хранить все свои данные в PostgreSQL, предоставлять веб интерфейс по их изменению и отображению с возможностями фильтрации и сортировки, а также импортировать результаты матчей при помощи специального API.

Весь код для реализации этого приложения будет состоять из около 300 значащих строк.
Читать дальше →
Всего голосов 20: ↑18 и ↓2+16
Комментарии5

Вся мощь IntelliJ IDEA на примере одного языка (в картинках)

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

Однако, одна из проблем такого подхода заключается в том, что это значительно удорожает и замедляет сам процесс разработки. Что если всего этого нет? Тогда на помощь приходит IDE, благодаря которой можно изучить текущую логику по “голому” коду.

Когда мы разрабатывали платформу lsFusion со встроенным языком, то у нас было несколько вариантов. Либо изобретать велосипед, и писать с нуля свою собственную IDE, как сделал в свое время 1С, или реализовать плагин к уже существующей. Мы пошли по второму пути, и в этой статье я покажу, что получилось.
Читать дальше →
Всего голосов 27: ↑25 и ↓2+23
Комментарии10
1

Информация

Сайт
lsfusion.org
Дата регистрации
Дата основания
Численность
51–100 человек
Местоположение
Беларусь
Представитель
NitroJunkie