Рефакторим в бесточечный стиль. Нотация uml для классов и объектов

Бизнес-процессы. Моделирование, внедрение, управление Репин Владимир Владимирович

4.6.5. Нотация «Процедура» среды моделирования Business Studio

Сейчас одним из распространенных инструментов бизнес-моделирования стала среда Business Studio. В этой системе реализованы четыре нотации: IDEF0, «Процесс», «Процедура», eEPC.

Нотация IDEF0 используется для построения моделей верхнего уровня, а «Процедура» и eEPC – для создания моделей типа Work Flow.

Рассмотрим подробнее нотацию «Процедура» (см. рис. 4.6.7), так как она наиболее проста и удобна для описания бизнес-процессов организации. Основные элементы нотации – это:

Операция («Действие» в терминологии Business Studio);

Событие;

Блок «Решение»;

Стрелка типа «Связь предшествования»;

Стрелка типа «Поток объектов»;

Сноска (текстовый комментарий);

Дорожки.

Рис. 4.6.7. Схема процесса в нотации «Процедура» среды моделирования Business Studio

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

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

Схема процесса располагается на листе формата А4. Какие-либо изменения размера листа, как правило, не допускаются. Это ограничение дает возможность документировать схемы процессов в привычном формате (включать в регламентирующие документы компании). Отмечу, что это важное требование и им не стоит пренебрегать.

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

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

Операции процесса должны быть связаны между собой стрелками типа «Связь предшествования». Если после выполнения операции необходимо поставить блок «Решение», то связи операций с этим блоком также отображаются при помощи стрелок «Связь предшествования».

Если между двумя операциями на схеме представлен блок «Решение», то для моделирования передачи информации/документов из одной операции в другую используют стрелки типа «Поток объектов».

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

На рис. 4.6.8 представлены варианты именования операции процесса в формате «глагол + существительное». Также показаны ошибки, часто допускаемые при именовании операций.

Рис. 4.6.8. Именование операций процесса

Стрелки типа «Связь предшествования» показывают последовательность выполнения операций процесса во времени. Каждая именованная стрелка в Business Studio – объект базы и хранится в справочнике стрелок. К именованным стрелкам типа «Связь предшествования» можно привязывать объекты из справочника «Объекты деятельности» (например, бумажные или электронные документы). К неименованным стрелкам привязать объекты невозможно. На рис. 4.6.9 показаны правильные и неправильные варианты применения стрелок на схеме процесса. Стрелки должны быть привязаны к операциям. Наличие стрелок, не привязанных к операциям (либо междиаграммным ссылкам), не допускается. Стрелки необходимо именовать. Нельзя использовать короткие, абстрактные названия: «да», «договор», «поступило письмо», «информация». Они должны быть подробные, конкретные и отражать контекст того процесса, в рамках которого создаются.

Рис. 4.6.9. Использование стрелок типа «Связь предшествования»

Стрелки типа «Связь предшествования» желательно именовать, указывая:

Название документа в именительном падеже;

Описание результата выполнения операции в терминах события.

Стрелки типа «Поток объектов» показывают движение объектов между операциями процесса. Под объектами понимаются любые объекты из справочника «Объекты деятельности системы Business Studio». В первую очередь это бумажные/электронные документы и информация. Стрелки «Поток объектов» используются там, где невозможно (нецелесообразно) использовать стрелки «Связь предшествования», например:

При использовании блока «Решение»;

При описании межпроцессного взаимодействия при помощи информационного потока с использованием междиаграммных ссылок.

Каждая именованная стрелка – объект базы и хранится в справочнике стрелок. К именованным стрелкам можно привязывать объекты из справочника «Объекты деятельности» (например, бумажные или электронные документы). К неименованным стрелкам привязать объекты невозможно.

На рис. 4.6.10 показаны правильные и неправильные варианты применения стрелок на схеме процесса.

Рис. 4.6.10. Использование стрелок типа «Поток объектов»

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

Стрелки необходимо обязательно именовать, но нельзя использовать короткие, абстрактные названия типа «Договор», «Письмо», «Информация». Они должны быть подробными, конкретными и содержать наименование или отражать суть тех документов/информации, которые используются в рамках моделируемого процесса.

Стрелки типа «Поток объектов» можно именовать, указывая название документа (формулировку информационного потока) в именительном падеже.

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

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

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

На рис. 4.6.11 показаны правильные и неправильные варианты применения на схеме объектов типа «Событие».

Рис. 4.6.11. Использование событий

Блок «Решение» используется на схемах процессов в качестве логического оператора (gateway). Обратите внимание, что «Решение» в Business Studio обладает всеми атрибутами класса «Процесс», но не может быть декомпозировано на следующий уровень.

Блок «Решение» именуется при помощи существительного. Примеры:

«Проверка принятого решения»;

«Проверка применимости условий типового предложения»;

«Сравнение величины запрашиваемой скидки с возможной»;

«Определение соответствия классификатору…».

На рис. 4.6.12 показаны правильные и неправильные варианты применения на схеме процесса блока «Решение».

Рис. 4.6.12. Использование блока «Решение»

Блок «Решение» необходимо использовать на схеме процесса при возникновении ситуации, требующей применения оператора исключающего логического «ИЛИ» (рис. 4.6.12, ситуация 1). В случае применения блока «Решение» необходимо дополнительно использовать стрелку «Поток объектов» для описания информационного потока между операциями процесса (если он существует). Ситуация 2 некорректна в части именования блока «Решение» и стрелок. Ситуация 3 некорректна, так как требовалось применение блока «Решение».

Для упрощения графической схемы в Business Studio блок «Решение» не используется при возникновении ситуации, требующей применения оператора исключающего логического «ИЛИ» при объединении двух веток процесса (ситуация 4), а также оператора «И» (ситуация 5).

Для моделирования межпроцессного взаимодействия в Business Studio используют междиаграммные ссылки.

К ним могут быть привязаны как стрелки типа «Поток объектов», так и стрелки «Связь предшествования».

На рис. 4.6.13 показаны правильные и неправильные варианты применения на схеме процесса междиаграммных ссылок.

Рис. 4.6.13. Использование междиаграммных ссылок

Если по смыслу модели нужно указать, что процессы обмениваются информацией/документами, то к междиаграммной ссылке привязывается стрелка типа «Поток объектов». Если следует указать, что процессы выполняются последовательно, то к междиаграммной ссылке привязывается стрелка типа «Связь предшествования».

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

Схема процесса в нотации «Процедура» при кажущейся простоте весьма информативна и удобна для описания. Можно сформулировать следующие преимущества этой нотации (в случае ее использования в Business Studio):

Представлен минимально необходимый набор графических элементов для описания процессов типа Work Flow (поток работ);

Быстрота создания графических схем для целей регламентации;

Возможность повышения информативности схем процессов за счет гибкого использования событий и именованных стрелок (одновременно с возможностью привязки документов к стрелкам и последующей выгрузки информации в регламентирующие документы);

Схемы процессов просты и понятны всем сотрудникам даже без специального обучения;

Простота в обучении (нет необходимости привлекать дорогостоящих специалистов со стороны – обучение можно проводить силами сотрудников отдела организационного развития);

Схемы процессов являются кросс-функциональными, что удобно для описания сквозных процессов компании;

Можно выгружать и редактировать схемы в MS Visio (при необходимости).

Среда моделирования Business Studio позволяет быстро создавать процессную модель компании. Информацию о процессах можно выгружать из системы в виде регламентирующих документов в требуемом формате.

В этом параграфе я привел описание требований к стандартному использованию нотации «Процедура» Business Studio. Но при создании корпоративного стандарта описания процессов вы можете разработать свои правила применения этой нотации. Хочу подчеркнуть, что не бывает идеальных нотаций и стандартов их применения. Важно сделать свой, понятный всем внутренний стандарт описания, опробовать его на практике, а затем использовать в текущей деятельности.

Из книги Российская реклама в лицах автора Гольфман Иосиф

Business и busyness Получается, что агентство, заказывая ролик, не вполне доверяет его создателю?В то время – однозначно. Кстати, сама система контроля – это скорее хорошо, чем плохо. Но когда у меня на одной из съемок сидело одиннадцать контролеров-экспатов (иностранцев. – Прим.

Из книги Fast-менеджмент. Управлять – это просто, если знаешь как автора Нестеров Федор Федорович

Business 3D Компании не стоят на месте – они развиваются. Каждая компания проходит свой путь развития от создания до ликвидации (в идеале небыстрый). Это развитие можно разделить на некоторые этапы. Потребности компании на разных этапах развития разные, поэтому на каждом из

Из книги Dream Team. Как создать команду мечты автора Синякин Олег

Как определить положение компании на кривой Business 3D Технология определения положения компании на кривой развития следующая.1. Сначала мы определяем положение компании по каждой шкале отдельно.2. Затем мы берем существующие отметки по любым двум шкалам и определяем,

Из книги Бизнес-процессы. Моделирование, внедрение, управление автора Репин Владимир Владимирович

Как использовать Business 3D для успешной карьеры С помощью трехмерных бизнес-координат вы сможете на основании ограниченной и общедоступной информации предсказывать средне-и долгосрочную стратегию поведения других компаний (партнеров, конкурентов, поставщиков и т. д.). Это

Из книги PR-элита России: 157 интервью с высшим эшелоном российского PR автора Масленников Роман Михайлович

«Большой взрыв». Начало тренингов Business Relations В очередной раз проводя ВКР (март 2005 года), мы смотрели на цифры продаж, и они нас не радовали. Первый квартал заканчивали с отставанием 11 % от плана, и в этом уже была заложена некая трагичность, ибо бытует такое суеверие: как

Из книги 77 коротких рецензий на лучшие книги по маркетингу и продажам автора Манн Игорь Борисович

О компании Business Relations Мы создаем новое отношение людей к работе для ускорения развития компании.Все специалисты Business Relations сумели достичь высоких результатов в различных сферах бизнеса. Теперь их объединяет признание эффективности курса Business Relations и стремление,

Из книги Монетизация бизнеса автора Меркулов Андрей

4.2.2. Нотация моделирования процессов Руководителям нужно определиться с требованиями к описанию процессов, в том числе выбрать нотации для создания моделей. Следует выявить внутренних потребителей и понять их запросы. Например, руководителям подразделений нужно

Из книги автора

4.4. Архитектура типовой среды моделирования процессов Сейчас на рынке представлено множество программных продуктов для моделирования деятельности организации. Эти продукты относятся к так называемым средствам Business Process Architecture или Enterprise Architecture, то есть программным

Из книги автора

4.6.3. Нотация ARIS eEPC Нотация eEPC является частью общей методологии ARIS, в рамках которой организация рассматривается с четырех позиций: организационной, функциональной, структуры данных и бизнес-процессов. При этом каждая из позиций разделяется на три подуровня:

Из книги автора

4.6.4. Нотация BPMN BPMN – система условных обозначений (нотация) и модель для описания и подготовки к автоматизации бизнес-процессов. Разработана она компанией Business Process Management Initiative и поддерживается Object Management Group после слияния организаций в 2005 году. Предыдущая версия BPMN –

Из книги автора

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

Из книги автора

Анджей Агарков (Propaganda Studio) Как вы стали руководителем PR-агентства? Какие этапы были в Вашей карьере? Руководителем агентства я был назначен в момент регистрации его основателем, то есть мною же. Я был беспощадно одарен грузом ответственности локомотива агентства с

Из книги автора

Юлия Курсова (Business Communications Agency) Как вы стали первым лицом PR-агентства – основав его или в результате продвижения по службе? Как вы считаете, что интереснее? Агентство было создано в начале 2000 года, я являюсь его основателем. Думаю, интересно и то, и другое, опыт, который

Из книги автора

14. «Business beyond the box», John O’Keeffe 240 страниц. Мой рейтинг – 5+ (опять не опечатка).Эта книга не про маркетинг, но я включаю ее в этот список. Причина следующая: все, кто принимает решения, должны прочитать эту книгу. Точка. Я очень расстроился, что не прочитал ее раньше. Очень бы

Из книги автора

61. «The fundamentals of business to business sales and marketing», John M. Coe 240 страниц. Мой рейтинг – 4+.Практик B2B о практике. Цинично. Прагматично. Я читал… думал… и часто восклицал «вау!». Но еще чаще –

Из книги автора

Формула прибыли в оптовом бизнесе и на рынке В2В (business 2 business) Если вы работаете на рынке В2В, то формула продаж будет немного отличаться, хотя в целом рекомендации будут похожи.Показатели продаж в соответствии с нашей методикой трехуровневого отдела продаж разделяются на

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

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

Однако могут быть и некритичные по времени компоненты. Например, сис­тема сбора данных в реальном времени должна принимать информацию сразу, иначе она будет потеряна, но анализ полученных сведений допустим и позже.

5. Реактивные системы управляются событиями и долж­ны реагировать на внешние стимулы. Обычно реакция системы зависит от ее текущего состояния, то есть не только от самого внешнего стимула, но и от того, что происходило в системе раньше.

6. Обзор нотации uml

В методе COMET используется нотация из унифицированного языка моделиро­вания UML , которая объединила нотации, предложенные Бучем , Джекобсоном , Рамбо и Харелом . Представим краткий обзор нотации UML .

Co временем нотация UML расширялась, и теперь в ней поддерживается много различных диаграмм.

6.1. Диаграммы uml

В нотации UML поддерживаются девять видов диаграмм:

– диаграммы прецедентов;

– диаграммы классов;

– диаграммы объектов, являющиеся вариантом диаграмм классов в примене­нии к экземплярам. В методе COMET вместо них работают консолидиро­ванные диаграммы кооперации;

– диаграммы кооперации;

– диаграммы последовательности;

– диаграммы состояний;

– диаграммы деятельности (в COMET не используются);

– диаграммы компонентов (в COMET не используются).

– диаграммы развертывания.

6.2. Диаграммы прецедентов

Актер (actor ) инициирует прецедент. Прецедент (use case ) описывает после­довательность взаимодействий между актером и системой. Актер изображается на диаграмме прецедентов в виде фигуры человечка, система – в виде прямоуголь­ника, прецедент – в виде эллипса внутри этого прямоугольника. Коммуникаци­онные ассоциации связывают актеров с теми прецедентами, в которых они участ­вуют. Между прецедентами могут быть отношения include (включает) и extend (расширяет). Пример диаграммы прецедентов представлен на рис.6.1.

6.3. Нотация uml для классов и объектов

Классы и объекты изображаются в UML прямоугольниками, как показано на рис.6.2.

Рис. 6.1. Диаграммы прецедентов в нотации UML

В прямоугольнике класса всегда вписано имя класса. Дополнительно могут быть указаны атрибуты и операции класса. Когда присутствуют все три эле­мента, то в верхней секции прямоугольника находится имя класса, в средней – атрибуты, а в нижней – операции.

Для того чтобы отличить класс (тип) от объекта (экземпляра типа) , имя объекта под­черкивается. Объект может обозначаться как anObject , anotherObject : Class или : Class . Классы и объекты встречаются в разных диаграммах UML .

Рис. 6.2. Объекты и классы в нотации UML

6.4. Диаграммы классов

На такой диаграмме классы изображаются в виде прямоугольников, а стати­ческие (постоянные) отношения между ними – в форме дуг. Поддерживаются три основных типа отношений между классами (рис. 6.3):

ассоциации . Ассоциация между двумя классами (бинарная ассоциация) изображается в виде линии, соединяющей прямоугольники классов. У нее есть имя и, возможно, стрелка, поясняющая, в каком направлении следует это имя читать. На каждом конце ассоциации проставляется кратность – число, свидетельствующее, сколько экземпляров одного класса связано с од­ним экземпляром другого класса. Дополнительно на каждом конце ассоци­ации может присутствовать стрелка, указывающая направление навигации вдоль данной ассоциации.

Допустимы следующие кратности ассоциации: ровно один (1), присутствие экземпляра класса необязательно (0..1), нуль или более (*), один или более (1..*) и точное задание числа экземпляров классов (m..n), где m и n - числа;

иерархии агрегирования и композиции . Это отношения вида целое/часть. Отношение композиции (изображается закрашенным ромбом) накладыва­ет более сильные ограничения на экземпляры классов, чем отношение агре­гирования (показывается незакрашенным ромбом). Ромб одной вершиной примыкает к прямоугольнику класса, являющегося частью в отношении вида «часть/целое»;

иерархия обобщения/специализации . Это отношение вида «является». Обоб­щение изображается в виде стрелки, ведущей от подкласса (потомка) к су­перклассу (родителю), причем стрелка упирается в прямоугольник супер­класса.

Видимость определяет , доступен ли элемент класса вне самого класса (рис. 6.4). Показывать видимость на диаграмме необязательно. Открытая видимость, изобра­жаемая символом + (плюс), означает, что элемент виден извне класса.

Закрытая видимость, отмеченная знаком – (минус), свидетельствует о том, что элемент ви­ден только внутри класса, в котором он определен, а от других классов скрыт. За­щищенная видимость, показываемая знаком #, говорит о том, что элемент ви­ден внутри класса, в котором определен, а также во всех подклассах этого класса.

Рис. 6.3. Нотация UML для связей на диаграмме классов

Рис. 6.4. Нотация UML для обозначения видимости на

диаграмме классов

  • Перевод
  • Tutorial

Данный пост - это пятая часть серии статей о функциональном программировании под названием "Мышление в стиле Ramda".

Бесточечная нотация

Существует два основных руководящих принципа в Ramda, о которых мы уже говорили в .


1. Передавать данные последними
2. Каррировать все вещи


Эти два принципа ведут к стилю, который функциональные программисты называют "бесточечным". Я люблю думать о бесточечном коде как о "Данные? А где данные? Здесь нигде нет данных ".



const titlesForYear = curry((year, books) => pipe(filter(publishedInYear(year)), map(book => book.title))(books))

Обратите внимание, что books встречается лишь дважды: один раз как последний параметр в списке аргументов (данные идут последними!), и однажды в самом конце функции, когда мы применяем наш конвеер. Это похоже на паттерн, который мы видели с age ранее, так давайте применим к этой ситуации похожую трансформацию:


const titlesForYear = year => pipe(filter(publishedInYear(year)), map(book => book.title))

Оно работает! Теперь у нас есть бесточечная версия titlesForYear .


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


Если мы хотим использовать titlesForYear в конвеере, всё будет чудесно. Мы просто можем вызвать titlesForYear(2012) . Но если мы пожелаем использовать эту функцию отдельно, нам придётся вернуться к паттерну)(, который мы видели в предыдущем посте: titlesForYear(2012)(books) . На мой взгляд, оно того не стоит.


Но в любое время, когда я имею одно-аргументную функцию, которая следует (или может быть отрефакторена для следования) вышенаписанному паттерну, - я почти всегда делаю её бесточечной.

Рефакторим в бесточечный стиль

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


Есть несколько подобных примеров из второй части . В тех примерах мы отрефакторили наш код для того чтобы скомбинировать функции, используя такие штуки как both , either , pipe и compose . Как только мы закончили с этим, приведение этих функций к бесточечным стало довольно простым делом.


Давайте посмотрим на метод isEligibleToVote . Вот с чего мы начинали:


const wasBornInCountry = person => person.birthCountry === OUR_COUNTRY const wasNaturalized = person => Boolean(person.naturalizationDate) const isOver18 = person => person.age >= 18 const isCitizen = person => wasBornInCountry(person) || wasNaturalized(person) const isEligibleToVote = person => isOver18(person) && isCitizen(person)

Давайте начнём с isCitizen . Эта функция принимает person и применяет к ней две разных функции, объединяя результат с помощью || . Как мы уже узнали во второй части , вместо этого мы можем использовать either для объединения двух функций в новую функцию и последующего применения её к person .


const isCitizen = person => either(wasBornInCountry, wasNaturalized)(person)

Мы можем проделать подобные штуки с isEligibleToVote с помощью both:


const isEligibleToVote = person => both(isOver18, isCitizen)(person)

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


const isCitizen = either(wasBornInCountry, wasNaturalized) const isEligibleToVote = both(isOver18, isCitizen)

Почему?

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


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


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

  • Это делает программы более простыми и короткими. Не всегда это хорошо, но тем не менее.
  • Это делает алгоритмы чище. Фокусируясь только на функциях, которые объединяются, мы получаем больше смысла о том, что происходит, не акцентируя внимание на обрабатываемых аргументах с данными.
  • Это заставляет нас больше думать о трансформациях, чем о данных, которые трансформируются.
  • Это помогает нам думать о наших функциях как о необльших строительных блоках, которые могут работать с различными видами данных, примерно как думать об операциях с определённым типом данных. Когда мы опускаем аргумент с данными, это позволяет нам становиться более креативными.

Заключение

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

Далее

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


Нам нужно найти декларативные пути для работы с объектами и массивами. И что насчёт иммутабельности? Как мы будем манипулировать объектами и массивами в иммутабельном стиле?


Следующий пост данной серии, “ ” будет обсуждать, как мы можем работать с объектами в функциональном и иммутабельном стиле. После этого должен будет выйти пост “Неизменяемость и Массивы”, в котором будет обсуждаться то же самое по отношению к массивам.

Теги: Добавить метки



Поделиться