Рубрика «best practice» - 2

Best practice проектов автоматизации бизнес-процессов от профессионала. Часть 1 - 1

Андрей Кочетков – Руководитель консалтинговых проектов «Консист Бизнес Групп» (объединение консалтинговых активов ГК «ЛАНИТ» и «Группы Систематика»)

Любой проект в консалтинговой практике, связанный с разработкой технического задания, функциональных требований или оптимизацией бизнес-процессов – задача трудоемкая, но необходимая для того, чтобы обеспечить базу комплексного проекта, свести в единую картину ожидания заказчика и прогнозируемые результаты. Руководитель консалтинговых проектов «Консист Бизнес Групп» Андрей Кочетков расскажет о том, на что следует обращать внимание, какие трудности могут возникать в проектах и как их преодолевать, поделится особенностями ведения проекта в компании diHouse – крупном оптовом дистрибуторе.

— Андрей, расскажите, пожалуйста, в целом о Ваших проектном опыте, Все ли Ваши проекты включают этап описания бизнес-процессов?

— Я представляю департамент консалтинга «Консист Бизнес Групп», и практически все проекты, которые мы выполняем, связаны с обследованием бизнес-процессов, бизнес-архитектуры организаций, выявлением функциональных требований к автоматизации процессов. Конкретный результат проекта зависит от того, что именно заказчик ожидает получить в результате проекта. Как правило, нашим клиентам интересны такие услуги, как организационная диагностика, оптимизация бизнес-процессов, разработка концепций автоматизации, архитектуры комплексных информационных систем организаций, технических заданий на автоматизацию конкретных бизнес-процессов или функциональных областей. Поскольку мы являемся ИТ-бизнес-консультантами, нас, как правило, приглашают в проекты, связанные с внедрением автоматизированных систем. При этом, практически любой проект автоматизации неразрывно связан с изменением бизнес-процессов компании, какого бы размера или масштаба они ни была. Мы начинаем с обследования организации в целом, обследования деятельности организации, выявления и описания бизнес-процессов, поиска текущих недочетов в процессах организации и в их автоматизации.
Читать полностью »

php arrays everywhere

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

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

tl;dr Использовать ли статические методы? Да, когда они не зависят от внутреннего состояния объекта.

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

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

Основная проблема здесь — отсутствие совместно используемого глобального состояния. Вот пример из прошлого поста:

<?php
$time = Time::from("11:45");

В данном примере возвращаемый результат свободен от побочных эффектов и вполне предсказуем, т.к. зависит только от аргументов, подаваемых на вход. Каждый раз при вызове метода вам будет возвращен идентичный результат (объект Time со значением 11:45), вне зависимости от состояния системы, контекста или чего-либо еще.
Читать полностью »

tl; dr — Не ограничивай себя одним конструктором в классе. Используй статические фабричные методы.

PHP позволяет использовать только один конструктор в классе, что довольно раздражительно. Вероятно, мы никогда не получим нормальную возможность перегрузки конструкторов в PHP, но кое-что сделать все же можно. Для примера возьмем простой класс, хранящий значение времени. Какой способ создания нового объекта лучше:

<?php
$time = new Time("11:45");
$time = new Time(11, 45);

Правильным ответом будет «в зависимости от ситуации». Оба способа могут являются корректным с точки зрения полученного результата. Реализуем поддержку обоих способов:
Читать полностью »

Настройка роутинга в Angular JS — не самая сложная штука. Поэтому я лишь предлагаю одно из возможных решений, которое поможет вам придерживаться принципа “don't repeat yourself” при работе с маршрутами.

DRY роутинг в AngularJS

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

Даже если код тривиален, вы всё равно должны его тестировать.
Пару дней назад, Роберт Мартин опубликовал пост «Прагматичность TDD», (здесь лежит переводприм.переводчика) где он рассказал о том, что не тестируют абсолютно весь код. Среди исключительных ситуаций, когда не стоит применять TDD, дядя Боб упоминает написание GUI-кода, и я вижу смысл в таких утверждениях, но среди исключений есть парочка, на мой взгляд, нелогичных. Читать полностью »

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

Когда-то я собрала набор простых правил, которые помогают избежать 80% самых распространенных ошибок, касающихся построения интерфейсов. Решила расшарить их для хабрасообщества.
Кому интересно — добро пожаловать под кат.

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

Сравнение скорости загрузки прогрессивного и последовательного jpeg
С точки зрения пропускной способности канала, изображения — свиньи. В среднем, они занимают наибольший (62%) средний трафик сайтов и чаще всего являются бутылочным горлом. Загружаясь, изображения рвут страницу, расталкивая другие элементы вокруг и вызывая неуклюжую перерисовку (прим. перев.: от этого, конечно, можно избавиться определенной версткой, но тогда нужно хардкодить или ограничивать размеры картинок). Загрузка изображения на странице воспринимается или как «тик, тик, тик, тик, тик, готово», или же сначала вообще ничего нет, а потом внезапно «бум!» и оно появляется ниоткуда. Все понимают, что подразумевается под «тик, тик, готово» и «бум» и всех нас это немного раздражает, потому что мы чувствуем, сколько времени наших прелестных и коротких жизней потеряно в ожидании загрузки картинок.
Читать полностью »

Посмотрев конференцию GoingNative 2012 решил попытаться описать «best practice» для написания программ в стиле C++11. Планируется цикл статей, кому интересно, auto articlesIterator = articles.begin();
Читать полностью »


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