Как стать автором
Обновить
0
Владимир @SevaRizhikovread⁠-⁠only

Пользователь

Отправить сообщение

Что такое ИТ?

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

В большинстве своем понимается как "что-то связанное с компьютерами". Я входил в ИТ задолго до того, как это стало модно. Когда айтишник и математик в представлении обывателя выглядели совершенно одинаково. Сейчас айтишниками называют и продукт менеджеров, и дизайнеров и маркетологов. В общем - опрятный_человек_за_двумя_мониторами_стоковое_фото.жпг. Но мне хочется углубиться в это понятие и дотошно разобрать, что же такое "Информационные технологии" на самом деле.

Читать далее
Всего голосов 6: ↑4 и ↓2+3
Комментарии118

Быстрый старт с WPF. Часть 1. Привязка, INotifyPropertyChanged и MVVM

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

Всем привет!


По разным причинам большинство из нас использует десктопные приложения, как минимум, браузер :) А у некоторых из нас возникает необходимость в написании своих. В этой статье я хочу пробежаться по процессу разработки несложного десктопного приложения с использованием технологии Windows Presentation Foundation (WPF) и применением паттерна MVVM. Желающих продолжить чтение прошу под кат.

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

Подробное руководство по настройке TTL для записей DNS

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

Система DNS — это фундаментальный технологический продукт. Обработка практически всех сетевых запросов верхнего уровня и поисковых запросов в Интернете, пересылка интернет-трафика и электронной почты, а также многие другие операции становятся возможными благодаря установке определенных соответствий при поиске DNS (преобразованию таких имен, как some.domain.org, в IP-адреса или имена других доменов).
Читать дальше →
Всего голосов 18: ↑16 и ↓2+14
Комментарии8

Обзор C# библиотек для работы с PDF

Время на прочтение5 мин
Количество просмотров169K
topic image
На написание данной статьи меня подтолкнул топик HTML в PDF, правда по причине того, что он посвящен языку php, лично мне он был мало полезен, т.к. весь опыт работы с php у меня сводился в переводе нескольких скриптов на C#, поэтому я решил сделать небольшой обзор того, что доступно для работы с pdf по средствам языка C#.

Ко мне в список попало 7 библиотек, о которых я скажу несколько слов, а для самой популярной (судя по ответам на stackoverflow), я напишу, как с помощью неё сделать простейший документ. Сразу скажу, что это iTextSharp и работа с ней будет описана в конце статьи.
Читать дальше →
Всего голосов 87: ↑77 и ↓10+67
Комментарии24

Использование диаграммы вариантов использования UML при проектировании программного обеспечения

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

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

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

Читать далее
Всего голосов 8: ↑6 и ↓2+9
Комментарии10

Стандарты и шаблоны для ТЗ на разработку ПО

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

Введение


Недавно ко мне обратились, чтобы я посоветовал стандарты для написания технического задания (ТЗ) на разработку автоматизированных систем (АС) и программного обеспечения (ПО). Вот думаю, сейчас зайду в Яндекс, найду подходящую статейку и отправлю её. Но не тут-то было! Одной статьи, где перечисляются стандарты для ТЗ, включая шаблоны и примеры готовых документов, я не нашел. Придется сделать такую статейку самому…

И так, основные стандарты, методологии и своды знаний, где упоминается ТЗ или SRS (Software (or System) Requirements Specification):

• ГОСТ 34
• ГОСТ 19
• IEEE STD 830-1998
• ISO/IEC/ IEEE 29148-2011
• RUP
• SWEBOK, BABOK и пр.
Читать дальше →
Всего голосов 36: ↑34 и ↓2+32
Комментарии22

Технология песочниц для защиты от вредоносного ПО

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

Одно из обязательных свойств современных целевых атак — их способность проникнуть в ИТ-инфраструктуру жертвы незаметно для защитных систем. Передовое вредоносное ПО использует методы маскировки, которые превращают его в невидимку. Помочь в таких случаях может динамический анализ, который выполняется в специализированной среде — песочнице. Технологии песочниц занимают центральное место в концепции киберзащиты Trend Micro, получившей название Connected Threat Defence. В этом посте мы поговорим о том, как песочницы используются в решениях Trend Micro.

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

Собираем конструктор или архитектура сетевой безопасности. Случай 3 – Крупный офис

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

Шляпы для собак становятся трендом и выгуливать собак без шляп становится «дурным тоном». А наш бизнес продолжает расти. Растет и количество сервисов, и, соответственно, размеры ЦОДа. Как ни странно, внимание к нашей компании со стороны регуляторов тоже увеличивается, но обо всем по порядку.

Мы, разумеется, находимся на пике технологий, и наш ультрасовременный ЦОД изобилует разного рода SDN (software-defined networking) и прочими оверлейными прелестями, но для логики обеспечения безопасности не столь важно, на каком уровне виртуализации находится сеть, поэтому мы не будем подробно на этом останавливаться. Просто будем иметь ввиду, что сказанное ниже так же относится и к сетям на базе SDN.

Прежде всего мы обзавелись специально обученными быстрыми коммутаторами, таким образом у нас появилось отдельное ядро сети ЦОДа, и теперь наша сеть делится на, собственно, сеть ЦОДа и на ЛВС для всего остального.

Для полного разделения сегментов ЦОДа даже на уровне маршрутизации мы создаем несколько VRF (Virtual Routing and Forwarding).

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

Собираем конструктор или архитектура сетевой безопасности. Случай 1 – Небольшой офис

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

Сетевая безопасность? Да у нас на периметре роутер стоит и все нормально!

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

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

Что находится между идеей и кодом? Обзор 14 диаграмм UML

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


Аве Кодер!

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

Этот цикл статей будет посвящен полезному, но порой ускользающему от молодой поросли знанию — диаграммам UML. И начну я его с обзора существующих диаграмм, поговорим немного об истории и зачем диаграмм должно быть так много.
Всего голосов 12: ↑12 и ↓0+12
Комментарии18

Использование диаграммы классов UML при проектировании и документировании программного обеспечения

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

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

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

Сервис для создания планировок помещений и интерьеров

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


Ровно год назад, мы с партнером, решили стать стартаперами. Точнее, поняли, что теперь мы партнеры-стартаперы. То как поменялась после этого наша жизнь — тема отдельной статьи. Сейчас хотелось бы уделить внимание нашему детищу — сервису планирования помещений и интерьеров.

Итак, пару лет назад, оба фаундера практически одновременно попали в жизненную ситуацию, которая бывает у всех — настало время ремонта.

Что из этого вышло
Всего голосов 165: ↑159 и ↓6+153
Комментарии176

Обзор процесса разработки программного обеспечения

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

Введение


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

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

Проекты, над которыми я работаю, чаще всего связаны с разработкой заказного или инвестиционного программного обеспечения. Также мне приходилось работать с встроенным ПО и программами, ориентированными на выпуск «хитов» (что, с лёгкой руки Джоэля Спольски, я называю далее игровым ПО, хотя на самом деле некоторые игровые проекты ближе к инвестиционным).

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

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

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

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

Нашими заказчиками являются органы власти, крупные государственные и коммерческие организации и, конечно, мы сами. Поэтому в смысле заказного ПО в нашем процессе часто присутствует некоторая разница между процессами разработки продуктов для внутреннего и для внешнего заказчиков. Некоторые нюансы я укажу в этой статье. Уровень формализации отношений с заказчиком у нас варьируется от проекта к проекту очень широко. В целом, чем больше бюджет проекта, тем выше формальность. Государственный заказчик или крупные коммерческие предприятия (особенно с государственным участием) обычно имеют законодательные ограничения на формирование, размещение заказа и приёмку результатов работ. Ещё одним ограничением крупных организаций является тот факт, что их персонал, являющийся источником требований и основным пользователем наших систем, имеет очень ограниченную доступность для исполнителей, хотя бы вследствие своей занятости. Однако для небольших организаций уровень формализации падает и иногда уходит в противоположную крайность, где возникает недостаточный уровень ответственности заказчика в рамках проекта.

Другая сторона наших заказных проектов – высокие требования к функциональности. Это и высокая нагрузка на все системы, и большая географическая распределённость, и высокие требования к точности вычислений при очень ограниченных временных рамках. Часто в наших проектах появляются элементы исследовательской работы и творческого поиска, направленного на решение нетривиальных проектных задач. Иногда нам приходится комбинировать в рамках одного процесса разработки разные методологии, например, вставляя в общий процесс, близкий к RUP, один или несколько этапов почти чистого scrum, порождая что-то вроде проекта в проекте. Это позволяет нам сохранять невысокий уровень вовлеченности пользователей, связанный с природой проекта, с гибкостью разработки в условиях высокой неопределённости требований. В этом плане для меня важен именно подготовительный этап, во время которого можно выбрать необходимую методологию и выстроить оптимальный процесс разработки. Один из примеров применения гибкой методологии я описал в статье «Применение agile при разработке проекта для государственного заказчика».

В качестве примера работы над инвестиционным проектом я могу привести разработку комплексной системы безопасности, которую мы создавали как «коробочный» продукт. Под моим руководством было выпущено последовательно четыре версии этой системы, пользователями которой стали самые разные коммерческие и государственные организации, включая мэрию Москвы, АФК «Система», банки, бизнес-центры и, конечно, наш собственный офис. Первая версия была не очень успешной, но у нас была стратегия развития, которая позволила нам успешно захватить рынок и пережить сложные времена кризиса. Опыт работы над этим и ещё несколькими инвестиционными проектами тоже был учтён при формировании используемого мной процесса разработки.

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

Важно понимать, что переход процесса от одного этапа к другому не имеет чёткой границы. Как правило, работы следующего этапа начинаются по мере выполнения 80-90% работ по предыдущему этапу. Особенно это касается разработки требований, когда в ряде случаев снятие неопределённости происходит лишь к концу проекта. Безусловно, наличие такой неопределённости в проекте является существенным риском и должно находиться под постоянным контролем.
Читать дальше →
Всего голосов 19: ↑13 и ↓6+7
Комментарии45

Основы CI/CD. Знакомство с Jenkins

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

В новой статье рассмотрим основы CI/CD и познакомимся Jenkins. Вы узнаете, где применяется Jenkins и какие проблемы помогает решить, поймёте логику архитектурных решений и особенности структуры каталогов. А ещё научитесь устанавливать Jenkins и производить базовую конфигурацию.

За основу статьи взят первый урок нашего практического курса «CI/CD с Jenkins».

Читать далее
Всего голосов 13: ↑9 и ↓4+6
Комментарии10

Введение в многомерный анализ

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

Некоторое время назад мне довелось организовывать новую группу разработки, которая должна была заняться развитием OLAP и BI продуктов в дружеской софтверной компании. А так как группа была собрана из свежих выпускников ВУЗов, то мне пришлось написать «краткий курс молодого бойца» для того чтобы максимально доступно дать начальные понятия об OLAP людям, которые ни разу с ним не сталкивались, но уже имели опыт программирования и работы с БД.



Выкладываю теперь это Введение в Общественное Достояние.



В статье несколько смешиваются понятия OLAP, Business Intelligence, и Data Warehouse, но и в жизни часто сложно понять, где проходит граница. А уж в реальных проектах, так и подавно, все они ходят рядом. Поэтому прошу не судить строго.



Итак, что же такое OLAP.
Всего голосов 63: ↑61 и ↓2+59
Комментарии12

Программы для геймдева

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

Делать игры - не так просто как вам затирают на курсах по созданию игр, особенно когда ты работаешь один. Зачастую, чтоб создать хорошую и качественную игру - надо использовать множество программ для арта, программирования, эффектов, планирования, звуков и всего прочего. А еще надо не забывать про работу с движком. Сегодня я вам расскажу о 45 программах и сервисах, которые очень помогут вам в создании игры.

Программы для разработки своей игры.

Читать далее
Всего голосов 11: ↑4 и ↓7-3
Комментарии8

30 сентября: Let's Encrypt и конец срока действия IdenTrust DST Root CA X3

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

30 сентября 2021 14:01:15 GMT оканчивается срок действия корневого сертификата IdenTrust DST Root CA X3.

Это событие достойно вашего внимания по той причине, что после наступления этого момента ряд устаревших систем перестанут доверять сертификатам, выпущенным центром сертификации Let’s Encrypt. С учётом того, что на текущий момент Let's Encrypt предоставляет бесплатные криптографические сертификаты примерно для 250 миллионов доменных имен, а "устаревшие системы" - это порой системы возрастом всего 5-6 лет, вряд ли окончание срока действия сертификата DST Root CA X3 пройдёт для всех гладко и незаметно. В чём причина, кого конкретно это затронет, и что можно сделать?

Читать далее
Всего голосов 82: ↑81 и ↓1+101
Комментарии245

Памятка/шпаргалка по SQL

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

Доброго времени суток, друзья!


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

Читать дальше →
Всего голосов 41: ↑37 и ↓4+42
Комментарии18

NBomber как альтернатива JMeter для .NET разработчика

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

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

В этой статье мы рассмотрим NBomber как легкую для освоения альтернативу JMeter, а также постараемся ответить на вопрос "Почему я должен проводить нагрузочное тестирование именно с NBomber ?".

Эта статья предназначена для .NET разработчиков, которые хотят пополнить свой инструментарий удобным инструментом для нагрузочного тестирования, а также тем кто рассматривает альтернативы JMeter для экосистемы .NET.

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

Проверяем Архитектурные стили на движке Factorio (часть 1)

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

Добрый день всем, дорогие читатели!

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

Если вы хотя бы чуть-чуть имели неудачу пообщаться с Архитекторами, то знаете, что в их понимании не существует идеальной архитектуры ПО и вся их работа состоит во взвешивании плюсов и минусов того или иного Архитектурного стиля. И поскольку Архитектурных стилей много и каждый имеет свои преимущества (даже Монолит) и недостатки (даже Микросервисы) - работа архитектора состоит в попытках применения данных стилей на конкретный продукт и попыток предугадать, что из этого получит в итоге для бизнес-части.

Как сказал мой добрый друг-программист про Factorio: "Эту игру создали программисты для программистов" и эти слова плотно въелись в мою память. И реально игра в эту игру очень сильно напоминает процесс разработки ПО: можно просто строить как попало и прийти к полностью запутанной и сложнообслуживаемой системе, а можно подойти к вопросу с умом изначально и в итоге получить производительную и легкую в обслуживании систему (Прям как в жизни!)

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

Информация

В рейтинге
Не участвует
Откуда
Тверь, Тверская обл., Россия
Дата рождения
Зарегистрирован
Активность