Posts Tagged ‘программирование’

Generic-функции и имена классов

Пятница, Май 12th, 2017

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

Предположим у нас есть функция:

public void SomeFunction<T>()
{
    // Нам нужно вывести имя класса-шаблона T здесь
    // Самым очевидным будет сделать
    Console.WriteLine(nameof(T));
}

И это будет не верным — в консоль будет выведено «T».

Но как же нам получить имя пришедшего класса ?

public void SomeFunction<T>()
{
    Console.WriteLine(nameof(typeof(T)));
    // или
    Console.WriteLine(typeof(T).Name);
}

Как то так.

Распробовал git merge

Среда, Ноябрь 14th, 2012

Только сейчас распробовал git merge. До этого просто ветки плодил. А сейчас похоже пришло время их собирать.

Вот например, есть у нас линуксовая и виндусовая ветки программы. Делаем merge и получаем вывод:

//<<<<<<< HEAD
	printf("\n\nCreate COF files:\n\n");
	for (size_t i = 0; i <codFiles.size();i++)
//=======
	for (uint16_t i = 0; i <codFiles.size();i++)
//>>>>>>> linux_COFC

Немного шаманства с автозаменой и у нас уже вот такое счастье:

#ifdef _WINDOWS
	printf("\n\nCreate COF files:\n\n");
	for (size_t i = 0; i <codFiles.size();i++)
#else
	for (uint16_t i = 0; i <codFiles.size();i++)
#endif

Хороший ли у вас шрифт для программирования?

Пятница, Ноябрь 9th, 2012

Вот вам примерчик, если можете прочитать, то ок.

if (l > 1.)
{
	l = l - 1.;
	l = 1. - l;
}

Но все равно за такое убивать нужно.

Подгрузка классов из сторонних библиотек в рантайме

Понедельник, Апрель 11th, 2011

Я тут решил в одном своем рабочем проекте реализовать плагины.

Дальше небольшой пример кода, как это делать на C#

(далее…)

Мониторинг за 4 раза :-) , агенты влияния.

Суббота, Апрель 11th, 2009

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

Схема хранения данных, выбор протокола, реализация агентов мониторинга.

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

(далее…)

Мониторинг за 4 раза :-) , введение в мониторинг.

Среда, Март 25th, 2009
Quis custodiet ipsos custodes?

Это первая статья в серии, рассказывающей о построении своими руками системы мониторинга рассчитанной на большой поток событий.

Немного теории для начала

Согласно WIKI:

Мониторинг — процесс систематического или непрерывного сбора информации о параметрах сложного объекта или процесса.

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

Качество работы любой системы мониторинга определяется тремя основными показателями :

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

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

Есть еще один, неофициальный показатель — степень доверия. Это то, на сколько доверяют системе мониторинга операторы. 🙂

(далее…)