В последние несколько лет в крупных компаниях наблюдается значительный рост внедрения event-driven (событийно-ориентированных) систем. Каковы основные причины этой тенденции? Это чистой воды хайп или есть веские причины, побуждающие к внедрению этой архитектуры? С нашей точки зрения, основными причинами, по которым многие компании выбирают этот путь, являются:
Редактор
Выявление ошибок в работе с памятью в C и C++: Сравниваем Sanitizers и Valgrind
В этой статье вашему вниманию представлено сравнение двух инструментов для поиска ошибок в работе с памятью в программах, написанных на memory-unsafe (небезопасных при работе с памятью) языках — Sanitizers и Valgrind. Эти два инструмента работают совершенно по-разному. Поэтому, хоть Sanitizers (разработанный инженерами Google) имеет ряд преимуществ перед Valgrind, у каждого из них есть свои сильные и слабые стороны. Следует сразу отметить, что проект Sanitizers имеет название во множественном числе, потому что он состоит из нескольких инструментов, которые мы рассмотрим в этой статье в совокупности.
Как быстро выучить язык моделирования Archimate?
Я использую Архимейт в своей работе уже более 7 лет. Когда я познакомился с этим языком, то он привлек меня тем, что позволял изображать систему в динамике, то есть отображать не только структуру программы, но и бизнес-процессы, которые она автоматизирует, и средства, на которых она развернута. К тому же Архимейт казался очень простым — подумаешь, каких-то 10 стрелок и 20 компонентов. На тот момент я был уже очень опытным программистом и архитектором, у меня был огромный опыт проектирования систем и баз данных, также я на приличном уровне освоил несколько языков программирования. И казалось, что выучить такой простой язык — это дело нескольких часов.
Но как же я был не прав: приличные Архимейт модели у меня стали получаться только через 3 месяца, а спустя год я понял, что всё, что я рисовал ранее — хорошо бы перерисовать. Но вот почему Архимейт оказалось освоить совсем не так просто?
Непрерывность функционирования систем жизнедеятельности: Совокупность циклов обратной связи
Наблюдая за программными системами и процессами жизнедеятельности с точки зрения непрерывности функционирования систем, я намерен углубить свое понимание жизни как системы в этой статье.
В первой половине исследования я расскажу вам о том, как разработчики программного обеспечения мыслят в рамках вычислительной среды, в которой работает их программа. Для обеспечения непрерывной работы системы необходимо наличие множества глубоко проработанных функций.
Во второй половине статьи мы вернемся к гипотезе о происхождении жизни, которую я излагал в других статьях, и рассмотрим, как интерпретировать эту новую загадку.
The Sims 4: разбор нарративных механик самой знаменитой игры без сюжета
С момента своего запуска в 2014 году, The Sims 4 превратилась не просто в игру, но в целый культурный феномен, привлекая миллионы поклонников по всему миру. Этот необычайный успех можно объяснить множеством факторов, но одним из ключевых является уникальная возможность игры служить платформой для творчества и самовыражения. В отличие от традиционных видеоигр с заранее заданным сюжетом, The Sims 4 предлагает игрокам свободу создавать собственные истории в мире, где практически нет ограничений. Эта игра-песочница позволяет каждому игроку стать автором уникальных нарративов, переплетая жизни и судьбы симов в соответствии со своими желаниями и фантазиями.
В The Sims 4 отсутствует традиционный сюжет в его классическом понимании, зато нарративные возможности ограничены лишь воображением игроков. Таким образом, игра демонстрирует, как сюжет и нарратив работают ради одной цели – вовлечения игрока в историю и предоставления ему пространства для уникальных переживаний.
Инженер-аналитик или дата-инженер: Как выбрать нужного специалиста? | Census
Мэдисон — инженер-аналитик, увлекающаяся данными, предпринимательством, писательством и образованием. Ее цель — преподавать так, чтобы это было полезно для каждого, независимо от того, начинает ли он карьеру или уже работает в инженерии 20 с лишним лет.
И так вы поняли, что вам не помешала бы дополнительная помощь в работе с данными. Но кого конкретно следует искать, вы не знаете, ведь существуют дата-аналитики, дата-инженеры, а теперь… и инженеры-аналитики?!
Не разобравшись, можно подумать, что дата-инженеры и инженеры-аналитики — это одно и то же. Звучит-то ведь похоже, верно? Но на самом деле у инженеров-аналитиков и дата-инженеров разные обязанности. Поэтому выбор подходящего для вас и вашей организации специалиста зависит от ваших потребностей, места, которое он занимает по отношению к бизнесу, и навыков, необходимых для работы.
Ликбез по вложенной прокрутке в Jetpack Compose
В основе большинства приложений для Android лежат списки. За многие годы появилось множество различных решений, реализующих взаимодействие других компонентов пользовательского интерфейса со списками — например, как панель приложения реагирует на прокрутку списка или как вложенные списки взаимодействуют друг с другом. Вы когда-нибудь сталкивались с ситуацией, когда один список находится внутри другого, и, прокручивая внутренний список до конца, вы хотите, чтобы внешний список продолжил движение? Это классический пример вложенной прокрутки!
Работа с очередями мертвых писем (DLQ) в AWS SNS
Amazon Simple Notification Service (AWS SNS) — это мощный инструмент в арсенале облачных сервисов Amazon Web Services, предоставляющий простые и эффективные средства для управления уведомлениями и распределения сообщений в распределенных системах. SNS обеспечивает высокую гибкость в организации коммуникации между различными компонентами приложений, позволяя быстро и эффективно реагировать на разнообразные события и изменения в окружающей среде.
В данной статье мы рассмотрим ключевые особенности и возможности AWS SNS, а также проанализируем, как этот сервис способствует созданию устойчивых и масштабируемых архитектур облачных приложений.
Всё ещё используете If/else валидацию в Spring 6.0+ / SpringBoot 3.0+?
Чтобы избежать влияния несанкционированных параметров на ваш бизнес, в ваших веб-сервисах должна быть реализована проверка параметров на уровне контроллера! В большинстве случаев параметры запроса можно разделить на два следующих вида:
— POST и PUT-запросы, использующие requestBody
для передачи параметров.
— GET-запросы, использующие requestParam/PathVariable
для передачи параметров.
Разделение задач резервного копирования и удаления устаревших копий в PostgreSQL при помощи pgBackRest
Управление резервными копиями является одним из ключевых моментов в любой стратегии администрирования баз данных. Это гарантирует, что в случае сбоя или потери данных вы можете быстро восстановить всю информацию. pgBackRest — популярное решение для резервного копирования и восстановления PostgreSQL, которое предоставляет множество функций для управления резервными копиями. Тем не менее, по умолчанию стандартная конфигурация pgBackRest часто объединяет операции резервного копирования и удаления устаревших копий в одном процессе.
Работа со временем и датой в C# с применением библиотеки Humanizer
Цель этой статьи — показать вам, как использовать Humanizer, чтобы вывести работу со временем и датой в ваших C#-проектах на новый уровень. Я расскажу о том, как преобразовать объекты DateTime
и TimeSpan
в удобный для восприятия человеком вид, как настраивать параметры гуманизации и как объединять гуманизацию строк со временеме/датой. Мы также рассмотрим некоторые реальные сценарии использования и примеры того, как Humanizer может улучшить пользовательский опыт в отношении времени и даты.
Новые горизонты баз данных: 8 тенденций в управлении информацией
Базы данных — явление не новое. Способы хранения, поиска и предоставления данных пользователям являются ключевыми аспектами разработки веб-приложений на протяжении многих лет. Однако это не означает, что все осталось по-прежнему.
Сегодня мы узнаем про перспективы развития баз данных — 8 тенденций управления информацией и рассмотрим 11 наглядных примеров.
Нарратив и геймплей: создание согласованного игрового опыта
Привет, уважаемые поклонники видеоигр, разработчики, мои коллеги нарративные дизайнеры, и все, кто когда-либо задумывался о том, как создаются захватывающие игровые миры! Сегодня мы погрузимся в увлекательное путешествие по миру нарративного дизайна и геймплея, раскрывая секреты создания согласованного и запоминающегося игрового опыта.
В мире, где видеоигры становятся все более сложными и многообразными, важность баланса между нарративом и геймплеем никогда не была так велика. Вероятно, каждый разработчик видеоигр сталкивался с этой вечной дилеммой: как сделать так, чтобы история и игровой процесс дополняли друг друга, а не конфликтовали? В этом балансе кроется ключ к созданию незабываемых игровых опытов, которые оставляют в сердцах игроков неизгладимый след.
Игровой процесс и нарратив – это две стороны одной медали. С одной стороны, у нас есть нарратив, который ведет игрока через историю, погружая его в мир игры и мотивируя продвигаться вперед. С другой стороны – геймплей предоставляет механики и задачи, которые делают этот путь интересным и вызывающим. Когда эти элементы работают вместе, они создают магию, которая определяет самые успешные и любимые игры. Но как достичь этого согласия?
Давайте исследуем, как геймплей и нарратив взаимодействуют друг с другом, влияя на восприятие игры игроками, и разберемся, какие стратегии и подходы могут помочь разработчикам достичь идеального баланса между этими ключевыми аспектами.
Как Agile трансформация бизнеса помогает компаниям становится гибче и быстрее и почему это актуально?
Многие основатели и ТОП-менеджеры компаний, а также те, кто отвечают за рост продуктов в компаниях, рано или поздно задумываются о том, как вырастить бизнес, увеличить продажи, получить больше лояльных пользователей, обогнать конкурентов, как сделать бизнес и продукты внутри такими чтобы их больше покупали?
- И всегда встают резонные вопросы:
- Как делать больше за меньшее количество ресурсов?
- Как успевать и обгонять конкурентов?
- Как достигать тех целей которые ставим?
- Как кратно масштабировать бизнес и продукты?
Как правило в компаниях запускается множество проектов, которые направлены на рост бизнеса, однако более 75% не приносят тех эффектов, которые мы от них ожидали. Более того, сроки и бюджеты проектов могут растягиваться в разы. И это происходит повсеместно, и в среднем и в крупном бизнесе.
Введение в планировщики иерархических сетей задач (HTN) на примере. Часть 2
В прошлой части мы остановились на том, что сформировали из составных и примитивных задач функциональную область (domain), которая представляет всю иерархию задач нашего NPC. Объединив ее с состоянием мира (world state), мы можем перейти к рабочей лошадке нашей HTN — планировщику (planner). Есть три условия, которые заставляют планировщик искать новый план: NPC завершает или проваливает текущий план, у NPC нет плана, или какой-нибудь сенсор меняет состояние мира NPC.
Microk8s, еще один легковесный K8s
В современном мире разработки и развертывания приложений, контейнеризация стала ключевым элементом для обеспечения масштабируемости, гибкости и надежности. В этом контексте технология Kubernetes, как ведущая платформа оркестрации контейнеров, становится неотъемлемым инструментом для управления и развертывания многокомпонентных приложений.
Microk8s предоставляет собой легковесное решение для установки и управления Kubernetes-кластером на локальной машине или в облаке, делая процесс эксплуатации контейнеризированных приложений доступным для широкого круга разработчиков и системных администраторов. В этой статье мы рассмотрим основные шаги быстрого старта с Microk8s, от установки до первого развертывания приложения, чтобы обеспечить эффективное использование Kubernetes в ваших проектах.
MicroK8s - отличный способ запустить и ознакомиться с Kubernetes. Это полностью совместимый, легковесный пакет Kubernetes, который работает на 42 видах Linux и идеально подходит для:
Топ-5 распространенных практик написания хорошего Swift-кода
Эффективность при написании кода заключается не только в достижении желаемой функциональности, но и в создании кода, который будет производительным, удобным в сопровождении и легко читаемым. В Swift то, как вы пишете код, может оказывать сильное влияние на общую производительность и user experience ваших приложений. В этой статье мы рассмотрим некоторые ключевые сравнения и практики программирования на Swift, которые могут значительно повысить эффективность вашего кода.
Благодаря этим сравнениям вы получите более глубокое понимание того, как определенные методы написания кода в Swift могут привести к более оптимизированным, элегантным и эффективным решениям. Независимо от того, являетесь ли вы опытным разработчиком или только начинаете свой путь, эти знания помогут вам писать Swift-код, который не только хорошо работает, но и достигает оптимальной производительности, читабельности и удобства сопровождения.
Учащиеся без высшего образования овладевают важными навыками так же быстро, как и обладатели дипломов
Исследование Coursera по отчёту ВЭФ “Future of Jobs Report 2023”
В прошлом году Всемирный экономический форум (ВЭФ) опубликовал доклад Future of Jobs Report 2023. В нём анализируются изменения на рынке труда, а также раскрываются темы внедрения технологий, изменения рабочих мест и актуальных навыков в ближайшие пять лет. В рамках сотрудничества с ВЭФ Coursera провела исследование для отчёта и рассказала, как основанные на навыках подходы к развитию рабочей силы могут помочь вытесняемым с рынка труда работникам получить востребованную профессию.
Введение в планировщики иерархических сетей задач (HTN) на примере. Часть 1
Будучи программистами, мы можем обнаружить себя в постоянном поиске «лучшего решения» для любых задач, с которыми мы столкнулись, будь то производительность, поддерживаемость, юзабилити и так далее. И только после того, как мы реализуем эти решения, мы понимаем некоторые нюансы, которые с ними связаны. Очень часто эти нюансы могли бы стать решающим фактором в выборе решения.
Какие важные аспекты Agile не учитывают компании?
В мире жесткой конкуренции и борьбы за опыт клиентов, многие компании сталкиваются с тем, что их операционная модель и процессы не успевают за скоростью изменений.
Поэтому многие компании стали рассматривать трансформацию своей модели управления на Agile, создавая автономные и универсальные команды сфокусированные вокруг продуктов, которые могут смотреть на метрики продукта, работать короткими итерациями и проводить много экспериментов с целью быстро улучшать ценность продукта и увеличить скорость обратной связи с рынка.
Однако вокруг массового перехода компаний на Agile сложилось поверхностное понимание и неправильная интерпретация Agile подходов и философии.
Более того, у многих компаний Agile превратился в карго-культ, который не просто не приносит ценности, а мешает.
В данной статье мы рассмотрим то, какой фундамент должен закладываться в компании, чтобы ей извлечь реальную выгоду от Agile.