<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:yandex="http://news.yandex.ru" xmlns:turbo="http://turbo.yandex.ru" xmlns:media="http://search.yahoo.com/mrss/">
  <channel>
    <title>Статьи</title>
    <link>https://ardecs.com</link>
    <description/>
    <language>ru</language>
    <lastBuildDate>Tue, 02 Dec 2025 12:59:45 +0300</lastBuildDate>
    <item turbo="true">
      <title>Selenide. Selenium WebDriver</title>
      <link>https://ardecs.com/tpost/iie59en4o1-selenide-selenium-webdriver</link>
      <amplink>https://ardecs.com/tpost/iie59en4o1-selenide-selenium-webdriver?amp=true</amplink>
      <pubDate>Tue, 27 Aug 2024 14:18:00 +0300</pubDate>
      <enclosure url="https://static.tildacdn.com/tild3231-6163-4430-a534-623433333634/selenide.png" type="image/png"/>
      <description>В ходе работы над системой автоматизации полиграфического предприятия Ardecs Print Activity, мы столкнулись с необходимостью автоматизации тестов.</description>
      <turbo:content><![CDATA[<header><h1>Selenide. Selenium WebDriver</h1></header><figure><img alt="" src="https://static.tildacdn.com/tild3231-6163-4430-a534-623433333634/selenide.png"/></figure><div class="t-redactor__text">В ходе работы над системой автоматизации полиграфического предприятия <strong style="color: rgb(0, 0, 0);"><u><a href="https://ardecs.com/products/ardecs-print-activity/" style="color: rgb(0, 0, 0);">Ardecs Print Activity</a></u></strong>, мы столкнулись с необходимостью автоматизации тестов. Наряду с использованием <strong>Selenium</strong> <strong>WebDriver</strong>, было принято решение изучить возможности фреймворка для автоматизированного тестирования веб-приложений на основе Selenium WebDriver - <strong>Selenide</strong>.<br /><br />Selenium WebDriver - один из самых популярных инструментов для написания приёмочных/интеграционных тестов. Написание UI тестов - непростая задача, есть ряд проблем, с которыми сталкиваются все без исключения, прежде всего это Ajax-запросы, динамические страницы и таймауты. Selenide может помочь решить эти проблемы: он позволяет быстро и просто использовать Selenium WebDriver при написании тестов, сосредоточившись на логике, а не суете с браузером.<br /><br />Ключевые особенности Selenide:<br /><br /><ul><li data-list="bullet">Лаконичный синтаксис в духе jQuery</li><li data-list="bullet">Автоматическое решение большинства проблем с Ajax, ожиданием и таймаутами</li><li data-list="bullet">Управление жизнедеятельностью браузера</li><li data-list="bullet">Автоматическое создание скриншотов</li></ul><br />Selenide предоставляет дополнительные методы для действий, которые невозможно сделать одной командой Selenium WebDriver, например, выбор радио-кнопки, выбор элемента из выпадающего списка, создание снимка экрана, очистка кэша браузера.<br /><br />Наличие AJAX-запросов может доставить много неудобств при создании автоматизированных UI-тестов. В то время как Selenium предлагает богатый API для ожидания разного рода событий, Selenide просто предлагает не заморачиваться. Если нужно проверить, что кнопка зелёная, то Selenide просто подождёт, пока она станет зелёной. По умолчанию таймаут конфигурируется 4 секунды.</div><pre class="t-redactor__highlightcode"><code data-lang="{$la}">@Test
public void pageUsingAjax() {
  $(&quot;#username&quot;).shouldBe(visible);   // ждёт, пока элемент появится
  $(&quot;#username&quot;).shouldHave(text(&quot;Hello, Johny!&quot;)); // ждёт, пока текст элемента изменится на &quot;Hello, Johny!&quot;
  $(&quot;#login-button&quot;).shouldHave(cssClass(&quot;green-button&quot;)); // ждёт, пока кнопка станет зелёной
  $(&quot;#login-button&quot;).shouldBe(disabled); // ждёт, пока кнопка станет неактивной
  $(&quot;.error&quot;).shouldNotBe(visible);  // ждёт, пока элемент исчезнет
  $(&quot;.error&quot;).should(disappear);     // попробуйте-ка сделать это с Selenium в одну строчку!
}</code></pre><div class="t-redactor__text">В Selenide с использованием JUnit или TestNG возможно автоматически делать скриншоты добавлением буквально одной строки. Подходит это не только для ошибочных тестов, но и для всех тестов вообще.</div><pre class="t-redactor__highlightcode"><code data-lang="{$la}">@Rule
public ScreenShooter makeScreenshotOnFailure = ScreenShooter.failedTests();

@Rule
public ScreenShooter makeScreenshotOnEveryTest = ScreenShooter.failedTests().succeededTests();</code></pre><div class="t-redactor__text">Библиотека Selenide взяла свое название от химического элемента Селен. А селениды - это соединения Селена с другими элементами.<br /><br />Selenide = Selenium + JUnit; Selenide = Selenium + TestNG; Selenide = Selenium + ScalaTest; Selenide = Selenium + что угодно.<br /><br />Selenide используется многими фирмами в реальных проектах, продукт поддерживается и развивается.<br /><br />Применение <strong>Selenide</strong> в работе с <strong style="color: rgb(0, 0, 0);"><u style="color: rgb(0, 0, 0);"><a href="https://ardecs.com/products/ardecs-print-activity/" style="color: rgb(0, 0, 0);">Ardecs Print Activity</a></u></strong> значительно упростило и ускорило тестирование в процессе разработки. Полученный опыт позволяет проводить качественное тестирование в других наших проектах.</div>]]></turbo:content>
    </item>
    <item turbo="true">
      <title>Ping-pong programming</title>
      <link>https://ardecs.com/tpost/gxboagapy1-ping-pong-programming</link>
      <amplink>https://ardecs.com/tpost/gxboagapy1-ping-pong-programming?amp=true</amplink>
      <pubDate>Fri, 02 Feb 2024 14:59:00 +0300</pubDate>
      <enclosure url="https://static.tildacdn.com/tild3438-3637-4635-a635-356665376539/4.png" type="image/png"/>
      <description>В октябре 2015 г. сотрудники компании «Ардекс» принимали участие в известной Java-конференции Joker 2015.</description>
      <turbo:content><![CDATA[<header><h1>Ping-pong programming</h1></header><figure><img alt="" src="https://static.tildacdn.com/tild3438-3637-4635-a635-356665376539/4.png"/></figure><div class="t-redactor__text">В октябре 2015 г. сотрудники компании «Ардекс» принимали участие в известной Java-конференции <strong style="color: rgb(0, 0, 0);"><u><a href="https://ardecs.com/news/18-10-2015/" style="color: rgb(0, 0, 0);">Joker 2015</a></u></strong>. Это место, где собираются сотни программистов со всех уголков русскоязычного Java-мира, затрагиваются самые актуальные темы в сфере информационных технологий. Программа конференции состоит из докладов и тренингов от Java-экспертов.<br /><br />Среди прослушанных докладов нашим коллегам особенно запомнилось выступление А. Кекса и А. Солнцева, которые известны по своим докладами о <strong>Java</strong>, TDD и способах создания ПО. Эксперты рассказывали о «ping-pong programming» - технике написания кода, совмещающей элементы TDD и парного программирования.<br /><br />Данная техника интересна тем, что код создается парами людей, выполняющих одну задачу. Участники разделяют одно рабочее место: в паре один является «ведущим», т.е. управляет компьютером и, в основном, думает над кодированием в деталях, а другой («штурман») сосредоточен на картине в целом и непрерывно просматривает код, производимый первым программистом. При этом задача делится на небольшие шаги. Выполнение каждого шага включает в себя написание теста первым программистом и написание функционала вторым, затем происходит смена ролей.<br /><br />Живая демонстрация техники «ping-pong programming», в исполнении Антона Кекса и Антона Архипова с одной из встреч <u style="color: rgb(0, 0, 0);"><a href="http://devclub.eu/" style="color: rgb(0, 0, 0);">DevClub</a></u>:</div><iframe width="100%" height="100%" src="https://www.youtube.com/embed/n1tOBnSpyWc" frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen=""></iframe><div class="t-redactor__text">Вдохновившись идеей «ping-pong programming»,  <u style="color: rgb(0, 0, 0);"><a href="https://ardecs.com/about-us/" style="color: rgb(0, 0, 0);">команда программистов «Ардекс»</a></u><a href="https://ardecs.com/about-us/" style="color: rgb(0, 0, 0);"> </a>решила попробовать парное программирование на практике. Поскольку это был первый опыт, участники взяли простую задачу - написать эмулятор черепашки в лабиринте, которая может двигаться в четырех направлениях. Первые шаги дались с небольшими трудностями: приходилось преодолевать привычное желание работать одному. И это не удивительно, для успешного применения «пинг-понг программирования» надо учитывать психологическую совместимость партнеров, тем не менее участинки проявили интерес и соперничество. В процессе работы обсуждались интересные идеи и предложения, писались тесты, поэтапно создавалась основная функциональность системы. В результате применения TDD получилось приложение, его функциональность была многократно проверена на уровне unit-тестов, созданные блоки отвечают принципам <strong><u style="color: rgb(0, 0, 0);"><a href="https://ru.wikipedia.org/wiki/SOLID_%28%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BD%D0%BE-%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%29" style="color: rgb(0, 0, 0);">SOLID</a></u></strong>. По словам команды, работа в паре позволила им поделиться своими соображениями о создаваемом коде и требованиями к его оформлению, и совместная разработка принесла немало положительных эмоций.<br /><br />Из вышесказанного, следует что «ping-pong programming» - эффективная практика написания кода. Рекомендуем всем программистам попробовать применить его в процессе разработки ПО.</div>]]></turbo:content>
    </item>
    <item turbo="true">
      <title>Как тестируют в Google?</title>
      <link>https://ardecs.com/tpost/3cffv9gcz1-kak-testiruyut-v-google</link>
      <amplink>https://ardecs.com/tpost/3cffv9gcz1-kak-testiruyut-v-google?amp=true</amplink>
      <pubDate>Fri, 09 Feb 2024 15:06:00 +0300</pubDate>
      <enclosure url="https://static.tildacdn.com/tild3763-3335-4636-a130-393364636333/__.jpg" type="image/jpeg"/>
      <description>На прошлой неделе, специалист по тестированию компании «Ардекс», выступил с докладом.l</description>
      <turbo:content><![CDATA[<header><h1>Как тестируют в Google?</h1></header><figure><img alt="" src="https://static.tildacdn.com/tild3763-3335-4636-a130-393364636333/__.jpg"/></figure><div class="t-redactor__text">На прошлой неделе, специалист по тестированию компании <u style="color: rgb(0, 0, 0);"><a href="https://ardecs.com/" style="color: rgb(0, 0, 0);">«Ардекс»</a></u>, выступил с докладом на тему: «Как тестирует в <strong>Google</strong>?», основываясь на материале книги «How Google Tests Software» 2014г.<br /><br />Книга «How Google Tests Software» (Как тестируют в Google) рассказывает, как тестировщики в Google пришли к пониманию, что нужно меняться, как строили новые процессы, каких результатов достигли и как видят дальнейшее развитие тестирования.<br /><br />Подход Google к <strong>тестированию</strong> на первый взгляд парадоксален: во всей компании меньше выделенных тестировщиков, чем у многих конкурентов в одной команде разработки. В Google вся ответственность за качество лежит на тех, кто пишет код. Каждый, кто пишет код в Google, — уже немного тестировщик, а качество — это проблема всего коллектива. Каждый инженер является и тестировщиком. С одной стороны, качество и не создается тестированием, с другой — без тестирования сделать качественный продукт невозможно. Нужно перестать рассматривать разработку и тестирование по отдельности. <strong>Тестирование и разработка</strong> идут рука об руку. Тестирование не отдельная практика, это часть самого процесса разработки. Одним только тестированием качества не добиться. Рецепт получения высокого качества: смешивать разработку и тестирование, пока они не станут единой субстанцией.<br /><br />Тестировщиков в классическом понимании в Google мало. В Google считают, что лучше всего протестирует свой код тот, кто его написал, т.е. разработчик. Разработчики больше всех заинтересованы в коде без багов. Вот почему Google обходится таким небольшим числом тестировщиков — за качество отвечают разработчики. В итоге качество достигается предотвращением, а не выявлением багов. Качество — часть разработки, а не тестирования. В Google тестирование определяет, насколько хорошо они предотвращают ошибки. Подход Google к созданию продуктов подразумевает слияние разработки и тестирования.<br /><br /><strong>Google</strong> выделили три основных роли команды:<br /><br /><ul><li data-list="bullet">Разработчик (Software Engineer, SWE) - пишет код функциональности приложений, создает проектную документацию, определяет структуры данных и общую архитектуру, большую часть времени пишет код и проводит код-ревью. Разработчик пишет много тестового кода, например во время юнит-тестирования, отвечает за качество всего кода, к которому он прикасается: пишет, исправляет или вносит изменения.</li><li data-list="bullet">Разработчик в тестировании (Software Engineer in Test, SET) - фокусируется на тестируемости кода и создании инфраструктуры тестирования, анализирует архитектуру, уделяет особое внимание качеству кода и рискам проекта, выполняет рефакторинг, чтобы сделать код тестируемым, пишет фреймворки юнит-тестирования и средства автоматизации.</li><li data-list="bullet">Инженер по тестированию (Test Engineer, TE<em>)</em> - на первом месте находятся пользователи и только на втором — разработчики. Инженеры по тестированию ориентированы на «человеческую сторону»: как пользователи будут взаимодействовать с приложением и какие проблемы при этом могут возникнуть.</li></ul><br />В Google вместо того чтобы разделять тестирование на модульное, интеграционное и системное, делят все тесты на малые, средние и большие, исходя из их охвата, а не размера.<br /><br /><ul><li data-list="bullet">Малые тесты - проверяют работу каждой единицы кода независимо от ее окружения: отдельные классы или небольшие группы связанных функций. У малых тестов не должно быть внешних зависимостей и они чаще всего автоматизируются. Выполняются быстро, за несколько секунд и меньше.</li><li data-list="bullet">Средние тесты - проверяют взаимодействие между двумя или более модулями приложения. Такие тесты обычно автоматизируются и запускаются реже. Фокусируются на том, чтобы проверить взаимодействие между функциями, которые вызывают друг друга или контактируют напрямую.</li><li data-list="bullet">Большие тесты - покрывают не меньше трех функций. Это реальные пользовательские сценарии, которые используют реальные источники данных, а их выполнение может занять несколько часов и даже больше.</li></ul><br />Google определяет, в каком объеме проводить тестирование и что именно тестировать, по-разному для каждого конкретного продукта.<br /><br />Следует сделать вывод, что Google предпочитает выпускать часто и стремится как можно раньше передать продукт пользователям, чтобы быстрее получить обратную связь и внести необходимые изменения.</div>]]></turbo:content>
    </item>
    <item turbo="true">
      <title>Принципы взаимодействия органов государственной власти в Электронном Правительстве</title>
      <link>https://ardecs.com/tpost/dtj3bp1sv1-printsipi-vzaimodeistviya-organov-gosuda</link>
      <amplink>https://ardecs.com/tpost/dtj3bp1sv1-printsipi-vzaimodeistviya-organov-gosuda?amp=true</amplink>
      <pubDate>Mon, 25 Mar 2024 15:10:00 +0300</pubDate>
      <enclosure url="https://static.tildacdn.com/tild3063-3436-4031-b039-623334383338/pic.jpg" type="image/jpeg"/>
      <description>В век высоких технологий, когда ценность времени выходит на первый план, принцип «живой очереди» теряет свою актуальность, на смену ей приходит электронная очередь.</description>
      <turbo:content><![CDATA[<header><h1>Принципы взаимодействия органов государственной власти в Электронном Правительстве</h1></header><figure><img alt="" src="https://static.tildacdn.com/tild3063-3436-4031-b039-623334383338/pic.jpg"/></figure><div class="t-redactor__text">В век высоких технологий, когда ценность времени выходит на первый план, принцип «живой очереди» теряет свою актуальность, на смену ей приходит электронная очередь. На федеральном уровне была создана целевая программа «<strong>Электронная Россия</strong>». В рамках данной программы в октябре 2011 года, был запущен проект «<strong>Электронное Правительство</strong>», призванный изменить взаимоотношения между обществом и государством, тем самым обеспечив эффективную работу администрации. Благодаря Электронному Правительству государственные организации любого уровня могут сотрудничать между собой, без необходимости создания собственных социальных сетей и порталов. Одним из таких способов связи является <strong><u style="color: rgb(0, 0, 0);"><a href="https://www.gosuslugi.ru/" style="color: rgb(0, 0, 0);">Портал Государственных Услуг</a></u></strong>, где можно получить информацию о государственных услугах, порядке их предъявления и оформления.<br /><br />Понять как взаимодействуют органы государственной власти в Электронном Правительстве нам помог наш коллега, выступив в роли эксперта по данной теме. Также он рассказал об изменениях единой Системы Межведомственного Электронного Взаимодействия за последние два года.<br /><br />Система Межведомственного Электронного Взаимодействия (СМЭВ) – это система правил, позволяющая ведомствам обмениваться информацией. В правилах прописаны форматы данных, порядок обмена ими и прочее. Технически, внутри каждого ведомства создаётся интерактивная среда, которая начинает работать во взаимодействии с подобными средами в других ведомствах. Система была создана в рамках <strong>Федеральной целевой программы</strong> для решения проблемы разрозненности межведомственных информационных систем (электронных сервисов), а также с целью обеспечения их взаимодействия.<br /><br />Рассмотрим пример взаимодействия двух органов государственной власти. Гражданин обращается в орган местного самоуправления для подачи заявления на предоставление услуги — замены паспорта гражданина Российской Федерации в случае достижения возраста 20 или 45 лет. Для того чтобы получить информацию о данной услуге, органу государственной власти необходимо сделать запрос на получение данных из другого ведомства. Для осуществления данной операции, с точки зрения внутреннего механизма, специально и была разработана система межведомственного электронного взаимодействия.<br /><br />Задачами СМЭВ в инфраструктуре Электронного Правительства являются:<br /><br />1. Государственные функции в электронном виде. Обеспечение информационного взаимодействия в электронной форме при предоставлении государственных и муниципальных услуг и исполнении государственных и муниципальных функций.<br /><br />2. Государственные услуги в электронном виде. Обеспечение предоставления государственных и муниципальных услуг в электронной форме, в том числе с использованием федеральной государственной информационной системы «Единый портал государственных и муниципальных услуг (функций)».<br /><br />3. Системная магистраль информационного взаимодействия. Технологическое обеспечение информационного взаимодействия с применением системы взаимодействия достигается путем использования сервис-ориентированной архитектуры, представляющей собой совокупность электронных сервисов, построенных по общепринятым стандартам, а также путем использования единых технологических решений и стандартов, единых классификаторов и описаний структур данных.<br /><br />Система позволяет реализовать принцип «одного окна» при оказании государственных услуг населению. Гражданин обращается за услугой в профильное ведомство, специалисты которых добирают необходимые данные в других ведомствах, используя СМЭВ. Функциональная схема оказания государственных (муниципальных) услуг через СМЭВ изображена на рисунке 1.</div><img src="https://static.tildacdn.com/tild3231-6262-4466-b162-656139303463/smev1.jpg"><div class="t-redactor__text"><p style="text-align: center;">Рис. 1. Схема оказания услуг</p><br />Участниками СМЭВ выступают поставщики и потребители сведений:<br /><br /><ul><li data-list="bullet">каждый поставщик сведений регистрирует в СМЭВ свой электронный сервис, который предназначен для обработки запросов и выдачи сведений;</li><li data-list="bullet">каждый потребитель сведений регистрирует в СМЭВ свой адаптер, который умеет правильно запрашивать сведения и получать ответ.</li></ul><br />Оператором СМЭВ выступает Министерство связи и массовых коммуникаций Российской Федерации.<br /><br />Совсем недавно органы государственной власти и местного самоуправления перешли на СМЭВ 3 — новую версию Системы Межведомственного Взаимодействия. В СМЭВ 3 ведется реестр видов сведений (далее - реестр сведений), необходимых для предоставления государственных/муниципальных услуг, и выполнения государственных/муниципальных функций, и их форматов.<br /><br />В рамках информационного взаимодействия Информационной Системы (далее - ИС) поставщик и потребитель обмениваются сообщениями. ИС, отправляющая сообщение через СМЭВ 3, является отправителем сообщения, а ИС, получающая сообщение из СМЭВ 3, – получателем. Схематично, процесс обмена сообщениями между ИС потребителя и ИС поставщика через СМЭВ 3 включает последовательность шагов, предствленных на рисунке 2:<br /><br /><ul><li data-list="bullet">передача запроса от ИС потребителя в СМЭВ;</li><li data-list="bullet">размещение запроса в СМЭВ в очереди запросов поставщика;</li><li data-list="bullet">получение запроса ИС поставщика из СМЭВ;</li><li data-list="bullet">подготовка поставщиком ответа на запрос;</li><li data-list="bullet">передача подготовленного ответа из ИС поставщика в СМЭВ;</li><li data-list="bullet">размещение ответа в СМЭВ в очереди ответов потребителя;</li><li data-list="bullet">получение ответа ИС потребителя из СМЭВ.</li></ul></div><img src="https://static.tildacdn.com/tild6264-3661-4432-b562-393237623664/smev2.jpg"><div class="t-redactor__text"><p style="text-align: center;">Рис. 2. Процесс обмена сообщениями в СМЭВ 3</p><br />Взаимодействие в СМЭВ 3 осуществляется в асинхронном режиме, в стиле электронной почты. Каждая из операций передачи/получения сообщения (с запросом или ответом) реализуется путем вызова соответствующего метода единого электронного сервиса СМЭВ 3. Передача сообщений через СМЭВ 3 реализована с использованием механизма очередей.<br /><br />Вместо концепции точки доступа (endpoint) для адресации запросов используется концепция видов сведений. Поскольку запрос представляет собой XML-документ, вид сведений может быть однозначно определен по полному имени корневого элемента этого документа. Это возможно в связи с тем, что любая схема XML-документа должна иметь глобально уникальное пространство имен схемы и внутри одной схемы имена элементов корневого уровня должны быть уникальны. Одной из функций СМЭВ 3 является технический контроль уникальности пространств имен схем. На основании вида сведений СМЭВ 3 может определить, какому поставщику должен быть направлен запрос.<br /><br />Помимо непосредственной доставки запросов и ответов СМЭВ 3 предоставляет возможность организации широковещательной рассылки сообщений, а также механизмов приоритетной доставки сообщений.<br /><br />Подводя итог, можно сделать вывод, что система взаимодействия между государственными органами (СМЭВ) в государственном управлении позволяет решить ряд важнейших задач:<br /><br /><ul><li data-list="bullet">ускорить взаимодействие органов государственной власти с гражданами;</li><li data-list="bullet">ускорить взаимодействие органов государственной власти между собой;</li><li data-list="bullet">уменьшить расходы государства.</li></ul><br /><strong>Электронное Правительство </strong>— это адаптация государственного управления к новым требованиям общественного развития, которая включает услуги, которые предоставляет государство (то есть органы государственной власти и местного самоуправления) своим гражданам, и интерактивное взаимодействие между ними, в частности, благодаря поддержке и внедрению системы обратной связи (гражданин - правительство - гражданин), а также используя современные коммуникационные технологии.</div>]]></turbo:content>
    </item>
    <item turbo="true">
      <title>Язык программирования Elm, его возможности</title>
      <link>https://ardecs.com/tpost/9enzzn1yh1-yazik-programmirovaniya-elm-ego-vozmozhn</link>
      <amplink>https://ardecs.com/tpost/9enzzn1yh1-yazik-programmirovaniya-elm-ego-vozmozhn?amp=true</amplink>
      <pubDate>Mon, 08 Apr 2024 15:14:00 +0300</pubDate>
      <enclosure url="https://static.tildacdn.com/tild3034-6361-4438-a264-663839663937/pic_1.jpg" type="image/jpeg"/>
      <description>В области программирования набирает популярность такая парадигма: всё чаще...</description>
      <turbo:content><![CDATA[<header><h1>Язык программирования Elm, его возможности</h1></header><figure><img alt="" src="https://static.tildacdn.com/tild3034-6361-4438-a264-663839663937/pic_1.jpg"/></figure><div class="t-redactor__text">В области программирования набирает популярность такая парадигма: всё чаще <strong>приложения</strong> строят так, что в них нет глобального состояния, которое произвольно меняется разными частями <strong>кода</strong>. Это можно заметить в появлении таких фреймворков, как React-js, Redux, Apache Samza или Lambda-архитектура. Главными компонентами такого подхода являются чистый функциональный язык, явное представление состояния приложения в виде одной сущности и шинная обработка событий, которые единообразно сохраняются в журнал и строго упорядочиваются по времени.<br /><br />Преимущество подхода заключается в том, что эти события могут быть воспроизведены заново. При этом не требуется ни повторения действий во внешних системах, ни их симуляции. Можно просто изменить логику или <strong>пользовательский интерфейс</strong> в приложении и сразу посмотреть на конечный результат, к которому приводит та же самая последовательность действий. Кроме того, можно в любой момент остановить выполнение и откатиться к любому предыдущему моменту времени, что очень удобно при отладке кратковременных событий в UI, таких как анимация или скрывающиеся/раскрывающиеся элементы. Ниже приведен пример компонента для автозаполнения. Вверху отображается панель с кнопками управления и журнал событий.</div><div class="t-redactor__text">Однако по-настоящему это можно гарантировать, только если преобразование состояния задано в виде чистой функции. В противном случае трудно утверждать, что при путешествиях во времени такого типа не возникнет побочных эффектов. Обратная сторона использования <strong>чистого функционального языка</strong> - сложность выражения таких вещей как инкрементальные изменения в UI и асинхронные запросы.<br /><br />К счастью, благодаря <strong>virtual-dom</strong> и <strong>React-js</strong> и практике их применения, первое не является проблемой, по крайней мере, в мире web-приложений. Даже наоборот, код приложения становится проще за счет того, что он пишется так, будто весь пользовательский интерфейс перерисовывается заново. Функциональная чистота языка при этом добавляет преимущество - если функция вызывается с одним и тем же аргументом несколько раз, то можно просто закэшировать результат ее выполнения. Вторая же проблема решается с помощью конструкций, которые не столь изящны, но достаточно просты.<br /><br />Таким образом, можно сказать, что <strong>язык программирования Elm</strong> реализует данный подход являясь чистым, функциональным и реактивным. Он компилируется в JS-код и предназначен для реализации <strong>HTLM5</strong>-приложений (хотя проект по его использованию на серверной части также проводится). На официальном <u style="color: rgb(0, 0, 0);"><a href="http://elm-lang.org/" style="color: rgb(0, 0, 0);">сайте Elm</a></u> можно попробовать сам язык и посмотреть множество примеров, в том числе tutorial по архитекутре приложения с <u style="color: rgb(0, 0, 0);"><a href="https://github.com/evancz/elm-architecture-tutorial/" style="color: rgb(0, 0, 0);">асинхронными запросами</a></u>.</div>]]></turbo:content>
    </item>
    <item turbo="true">
      <title>ИТ решения для бизнеса</title>
      <link>https://ardecs.com/tpost/ahcmgjx9u1-it-resheniya-dlya-biznesa</link>
      <amplink>https://ardecs.com/tpost/ahcmgjx9u1-it-resheniya-dlya-biznesa?amp=true</amplink>
      <pubDate>Sat, 10 Aug 2024 15:21:00 +0300</pubDate>
      <enclosure url="https://static.tildacdn.com/tild6565-6639-4033-b839-386535363235/business_it_solution.jpg" type="image/jpeg"/>
      <description>Тема автоматизации деятельности предприятия довольно обширна и не всегда однозначна.</description>
      <turbo:content><![CDATA[<header><h1>ИТ решения для бизнеса</h1></header><figure><img alt="" src="https://static.tildacdn.com/tild6565-6639-4033-b839-386535363235/business_it_solution.jpg"/></figure><div class="t-redactor__text">Тема автоматизации деятельности предприятия довольно обширна и не всегда однозначна. Когда у руководителя возникает желание использовать ИТ решения для бизнеса, то перед тем, как купить или заказать программное обеспечение, стоит ответить на следующие вопросы:</div><blockquote class="t-redactor__quote"><ul><li data-list="bullet">Зачем нужна автоматизация предприятия?</li><li data-list="bullet">Какие операции в принципе можно автоматизировать?</li><li data-list="bullet">Какие операции нужно автоматизировать, чтобы достичь требуемых целей?</li></ul></blockquote><div class="t-redactor__text">Обладая ответами на перечисленные вопросы, вы сможете выбрать или заказать информационную систему, которая действительно позволит улучшить работу предприятия, а не ляжет тяжким ненужным бременем на плечи и без того перегруженных работников.<br /><br />В данной статье нам бы хотелось рассказать о том, какие процессы обычно подвергаются автоматизации, а также об информационных системах, которые для этого применяются. Сразу оговоримся, что в своём обзоре мы исходим из потребностей мелкого и среднего бизнеса. Автоматизация крупных предприятий – это отдельная тема, которой можно посвятить не один десяток статей.<br /><br />Как правило, целью автоматизации является сокращение расходов, рост производительности и качества, а также контроль за работой сотрудников. Обычно выделяют следующие факторы, которые влияют на достижение данной цели:<br /><br /><ul><li data-list="bullet">взаимодействие с клиентами;</li><li data-list="bullet">оптимизация бизнес-процессов;</li><li data-list="bullet">управление эффективностью предприятия;</li><li data-list="bullet">управление информационными ресурсами.</li></ul><br /><strong>Взаимодействие с клиентами</strong><br /><br />Если благосостояние предприятия напрямую зависит от количества клиентов и уровня продаж, то вам просто необходима система управления взаимоотношениями с клиентами – CRM (Customer Relationship Management). Несмотря на все многообразие реализаций CRM-систем, основной принцип остаётся прежним. На предприятии создаётся единое хранилище информации, куда собираются все сведения о клиенте и взаимодействии с ним. Таким образом, когда, например, на общий почтовый адрес фирмы придёт электронное письмо с текстом «Здравствуйте, мы с вами общались в прошлом году…», то можно будет с лёгкостью найти в базе этого клиента, копии его предыдущих писем, а также имя сотрудника, который был назначен ответственным.<br /><br /><strong>Оптимизация бизнес-процессов</strong><br /><br />Когда на предприятии работает больше двадцати человек, появляется необходимость в составлении регламентов, списков обязанностей и прочих формальных процедурах. Упростить подобную ситуацию может процессный подход к управлению. Бизнес-процессы, прозрачные для всех участников, позволяют выстроить четкое понимание обязанностей и обеспечить контроль выполнения задач. Моделирование и автоматизация выполняются с помощью BPMS систем (Business Process Management System). <br /><br /><strong>Управление эффективностью предприятия</strong><br /><br />С управлением бизнес-процессами тесно связана и оценка эффективности предприятия, поскольку к процессам легко привязать сбор показателей качества. Системы KPI (Key Performance Indicators) позволяют анализировать ключевые показатели эффективности и выстраивать стратегию развития предприятия. Также, KPI позволяет создать систему мотивации сотрудников, которая защитит руководство от вопросов «Почему в этом месяце мне заплатили меньше?», а сотрудникам даст возможность напрямую управлять своим заработком. Однако, не следует забывать, что невозможно создать идеальную систему ключевых показателей эффективности, время от времени её придётся пересматривать и изменять.<br /><br /><strong>Управление информационными ресурсами</strong><br /><br />Под информационными ресурсами предприятия чаще всего подразумеваются офисные и бухгалтерские документы (договора, заявления, счета и т.д.). Когда стол руководителя начинает ломиться от бумаг, имеет смысл задуматься об автоматизации документооборота. В широком смысле, для управления корпоративным контентом используются ECM системы (Enterprise Content Management). Однако для малого и среднего бизнеса целесообразнее будет обратить внимание лишь на СЭД – системы электронного документооборота. За счет единой базы документной информации, подобные системы позволяют увеличить скорость обработки, поиска и контроля документов. <br /><br />В заключение, хотелось бы напомнить, что выбор средств автоматизации должен начинаться с анализа текущей ситуации на предприятии. Только обладая информацией об имеющихся проблемах можно сделать выводы о том, какие ИТ решения принесут пользу и процветание вашему бизнесу.</div>]]></turbo:content>
    </item>
    <item turbo="true">
      <title>ERP системы</title>
      <link>https://ardecs.com/tpost/z53n1r7t31-erp-sistemi</link>
      <amplink>https://ardecs.com/tpost/z53n1r7t31-erp-sistemi?amp=true</amplink>
      <pubDate>Sat, 31 Aug 2024 15:22:00 +0300</pubDate>
      <enclosure url="https://static.tildacdn.com/tild3835-3731-4364-b462-353364306239/erp_systems_header.png" type="image/png"/>
      <description>Как следует из названия, основное назначение ERP-системы (Enterprise Resource Planning) – это планирование ресурсов предприятия.</description>
      <turbo:content><![CDATA[<header><h1>ERP системы</h1></header><figure><img alt="" src="https://static.tildacdn.com/tild3835-3731-4364-b462-353364306239/erp_systems_header.png"/></figure><div class="t-redactor__text">Как следует из названия, основное назначение ERP-системы (Enterprise Resource Planning) – это планирование ресурсов предприятия. Грамотно настроенная ERP-система даст ответы как на вопросы «Как было?» и «Как есть?», так и на «Как будет?», «Как должно быть?». Таким образом, все данные, которые имеются в системе, используются не только для учёта, но и для планирования и оптимизации.<br /><br />Внедрение ERP-системы – это сложный и длительный процесс, который требует тщательной подготовки. При современном многообразии готовых ERP продуктов, не многие владельцы предприятий решаются заказать разработку своей собственной системы, поскольку временные и денежные затраты могут превысить ожидаемую пользу. Впрочем, перед началом каких-либо работ, всегда стоит провести тщательный анализ. Данное правило относится и к решению улучшить работу предприятия при помощи программного обеспечения.<br /><br />Ключом в правильном выборе подходящей ERP-системы является точное позиционирование своей компании. В зависимости от отрасли, специализации, размера предприятия, производители готовых решений предлагают различные наборы модулей. Например, у широко известной системы SAP ERP есть специализированные решения для финансового сектора, торговых компаний, производственных предприятий, компаний, работающих на рынке услуг, и общественных организаций (здравоохранение, образование и т.п.).<br /><br />В последние годы крупные производители взяли курс на обеспечение потребностей не только огромных корпораций, но и малого бизнеса. Так, ERP-система SAP Business One 9.0, представленная в России в 2013 году, позволяет автоматизировать бизнес малых и средних предприятий. Не стоит забывать и о системе 1С, на основе которой возможно создавать ERP-модули.<br /><br />Таким образом, владельцы малого и среднего бизнеса вполне могут себе позволить выбрать подходящую систему планирования ресурсов. Однако, следует понимать, что ERP-система действительно может улучшить, а что находится за пределами её возможностей. Внедрение ERP позволит:</div><blockquote class="t-redactor__quote"><ul><li data-list="bullet">планировать потребности предприятия в материалах и комплектующих;</li><li data-list="bullet">контролировать сроки и объёмы поставок;</li><li data-list="bullet">контролировать наличие продукции, её излишки и дефицит;</li><li data-list="bullet">снижать издержки на хранение продукции и материалов;</li><li data-list="bullet">реагировать на изменение спроса и соответственно регулировать производство;</li><li data-list="bullet">контролировать поставки и качество сервиса для клиентов.</li></ul></blockquote><div class="t-redactor__text">Многие ожидают от ERP-систем гораздо большего, чем те могут дать. Зачастую, руководители ожидают, что система:</div><blockquote class="t-redactor__quote"><ul><li data-list="bullet">оптимизирует бизнес-процессы;</li><li data-list="bullet">позволит сократить штат сотрудников;</li><li data-list="bullet">наведет порядок на предприятии.</li></ul></blockquote><div class="t-redactor__text">Поясним каждый из этих пунктов.<br /><br /><strong>Оптимизация бизнес-процессов</strong><br /><br />Перед любой автоматизацией необходимо провести анализ работы предприятия и по возможности оптимизировать его ДО того, как все не оптимальные способы работы будут зафиксированы в виде исполняемых бизнес-процессов. При проектировании нужно исходить не из концепции «as is» – как есть, а из принципа «to be» – как должно быть.<br /><br /><strong>Сокращение персонала</strong><br /><br />Сложилось мнение, что любая автоматизация подразумевает замену ставших «ненужными» сотрудников. Однако, программное обеспечение не способно работать без людей, его использующих. ERP-система – это инструмент, который поможет сотрудникам работать эффективнее, но не заменит их. Конечно, если предприятие существует очень давно и штат сотрудников неконтролируемо разросся, сокращение возможно, но в таком случае стоит обратить внимание на следующий пункт.<br /><br /><strong>Порядок на предприятии</strong><br /><br />Никакое программное обеспечение не заменит грамотных руководителей. ERP-система поможет им планировать, регулировать и контролировать, но применять методики управления менеджерам придётся самостоятельно.<br /><br />Подводя итог, мы хотели бы ещё раз отметить, что только обладая чётким пониманием целей и потребностей своего бизнеса вы сможете выбрать систему, которая подходит именно вам, поскольку на российском рынке представлено достаточно много производителей ERP-систем (SAP, 1C, Oracle, Microsoft). В данной статье мы постарались собрать основные причины, по которым стоит задуматься о внедрении ERP-системы, а также дали несколько советов о том, как избежать разочарования в автоматизации предприятия. </div>]]></turbo:content>
    </item>
    <item turbo="true">
      <title>Как KISS и другие принципы могут помочь в разработке ПО и в обычной жизни</title>
      <link>https://ardecs.com/tpost/iytuze1n21-kak-kiss-i-drugie-printsipi-mogut-pomoch</link>
      <amplink>https://ardecs.com/tpost/iytuze1n21-kak-kiss-i-drugie-printsipi-mogut-pomoch?amp=true</amplink>
      <pubDate>Tue, 10 Sep 2024 15:24:00 +0300</pubDate>
      <enclosure url="https://static.tildacdn.com/tild3535-3339-4131-a463-393262643738/kiss_header.jpg" type="image/jpeg"/>
      <description>Совсем скоро программисты всего мира будут праздновать 256-й день года. В преддверии этого праздника, который в 2016 году выпадает на 12 сентября, мы бы хотели рассказать о нашей профессии.</description>
      <turbo:content><![CDATA[<header><h1>Как KISS и другие принципы могут помочь в разработке ПО и в обычной жизни</h1></header><figure><img alt="" src="https://static.tildacdn.com/tild3535-3339-4131-a463-393262643738/kiss_header.jpg"/></figure><div class="t-redactor__text">Совсем скоро программисты всего мира будут праздновать 256-й день года. В преддверии этого праздника, который в 2016 году выпадает на 12 сентября, мы бы хотели рассказать о нашей профессии.<br /><br />Все знают, что программист должен знать математику и логику, иметь аналитический склад ума и прочее, и прочее. Но многие забывают, что в промышленном программировании (а именно им является большая часть заказной разработки) огромную роль играет ещё и способность работать в команде.</div><blockquote class="t-redactor__quote">«Люди считают, что программирование — это наука избранных, но в реальности все наоборот — просто много людей создают программы, которые используют чужие программы, как будто строя стену из маленьких кирпичиков.»<br /><br />Дональд Кнут</blockquote><div class="t-redactor__text">Легко заниматься разработкой сайта, мобильного приложения или иной программы в одиночку. Каждая строчка кода кажется родной и знакомой без всяких комментариев. Имена переменных x1, x2, x345 удобны в использовании, а на «спагетти» из if else можно закрыть глаза, ведь всё работает и так. Но когда ты не один, а в команде, в дело вступают совсем другие принципы.</div><blockquote class="t-redactor__quote">«Любой дурак может написать код, понятный компьютеру. Хороший программист пишет код, понятный человеку.»<br /><br />Мартин Фаулер</blockquote><div class="t-redactor__text">В англоязычном мире вот уже полвека существует аббревиатура <strong>KISS – Keep It Short and Simple</strong>. Хотя изначально этот принцип применялся в проектировании, со временем его стали использовать и во многих других сферах деятельности, в том числе и в программировании. Альтернативная расшифровка звучит как Keep It Simple Stupid, что особо актуально для запутанного кода, который будут читать другие разработчики. В нашем мире не существует универсальных советов, однако, как правило, простое и понятное решение будет работать, а главное поддерживаться, намного лучше, чем, пусть и гениальный, но запутанный код.</div><blockquote class="t-redactor__quote">«Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете.»<br /><br />Мартин Голдинг</blockquote><div class="t-redactor__text">Вообще, программисты любят хорошие шутки, особенно если кроме юмора в них содержится и глубокий смысл. В качестве примера можно привести фразу «Is your code dry enough?». Принцип <strong>DRY</strong> расшифровывается как <strong>Don’t Repeat Youself </strong>– не повторяйся. Если в коде есть повторяющиеся элементы - это повод задуматься о введении для них новой абстракции. Жаль, что принцип DRY слабо применим в реальной жизни, разве что можно посоветовать излишне болтливому другу «подсушить» его речь.<br /><br />А вот принцип <strong>YAGNI – You Ain’t Gonna Need</strong> It пригодится всем. Его суть заключается в том, чтобы реализовывать только поставленные задачи, а не увлекаться «закладками» на будущий избыточный функционал. Если вы строите двухэтажный дом, вы делаете фундамент для двухэтажного дома, а не супер-платформу с перспективой надстройки небоскрёба.<br /><br />Главная цель <strong>KISS, DRY, YAGNI </strong>и многих других смешных и не очень аббревиатур – обеспечить слаженную работу команды программистов, чтобы получить на выходе легко поддерживаемый, а главное работающий код. Вне всякого сомнения, программирование – это одна из наиболее требовательных к абстрактному мышлению сфер деятельности человека. Тем не менее, многие принципы, которые программисты применяют в своей работе, вполне доступны, а иногда даже полезны любому человеку. </div>]]></turbo:content>
    </item>
    <item turbo="true">
      <title>CRM системы</title>
      <link>https://ardecs.com/tpost/2tv55erkl1-crm-sistemi</link>
      <amplink>https://ardecs.com/tpost/2tv55erkl1-crm-sistemi?amp=true</amplink>
      <pubDate>Sun, 06 Oct 2024 15:27:00 +0300</pubDate>
      <enclosure url="https://static.tildacdn.com/tild6463-3639-4763-b162-663161313563/crm_header.png" type="image/png"/>
      <description>Customer Relationship Management – управление отношениями с клиентами – это важная часть бизнеса.</description>
      <turbo:content><![CDATA[<header><h1>CRM системы</h1></header><figure><img alt="" src="https://static.tildacdn.com/tild6463-3639-4763-b162-663161313563/crm_header.png"/></figure><div class="t-redactor__text"><strong>Customer Relationship Management – управление отношениями с клиентами</strong> – это важная часть бизнеса. От степени удовлетворенности заказчиков напрямую зависит уровень продаж, а значит и прибыль компании. Контактные данные, количество ранее сделанных заказов, ответственное лицо и множество другой информации необходимо оперативно использовать при каждом новом входящем обращении. Даже у малых предприятий количество клиентов редко имеет двузначные значения, поэтому простой excel-документ плохо справится с задачей быстрого и удобного поиска данных.<br /><br />Любая автоматизация предприятия имеет вполне определенную цель – увеличение дохода. Системы CRM не только не являются исключением, но и занимают лидирующее место в списке внедряемых систем, поскольку напрямую связаны с источником дохода, то есть с клиентами.<br /><br />Системы управления отношениями с клиентами обеспечивают достижение следующих целей:<br /><br /><ul><li data-list="bullet">контроль работы менеджеров;</li><li data-list="bullet">ведение клиентской базы;</li><li data-list="bullet">улучшение качества работы с клиентами.</li></ul><br /><strong>Контроль работы менеджеров</strong><br /><br />Например, полезно знать, все ли лиды (потенциальные клиенты, которые каким-либо образом дали свою контактную информацию, например, оставили заявку на сайте) обрабатываются менеджерами своевременно. Также, из CRM легко получить информацию об активности каждого менеджера и отдела продаж в целом.<br /><br /><strong>Ведение клиентской базы</strong><br /><br />Клиентские базы – это ценный капитал предприятия. Внимательная работа с существующими клиентами, например, своевременный обзвон, позволит совершать вторичные продажи и увеличивать выручку даже без привлечения новых клиентов.<br /><br /><strong>Улучшение качества работы с клиентами</strong><br /><br />Казалось бы, поздравить постоянного клиента с днём рождения – это мелочь. Однако из таким мелочей строится отношение к компании в целом. В современном мире, когда информация в обществе распространяется мгновенно, хороший имидж компании – это важная составляющая хороших продаж.<br /><br />Для того, чтобы решить, нужна ли система CRM компании, достаточно ответить только на один вопрос: связана ли деятельность компании с работой с заказчиками. Если да, то CRM не просто нужна, а жизненно необходима. Однако, в зависимости от специфики предприятия, следует выбрать подходящий тип системы управления отношениями с клиентами. CRM делятся на два типа: операционные и аналитические.<br /><br /><strong>Операционные CRM</strong><br /><br />Отвечают за хранение, регистрацию и доступ к данным о контрагентах. Позволяют осуществлять планирование событий, проектов, встреч. Операционная CRM подойдёт малым и средним предприятиям с умеренным потоком клиентов.<br /><br /><strong>Аналитические CRM</strong><br /><br />Включают в себя весь функционал операционных CRM, а также анализ информации о клиентах и составление отчетов. Позволяют работать с воронкой продаж, вести учет маркетинговых мероприятий и выполнять анализ эффективности продаж в различных разрезах (по продуктам, по категориям клиентов, по регионам и т. п.). Системы такого типа подойдут либо крупным компаниям, либо компаниям, в которых операции с клиентами являются массовыми.<br /><br />Таким образом, при автоматизации предприятия следует уделить пристальное внимание CRM системам. Часть из них доступна как отдельные облачные сервисы, другие являются модулями информационных систем. Если же стандартный функционал не подходит под специфику работы вашего предприятия, то имеет смысл задуматься о заказной разработке CRM системы. Однако, в таком случае не стоит забывать об интеграции с имеющимися информационными системами. </div>]]></turbo:content>
    </item>
    <item turbo="true">
      <title>Техническое задание – первый шаг к успешной разработке</title>
      <link>https://ardecs.com/tpost/bcyb2d2nj1-tehnicheskoe-zadanie-pervii-shag-k-uspes</link>
      <amplink>https://ardecs.com/tpost/bcyb2d2nj1-tehnicheskoe-zadanie-pervii-shag-k-uspes?amp=true</amplink>
      <pubDate>Mon, 11 Nov 2024 15:29:00 +0300</pubDate>
      <enclosure url="https://static.tildacdn.com/tild3832-6266-4331-a633-376565653862/srs.jpg" type="image/jpeg"/>
      <description>Ни для кого не секрет, что обычные люди и программисты говорят на разных языках. Но несмотря на это, бизнесу нужна автоматизация, а менеджерам нужно договариваться с представителями ИТ-сферы.</description>
      <turbo:content><![CDATA[<header><h1>Техническое задание – первый шаг к успешной разработке</h1></header><figure><img alt="" src="https://static.tildacdn.com/tild3832-6266-4331-a633-376565653862/srs.jpg"/></figure><div class="t-redactor__text">Ни для кого не секрет, что обычные люди и программисты говорят на разных языках. Но несмотря на это, бизнесу нужна автоматизация, а менеджерам нужно договариваться с представителями ИТ-сферы.<br /><br />Одним из ключевых факторов, обеспечивающих успешное сотрудничество заказчика и исполнителя является <strong>техническое задание (ТЗ) </strong>– документ, содержащий требования заказчика к результату разработки. На основании именно этого документа осуществляется конечная приемка реализованной информационной системы, поэтому его важность сложно переоценить. На крупных проектах этап написания и согласования технического задания занимает до 30% от общего времени всех работ.<br /><br />В данной статье мы не будем затрагивать такой вопрос, как написание ТЗ для сайтов, поскольку ввиду определенной специфики, данная тема заслуживает отдельного разговора. Вместо этого мы сосредоточимся на процессе создания ТЗ для автоматизированной системы (или ее части) и попытаемся раскрыть основные пункты, которые такой документ должен содержать.<br /><br />Разумеется для написания технического задания существуют стандарты ГОСТ: ГОСТ 34.602.89 «Техническое задание на создание автоматизированной системы» и ГОСТ 19.201-78 «Техническое задание. Требования к содержанию и оформлению». На основе этих стандартов можно выделить следующую примерную структуру документа:<br /><br /><ul><li data-list="bullet">общие сведения о системе;</li><li data-list="bullet">назначение, цели и задачи системы;</li><li data-list="bullet">требования к системе;</li><li data-list="bullet">требования к документированию;</li><li data-list="bullet">стадии и этапы разработки;</li><li data-list="bullet">порядок контроля и приемки системы.</li></ul><br />Раздел «<strong>Общие требования о системе</strong>» содержит информацию о заказчике, исполнителе, сроках выполнения работ, документах, на основании которых будет выполняться разработка (например, внутренние стандарты предприятия), список терминов и сокращений.<br /><br />Заполнение раздела «<strong>Назначение, цели и задачи системы</strong>» позволит вам еще раз продумать, зачем нужна автоматизация предприятия и формализовать цели, которые планируется достигнуть с помощью разработки информационной системы.<br /><br />Самым объемным как правило является раздел «<strong>Требования к системе</strong>», содержащий полную информацию о функциональных требованиях. Чем детальнее будут описаны требования, тем выше шанс получить в итоге желаемый продукт. Зачастую к данному разделу добавляют приложение, в котором детализация может доходить до эскизов экранных форм. Помимо функциональных требований, в раздел входят требования к надежности, безопасности, отказоустойчивости и прочих параметрах работы системы.<br /><br />«<strong>Требования к документированию</strong>» определяют список документов, которые будут предоставлены заказчику для эксплуатации информационной системы. То есть, само техническое задание, приложения к нему, руководство пользователя (для каждой роли) и т.д.<br /><br />Как правило, реализация программного продукта разбивается на несколько этапов. Их описание должно находиться в разделе «<strong>Стадии и этапы разработки</strong>». Каждый этап может иметь свои сроки и стоимость, а также требования к функционалу.<br /><br />И, наконец, раздел «<strong>Порядок контроля и приемки системы</strong>» содержит программу и методику испытаний, правила приемки и прочие документы, позволяющие определить, были ли выполнены договоренности по реализации информационной системы.<br /><br />Техническое задание – это не просто документ, это переход от замысла заказчика к реализации исполнителя. Чтобы не тратить ценные ресурсы на многократную переделку наполовину готовой системы, необходимо достичь максимально возможного взаимопонимания именно на аналитическом этапе. Разумеется, представленная нами структура документа является очень общей, однако в ней указаны ключевые моменты, которые позволят вам составить представление о том, что необходимо подготовить, прежде чем искать ИТ компанию для разработки информационной системы. </div>]]></turbo:content>
    </item>
    <item turbo="true">
      <title>Почему программисты занижают временные оценки</title>
      <link>https://ardecs.com/tpost/hpgdv5cdr1-pochemu-programmisti-zanizhayut-vremenni</link>
      <amplink>https://ardecs.com/tpost/hpgdv5cdr1-pochemu-programmisti-zanizhayut-vremenni?amp=true</amplink>
      <pubDate>Mon, 03 Feb 2025 15:31:00 +0300</pubDate>
      <enclosure url="https://static.tildacdn.com/tild3035-6538-4966-b131-343863616337/watches.jpg" type="image/jpeg"/>
      <description>В современном мире время - это самый дорогой и востребованный ресурс. Все хотят знать срок выполнения, все хотят, чтобы этот срок был как можно меньше, а результат как можно лучше.</description>
      <turbo:content><![CDATA[<header><h1>Почему программисты занижают временные оценки</h1></header><figure><img alt="" src="https://static.tildacdn.com/tild3035-6538-4966-b131-343863616337/watches.jpg"/></figure><div class="t-redactor__text">В современном мире время - это самый дорогой и востребованный ресурс. Все хотят знать срок выполнения, все хотят, чтобы этот срок был как можно меньше, а результат как можно лучше. Сфера заказной разработки программного обеспечения не является исключением.<br /><br />Известная шутка «Спроси срок у программист, а затем умножь его на Пи» на самом имеет под собой ряд нешуточных причин. В этой статье мы попробуем разобраться, почему разработчики занижают оценку и как им помочь достигнуть реалистичности временных расчетов.<br /><br />Сколько часов вам потребуется на чтение книги объемом 300 страниц? 3-4 часа? Да, если в это время вам не позвонит девушка, вы не захотите перекусить, ваш сосед не решит заняться ремонтом. Как много «если» возникает на пути выполнения такой простой задачи, как чтение книги. Задачи программистов, в свою очередь, требуют полного погружения и любой отвлекающий фактор заставляет снова и снова тратить время на то, чтобы вернуться мыслями в мир абстрактных сущностей. Итак, <strong>первая причина заниженных временных оценок</strong>: людям свойственно оперировать «идеальными часами».<br /><br />Вернёмся к чтению книги. Вот прошёл 1 час и вам захотелось спать. Возможно, вчера вы отмечали день рождения или у вас упало давление. Но факт остается фактом, ваша производительность упала и скорость чтения вместе с ней. Реальность нас не щадит и мы физически не можем обладать отличным самочувствием и настроением в режиме 24/7. В этом кроется <strong>вторая причина занижения временных оценок</strong>: мы исходим из идеальной производительности.<br /><br />Сложно представить, что кто-то будет планировать свое время следующим образом: «Итак, у меня есть задача. При ее выполнении я сделаю одну большую ошибку и две маленьких. Потом я исправлю большую ошибку и отдам задача на проверку. После проверки будут найдены две маленькие ошибки и я их тоже исправлю.» Тем не менее, к сожалению, ситуация возврата результатов на багфикс после тестирования отнюдь не редка. <strong>Третья причина некорректных временных оценок</strong>: мы ожидаем получить идеальный результат без необходимости исправлений и доработок. <br /><br />Разумеется, в упомянутых выше причинах мы исходим из того, что сами задачи составлены идеально, в них отсутствует «ветвление» (когда одна задача внезапно распадается на несколько связанных), а условия прописаны четко и однозначно. В противном случае следует учитывать еще и временные затраты на уточнение и формализацию самой задачи.<br /><br />Как видно из нашего примера с чтением книги, занижение временных оценок не является прерогативой одних лишь программистов - это общечеловеческая черта. Грамотный менеджер проекта будет учитывать наши психологические особенности и соответствующим образом корректировать оценку.</div><img src="https://static.tildacdn.com/tild6432-6237-4263-b232-616665373833/888.jpg">]]></turbo:content>
    </item>
    <item turbo="true">
      <title>Ранги программистов</title>
      <link>https://ardecs.com/tpost/8yr7x420k1-rangi-programmistov</link>
      <amplink>https://ardecs.com/tpost/8yr7x420k1-rangi-programmistov?amp=true</amplink>
      <pubDate>Sun, 23 Feb 2025 15:36:00 +0300</pubDate>
      <enclosure url="https://static.tildacdn.com/tild6337-3836-4132-b138-383932313136/hackerrank-qa-and-su.jpg" type="image/jpeg"/>
      <description>Плох тот солдат, что не мечтает стать генералом. Плох тот джуниор, что не мечтает стать сеньором.</description>
      <turbo:content><![CDATA[<header><h1>Ранги программистов</h1></header><figure><img alt="" src="https://static.tildacdn.com/tild6337-3836-4132-b138-383932313136/hackerrank-qa-and-su.jpg"/></figure><div class="t-redactor__text">Плох тот солдат, что не мечтает стать генералом. Плох тот джуниор, что не мечтает стать сеньором. Итак, в преддверии мужского праздника мы хотим рассказать вам о частичке военной дисциплины в мире информационных технологий - о рангах разработчиков.<br /><br />Если взглянуть со стороны - все программисты сидят и нажимают на кнопки пишут код. Но на самом деле, среди них есть лейтенанты, капитаны и даже генералы.<br /><br />Как же выглядит карьерный рост разработчика?<br /><br /><strong>Junior (джуниор)</strong> - первая ступень на долгом пути саморазвития. Как правило, для успешного прохождения этого этапа требуется помощь более опытных товарищей. Серьезные проектные задачи джуниору еще не под силу, однако с каждым днём он получает все больше опыта и уверенности в собственных силах. Основная задача на старте - это связать обширные теоретические познания с реальной практикой промышленного программирования. Далее идёт рутинный процесс работы, который рано или поздно приводит к позиции мидла.<br /><br /><strong>Middle (мидл)</strong> - золотая середина, человек, который уже знает свои возможности. Если джуниоры имею репутацию оптимистов, то мидлы реально оценивают время и сложность поставленных перед ними задач. Книги уже прочитаны, за плечами несколько проектов и можно спокойно работать и пить кофе в перерывах. Однако, спокойной и размеренной жизни у программистов быть не может, потому что новые технологии развиваются непрерывно и если не следовать за ними по пятам, можно остаться на невостребованной обочине карьеры. Мидл, который понял это простое правило, имеет все шансы перейти на следующую позицию.<br /><br /><strong>Senior (сеньор)</strong> - на самом деле, это последний этап, требующий применения навыков написания кода в бою. Сеньор много времени проводит на митингах, обсуждая высокоуровневые концепции программного продукта. Зачастую, именно сеньоры занимаются подготовкой джуниоров, поскольку у мидлов на это не хватает времени. На самом деле, компании не против, если человек будет оставаться на данной позиции долго и счастливо. Срок, проведенный на этой ступени карьеры зависит только от желания программиста.</div><img src="https://static.tildacdn.com/tild6536-3036-4163-a236-323036396232/rranks.png"><div class="t-redactor__text">А что же дальше? На самом деле, тут начинается самое интересное. Как мы упомянули ранее, с ростом карьеры растёт и уровень абстракции решаемых задач. Непосредственное написание кода остается в прошлом и на смену ему приходит проектирование, то есть создание архитектуры приложений. Однако <strong>архитектор</strong> - лишь один из возможных вариантов развития. Если человек ориентирован на активное общение, то его ждет позиция <strong>руководителя проектов</strong>. Если он желает углубиться в обучение, то может стать отличным <strong>тренером</strong>. И конечно же есть вариант стать высококлассным <strong>экспертом-консультантом</strong>.<br /><br />В заключение, хотелось бы отметить, что несмотря на то, что продолжительность работы коррелирует с рангом, карьерный рост программистов может происходить намного стремительнее, чем у военных. Ключевым фактором, влияющим на скорость развития является само желание развиваться, а также готовность к решению все новых и новых, зачастую нетривиальных и слабоформализуемых задач. </div>]]></turbo:content>
    </item>
    <item turbo="true">
      <title>Поиск документов по нескольким системам: интеграция, ускорившая работу 2000 сотрудников</title>
      <link>https://ardecs.com/tpost/lyth2stg21-poisk-dokumentov-po-neskolkim-sistemam-i</link>
      <amplink>https://ardecs.com/tpost/lyth2stg21-poisk-dokumentov-po-neskolkim-sistemam-i?amp=true</amplink>
      <pubDate>Tue, 02 Dec 2025 12:52:00 +0300</pubDate>
      <enclosure url="https://static.tildacdn.com/tild6164-3634-4865-a436-353633353061/photo.JPG" type="image/jpeg"/>
      <description>Сложная ИТ-инфраструктура типична для крупных организаций. Расскажем, как ИТ-компания Ardecs решила проблему интеграции между информационными системами на «ОДК-Авиадвигатель».</description>
      <turbo:content><![CDATA[<header><h1>Поиск документов по нескольким системам: интеграция, ускорившая работу 2000 сотрудников</h1></header><figure><img alt="" src="https://static.tildacdn.com/tild6164-3634-4865-a436-353633353061/photo.JPG"/></figure><h2  class="t-redactor__h2">Время как ресурс</h2><div class="t-redactor__text">АО «ОДК-Авиадвигатель» — конструкторское бюро-разработчик газотурбинных двигателей для пассажирской и транспортной авиации, промышленных газотурбинных установок и электростанций.</div><div class="t-redactor__text">В компании сложилась классическая для крупных предприятий ситуация ー сотрудники использовали несколько программных продуктов для работы с документами разных видов: договорами, входящими и исходящими письмами, внутренними организационно-распорядительными документами, служебными записками, протоколами совещаний и другими. Таким образом:</div><div class="t-redactor__text"><ol><li data-list="ordered">более 2 млн. документов были зарегистрированы и хранились в ECM Directum;</li><li data-list="ordered">около 700 тыс. документов на корпоративном портале Microsoft Sharepoint;</li><li data-list="ordered">порядка 1 млн документов находились в СЭД 1C.</li></ol></div><div class="t-redactor__text">Из-за того, что информационные системы были разрозненными, поиск тех или иных документов занимал у работников слишком много времени: приходилось каждый раз обращаться к поиску во всех программах, переключаться между интерфейсами, запрашивать права доступа к материалам. В результате снижалась эффективность работы сразу нескольких подразделений, это приводило к задержкам, простоям и, в конечном итоге, к упущенной прибыли.</div><div class="t-redactor__text">Решить проблему мог сервис Directum Smart Search, который уже был внедрен на предприятии и искал документы по содержанию, смыслу, атрибутам, периоду, автору или частично воспроизведенному номеру. Но он индексировал данные только в ECM-системе Directum. Поэтому задачей команды Ardecs стало разработать адаптеры к 1С. Документооборот и Microsoft Sharepoint, которые обеспечили бы централизованный поиск по всем действующим системам.</div><h2  class="t-redactor__h2">Значение интеграции</h2><div class="t-redactor__text">ИТ-компания Ardecs специализируется на разработке интеграционных решений, которые помогают клиентам оптимизировать бизнес-процессы и повысить свою эффективность и конкурентоспособность.</div><div class="t-redactor__text"><strong>Бесшовная интеграция:</strong></div><div class="t-redactor__text"><ol><li data-list="ordered">избавляет от необходимости переключаться между разными сервисами;</li><li data-list="ordered">дает возможность смежным подразделениям компании пользоваться общей информацией;</li><li data-list="ordered">повышает ценность одних продуктов, добавляя возможности других;</li><li data-list="ordered">помогает собирать общую аналитику из разных источников и предоставлять ее в удобном формате.</li></ol></div><div class="t-redactor__text">Это экономит время рядовых сотрудников и руководителей, так компании могут ускорить темпы производства, улучшить качество оказываемых услуг, а также быстро адаптироваться к изменениям на рынке.</div><div class="t-redactor__text">Для «ОДК-Авиадвигатель» реализация проекта интеграции имела критическое значение. Это передовое предприятие, которое стремится оптимизировать и оцифровать максимум процессов и на производстве, и в работе бэк-офиса. Единый ИТ-ландшафт, к которому легко привыкнуть и в котором удобно работать, — ключевая ценность для сотрудников. Особенно это касается тех, кто имеет дело с документами и другими видами данных — корпуса предприятия находятся на территории огромного комплекса, и до внедрения специализированных систем работникам приходилось передавать документы лично, преодолевая значительные расстояния.</div><div class="t-redactor__text">Автоматизация решила эту проблему, не хватало лишь продуманной интеграции, чтобы распространить возможности «умного» поиска на разные ИС.</div><h2  class="t-redactor__h2">Под капотом адаптера</h2><div class="t-redactor__text">Для начала эксперты Ardecs обсудили с разработчиками Smart Search функциональность будущего решения, потом продумали его архитектуру и принялись за создание индивидуальных адаптеров к СЭД и корпоративному порталу. Каждый из них работает по такому принципу:</div><div class="t-redactor__text"><ol><li data-list="ordered">Получает документы из системы-источника. При этом сервис просматривает все документы, но пропускает служебный, удаленный, скрытый и другой ненужный контент.</li><li data-list="ordered">Получает информацию о правах доступа к каждому найденному документу.</li><li data-list="ordered">Готовит файлы к массовой выгрузке.</li><li data-list="ordered">Передаёт всю информацию в сервис индексации Directum Smart Search.</li><li data-list="ordered">После этого адаптер автоматически переходит в режим неполной индексации ー запрашивает у системы-источника информацию только об изменениях. Это нужно, чтобы не тратить время и мощности на уже обработанные документы.</li></ol></div><div class="t-redactor__text">«Одной из ключевых задач, над которой нам пришлось поломать голову, было преобразование моделей прав доступа к документам в 1С и MS Sharepoint для передачи их в Directum Smart Search. Подходы к тому, как задается эта информация, значительно отличается во всех трех системах. Команде нужно было проработать механизмы преобразования этой модели и способы отследить, если права доступа изменятся. При этом найти баланс между задержкой актуализации сведений и количеством связанных с этим запросов».</div><div class="t-redactor__text">Артем Овчинников, генеральный директор Ardecs</div><div class="t-redactor__text">Для создания решения использовались инструменты Java 17, Spring, Spring Integration, Spring MVC. Теперь индексация корпоративных документов стала похожа на работу поисковых систем ー сервис индексирует все файлы, а если в какие-то из них позже вносятся изменения, результаты выдачи оперативно меняются.</div><div class="t-redactor__text">Передача и обработка данных из СЭД и корпоративного портала происходит независимо друг от друга. Причем процессом можно управлять: приостанавливать, возобновлять или полностью перезапускать.</div><h2  class="t-redactor__h2">Экономия времени и рост производительности</h2><div class="t-redactor__text">После настройки интеграции, ИТ-экосистема компании стала более логичной и простой. Весь поиск теперь происходит «в режиме одного окна». Также сотрудникам не обязательно помнить название документа, достаточно ввести контекст своими словами. Нужные документы выдаются из всех корпоративных систем с учетом разграничения прав доступа, а самый релевантный результат всегда оказывается в первых строках выдачи ー так говорят сами пользователи.</div><div class="t-redactor__text">«В ходе совместной работы специалисты ООО «Ардекс» продемонстрировали не только высочайший уровень экспертизы в области разработки интеграционных решений на базе Java-технологий, но и умение быстро адаптироваться к изменяющимся требованиям заказчика. Результаты вашей работы уже оказали заметное влияние на операционную эффективность АО «ОДК-Авиадвигатель».</div><div class="t-redactor__text">Централизованное решение по поиску информации на 30% сократило то время, которое 2000 офисных работников предприятия тратили на рутину. Снизились операционные издержки, а результативность наоборот выросла, так как сотрудники смогли больше времени посвящать своим прямым обязанностям, более творческим и стратегически важным задачам.</div><div class="t-redactor__text">Продуманные интеграционные решения ー залог эффективности бизнес-процессов и удобства работы в корпоративной ИТ-экосистеме.</div>]]></turbo:content>
    </item>
  </channel>
</rss>
