Как стать автором
Обновить

Компания ООО «ЦИТ» временно не ведёт блог на Хабре

Сначала показывать
  • Новые
  • Лучшие

Это не статья — просто пища для размышлений о том, как её написать

Блог компании ООО «ЦИТ» Исследования и прогнозы в IT Учебный процесс в IT
Перевод


Под катом перевод статьи Carsten Sørensen «This is not an article — just some food for thoughts on how to write one». В ней рассказывается на что нужно обращать внимание при написании научных статей. Если вы пишите диссертацию в области информационных технологий, то наверняка найдете что-то интересное для себя. Впрочем, и авторы популярных статей тоже могут найти что-то полезное.

В статье рассматриваются основные вопросы, которые необходимо себе задать при написании научной публикации. Разбираются интересные примеры статей. Наверное каждый слышал или использовал словосочетание «серебряная пуля» применительно к той или иной технологии. Но задумывались ли вы кто впервые использовал эту метафору в ИТ и почему она такая популярная? Также разбирается статья, в которой проводится аналогия между программистами и часовщиками. И те, и другие в своё время стояли у истоков новой технологии. С развитием часовой индустрии самих часовщиков практически не осталось. Интересно, что ждет программистов через 500 лет?
Читать дальше →
Всего голосов 9: ↑6 и ↓3 +3
Просмотры 3.8K
Комментарии 6

Теория категорий на JavaScript. Часть 1. Категория множеств

Блог компании ООО «ЦИТ» JavaScript *ООП *Математика *Функциональное программирование *
Tutorial


Абстракция – это одна из основных техник в ИТ. Любой язык программирования или моделирования, любая парадигма программирования (процедурная, функциональная, ООП, …) дают ответ на вопрос, как и от чего нужно абстрагироваться. Причём, адепты каждого подхода предлагают какой-то свой вариант абстракции.

Если вы хотите увидеть истинную, универсальную абстракцию, то вступайте в нашу… изучайте теорию категорий. В статье на примере категории множеств с картинками и JavaScript-кодом объясняются самые базовые понятия теории категорий: пределы, универсальное свойство. Рассматривается вычислительный аспект теории категорий.

Также немного говорится про классы, примеси и смеси в JavaScript.

Примеры из статьи можно посмотреть тут.
Читать дальше →
Всего голосов 48: ↑48 и ↓0 +48
Просмотры 31K
Комментарии 47

Создаем заглушки сервисов для интеграционного тестирования на Apache Camel (с использованием Scala DSL)

Блог компании ООО «ЦИТ» Тестирование IT-систем *Scala *API *Тестирование веб-сервисов *
Tutorial
image


Это третья статья об использовании Scala в тестировании. Сегодня будут рассмотрены примеры использования Apache Camel для создания тестовых заглушек, а также компонентов информационной системы.


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


Для разовой проверки интеграции мы бы использовали простое Java или Scala приложение, сценарий Apache JMeter или SoapUI. Но нам нужна система, которая постоянно работает, отвечает на запросы и не требует действий со стороны тестировщика — запустил и забыл. Для решения такой задачи мы можем создать приложение, основанное на фреймворке Apache Сamel.

Читать дальше →
Всего голосов 11: ↑11 и ↓0 +11
Просмотры 12K
Комментарии 3

Как написать SQL-запрос на Slick и не открыть портал в ад

Блог компании ООО «ЦИТ» Java *Scala *Функциональное программирование *
Tutorial


Slick — это не только фамилия одной из величайших солисток всех времён, но и название популярного Scala-фреймворка для работы с базами данных. Этот фреймворк исповедует «функционально-реляционный маппинг», реализует реактивные паттерны и обладает официальной поддержкой Lightbend. Однако отзывы разработчиков о нём, прямо скажем, смешанные — многие считают его неоправданно сложным, и это отчасти обоснованно. В этой статье я поделюсь своими впечатлениями о том, на что стоит обратить внимание при его использовании начинающему Scala-разработчику, чтобы в процессе написания запросов случайно не открыть портал в ад.
Читать дальше →
Всего голосов 16: ↑15 и ↓1 +14
Просмотры 15K
Комментарии 17

Центр ИТ на конференции DUMP-2016

Блог компании ООО «ЦИТ» Разработка веб-сайтов *Программирование *Java *

8 апреля 2016 г. в Екатеринбурге состоялась шестая конференция уральских разработчиков DUMP: Development, Usability, Management, Practice. Традиционно конференция собирает более 1000 профессионалов IT-отрасли со всей России. Здесь можно поделиться опытом, послушать интереснейшие доклады, познакомиться с коллегами по цеху и просто получить удовольствие от посещения мероприятия. Компания «Центр ИТ» выступила спонсором конференции, а также представила актуальный доклад на тему «Умный компилятор в Java 9: насколько он умён?»
Читать дальше →
Всего голосов 7: ↑5 и ↓2 +3
Просмотры 1.9K
Комментарии 0

Реализация мониторинга и интеграционного тестирования информационной системы с использованием Scalatest. Часть 2

Блог компании ООО «ЦИТ» Тестирование IT-систем *TDD *Scala *Тестирование веб-сервисов *
Tutorial


В предыдущей статье Реализация мониторинга и интеграционного тестирования информационной системы с использованием Scalatest мы говорили о создании проекта в Idea и написании простых тестов. В этой части мы рассмотрим некоторые особенности работы фреймворка, а также приемы для решения задач, возникающих в ходе написания тестов.
Более детально остановимся на специфике запуска тестов, разберем детали формирования отчетов, особенности работы с Selenium, а также обратим внимание на таймауты, ожидания, вызовы команд операционной системы, формирование jar файла с тестами
Читать дальше →
Всего голосов 13: ↑10 и ↓3 +7
Просмотры 5.8K
Комментарии 5

Введение в преобразование моделей (или преобразование, которое создаёт преобразование, которое создаёт модель)

Блог компании ООО «ЦИТ» Анализ и проектирование систем *Eclipse *IT-стандарты *UML Design *
Tutorial


Сегодня напишем преобразование, которое создаёт преобразование. Лично мне это напоминает «Начало» Кристофера Нолана, где люди видели сны во снах.

Это 7-ая статья цикла по модельно-ориентированной разработке. Я уже полгода пытаюсь написать статью с серьёзным примером разработки, управляемой моделями. Но каждый раз пониманию, что сначала необходимо рассказать о технологиях в целом, разобрать какой-нибудь очень простой пример. Так и в этот раз, хотел только начать статью с «Hello World», а в итоге этот простой пример вырос в здоровенную статью.
Читать дальше →
Всего голосов 12: ↑12 и ↓0 +12
Просмотры 12K
Комментарии 5

Разработка парсера, кодогенератора и редактора SQL с помощью EMFText

Блог компании ООО «ЦИТ» Java *Eclipse *SQL *Компиляторы *
Tutorial


Это 6-я статья цикла по разработке, управляемой моделями. В прошлой статье вы получили общее представление о разработке предметно-ориентированных языков с помощью EMFText. Настало время перейти от игрушечного языка к более серьёзному. Будет очень много рисунков, кода и текста. Если вы планируете использовать EMFText или подобный инструмент, то эта статья должна сэкономить вам много времени. Возможно, вы узнаете что-то новое о EMF (делегаты преобразований).

Подобно отважному хоббиту мы начнём свой путь с BNF-грамматики SQL, дойдём до жуткого дракона (метамодели) и вернёмся обратно к грамматике, но уже другой…
Читать дальше →
Всего голосов 18: ↑18 и ↓0 +18
Просмотры 11K
Комментарии 6

Введение в разработку предметно-ориентированных языков (DSL) с помощью EMFText

Блог компании ООО «ЦИТ» Разработка веб-сайтов *Java *Eclipse *Компиляторы *
Tutorial

Это 5-я статья цикла по разработке, управляемой моделями. В предыдущих статьях мы уже разобрались с метамоделями, валидацией моделей, некоторыми нотациями для моделей (диаграммы и таблицы). Всё это было в рамках пространства моделирования MOF. Сегодня мы построим мост в пространство моделирования EBNF – познакомимся с текстовой нотацией для MOF-моделей.
Читать дальше →
Всего голосов 12: ↑11 и ↓1 +10
Просмотры 13K
Комментарии 25

Руководство по поиску работы для MDA-специалиста (и немного про метод анализа иерархий, Xcore и Sirius)

Блог компании ООО «ЦИТ» Java *Анализ и проектирование систем *Eclipse *Графические оболочки *
Tutorial


Это 4-я статья цикла по разработке, управляемой моделями. В предыдущих статьях мы познакомились с OCL и метамоделями, Eclipse Modeling Framework и Sirius. Сегодня научимся описывать метамодели в текстовой нотации (а не в виде диаграмм как раньше) и познакомимся с табличным представлением моделей в Sirius. Сделаем это на примере кризиса среднего возраста и метода анализа иерархий. Возможно, это пригодится вам при разработке ИИ в играх, при принятии решений или в работе.
Читать дальше →
Всего голосов 13: ↑12 и ↓1 +11
Просмотры 21K
Комментарии 6

Реализация мониторинга и интеграционного тестирования информационной системы с использованием Scalatest. Часть1

Блог компании ООО «ЦИТ» Тестирование IT-систем *Scala *
Tutorial
image

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

Существует множество решений для автоматизации тестирования. Каждое их них имеет свои особенности, преимущества, недостатки, различаются порогом вхождения, удобством применения, эффективностью, универсальность, кругом задач, для которых хорошо подходит. Для задачи автоматизации интеграционного тестирования и мониторинга систем для одного из проектов удачным решением оказалось применение связки «Scala» + «ScalaTest» + «SBT»
Читать дальше →
Всего голосов 14: ↑14 и ↓0 +14
Просмотры 11K
Комментарии 14

Разработка визуального языка моделирования с помощью Sirius

Блог компании ООО «ЦИТ» Анализ и проектирование систем *Eclipse *Графические оболочки *UML Design *
Tutorial


Это третья статья цикла, посвященного разработке, управляемой моделями. В предыдущих статьях мы разбирались с OCL и метамоделями, создавали свою метамодель для языка Anchor с древовидным редактором. Сегодня сделаем редактор Anchor-диаграмм.
Читать дальше →
Всего голосов 12: ↑12 и ↓0 +12
Просмотры 12K
Комментарии 1

Разработка метамодели с помощью Eclipse Modeling Framework (и немного про моделирование данных)

Блог компании ООО «ЦИТ» Анализ и проектирование систем *Eclipse *UML Design *
Tutorial


Это вторая статья цикла, посвященного разработке, управляемой моделями. Сегодня мы создадим метамодель, основанную на метаметамодели Ecore. Вскользь затронем моделирование данных, а именно Anchor, 6НФ и концептуальное моделирование.
Читать дальше →
Всего голосов 17: ↑16 и ↓1 +15
Просмотры 26K
Комментарии 12

SpiderTest: используй силу CI

Блог компании ООО «ЦИТ» Разработка веб-сайтов *Тестирование IT-систем *Тестирование веб-сервисов *


Эта статья является продолжением SpiderTest: Автотесты своими руками. Однако, первая часть обзора на это приложение была больше ориентирована на десктопный интерфейс. В этой же хотелось бы поговорить об экзотике: связи тестов с CI-server’ом и GitHub.
Может возникнуть вопрос: «Зачем вообще все это нужно? Мы написали тест, прогнали его в нужных браузерах и нам достаточно» и в целом он довольно обоснованный! Действительно, для обычного тестирования, запуска автотестов из самого приложения SpiderTest в большинстве случаев бывает достаточно. Но что делать, если мы хотим запустить тесты в IE9-11, Opera, FireFox и Google Chrome разных версий? На одной машине это сделать невозможно, а создавать кучу виртуальных машин и запускать по очереди в каждой утомительно (и вообще это костыль).
А если мы хотим провести дымовое тестирование? Или хотим запускать тесты не только в разных браузерах, но и в разных операционных системах (Windows OS, Linux OS)?
Самый оптимальный ответ на поставленные выше вопросы – использовать сервер непрерывной интеграции. В этой статье я рассмотрю настройку SpiderTest и Jenkins. Справедливости ради стоит сказать, что запускать тесты можно и на bamboo, и на teamcity, но Jenkins прост и бесплатен, поэтому рассмотрим его.
Читать дальше →
Всего голосов 9: ↑8 и ↓1 +7
Просмотры 7.4K
Комментарии 0

Управление разработкой в проектах по созданию сложных программных систем. Опыт использования MS Project и Team Foundation Server

Блог компании ООО «ЦИТ» Управление проектами *Agile *
Многие программисты по мере своего развития выбирают для себя стезю управления разработкой, с сожалением ограничивая себя в творческом процессе изучения новых языков программирования и технологий.

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

Итак, каждый из руководителей знает, что такое диаграмма Ганта, и каждый пользовался MS Project. Ещё больше читателей, программистов, использует систему управления задачами. И практически все программисты-не одиночки используют систему управления исходным кодом.

Перед нами стоит вполне прагматическая задача обеспечить единый процесс разработки, когда при учёте каждого нового изменения требований можно наглядно увидеть изменение параметров проекта.
Читать дальше →
Всего голосов 11: ↑10 и ↓1 +9
Просмотры 9.6K
Комментарии 10

Объектный язык ограничений (и немного про метамодели)

Блог компании ООО «ЦИТ» Анализ и проектирование систем *Eclipse *UML Design *ООП *
Tutorial
image

На наш взгляд, объектный язык ограничений (Object Constraint Language, OCL) должен знать каждый, кто занимается моделированием или кому интересна модельно-ориентированная разработка. Однако, он незаслуженно обделен вниманием в сети вообще, а, уж, в русскоязычном сегменте информации просто мизер. Что это за язык и зачем он нужен, описано в этой статье. Статья не претендует на фундаментальность, полноту охвата, точность определений и т.п. Её задача: 1) на простых примерах познакомить с OCL тех, кто никогда не слышал об этом языке, 2) а для тех, кто о нём слышал, возможно, открыть новые способы его применения.
Читать дальше →
Всего голосов 16: ↑16 и ↓0 +16
Просмотры 31K
Комментарии 20

SpiderTest: автотесты своими руками

Блог компании ООО «ЦИТ» Разработка веб-сайтов *Тестирование IT-систем *Тестирование веб-сервисов *


Довольно часто среди начинающих (и даже не очень) тестировщиков приходится слышать: «вот если бы я умел писать автотесты, я бы…». Как правило этим «если бы» ребята и ограничиваются. На вопрос: «А почему не учишься писать?» чаще всего отвечают: «Программирование это не мое». Действительно, тем для кого программирование темный лес, погрузиться в мир автотестов довольно затруднительно, ведь скрипт сам себя не напишет. В этой статье я хотел бы поговорить о том, как из ручного тестировщика стать крутым автотестером.
Читать дальше →
Всего голосов 12: ↑12 и ↓0 +12
Просмотры 33K
Комментарии 32

Новый взгляд на MindMap в тестировании

Блог компании ООО «ЦИТ» Тестирование IT-систем *Тестирование веб-сервисов *Тестирование мобильных приложений *


Любой маломальски опытный QA-инженер (или в простонародье тестировщик) сможет сходу назвать пяток различных видов тестов: удобство пользователя, дымовое, нагрузочное, регрессионное, конфигурационное, тестирование взаимодействия и т.д. Какие-то виды тестирования используются редко, например нагрузочное, почаще применяется тестирование удобства пользователя, о таких экзотических видах, как конфигурационное тестирование или тестирование взаимодействия, многие вообще слышали только в книгах Канера и Фолка «Тестирование программного обеспечения» и никогда не использовали в работе. Но есть вид тестирования, про который можно сказать совершенно четко: его делал каждый. Я говорю о регрессионном функциональном тестировании. Этот вид теста, пожалуй, является одним из наиболее важных, нудных и трудоемких.

Читать дальше →
Всего голосов 19: ↑16 и ↓3 +13
Просмотры 27K
Комментарии 9

Техническое собеседование: пять способов отпугнуть соискателя / пять способов взбесить интервьюера

Блог компании ООО «ЦИТ» Разработка веб-сайтов *Программирование *


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

К сожалению, универсальных правил прохождения и проведения собеседования нет и быть не может, потому что сотрудников подбирают не только по их техническим навыкам и личностным качествам, но и по совпадению с некоторым (зачастую неявным и очень субъективным) «профилем», который, по мнению интервьюеров, вписывается в их команду или компанию. Что же касается руководств из серии «как правильно проходить собеседования», то они обычно вызывают не меньше боли в комментариях, потому что очень субъективны и обязательно задевают чьи-нибудь болевые точки.

За свою профессиональную карьеру мне довелось побывать по обе стороны баррикад, хотя, пожалуй, проводить технические собеседования приходилось всё же немного больше, чем проходить их. Но за это время у меня накопилось некоторое количество «пунктиков», которые отпугивают меня во время технического интервью и сразу в моём сознании ставят крест на дальнейшей беседе. Об этом мне и хотелось рассказать — с позиций интервьюера и соискателя. Хочу сразу оговориться, что статья отражает мои личные субъективные впечатления и не претендует на «руководство по прохождению собеседований». С другой стороны, это не минутный всплеск ярости от неудавшегося интервью, а давно взвешенный набор тех критериев, которые, хотя и по негативному принципу, позволяют мне отсеять варианты, либо самому не отпугнуть потенциально подходящего соискателя.

А что на собеседованиях раздражает или напрягает вас? Поделитесь в комментариях.
Читать дальше →
Всего голосов 67: ↑45 и ↓22 +23
Просмотры 99K
Комментарии 149

Декомпозиция при управлении масштабными проектами в ИТ отрасли

Блог компании ООО «ЦИТ» Управление проектами *

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

Портфель проектов -> Программа проектов -> Проект.

Подобная декомпозиция позволяет сбалансировать управленческие ресурсы и виды деятельности по тем или иным характеристикам и определить простые и понятные организационные структуры управления, полномочия и уровни ответственности.
Читать дальше →
Всего голосов 10: ↑10 и ↓0 +10
Просмотры 5.5K
Комментарии 6
1