Рубрика «Проектирование и рефакторинг» - 62

Мониторинг транзакций, my little success storyВ данной статье хочу поделиться примером реализации мониторинга бизнес транзакций. Рассуждение поведу на примере стенда с банковским приложением, для мониторинга транзакций буду использовать продукт компании Hewlett-Packard — HP Transaction Vision.

Сразу к делу!

Есть банковское приложение, разработанное на платформе j2ee, которое крутится на сервере приложений IBM WebSphere Application Server версии 8.5, использует IBM WebSphere MQ и Oracle database.
Читать полностью »

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

Если вы хоть немного разделяете мои ощущения, то нам есть о чём поговорить. Дело в том, что со временем что-то внутри меня начало подсказывать, что рефакторить всё подряд, везде и всё время — не самая лучшая идея. Поймите меня правильно, код должен быть хорошим (а лучше бы ему быть идеальным), но в условиях суровой реальности не всегда разумно постоянно заниматься улучшением кода. Я вывел для себя несколько правил о своевременности рефакторинга. Если у меня начинают чесаться руки что-нибудь улучшить, то я оглядываюсь на эти правила и начинаю думать: «А действительно ли сейчас тот момент, когда нужно нарефакторить?». Давайте порассуждаем о том, в каких же случаях рефакторинг уместен, а в каких — не очень.Читать полностью »

Рабочий код != Хороший код
Когда я слышу фразу “Работает — не трогай”, мне хочется превратиться в большое зеленое существо и крушить все вокруг! Тот факт, что код работает, еще не значит что он хорош. В идеале, “код работает” — это только первая стадия, черновик, начало работы. Для большинства же, если код выполняет текущую бизнес-задачу — закоммитим и забудем.

Рабочий код написать не так уж сложно — нужно иметь немного мозгов и знать синтаксис языка. Для того, чтобы написать хороший код, нужно приложить куда больше усилий, однако, именно качество кода выделяет профессионалов среди огромного количества обычных кодеров. Под катом несколько субъективных советов о том, как писать хороший код.
Читать полностью »

Я постоянно замечаю, что «О, святые небеса, Scala — это сложно!». Знаете, возможно это правда. Давайте попробуем посмотреть на эту сложность и пройтись по основным отличиям Scala от других объектно-ориентированных языков (например, Java или C++).

Читать полностью »

Любая компания, участвующая в создании инновационных продуктов, включая электронные гаджеты и пользовательские приложения к ним, обязана планировать свой выход на рынок IoT (интернет вещей) или Wearables (носимые устройства, например, «умные» часы). В начале запуска своего проекта do-ra.com, ещё на этапе разработки персонального портативного дозиметра-радиометра со счётчиком Гейгера-Мюллера (Г-М) для смартфонов мы задумались о каналах продвижения своих изделий по сетям Интернет. Это наиболее технологичный и эффективный способ продвижения и продаж IoT или Wearables по своей технологичной доступности и по минимизации затрат на единицу товара.
Читать полностью »

Введение

В данной статье хочу поделиться своим опытом организации работы системы мониторинга в ИТ. Здесь не пойдет речь о технических аспектах в работы систем мониторинга, а будет рассмотрен один из возможных вариантов решения именно организационных задач. Предлагаемый подход уже неоднократно нашел свое применение в реальной жизни, что доказывает его работоспособность. От читателей, кто занимался решением подобных задач, мне интересно получить мнение и может интересные альтернативы предложенному.

Читать полностью »

Снижение компонентной связности кода С++
Избавляемся от недостатков классического ООП и пишем на С++ в модульном стиле.
Читать полностью »

На волне интереса к языку D решил и я внести свой вклад в его популяризацию. Статья не для новичков, а больше для тех кто рассматривает D как второй язык. Известно, что на заре своего развития, языки программирования имеют небогатый набор библиотек и это часто не позволяет начинать писать на них что-то серьёзное. Надеюсь статья поможет кому-нибудь переступить этот барьер.
Ниже будут рассмотрены возможности утилиты dub, а так же подключение сторонних пакетов и библиотек написанных на C/C++ на примере замечательной библиотеки libev.
Читать полностью »

Генная модификация
Существуют паттерны натуральные, прошедшие долгий путь эволюционного развития, а есть и другие, вроде бы и такие же, но модифицированные, улучшенные — местами до неузнаваемости. Впрочем, название и внешняя схожесть чаще остаются. А вот дальше начинается магия. Уж не знаю, то ли это я такой везучий, то ли жизнь не так проста, как хочется думать, но встречаются мне постоянно вот эти — модифицированные паттерны. В данной статье будет рассмотрено несколько таких примеров и сделана попытка восстановить образ мышления героя-экспериментатора, породившего на свет новые организмы, так старательно маскируемые под всем знакомые. Вопрос «почему так?» пока останется без ответа.
Читать полностью »

Приветствую Всех!
В прошлый раз, то ли по неопытности, то ли ещё по какой причине — выложив статью я не смог отстоять своё мнение по поводу «необходимости» написания своего «велосипеда» ( как некоторые это назвали ) для масштабируемых JS приложений. На это положило отпечаток то что проект находится в разработке, и некоторые скрипты выложить я ну никак не мог.
Но сегодня я всё-же хочу постараться переубедить всех противников такого «велосипедостроения» в том что это действительно было необходимо, и покажу конкретные примеры, и с конкретными же исходниками.

Наш вариант подхода к написанию JS приложений. Загрузка скриптов и проксирование

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js