Мы активно используем программное обеспечение с открытым исходным кодом для реализации окончательных решений для наших клиентов. Это не способ сэкономить на чем-то, на самом деле некоторые коммерческие решения могут стоить меньше на первый взгляд. Это способ реализовать перспективный продукт, который гарантирует обслуживание в будущем. И, конечно, в настоящее время открытый исходный код также является ключевым решением для обеспечения безопасности (ну, при правильном использовании).
Мы считаем, что распространенные и широко используемые решения должны быть бесплатными и с открытым исходным кодом. Как известно, бесплатно не значит, что что-то будет без денег. В некоторых случаях может быть целесообразно платить деньги за поддержку, обслуживание и адаптацию. Мы предпочитаем вносить свой собственный вклад в сообщества с открытым исходным кодом. Обычно это происходит в форме поиска, отправки и, в некоторых случаях, исправления ошибок. Или добавить новый функционал. Однако больше всего мы гордимся полными проектами, которые мы внесли в сообщество.
TingoDB — это встроенная база данных JavaScript NoSql для Node.js и node-webkit. Его API и функции предназначены для обратной совместимости с MongoDB и ее драйвером для Node.js. Отнеситесь к этому серьезно. Это не просто вид API MongoDB только потому, что он использует тот же синтаксис запросов. Это точная копия, которая позволяет создавать приложения, которые могут прозрачно поддерживать как MongoDB, так и легковесные встроенные механизмы обработки данных. Можно даже использовать некоторые производные библиотеки, зависящие от MongoDB. Хорошим примером является ODM-библиотека Mongoose.js, которую можно подключить к TingoDB с помощью драйвера Tungus.
Первоначально модуль был разработан, чтобы предоставить набор удобных функций для обработки выданных ошибок, обратных вызовов и передачи ошибок nodejs (первый аргумент функции). Цель состояла в том, чтобы сделать код более стабильным, читабельным и избежать некоторых рутинных вызовов. Идея основана на библиотеке Step, которая перехватывает возникающие ошибки и преобразует их в вызовы функций обратного вызова. Позже библиотека была расширена полным набором библиотеки Async(js), но с улучшениями скорости и безопасной (js) обработкой ошибок из коробки.
Мы разработчики. Мы видим много преимуществ в использовании программного обеспечения для создания отчетов об ошибках и мониторинга приложений. Мы пробовали использовать множество инструментов, и ничего нас не удовлетворило. Мы пытались улучшить некоторые из них, но в итоге создали свои собственные. Все делают то же самое ;). Tinelic — это приложение Node.JS, которое работает как серверная часть для агентов приложений и отчетов об ошибках, а также как графический интерфейс. Чтобы упростить задачу, мы не занимались сложной обработкой данных и полностью полагались на масштабируемость MongoDB. Это дает нам гибкость и достаточную емкость для приложений среднего размера. Для сбора данных Tinelic использует следующие агенты:
Библиотека создавалась с единственной целью - обеспечить надежную и легковесную распределенную реализацию EventEmitter. EventEmitter — это концептуальный интерфейс Node.JS для распространения событий. Надежность для нас означает, что приложение должно состоять из десятков процессов, запускающих хуки, и обрабатывать миллионы сообщений в день без проблем, высокой загрузки ЦП и большого потребления памяти.
Очень скоро задержка в сети может перестать быть проблемой. Однако на данный момент выполнение функций (вызовы REST) страдает от задержки в сети. Это особенно важно, когда функции не могут выполняться параллельно и зависят друг от друга. Мы предприняли несколько попыток решить эту проблему, используя различные подходы, такие как предварительно утвержденные или подписанные сценарии, передаваемые с клиента на сервер. Или «гибкие» подходы к извлечению данных, такие как graphql (которые фактически привязаны к доступной реализации и более удобны для исследования, чем гибки). Или использование ограниченного сценария с использованием Lua или Lisp. Основная задача здесь состоит в том, чтобы обеспечить гибкую, но безопасную функциональность, которую также можно будет безопасно выполнять в контексте сервера с точки зрения использования ресурсов.
Все права защищены 2004-2022 ООО "Пушок Софтваре"