Pull to refresh
8
0
Руслан Касимов @infom

Руководитель отдела разработки

Send message

Это вопрос должен решать архитектор. Или нет?

Reading time15 min
Views26K
У меня есть некоторый опыт в реализации систем на базе микросервисной архитектуры и я хотел бы поделится вопросами (и ответами), которые возникают при реализации подобных проектов. К сожалению, я не имею права распространяться о проектах в которых я участвовал, поэтому я выдумал собственный сферический проект в вакууме. В этом проекте нам встретится множество стандартных проблем.

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

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

image
Читать дальше →
Total votes 39: ↑35 and ↓4+31
Comments67

Обзор СКУД с бесплатным программным обеспечением

Reading time7 min
Views83K
Одна из интересных тенденций на российском рынке СКУД это появление компаний производителей, представляющих свое полнофункциональное программное обеспечение абсолютно бесплатно.

Волшебная притягательность слова «бесплатно» как магнитом притягивает новых клиентов, но у бесплатного всегда есть и обратная сторона, всмотримся в эту «темную» сторону.

Мы расчистим ее от маркетинговых наслоений, и расскажем как не попасть на крючок маркетологов.

Читать дальше →
Total votes 14: ↑10 and ↓4+6
Comments34

Бесплатное программное обеспечение для IP-камер

Reading time5 min
Views697K
За 11 лет работы на рынке видеонаблюдения, нам пришлось столкнутся с множеством программ для управления системами видеонаблюдения, с какими-то мы работали, какие то тестировали, какие хотели потестировать, но так и не успели этого сделать, про какое-то просто читали в обзорах подобных тому, что читаете вы.

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

Все программное обеспечение разбито на три группы:

  • Программное с открытым исходным кодом
  • Бесплатное программное обеспечение с ограниченным функционалом
  • Программное обеспечение бесплатное в течении пробного периода

image
Читать дальше →
Total votes 40: ↑39 and ↓1+38
Comments31

А ваша служба является RESTful? Все что необходимо/обязательно знать про веб службы и REST

Reading time18 min
Views144K

Введение


Вот не люблю я изобретать велосипед и статью я бы эту не написал, но пришлось. Про REST сказано уже довольно много. Многие поставщики веб служб готовы клясться, что их службы являются RESTful. Во время собеседования вы точно услышите хотя бы несколько вопросов про REST, независимо от того это собеседования для бэкенд, мобайл или фронтенд разработчика. Я вот помню как-то во время одного собеседования меня задали такой вопрос: «Вот вы написали в своем резюме, что знайте REST․ Ответьте пожалуйста, какой HTTP код вы получите, если при запросе к RESTful сервису ресурс не найден?». Ответ 404 был принят единогласно. Если честно, я так и не понял, как этот вопрос помог понять знаю ли я REST или нет, но одно могу уверенно сказать: REST понимают далеко не все. Вот некоторые вопросы, которые мучали меня долгое время:

  1. Зачем REST стал таким трендовым? Это архитектура была же предложена еще в 2000 году?
  2. Что я получу если моя служба будет RESTful?
  3. Как определить является ли служба RESTful или нет?
  4. Как правильно должны создаваться URL REST служб?
  5. Какие http методы и коды должны быть использованы в RESTful службе?

Если вы не можете дать исчерпывающего ответа хотя бы на один из этих вопросов, то продолжайте чтение. Если вы можете однозначно ответить на все эти вопросы, можете привести формат правильного URL, считайте, что GET, POST, PUT, DELETE обязательно должны соответствовать CRUD операциям с ресурсами, то вам обязательно надо продолжать чтение.
Читать дальше →
Total votes 43: ↑37 and ↓6+31
Comments125

Визуализация интеграционных приложений

Reading time7 min
Views27K
image

С тех пор как я начал выполнять обязанности системного архитектора, мне чаще приходится рисовать прямоугольники и стрелки, чем писать программный код. С этим можно было бы бороться, например, бессонными ночами участвовать в проектах с открытым исходным кодом, создавать подтверждения осуществимости концепции и демонстрационный код, но и там тоже нужно рисовать прямоугольники, чтобы продемонстрировать архитектуру. Эта статья посвящена визуализации обмена сообщениями в распределенных системах, сервис-ориентированной архитектуре (SOA) и микросервисным приложениям при использовании методологии разработки agile (этот термин потерял свое значение, но более подходящего в данном случае нет).
Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments6

О важности User Stories

Reading time5 min
Views34K
Здравствуйте, уважаемые читатели.

Сегодня мы хотели бы поговорить с вами о важном аспекте гибкого управления проектами, но не о чистом Agile, а о планировании проекта и итераций. Речь пойдет о жанре «Пользовательских историй», которым посвящена очень успешная на Западе книга Джеффа Паттона с предисловием Мартина Фаулера:



В статье, текст которой вас ждет под катом, мы перевели «User Story Mapping» как «визуализация функционала». Вариант взят из очень интересной книги Бориса Вольфсона "Гибкое управление проектами и продуктами", также выходившей в нашем издательстве.

Итак, автор статьи прочитал труд Паттона и решил, что так должен поступить каждый. Насколько убедительные примеры он привел — судить вам.

Читать дальше →
Total votes 13: ↑12 and ↓1+11
Comments6

Манифест грядущих перемен сквозь призму рынка

Reading time6 min
Views9.1K


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

Формация и конъюнктура


Как сказал бывший продакт менеджер Google Hangouts Бен Эйдельсон: “Обмен сообщениями — это форм-фактор, целая парадигма и самое главное — набор ожиданий пользователя, применяемый в разных рынках, сценариях и подходах”.

Главное преимущество сервисов мгновенных сообщений в том, что любая коммуникация асинхронная по умолчанию и синхронная при необходимости. Мессенджеры символизирует в себе историю отношений между людьми. Обработка сообщений происходит в контексте долговременных диалогов, где обсуждаемые темы меняются на протяжении всей беседы. Для сравнения старые SMS-клиенты не умели объединять сообщения от одного и того же отправителя, а в электронной почте диалоги формируются вокруг определенной темы.
Читать дальше →
Total votes 12: ↑9 and ↓3+6
Comments8

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

Reading time13 min
Views187K

Введение


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

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

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

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

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

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

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

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

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

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

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

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

Наш перевод статьи: Двадцать пять целей индустрии программного обеспечения на 2015–2019г.г

Reading time25 min
Views7.2K
Наш перевод статьи:
Двадцать пять целей индустрии программного обеспечения на 2015–2019г.г.
С разрешения автора: Каперс Джонс

Каперс Джонс, VP and CTO Namcook Analytics LLC
Версия 5.0 28 февраля 2015 г.


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

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

В этой небольшой статье представлены 25 реальных целей, которые могут быть достигнуты в течение 5 лет, принимая за точку отсчета 2015 год. Некоторые цели выражены в показателях метрики функциональных баллов (Function Points — FPs), которая является единственной широко используемой метрикой, допустимой для освещения экономической результативности и качества без серьезных погрешностей.
Читать дальше →
Total votes 10: ↑5 and ↓50
Comments0

Как не угробить архитектуру сразу же? Видео с лекции Евгения Кривошеева

Reading time1 min
Views59K
Всем привет!

Две недели назад в Москве прошла очередная встреча CodeFreeze. Нашим гостем стал Евгений Кривошеев, признанный российский эксперт в области архитектуры программных систем, консультант из Scrumtrek/Skilltrek. Евгений прочитал офигеннейшую лекцию по архитектуре, как он любит и умеет.



В рамках этой встречи Евгений предложил обсудить последовательность решений, критичных для архитектуры любой системы. Выстраданная последовательность действий такова:
  • Точки зрения на систему, или Почему мы слепнем при проектировании
  • Адресация ключевых рисков, или Гордыня убивает
  • Учитываем контекст, или Как не долбиться в закрытую дверь

Краткое содержание и видеозапись
Total votes 46: ↑43 and ↓3+40
Comments12

Как мы работаем со справочниками на интеграционной шине

Reading time2 min
Views17K

Принципы решения


При интеграции корпоративных систем возникает задача управления справочными данными. Для решения этой задачи часто используется Master Data Managment(MDM). MDM — это хранилище, которое содержит “эталонные” справочные данные, так называемые “золотые записи”. Справочники в MDM содержат очищенные полные и непротиворечивые данные.

Часто MDM используется как платформа для централизованного ведения справочников. Ввод и валидация справочных данных производится в MDM, а оттуда они реплицируются в IT-системы. Такой подход имеет несколько проблем

  • Создать эталонную модель данных, которая подойдет всем системам не так-то просто.
  • Справочные данные становятся оторванными от приложений.
  • Репликация данных из MDM часто требует серьезной доработки систем. Для систем “из коробки” такая доработка может быть очень дорогой.

Читать дальше →
Total votes 15: ↑12 and ↓3+9
Comments2

Цифровая вселенная выросла до 1,2 зеттабайта

Reading time1 min
Views821
Информационные потоки продолжает нарастать в геометрической прогрессии (впрочем, кто бы сомневался). Согласно последним оценкам IDC, в 2010 году объём цифровой информации, создаваемой и копируемой, достигнет 1,2 зеттабайта (то есть 1,2 миллиарда терабайтов). Масштаб этой цифры можно оценивать по-разному. Например, это 109 библиотек Конгресса или стопка DVD-дисков высотой до Луны1.

Примерно 75% созданной в мире информации — копии, и только 25% является оригинальными данными (домашнее HD-видео, фотографии, научные данные и т.д.).
Читать дальше →
Total votes 74: ↑67 and ↓7+60
Comments54

Новинки от HTC: Legend, Desire, HD mini. Upd: промо-ролики

Reading time2 min
Views1.6K
imageСегодня на Mobile World Congress в Барселоне состоялась презентация HTC. Если от Samsung ждали телефонов на Bada, от SE очередных попыток вернуть былую славу выпуском новых продуктов, то от HTC хотели всего и сразу, а именно: выпуск долгожданных новинок на базе Android (Legend и Bravo), предварительный анонс продуктов на Windows Phone 7 Series, обновления HTC Sense, полноценного мультитач в оболочке HTC Sense.

Но обо всем по порядку, сегодня HTC представила три новых смартфона. HTC Desire и HTC Legend — долгожданные новинки на базе Android 2.1, а также HTC HD mini — миниатюрная версия старшего брата HD2. Официальный сайт все еще молчит, но @HTC_Ru сегодня проявил небывалую прыть.

HTC Legend

Подробности под катом. Траффик!
Total votes 44: ↑38 and ↓6+32
Comments85

Реконструкция аварии рейса 1549

Reading time1 min
Views4.6K
Многие, наверное, помнят, фотографии и видео посадки самолета на воду в Нью-Йорке. Тогда самолет при взлете столкнулся со стаей птиц, в результате чего вышли из строя двигатели. К счастью, тогда все обошлось, и самолет успешно сел на воду.
Недавно я наткнулся на трехмерную реконструкцию событий с записями реальных переговоров между самолетом и диспетчерами.
читать дальше
Total votes 57: ↑48 and ↓9+39
Comments84

Lbook v3 new — небольшой обзор электронной книги

Reading time3 min
Views5.2K
Сегодня ко мне в руки попала такая штука, о которой все мечтали в 2000. Электронная книга.
Устройство, работающее по принципу электронных чернил. Это значит, что устройство не выцветает на солнце, требует внешнего источника света, имеет хорошую контрастность.
Ссылка на сайт производителя.
image
Технические характеристики:
Операционная система: Linux OS
Процессор: Samsung 2440 Arm 9 200 МГц
Память: 32 Mb SDRAM (ОЗУ) 2.0 Mb ROM (ПЗУ) 512 Mb (Flash Disk)
Экран: 6″, бумагоподобный (eINK VizPlex® 3-го поколения), черно-белый экран, 800×600 точек, 4 градации серого
Батареи, питание: 3,7 V Литий-ионная батарея емкостью 950 mАh модели Nokia (BL-5)
Слоты расширения: SD/MMC (до 16.0 Gb)
Коммуникации: USB 1.1
Мультимедиа: mp3-плеер, стерео-выход 3.5 мм
Управление: Программируемые кнопки
Масса: 240 г. (с батареей)
Габариты: 184х120.5х9.9 мм
Температура: Рабочая 0°С ~ 40°С, хранения -20°С ~ 55°С
Встроенные приложения: Программы чтения электронных книг, mp3-плеер, вьюер изображений (jpg).
Поддерживаемые форматы электронных книг:
pdf, doc, rtf, txt, fb2 (xml), djvu, wolf, html, chm – напрямую
и файлы Excel, ppt после преобразования в wolf-файл.
Читать дальше →
Total votes 53: ↑33 and ↓20+13
Comments228

Рассказ о том, как я возвращал магазину сломанный ноутбук

Reading time7 min
Views2.1K
Начитавшись интересных постов о том, что компьютеру и интернету можно научить практически любого, решил порадовать своих родителей на старости лет, купив им небольшой нетбук (возможность провести домой недорогой безлимитный интернет имеется). Т.к. и отец, и мать до этого особого опыта работы с компьютером не имели, к Windows\DOS даже привыкнуть не успели, решил взять нетбук с Linux, дабы оградить от вирусов. Полазав на Яндекс.маркете, решил взять одну из самых недорогих моделей — MSI Wind U100X-252RU. Заказал на сайте msimobile.

4 декабря. Покупка

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

7 декабря. Нетбук бракованный.

Вечером в понедельник решил немного настроить ноут. Оказалось, что стоит не какая-то Убунта, а Suse Linux Enterprise Desktop (нигде о том, какой именно Линукс, сказано не было). Удивился, но решил разобраться. Пока возился с настройками, заметил, что как-то чересчур греется. Ну да ладно, особо не обратил внимание. После продолжительной настройки решил загрузиться с bootable flash Mandriva 2010, и совершенно случайно нажал «Проверка оперативной памяти» (посредством всем известной Memtest86+). Через некоторое время ноут самопроизвольно выключился. Я запустил еще раз, результат тот же, выключился даже быстрее (меньше 5 минут). В конце концов выяснил, что:
а) Промежутки между перезагрузками\выключениями сокращаются с каждым последующим запуском
б) Перезагрузки\выключения бывают только при выполнении ресурсоемких приложений. Если просто включить ноут и поставить его стоять, то он так и останется работать без проблем.
Читать дальше →
Total votes 205: ↑187 and ↓18+169
Comments135

Раздаем 3G-интернет по всей квартире (Anydata ADU-300A и D-Link DIR-320)

Reading time5 min
Views3K
Единственная возможность у меня дома выйти в сеть интернет — подключиться к беспроводному CDMA Wellcom (местный аналог SkyLink'а). А так как компьютеров несколько — желательно раздать этот самый Wellcom для всех, независимо друг от друга. Отличнейшим решением становится использование wi-fi роутера D-Link DIR-320, имеющего USB-порт, с альтернативной прошивкой, позволяющей подключить к нему USB-модем AnyData ADU-300A.

Теоретически, этот вопрос уже неоднократно обсуждался на просторах необъятной сети, я же решил свести все в одну «инструкцию для ленивых».
Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments10

Самокат U3-X

Reading time2 min
Views854
image

Похожее на бумбокс приспособление, именуемое U3-X, Honda исполнила в форме восьмёрки, как известно, считающейся в Японии счастливой цифрой. Значение сухого названия аппарата не приводится, ясно лишь, что U означает и моноцикл (unicycle), и универсальность (universal). Концепция новинки – «гармония с людьми».
Читать дальше →
Total votes 25: ↑13 and ↓12+1
Comments33

Information

Rating
Does not participate
Location
Ставрополь, Ставропольский край, Россия
Date of birth
Registered
Activity