Pull to refresh
18
0
Потураев Андрей @Dronopotamus

Lead software developer

Send message
Привет, Хабр! Меня зовут Алексей Чеканов, я технический директор ЦИАН. Разработка определяет успехи нашего проекта, и чем дальше, тем заметнее. Чтобы расти, нам нужно больше IT-специалистов — и для решения нетривиальных задач, и для поддержки существующих сервисов. Ниже я расскажу, как устроен отдел разработки в ЦИАН, чем он занимается и что ждет того, кто к нам попадет.
Подробности – под катом
Total votes 34: ↑34 and ↓0+34
Comments43

Enterprise DevОps: как в большой компании собирают микросервисы

Reading time12 min
Views9.2K

Всем привет!


Компания Netсracker уже много лет разрабатывает и поставляет enterprise-приложения для мирового рынка операторов связи. Разработка таких решений достаточно сложна: в проектах участвуют сотни людей, а количество активных проектов исчисляется десятками.


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


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

Читать дальше →
Total votes 10: ↑9 and ↓1+8
Comments4

Антипаттерны тестирования ПО

Reading time31 min
Views93K

Введение


Есть несколько статей об антипаттернах разработки ПО. Но большинство из них говорят о деталях на уровне кода и фокусируются на конкретной технологии или языке программирования.

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

Терминология


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


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

Читать дальше →
Total votes 48: ↑48 and ↓0+48
Comments31

Автоматизация тестирования Web-приложений

Reading time13 min
Views107K


Автоматизация тестирования – место встречи двух дисциплин: разработки и тестирования. Наверное поэтому, я отношу эту практику к сложным, но интересным.

Путем проб и ошибок мы пришли к следующему технологическому стеку:
  1. SpecFlow (опционально): DSL
  2. NUnit: тестовый фреймворк
  3. PageObject + PageElements: UI-абстракиця
  4. Контекст тестирования (информация о целевом окружении, пользователях системы)
  5. Selenium.WebDriver

Для запуска тестов по расписанию мы используем TFS 2012 и TeamCity.
В статье я опишу, как мы к этому пришли, типовые ошибки и пути их решения.
Читать дальше →
Total votes 39: ↑29 and ↓10+19
Comments21

Эталонное приложение на базе контейнеров и архитектуры микросервисов

Reading time7 min
Views47K
Хабр, привет. Сегодня рассказываем вам об эталонном кроссплатформенном приложении .NET Core от Microsoft, созданном на основе упрощенной архитектуры микросервисов и контейнеров Docker. В статье поделимся большим количеством технических данных, документацией, книгами по теме, а также полезными ссылками. Ну и, конечно, видео, для лучшего понимания. Присоединяйтесь!

Читать дальше →
Total votes 39: ↑34 and ↓5+29
Comments7

Технология блокчейн в новой бизнес модели от маленькой кондитерской

Reading time11 min
Views15K
Этот лонгрид об истории одного маленького бизнеса с большими амбициями, а также о том, через что мы прошли и чему научились за 7 месяцев с момента, когда мы услышали о таких словах, как блокчейн и ICO и до момента публикации двух собственных смарт контрактов в сети Ethereum.

Иллюстрация из книги Евгения Федотова
Иллюстрация из книги Евгения Федотова
Читать дальше →
Total votes 23: ↑15 and ↓8+7
Comments17

Анализируем локальные функции в C# 7

Reading time9 min
Views31K
Добавление локальных функций в языке C# первоначально для меня было излишним. Прочитав статью в блоге SergeyT, я понял, что эта фича действительна нужна. Итак, кто сомневается в надобности локальных функций и кто еще не знает что это, вперед за знаниями!

Локальные функции — это новая возможность в C# 7, которая позволяет определять функцию внутри другой функции.
Читать дальше →
Total votes 36: ↑35 and ↓1+34
Comments19

Подборка полезных материалов: Микросервисы на .NET Core

Reading time3 min
Views22K
Хабр, привет! Сегодня хотим поделиться полезным контентом по разработке микросервисов на .NET Core: доклады с конференции .NET Conf 2017, Net Core microservices on Service Fabric, курс Microsoft Virtual Academy для новичков, список обучающих материалов, а также пламенная сибирская конференция D2D DevPRO’17. Обо всем этом читайте после ката.


Читать дальше →
Total votes 19: ↑17 and ↓2+15
Comments1

Digital Transformation: Начало

Reading time7 min
Views24K
Привет, Хабр! Сегодня мы поговорим с вами о цифровой трансформации (digital transformation), том самом buzzword, про который все говорят, но никто не знает как это делать. Это первая статья из цикла, в которой будет больше теории. Под катом вы узнаете о том, чем трансформация отличается от автоматизации на примере бизнеса бабушки, найдёте топ-10 кейсов от Microsoft, а также расскажем немного о новой программе Tech Acceleration.


Читать дальше →
Total votes 39: ↑37 and ↓2+35
Comments2

Бесплатная YouTube-трансляция DotNext 2017 Moscow: Перформанс .NET, AI, микросервисы и немного F#

Reading time12 min
Views14K

Говорят, бесконечно можно смотреть на три вещи: как горит огонь, как течет вода и как работают другие люди. То есть, идеальный объект для наблюдений — прямая трансляция большой конференции.


И кстати, у нас есть для вас одна такая. В это воскресенье и понедельник проходит DotNext 2017 Moscow — крупнейшая в России конференция, посвященная разработке на платформе .NET. Три десятка спикеров выступят с докладами о настоящем и будущем платформы .NET, об оптимизации производительности и многопоточности, о внутреннем устройстве платформы .NET и CLR, о профилировании и отладке .NET-кода, и так далее.


И у вас есть возможность поучаствовать в этом — без необходимости куда-то лететь или ехать через полгорода, на YouTube, бесплатно. Как именно — читайте дальше.


Total votes 53: ↑51 and ↓2+49
Comments8

Знаки табуляции или пробелы: решаем с помощью Visual Studio

Reading time3 min
Views56K
Привет, Хабр! Культурные воины продолжаются, люди сражаются по разные стороны баррикад, пытаясь решить: tabs or spaces. На эту же тему мы нашли интересную статью Скотта Хансельмана, в которой он рассказывает про инструмент, решающий это спор, EditorConfig в Visual Studio. Всех интересующихся прошу под кат.


Читать дальше →
Total votes 24: ↑18 and ↓6+12
Comments15

Sharing общих сборок между процессами и доменами в IIS

Reading time8 min
Views6.7K

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


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

Читать дальше →
Total votes 23: ↑22 and ↓1+21
Comments9

Запуск контейнеров с Ubuntu на Windows

Reading time5 min
Views26K
Привет, Хабр! Неделю назад я рассказывал вам о новой возможности, которая доступна в предварительных выпусках Docker и Windows Server/Windows 10 — запуск Linux контейнеров c Hyper-V изоляцией, аналогично Windows контейнерам с Hyper-V изоляцией. В этом пошаговом руководстве речь пойдёт про аналогичный запуск контейнеров с Ubuntu в этом окружении.


Читать дальше →
Total votes 15: ↑10 and ↓5+5
Comments31

Анализ потока данных в реальном времени с помощью Azure Stream Analytics

Reading time4 min
Views6.7K


Недавно Microsoft анонсировала предварительную версию нового сервиса – Azure Stream Analytics, созданного для потоковой обработки данных в режиме близкого к реальному времени.

Текущая версия Azure Stream Analytics подключается к Azure Event Hub и Azure Blob Storage для получения потока данных (носят название Inputs), а также к Event Hubs, Blob Storage, Azure SQL Database для записи результатов (Outputs). Обработчик потока (stream processor) проектируется с использованием языка похожего на SQL, что позволяет задавать обработку и преобразование потоковых данных в достоверную информацию в реальном времени.
Читать дальше →
Total votes 18: ↑12 and ↓6+6
Comments0

Ресурсное планирование. Части 2 и 3. Что зависит от ресурсного плана. От чего зависит ресурсный план

Reading time9 min
Views19K
image

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

Читать дальше →
Total votes 10: ↑9 and ↓1+8
Comments6

Утилиты для Windows Azure на каждый день!

Reading time5 min
Views11K
Решила поделиться с Хабропользователями утилитами, которыми пользуюсь при работе с Windows Azure для отладки или быстрого анализа ситуации.


Утилиты: комплексные (Windows Azure Tools для Microsoft Visual Studio, Windows Azure Management Studio от Cerebrata); для работы с хранилищем (CloudBerry Explorer for Azure Blob Storage, Azure Storage Explorer, CloudXplorer, Azure Throughput Analyzer, AzCopy); для работы с Service Bus (Service Bus Explorer); для работы с SQL Database (SQL Database Migration Wizard) и кроссплатформенные для работы из командой строки Windows, Linux, Mac (Windows Azure PowerShell, Command Line Interface (CLI)).
Дальше
Total votes 38: ↑26 and ↓12+14
Comments4

Как запустить Java-приложение с несколькими версиями одной библиотеки в 2017 году

Reading time18 min
Views14K

Как запустить Java-приложение с несколькими версиями одной библиотеки в 2017 году


КДПВ, ничего интересного


Хочу поделиться решениями одной проблемы, с которой мне пришлось столкнуться, плюс исследование данного вопроса в контексте Java 9.


дисклеймер

Писатель из меня ещё тот (пишу в первый раз), поэтому закидывание вкусными помидорами с указанием причин только приветствуется.
Сразу договоримся, что статья не годится в качестве руководства по:


  • Java 9
  • Elasticsearch
  • Maven

Если по последним именам информации в сети полно, то по первому… со временем появится, по крайней мере здесь есть необходимая информация.


Представим себе простую ситуацию: разворачиваем кластер Elasticsearch и загружаем в него данные. Мы пишем приложение, которое занимается поиском в этом кластере. Поскольку постоянно выходят новые версии Elasticsearch, мы привносим в кластер новые проблемы фичи с помощью rolling upgrade. Но вот незадача — в какой-то момент у нас сменился формат хранимых данных (например, чтобы максимально эффективно использовать какую-то из новых фич) и делать reindex нецелесообразно. Нам подойдёт такой вариант: ставим новый кластер на этих же машинах — первый кластер со старой схемой данных остаётся на месте только для поиска, а поступающие данные загружаем во второй с новой схемой. Тогда нашему поисковому компоненту потребуется держать на связи уже 2 кластера.

Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments2

Hello, TensorFlow. Библиотека машинного обучения от Google

Reading time11 min
Views229K

tensorflow


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


  • Основная библиотека подходит для широкого семейства техник машинного обучения, а не только для глубинного обучения.
  • Линейная алгебра и другие внутренности хорошо видны снаружи.
  • В дополнение к основной функциональности машинного обучения, TensorFlow также включает собственную систему логирования, собственный интерактивный визуализатор логов и даже мощную архитектуру по доставке данных.
  • Модель исполнения TensorFlow отличается от scikit-learn языка Python и от большинства инструментов в R.

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


Как работает TensorFlow? Давайте попробуем разобраться, посмотреть и понять, как работает каждая часть. Мы изучим граф движения данных, который определяет вычисления, через которые предстоит пройти вашим данным, поймем, как тренировать модели градиентным спуском с помощью TensorFlow, и как TensorBoard визуализирует работу с TensorFlow. Наши примеры не помогут решать настоящие проблемы машинного обучения промышленного уровня, но они помогут понять компоненты, которые лежат в основе всего, что создано на TensorFlow, в том числе того, что вы напишите в будущем!

Читать дальше →
Total votes 71: ↑68 and ↓3+65
Comments12

Прототипирование на чистовую в Adobe Fireworks

Reading time4 min
Views24K
Я считаю, что Adobe Fireworks самая недооцененная программа для прототипирования интерфейсов. В некоторых подразделениях нашей компании именно Fireworks является основным инструментом для юзабилити специалистов. При этом мы почти не используем анимационные возможности программы. В этой статье я хочу рассказать, почему мы считаем эту программу лучшей именно для рисования интерфейса.
Читать дальше →
Total votes 26: ↑23 and ↓3+20
Comments46

Кнопочное мышление против целостного IT-продукта

Reading time10 min
Views53K

Эта статья — выражение моей личной боли. Кнопочные решения портят мне жизнь, я трачу время на споры и обоснования.



Когда мы общаемся с коллегами, заказчиками или пользователями, я использую фразу «кнопочное мышление». Что я имею ввиду под этим термином? Текущая статья — развернутый ответ на этот вопрос.



Синонимами кнопочного мышления я считаю «экранное мышление» или преждевременную концептуализацию. Я раскрою мышление кнопками на десятке примеров из практики. А здесь для начала история, которая наверняка случалась с каждым. Представьте к вам приходят и рассказывают о падении конверсии на сайте. А вы ему сразу: «Давайте кнопку покупки сделаем побольше и поярче!». Что произошло? В бизнесе возникла проблема. Вместо погружения в детали, вместо исследования причин, вы играете с размерами кнопки. Вот в таких случаях я говорю о кнопочном мышлении.



Для тех, кто любит смотреть, а не читать, есть видео и слайды.


Читать дальше →
Total votes 39: ↑31 and ↓8+23
Comments26
1

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity