Adobe photoshop: слои и маски

Зачем нужны слои

  • Слои помогают спрятать/защитить, то, что находится под ними. Можно воспринимать слой как фильтрующий барьер: данные, передающиеся через него, должны быть провалидированны перед тем как перейти на следующий. Они должны быть приведены к формату, который позволит другим слоям корректно работать с ними. Слой также определяет, какие данные и функции из более глубокого слоя могут быть использованы во внешних.
  • Слои четко разграничивают ответственности, а следовательно расположение классов в вашем коде. Если вы добьетесь строгих договоренностей внтури вашей команды, о том какие слои используются в вашем приложении и за что отвечате каждый из них, то вам всегда будет легко найти нужный класс или определится куда следует добавлять новый, просто зная его предназначение.
  • Благодаря использованию слоев, можно свободно менять приоритет и порядок этапов разработки приложения. Вы можете разрабатывать проект последовательно, начиная от ядра бизнесс логики, накладывая слой за слоем на него. А можно инверсировать процесс и начать с разработки слоя взаимодействия с пользователем. Этот пункт довольно важен для нас, так как благодаря ему можно разработать большую часть приложения до принятия решения о используемой ORM, БД, фреймворке, и т.д
  • Большое количество старого софта содержит код, неразделенный на слои, который можно назвать «спагети» кодом: вы можете вызывать и использовать всё что хотите, любые методы и структуры в любой части проекта. Используя систему слоев(правильным образом) можно добиться высокого уровня разделения ответсвенности( separation of concerns). Если вы задокументируете эти правила и будете следить за их соблюдением на код ревью, то вы здорово уменьшите скорость скатывания вашего проекта в ранг гавнокода «технического долга»
  • Вы, конечно же, пишите тесты. Грамотная спроектирвоанная система слоёв, невероятно упрощает тестирование. Различные типы тестов подходят для кода из разных слоев. Назначения каждого теста становится более очевидным. Набор тестов в целом становится более стабильным и более быстроработающим.

    Однако, у нас есть паникёр из твиттера:ООП версия спагетти кода — это код лазанья, с переизбытком слоев.

Лично я никогда не встречал код-лазанью, зато видел очень много лапшекода. Правда бывало, что я писал код, в котором допускал серьезные архитектурные ошибки, и неверно разделял приложение на слои, что приносило некоторые проблемы. В этой статье я описываю, как мне кажется, наилучший набор слоев, большая часть из которых описана в книге Vaughn Vernon «Implementing Domain-Driven Design»(ссылка ниже). Прошу заметить, что слои не имеют жесткой привязки к DDD, хотя они и дают возможность создавать чистые доменные модели, при соответсвующем желании у разработчика.

В словаре Фасмера Макса

род. п. сло́я, укр. слiй, род. п. слоя́ «волокно», болг. слой «слой, корка льда», словен. slòj, род. п. slójа «грязная лужа; горный пласт, залежь», чеш. lоj «слой, залежь, пласт», слвц. sloj «слой, пласт», польск. sɫój «прожилки в древесине», н.-луж. sɫоj «плошка, миска, жестянка».Первонач. «сливаемое» – *sъlоjь, ср. нало́й «ливень», зало́й «затопленное место», сербохорв. по̀ло̑j «место, подверженное наводнению»; см. лой, лить; ср. Бернекер I, 729; Преобр. II, 323, 387. Менее вероятна реконструкция *slojь и сравнение с др.-прусск. slауаn «санный полоз», лит. šlãjos ж. мн. «сани», šliẽti, šliejù «прислонять», лтш. slìet – то же, др.-инд. c̨ráyati «прислоняет», авест. srауаtē «прислоняется», лат. clinō, -ārе «наклонять», греч. κλί̄νω «прислоняю», ирл. clóin «косой», др.-сакс. hlinôn «прислонять» (Траутман, ВSW 309; М. – Э. 3, 939 и сл.).

В словаре Синонимов

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

Различные типы слоев

Существуют различные типы слоёв. Некоторые слои представляют определенный тип географических объектов, а другие – определенный тип данных. Каждый слой имеет свой механизм для отображения и символов своего содержимого, а также определенный набор операций, который вы можете с ним совершить. У многих слоев есть специальные наборы инструментов для работы со слоем и его содержимым. Например, панель инструментов Редактор (Editor) позволяет работать со слоями пространственных объектов, а панель инструментов Топология (Topology) – с содержимым слоя топологии.

Вот наиболее распространенные типы слоев:

Создание нового корректирующего слоя

В нижней части панели слоев справа от значка Layer Mask (Добавить слой-маску) находится черно-белый кружок Create new fill or adjustment layer (Создать новый корректирующий слой или слой-заливку).

Нажав на этот значок, должен открыться список. Выберите из него Hue/Saturation (Цветовой тон/Насыщенность).

Этот корректирующий слой позволяет легко менять цвета изображений. В Photoshop CS4 и CS5, элементы для корректирующих слоев появляются в панели настроек. А в CS3 и более ранних версиях они открываются в отдельном диалоговом окне. Активируйте опцию Colorize (Тонирование) и вы увидите, как поменяется цвет на изображении. Далее измените следующие значения Hue (Цветовой тон) 195 и изображение окрасилось в синие тона, Saturation (Насыщенность) 60, изображение приобрело более насыщенный синий цвет. Я не вдаюсь в конкретные подробности, поэтому, если что-то не понятно, то ориентируйтесь по рисунку ниже.

Вот результат после создания корректирующего слоя.

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

Понятия о слоях изображения в Photoshop

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

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

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

Главное назначение такого инструмента, как слой, – это возможность составить из нескольких разрозненных элементов одно изображение и работать с каждым слоем в отдельности, не изменяя другие.

Основные действия со слоями осуществляются в палитре Photoshop Layers (Слои). Чтобы ее открыть, нужно выполнить команду Windows (Окно) > Layers (Слои). Каждому слою в этой палитре отвечает отдельная строка с его миниатюрой и названием.

Как добавить новый слой?

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

Чтобы добавить новый пустой слой в Photoshop CS4, следует выполнить одно из следующих действий:

  • 1 способ: Сделайте активным (выберите) на палитре Layers (Слои) тот слой, над которым вы хотите создать новый пустой слой, и внизу все той же палитры щелкните мышкой по кнопке Create New Layer (Создать новый слой) . Новый пустой прозрачный слой появится на палитре Layers (Слои) и автоматически станет активным — выделение перейдет на него. Данный способ добавления слоев является наиболее быстрым.
  • 2 способ: Сделайте активным (выберите) на палитре Layers (Слои) тот слой, над которым вы хотите создать новый слой и в строке меню выберите Layers (Слои) → New (Новый) → Layer (Слой). В результате на экране появится диалоговое окно New Layer (Новый слой), в котором вам будет необходимо задать параметры слоя (можете сразу нажать ОК).

Как называется верхний слой почвы?

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

Состав поверхностных компонентов грунта зависит от работы живых организмов. В качестве среды их жизнедеятельности выступают остатки растений и животных. При этом верхний слой включает несколько горизонтов:

  1. Мульчирующий – содержит растительные и животные останки. К ним относятся трава, насекомые и другие мелкие организмы. Этот слой защищает семена и предкорневые фрагменты растений.
  2. Биогумус – толщина этого слоя составляет 20 сантиметров. В составе горизонта присутствуют органические массы. Они состоят из растительности и животных, которые переработаны червями и насекомыми. Этот пласт содержит максимум питательных элементов и минералов.
  3. Минеральный – считается настоящим источником минералов для растений с глубоко расположенными корнями. Горизонт формируется на протяжении нескольких лет. За это время в нем накапливаются минеральные элементы, которые остаются после продолжительных преобразований органических и неорганических материй.
  4. Гумусный – обеспечивает проведение особых процессов биосинтеза. Благодаря химическим реакциям гумусный горизонт наполняют горючие газы. Они выступают источниками тепла и энергии.

Процесс почвообразования: почему плодородие везде разное?

Формирование почв на Земле прошло несколько этапов. Изначально были разрушены горные породы. Это произошло под влиянием температурных колебаний, воды и ветра. Мелкие породы сформировали первичные минералы, в которых поселилась органика.

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

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

Слои 21-22: tPlace/bPlace

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

В качестве альтернативы рассмотрите возможность размещения дополнительной шелкографии на слое 51: tDocu в своих целях. Он не будет включен в данные, передаваемые на производство, или напечатан на плате, так что вы можете добавить на него больше сведений. Однако если вы хотите добавить любой иллюстративный материал помимо обычной шелкографии, например текст или логотипы, то его следует размещать именно на слоях 21-22.

Вкладка Layers

В верхней части панели слоев имеется отдельная вкладка Layers (Слои). По ней-то мы и определяем, что данная панель именно для слоев.

Вы, наверно, заметили, что рядом имеются две другие вкладки Channels (Каналы) и Paths (Контуры), они отображаются серым цветом.

Эти две панели сгруппированы с панелью Layers (Слои). На самом деле панелей в Photoshop очень много и, если их все отобразить на экране, то они просто закроют всю рабочую область и работать в такой обстановке будет не комфортно. Именно поэтому производители Adobe Photoshop решили оставить только небольшую группу из нескольких панелей для экономии места.

Чтобы переключиться на другую панель в этой группе, нужно просто нажать на нужную вкладку. Но, несмотря на то, что все вкладки находятся в одной группе, панели Channels (Каналы) и Paths (Контуры) не имеют никакого отношения к панели Layers (Слои). Кроме одного факта, что они так же широко используются в Photoshop. Так, что пока мы конкретно рассматриваем панель слоев, другие вкладки мы можем игнорировать.

Копирование слоя

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

Находясь над значком, отпустите кнопку мыши. Копия слоя появится над оригиналом. В результате Photoshop сделал копию фонового слоя и присвоил ему название Background Copy (Фон копия)

Обратите внимание, что новый слой стал активным

Теперь я хочу применить пару фильтров для размытия слоя Background Copy (Фон копия). Вот, что получилось после применения нескольких фильтров.

Посмотрите на изображение вам покажется, что все изображение размыто, но это не так. Размытие было применено только к слою Background Copy (Фон копия), так как он был активный (был выделен синим цветом). А теперь посмотрите на миниатюры двух слоев, вы увидите, что слой оригинал не был затронут.

Архитектура: отсрочка технологических решений

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

  • Можно много эксперементировать, прежде чем принимать такие важные решения, как, к примеру «используемая СУБД». Также можно спокойно использовать разные базы данных для разных случаев в рамках работы с одной и той же моделью.
  • Можно отложить решение об используемом фреймворке. Это не позволит стать «приложением Symfony» или «Laravel проектом» в самом начале разработки.
  • Фреймворки и библиотеки будут размещены на безопасном расстоянии от кода модели. Это здорово поможет при обновлении мажорных версий этих фреймворков и библиотек. Это также позволит минимизирвоать изменения в коде и трудозатраты, если вы когда-нибудь захотите использовать, к примеру, Symfony 3 вместо Zend Framework 1.

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

Слой 31-32: tCream/bCream

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

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

Составные слои

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

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

Составные слои для каждого масштаба карты – многие пользователи создают мультимасштабные карты, которые отображают информацию по-разному в каждом из масштабов. Для этого можно создать составные слои для каждого масштаба карты, чтобы одновременно управлять всеми слоями, показывающими данные при определенном разрешении. Можно установить настроить масштабно-зависимое отображение для набора слоев каждого из масштабов карты. На примере ниже показаны составные слои для набора масштабов карты. Составной слой для диапазона масштабов от 1:15 000 до 1:18 000 развернут, чтобы показать его подслои.

Группировка слоев

Ранее мы узнали, что для удобства в работе с большим количеством слоев можно давать осмысленные названия каждому слою. Другой путь заключается в группировке слоев. В нижней части панели слоев есть значок папка Create a New Group (Создать новую группу). Но имеются и другие способы создания группы.

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

После того, как вы выбрали, какие слои будете группировать, нажмите на значок меню в верхнем правом углу панели слоев (в более ранних версиях Photoshop значок меню выглядит как маленькая стрелочка). В открывшемся меню слоев выберите New Group from Layers (Новая группа из слоев).

После этого на экране появится диалоговое окно New Group from Layers (Новая группа из слоев), в котором вы можете изменить название группы, а также некоторые другие параметры. Затем нажмите на кнопку ОК, чтобы принять настройки по умолчанию или какие-либо изменения, если вы что-то изменили.

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

Чтобы снова закрыть группу, так же нажмите на значок маленького треугольника.

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

Свойства слоев

Все слои в совокупности имеют следующие свойства:

  • Непрозрачность — характеризует степень прозрачности всех пикселей слоя, то есть насколько сквозь изображение на данном слое будет проступать содержимое слоя, который размещен ниже.
  • Видимость — слой может быть включенный или отключен на палитре Layers (Слои) в фотошоп. Соответственно он будет или видимый, или не видимый.
  • Режим смешивания (наложения) — характеризует, каким образом соединяется данный слой с тем, что лежит ниже. По умолчанию в программе Adobe Photoshop соединения происходит на основе прозрачности, но возможные разные варианты смешивания пикселей данного слоя с пикселями нижележащего слоя.

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

Опция Fill выполняет практически тоже что и Opasity, снижает непрозрачность слоя, но в отличии от Opasity, опция имеет одну замечательную особенность, снижая непрозрачность слоя, она оставляет видимыми все Стили слоя применяемые к изображению. Подробнее:Стили слоя

Режим наложения (смешения слоев) по умолчанию установлен Нормальный (Normal). Подробнее: Режимы наложения (смешивания) слоев в фотошопе.

Строение почвы в разрезе

Чтобы определить тип грунта и его структуру, требуется по порядку изучить его слои. На почвенном разрезе всегда виден состав пластов. Для этого можно использовать готовые канавы и ямы или сделать прямоугольное углубление самостоятельно.

Органогенные горизонты

Органогенным горизонтом называют поверхность грунта, содержание питательных веществ в которой превышает 30 %. К ним относятся подстилочно-торфяной, торфяной, перегнойный, эуторфоно-торфяной слои. Перечисленные пласты могут доходить по толщине до 50 сантиметров.

Элювиальный

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

Иллювиальный

Этот горизонт грунта обладает достаточно плотной структурой. Уплотнение происходит вследствие вмывания в структуру разных веществ из верхних пластов грунта. В составе горизонта присутствует большое количество коллоидных элементов и полуторных окислов алюминия и железа. Они считаются весьма токсичными для растений. Мощность этого слоя достигает 50-150 сантиметров.

Метаморфический

Такие пласты образуются в среднем безгумусовом слое грунта. Их толщина составляет 15 сантиметров. Горизонт может быть слитым, фераллитно-метаморфическим, сиаллитно-метаморфическим, фраджипэн.

Гидрогенно-аккумулятивный

Эта толща может появляться в любом грунте. Она представлена в виде кристаллов, гнезд или прожилок. Гидрогенно-аккумулятивный горизонт бывает гипсовым, солевым, карбонатным. Также встречаются конкреционные и ожелезненные разновидности.

Коровый

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

Глеевый

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

Подпочвенный

Под этим термином понимают горную породу, в которой формируется подпочвенный слой. Существуют такие структуры:

  1. Материнская порода – на ней образуется почва. Этот слой обозначают буквой С.
  2. Подстилающая порода – находится под материнской и обладает уникальными свойствами. Ее обозначают буквой D.

Работа с атрибутами слоя

Можно работать с атрибутивными таблицами наборов данных, связанных с каждым слоем карты. Щелкните правой кнопкой мыши слой в таблице содержания и затем нажмите Открыть таблицу атрибутов (Open Attribute Table). В окне Таблица (Table) можно выполнять запросы, выборки, находить объекты на карте и т. п. Щелкните в окне Таблица (Table) меню Опции таблицы (Table Options) , чтобы создать диаграммы и отчеты, изменить шрифт таблицы, напечатать таблицу и выполнить множество других операций. Когда вы выбираете элемент в таблице или диаграмме, объект выбирается также и на карте (и наоборот).

При работе с атрибутивной таблицей слоя, сначала можно установить различные опции отображения для таблиц. Для этого необходимо открыть закладку Поля (Fields) в диалоговом окне Свойства слоя (Layer Properties) и указать там, какие поля будут отображаться при открытии таблицы слоя, как поля будут называться (т. е. задать псевдонимы полей) и как будут форматироваться числовые поля. Также можно указать эти опции для отдельных полей, щелкнув правой кнопкой на названии поля в окне таблицы и выбрав Свойства (Properties).

Заключение

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

Некоторое считают, что в моём варианте «слишком много слоев». Я не понимаю, как можно считать 3 слоя, слишком большим количеством, но если вас это смущает то можете убрать прикладной. Вы потеряете возможность писать приемочные тесты(они станут чем то похожи на системные — более медленные и хрупкие) и не сможете тестировать один и тот же функционал вызываемый к примеру из веб-интерфейса и консольной команды без дублирования кода. В любом случае, вы сильно улучшите архитектуру вашего проекта благодаря раделению бизнесс логики и инфраструктурной части.

Осталось более подробно рассмотреть инфраструктурный слой. Так мы плавно перейдем к теме гексагональной архитектуры(порты и адаптеры). Но всё это, в следующей части.

Дальнейшее чтение

  • Growing Object-Oriented Software Guided by Tests by Steve Freeman and Nat Pryce
  • Screaming Architecture by Robert C. Martin
  • The Clean Architecture by Robert C. Martin
  • Implementing Domain-Driven Design, chapter 4: «Architecture» and chapter 9: «Modules», by Vaughn Vernon

Также можно ознакомиться с Deptrac — инструмент, помогающий соблюдать правила использования слоев и зависиомостей.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector