Рубрика «IT-стандарты» - 30

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

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

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

Читать полностью »

Возникла передо мной такая задача: автоматический выпуск сертификатов для Web приложения. И требования:

  • CA должны доверять все браузеры т.е. самоподписанные сертификаты не подходят;
  • желательно бесплатно;
  • Выпуск надо делать программно с помощью Java Embedded compact1 profile. Это всё по следам Java и без 16Gb памяти?.

Наверное многие уже слышали про бесплатные сертификаты от LetsEncrypt и certbot. А можно ли certbot заменить Java?

Управление сертификатами с помощью протокола ACME - 1

Читать полностью »

Что за чёрт, Python - 1

Недавно мы писали о забавных, хитрых и странных примерах на JavaScript. Теперь пришла очередь Python. У Python, высокоуровневого и интерпретируемого языка, много удобных свойств. Но иногда результат работы некоторых кусков кода на первый взгляд выглядит неочевидным.

Ниже — забавный проект, в котором собраны примеры неожиданного поведения в Python с обсуждением того, что происходит под капотом. Часть примеров не относятся к категории настоящих WTF?!, но зато они демонстрируют интересные особенности языка, которых вы можете захотеть избегать. Я думаю, это хороший способ изучить внутреннюю работу Python, и надеюсь, вам будет интересно.

Если вы уже опытный программист на Python, то многие примеры могут быть вам знакомы и даже вызовут ностальгию по тем случаям, когда вы ломали над ними голову :)

Читать полностью »

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

Браузер браузеру рознь, или Будни отдела корпоративной инфраструктуры - 1

Читать полностью »

В статье рассказывается о децентрализованной реализации протокола IP-телефонии ENUM на базе блокчейна криптовалюты Emercoin. Дано описание ситемы ENUMER, её отличие от других реализаций ENUM. Также приведены инструкции по разворачиванию узла ENUMER и дан пример конфигурации VOIP АТС FreeSWITCH для работы с ENUMER.

Звоним бесплатно, используя блокчейн-сервис ENUMER - 1

Читать полностью »

Как узнать свой внешний IP из программы - 1

При написании различных программ для работы с сетью, особенно p2p систем, время от времени возникает необходимость узнать внешний IP своего компьютера из программы (тот адрес, по которому Ваш компьютер доступен из Большого Интернета). Часто возникает искушение пойти легким путем и использовать внешние WEB-сервисы, которые по http возвращают Вам IP, или самому развернуть таковой. Хотя такой способ решения задачи и работоспособен, он тем не менее, имеет ряд недостатков:

  • При использовании собственного сервера – нужно где-то его держать и поддерживать, заодно и c соответствующим доменным именем. В случае выхода его из строя, или принудительного отзыва домена, вся Ваша p2p сеть выходит из строя.
  • При использовании внешнего сервера – Вы вводите зависимость своей системы как от его работоспособности, так и от формата ответов, который вообще никак не стандартизирован, и который владелец сервера может поменять в любой момент. С теми же последствиями для вашей сети.
  • http, которым советуют пользоваться – базируется на tcp, то есть протокол сравнительно тяжеловесный, требующий установки соединения и тп. В общем, пользоваться можно, но перерасход ресурса как компьютера, так и сети налицо.

Читать полностью »

6.6. Многомерность

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

Это приведет к изменениям во всех частях таксономии – в основном, к отбрасыванию элементов, которые больше не нужны, и замене нескольких элементов на один комбинированный:

  • Базовые концепты
    Теперь нам не нужно различать два измерения, поэтому мы можем избавиться от концептов nr_employees_by_age и nr_employees_by_gender.
  • Таксономия измерений
    Поскольку мы можем использовать элемент gender для обозначения “всех гендерных групп”, аналогично добавим элемент all в тип age_group_type.Читать полностью »

Правильно заданный вопрос быстро приводит к правильному ответу. Недавно меня спросили: «Почему стандарты бизнес-анализа сконцентрированы на выявлении требований, но ничего не говорят о превращении этих требований в решение?» В самом начале своей карьеры аналитика я искал ответ на вопрос: как анализировать предметную область и как превращать результат анализа в структуру модели: откуда брать классы, атрибуты и методы? Тогда я нашел один более-менее вразумительный метод, описанный в книге Крега Лармана Применение UML 2.0 и шаблонов проектирования. Введение в объектно-ориентированный анализ, проектирование и итеративную разработку. Аналитику предлагалось прохождение по тексту с маркерами разных цветов: Красный выделяет существительные и является основанием для создания классов, зеленый — прилагательные, причастия и проч. — основа для создания атрибутов этих классов. И глаголы выделяются синим — основа для создания методов.

Однако, в реальности этот метод не работал. Один и тот же факт я мог смоделировать при помощи класса, значения атрибута или метода в зависимости от своего желания. Об этом написано подробно у Крисса Партриджа в книге Business Objects: Re-Engineering for Re-Use.
Читать полностью »

6.4. Как облегчить жизнь

До сих пор мы использовали только простые item-концепты. Каждый из nr_employees-концептов мог быть интерпретирован независимо от остальных.

У такого подхода есть недостаток: если количество полов обычно ограничивается двумя, то для возраста мы могли бы иметь большее количество групп, чем три в нашем примере. Что, если бы нам понадобилось разделить возраста на 10-летние интервалы? Пришлось бы добавить новые концепты для групп 11–20, 21–30, 31–40, 41–50, 51–60 и 61–70. А при делении на 5-летние, 2-летние или даже годовые интервалы это очень быстро станет утомлять. Базы ссылок стали бы очень большими, поскольку надо было бы определять ссылки для каждого из этого множества концептов. Хотелось бы иметь более эффективный подход для подобных ситуаций.

И сегодня мы расскажем, как нам в этом могут помочь кортежи.Читать полностью »

6.3. Вычисления и валидация

Теперь, когда у нас есть таксономия, позволяющая построить неплохой отчет, настало время приступить к решению ещё одного вопроса – валидация.

Как вы помните, в нашей компании работает один ‘одаренный’ математик. Несмотря на то, что отчет в целом выглядит хорошо, 27 мужчин и 15 женщин никак не могут дать общее количество сотрудников, равное 41.

К счастью, в XBRL есть решение на такой случай – базы ссылок вычислений (calculation linkbases).

6.3.1. Схема таксономии

Нам нужно внести несколько изменений в схему таксономии, чтобы начать использовать базу ссылок вычислений:

  • Определить связь с базой ссылок;
  • Разрешить использование необходимых ролей.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js