Следуя этому принципу устанавливаем остальные листы

Неочевидная сторона эффекта Даннинга — Крюгера

Многие люди думают, что понимают суть эффекта Даннинга – Крюгера, прочитав его описание где-нибудь в википедии или на любом другом популярном ресурсе. Однако в силу своего низкого уровня квалификации в области социологии часто оказывается так, что они совершенно недооценивают глубину и разнообразие форм его проявления, причём даже у самих себя. Даже читая про этот эффект они не осознают, как далеки от понимания его реального смысла, испытывая в точности то когнитивное искажение, о котором говорится в описании, которое они читают. В социологии есть вещи, осмысление которых требует понимания того, что осмысляешь. О подобных «замыканиях» я буду говорить довольно часто, поскольку они составляют основу наших научных исследований в «Социальном Лесничестве».

Суть эффекта Даннинга – Крюгера, казалось бы, проста: человек в силу своей низкой квалификации в чём-либо склонен переоценивать своё понимание вещей в этой области и при этом не осознаёт свой низкий уровень квалификации. Выражаясь афоризмами, можно сказать то же самое словами Бертрана Рассела:

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

Истинное знание — в том, чтобы знать пределы своего невежества

Ф. М. Достоевскому приписывают также фразу вроде такой:

Дурак, который понял, что он дурак, уже не дурак.

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

Наша проблема со стороны выглядит примерно так: человек прочитал что-то про эффект Даннинга – Крюгера, проникся мыслью, согласился с ней, быстро нашёл примеры из своей жизни, как он безуспешно пытался объяснить что-то человеку, который ничего не понимает в некоторой области, но упорно пытается спорить, а может быть и себя вспомнил, как он думал, что в чём-то разбирается, пока на самом деле не начал разбираться. Человек этот думает, что понял суть феномена, научился его распознавать и следить за тем, чтобы самому не оказаться его жертвой… и тут же становится очередным образцом, по которому данный эффект можно изучать. Почему? Потому что в силу своей низкой квалификации в области социологии он не видит, что суть данного метакогнитивного искажения гораздо серьёзнее, чем в этих поверхностных описаниях. Я попробую пояснить это здесь хотя бы кратко на примерах со всё увеличивающейся сложностью обнаружения в них эффекта Даннинга – Крюгера. Чем дальше вы будете читать, тем больше вероятность, что вы ничего не поймёте. Далее пойдут абзацы текста, почти не связанные между собой сюжетом, кроме разве лишь наличия в них всё усложняющегося проявления обсуждаемого когнитивного искажения.

Возьмём для начала простейший пример. Пить и/или курить вредно. Те, кто об этом не знают и делают это – яркие жертвы эффекта Даннинга – Крюгера. Многие из них при этом закусывают выпивку «соусом доктора Фокса», который выражается в советах врачей или якобы научных исследованиях. Они не способны осознать, что пить и курить вредно в силу тех же особенностей интеллекта, которые и являются причиной употребления этих ядов (кто не понял, одна из этих особенностей – тупость). То есть, грубо говоря, ситуация такая: умный человек достаточно умён, чтобы не пить и не курить по собственному выбору, а глупый не достаточно умён, чтобы самостоятельно додуматься не употреблять алкогольный и табачный яд, и не достаточно умён, чтобы поумнеть и бросить данные привычки, если они у него были. Перефразирую Ф. М. Достоевского, упомянутого вначале, – если дурак поймёт, что он дурак – он перестанет делать то, что делает его дураком (в данном примере – пить и/или курить).

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

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

Я нередко наблюдал за попытками так называемых «ферматистов» предъявить своё изящное доказательство Великой Теоремы Ферма. С одной стороны, удивляет их настойчивость пропихнуть полную математическую несуразицу, а, с другой стороны, — их неспособность понять аргументы людей, которые действительно понимают математику. Фанатику-ферматисту невозможно объяснить, в чём ошибка в его доказательстве. Он будет с пеной у рта доказывать, что «научная мафия специально не хочет признавать моё доказательство…», будет обвинять математиков в том, что они сговорились и не пропускают талантливых людей в науку, чтобы не потерять свою работу и т. д. Есть довольно много таких обиженных на науку людей, которым в силу их непонимания математики невозможно объяснить, что их «доказательства» не являются доказательствами Теоремы, однако у них есть сайты, где они говорят, что вот, их обижают, их не признают… аналогично дело обстоит с другими учёными, которых сейчас модно называть «альтами» или «альтернативными учёными». Почти все они не владеют логикой, но не способны понять это, так как не владеют логикой.

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

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

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

Есть такая популярная шутка про марксистов. Марксистов не существует. Человек, который понимает марксизм, никогда марксистом не будет, а тот, который не понимает, марксистом не является. Эта шутка содержит в себе обсуждаемый нами эффект, но она очень не понравится «марксистам»… они её не поймут… сами знаете почему.

Гораздо более сложным является непонимание последствий своих решений в жизни. Есть такое наблюдение, что люди не понимают причины происходящего с ними. Например, человек живёт в плохих условиях, постоянно должен торчать на работе ради каких-то копеек, постоянно что-то в его жизни не ладится. Он не может осознать, в чём именно причина, но часто находит «простые объяснения» тем последствиям, которые всю жизнь и разгребает, которые по сути являются всего лишь оправданиями. Скажем, женщина может найти простое объяснение того, почему она до сих пор «сильная и независимая» в фразе «все мужики козлы», одновременно с этим мужчины могут найти такое же объяснение своих неудач в другой не менее известной фразе. Вообще, любящие поплакать о своей судьбе люди – это все те, кто полностью находится под властью эффекта Даннинга – Крюгера. Осознать причину своих неудач они не могут именно потому, что причина эта – та же самая причина, которая привела их к этим неудачам, то есть неспособность мыслить и принимать правильные решения. Если бы они действительно понимали свою жизнь, не было бы и неудач, не было бы и необходимости плакать. Когда у человека что-то не ладится в жизни, далеко не всегда он способен отыскать длинную-предлинную цепочку причинно-следственных связей, которая, возможно, тянется на многие годы, и отыскать её начало. Почему? Потому что он, в силу узости своих представлений об этом мире, не знает (а если ему сказать, то не поверит), что подобные цепочки действительно существуют и их действительно нужно уметь раскручивать. Они не могут осознать, что каждое действие в этом мире имеет последствия. Причём нередко причина от следствия может отстоять на многие годы и даже десятилетие. Однако это уже сложная тема, она явно требует отдельного разговора.

Ну и последний пример на сегодня (но не последний по своей сложности) – есть люди, которые реально думают, что понимают эффекта Даннинга – Крюгера. Так вот… они его не понимают! Подумайте сами, почему. В качестве подсказки задайте себе вопрос: вот вы прочитали эту статью, и что? Вы думаете, что поняли её смысл? 🙂

Несмотря на вышесказанное, всегда есть способ «проломить» замкнутый круг, образованных эффектом Даннинга – Крюгера. То есть с одной стороны дурак не может стать умным именно потому что дурак, но, с другой стороны, люди умнеют. Из любого замкнутого социологического круга есть выход, то есть можно научиться понимать то, что для своего понимания требует это же самое понимать изначально. «Замыкания» всегда имеют точку входа и выхода. Но как же их отыскать?

SOLID «L»: Принцип подстановки Барбары Лисков

Принцип единственной обязанности, открытости-закрытости, подстановки, разделения интерфейса и инвертирования зависимостей. Это – пятерка принципов, которыми следует руководствоваться при написании кода. Принципы подстановки и отделения интерфейса – очень просты сами по себе, а значит их оба можно рассмотреть в одной статье.

Принцип подстановки Барбары Лисков (LSP).

Подклассы не могут замещать поведение базовых классов. Концепция принципа подстановки была предложена Барбарой Лисков в ее докладе на конференции 1987 года, а спустя 7 лет – опубликована в соавторстве с Джаннет Вин. Оригинальное определение принципа, предложенное Барбарой, следующее:

«В том случае, если q(x) – свойство, верное по отношению к объектам х некого типа T, то свойство q(y) тоже будет верным относительно ряда объектов y, которые относятся к типу S, при этом S – подтип некого типа T.»

Некоторое время спустя, после публикации Робертом С. Мартином всей пятерки принципов SOLID в книге о быстрой разработке программ, а затем и после публикации версии книги о быстрой разработке для языка программирования C#, принцип стал называться принципом подстановки Барбары Лисков.

Это приводит нас к определению, которое дал сам Роберт С. Мартин:

Подтипы должны дополнять базовые типы.

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

Есть существующий класс Vehicle, который может быть и абстрактным в том числе, и две реализации:

Клиентский класс должен иметь возможность использовать любой из них, если он может использовать Vehicle.

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

Основываясь на предыдущем опыте с принципом открытости-закрытости, можно сделать вывод, что принцип Барбары Лисков сильно с ним связан. И в самом деле, как сказал Роберт Мартин, нарушение принципа LSP – это скрытое нарушение принципа OCP. Шаблонный метод проектирования – классический пример соблюдения и реализации принципа подстановки, который, в свою очередь, является одним из способов соблюдения OCP.

Классический пример нарушения принципа LSP

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

Мы начнем с основной геометрической формы – прямоугольника (Rectangle). Это всего лишь простой объект данных с сеттерами и геттерами для ширины (width) и высоты (height). Если представить, что приложение уже работает и даже на нескольких клиентах, которым нужно управлять этим прямоугольником так, чтобы сделать из него квадрат, то придется ввести новые функции.

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

Читайте также:  Схема крепления фанерных листов

Но будет ли квадрат Square прямоугольником Rectangle уже в программировании?

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

Реально получить клиентский класс, который проверяет площадь прямоугольника, и реагирует, если ее значение оказывается неправильным.

Ну и конечно добавлен метод класса Rectangle.

С помощью простого теста можно проверить работу: отправим пустой прямоугольный объект для определения его площади. Работает. Если наш класс Square определяется корректно, то его отправка на клиентский areaVerifier() не повредит функциональности. В конце концов, в математическом понимании Square – это все тот же Rectangle. Но наш ли это класс?

Тестирование проходит легко и много времени не занимает. А уведомление появляется при запуске теста выше.

Итак, в нашем «программном» смысле Square класс – это не Rectangle, иначе бы законы геометрии и принцип подстановки Барбары Лисков нарушались.

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

Простой гид, который сделает вас экспертом в стилях интерьера

Ребята, мы вкладываем душу в AdMe.ru. Cпасибо за то,
что открываете эту красоту. Спасибо за вдохновение и мурашки.
Присоединяйтесь к нам в Facebook и ВКонтакте

Наши дома являются отражением не только нас самих, но и культуры, в которой мы живем. Так и дизайн интерьера меняется в зависимости от страны.
Мы в AdMe.ru разобрали для вас некоторые из наиболее узнаваемых стилей, которые теперь стали ближе, чем кажется.

Скандинавский стиль

Простота, минимализм, функциональность

  1. Светлые и приглушенные цвета
    Полы, стены и потолки, как правило, окрашены в белый, чтобы сохранить пространство ярким в течение долгой и темной зимы.
  2. Натуральные материалы
    Будь то пол, мебель или элементы декора — скандинавский дизайн включает в себя много дерева. Обычно используется светлая древесина, такая как бук, ясень и сосна.
  3. Естественный свет
    Поскольку в скандинавских странах темно в течение всего года, необходимо больше естественного света. Приветствуются большие окна и легкие занавески.
  4. Простые линии и формы
    Стиль интерьера направлен на максимальный комфорт, его должно быть просто поддерживать в чистоте, поэтому в нем отсутствуют вычурные детали и формы.
  5. Свободное пространство
    Традиционно скандинавские дома были очень маленькими и не допускали большого количества вещей. Сейчас дома стали больше, но идея сохранения пространства от беспорядка осталась важным аспектом дизайна.
  6. Уютный текстиль
    В странах с холодным климатом неудивительно, что часть декора приходит в виде шкур, ковров, подушек и пледов. Они не только создают ощущение тепла и уюта, но также добавляют еще один слой текстуры в пространство.
  7. Освещение
    Освещение в Скандинавии жизненно важно и крайне почитается, потому светильники и лампы присутствуют в большом количестве.

Для кого?

Для минималистов с любовью к натуральным материалам. Также подходит для небольших квартир и пространств, лишенных естественного света.

Марокканский стиль

Богатство, роскошь, экзотика

  1. Яркие акценты
    Цветовая гамма, присущая марокканскому интерьеру, чаще всего представлена пустынными или морскими оттенками. Преобладают яркие красные, оранжевые, зеленые и синие тона в сочетании с нейтральным фоном.
  2. Арки и закругленные дверные проемы
    Красивые арки и изогнутые дверные проемы в виде замочной скважины — одни из самых узнаваемых элементов стиля.
  3. Подвесные фонари
    Красочные фонари из тонированного стекла и латуни или меди создают экзотическую атмосферу и используются как снаружи, так и внутри.
  4. Роскошные ковры
    На сегодняшний день марокканские ковры — одни из самых узнаваемых в мире. Традиционно их орнамент сосредоточен на абстрактных и геометрических узорах в красочной или в современной нейтральной палитре.
  5. Смелые узоры
    Геометрические принты, вдохновленные традиционными марокканскими мотивами, великолепно отображены на подушках, ковриках и мягкой мебели.
  6. Низкие кушетки и пуфы
    Расшитые вручную во всевозможных цветах и стилях, низкие сидения являются идеальным дополнением к зоне отдыха.
  7. Обилие ткани
    Марокканские ткани, такие как шелк или другой мягкий текстиль, могут использоваться в качестве драпировки или защиты мебели.

Для кого?

Теплый и приветливый облик стиля идеально подходит для любителей экзотики, не лишенной элегантности.

Японский стиль

Гармония, традиции, гибкость

  1. Многофункциональность
    Эффективное использование ресурсов является фундаментальной частью японской культуры. По этой причине мебель выбирается раздвижная.
  2. Низкая, компактная мебель
    Традиционно низкие и компактные предметы мебели в Японии помогают извлечь выгоду из ограниченного жилого пространства.
  3. Природные материалы
    Японцы известны своим уважительным отношением к природе, поэтому в интерьере, как правило, используются натуральные материалы, такие как кедр, бамбук, шелк, рисовые соломенные маты и бумага.
  4. Простота
    Стремление к минимализму, заложенное в японской культуре, и пространство в комнате не менее важны, чем элементы дизайна. Комната не должна содержать лишних предметов интерьера и иметь загроможденный вид.
  5. Нейтральные цвета
    В японском интерьере часто используются натуральные, естественные цвета, чтобы обеспечить простой фон. Кроме того, естественные цвета минимизируют чувство беспорядка, что также важно для восточного дизайна.
  6. Дополнительное освещение
    Искусственные источники света вводятся таким образом, чтобы извлекать максимальную пользу, но не привлекать внимание.
  7. Раздвижные двери и перегородки
    Жилье в Японии — одно из самых дорогих в мире, а дома, как правило, небольшие. Чтобы сэкономить пространство, в интерьере используются раздвижные двери.

Для кого?

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

Мексиканский стиль

Яркость, аутентичность, уют

  1. Яркие цвета
    Огромная цветовая палитра является отличительной чертой мексиканского дизайна интерьера, включая в себя насыщенные тона и яркие оттенки красного, оранжевого, синего и зеленого.
  2. Керамика, расписанная вручную
    Традиционная мексиканская керамика подразумевает ручную роспись и широко представлена в виде ваз, плиток и цветочных горшков.
  3. Текстиль ручной работы
    Этот стиль — богатый источник тканого и вышитого текстиля, который можно использовать в виде цветных одеял, декоративных подушек и ковров.
  4. Геометрические узоры
    Аксессуары, расписанные и расшитые племенными узорами, часто украшают дома в качестве предметов, передающихся из поколения в поколение.
  5. Терракота
    Плитка из обожженной красной или желтой глины является ключевым элементом дизайна. Традиционно она покрывает пол не только в ванной и кухне, но и в жилых комнатах.
  6. Простая деревянная мебель
    Предметы мебели изготавливаются вручную из максимально доступного и недорогого дерева, например, из сосны.
  7. Декоративные коврики
    Яркие ковры ручной работы занимают центральное место в комнате, исполняя декоративную роль. Голые полы из твердых пород дерева или каменной плитки больше соответствуют простому мексиканскому декору, чем застеленные плотным ковром.

Для кого?

Этот стиль для творческих людей, стремящихся к уютному дому, наполненному яркими оттенками и вещами, сделанными своими руками.

Французский стиль

Мягкость, элегантность, изысканность

  1. Пастельные тона
    Интерьер во французском стиле наполнен пастельными тонами: бежевым, белым, бледно-розовым, карамельным, бледно-голубым, бледно-желтым, светло-зеленым.
  2. Обилие декоративных элементов
    Это могут быть предметы искусства, рамки с фотографиями на полке, вазы, зеркала в резной позолоченной раме, свечи. Но ничто не отражает очарование этого стиля больше, чем присутствие всех деталей сразу.
  3. Золочение
    Позолота, чаще состаренная, является важным элементом французского стиля. Применяясь к различным объектам, таким как рамы картин и зеркал или подсвечники, она характеризует богатство и роскошь.
  4. Плавные линии
    Во французском интерьере практически отсутствуют острые углы. Декор, мебель — все, вплоть до изогнутых ножек кресла, имеет плавные очертания.
  5. Винтажная мебель
    Франция славится своими блошиными рынками, на которых можно найти множество предметов декора. Заполучить вещь, имеющую немного потертый, но не изношенный вид, — редкая удача, ведь она добавит интерьеру особый шик.
  6. Элегантное освещение
    Люстра является отличным решением для создания еще более «французской» атмосферы. Наилучшим выбором станет шелковый абажур с бахромой или бусинами или полностью кованый канделябр.
  7. Лепнина
    Французы любят этот элемент декора и не упускают возможности использовать его везде, где только можно. Обычно лепнина подчеркивает высокий потолок, карнизы или камин.

Для кого?

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

Английский стиль

Традиционность, вещизм, камерность

  1. Открытые полки
    Шкафы или стеллажи с открытыми полками заставлены книгами, декоративной посудой, фотографиями в рамках и всевозможными семейными реликвиями.
  2. Обои
    Современный интерьер отошел от типичных для викторианской эпохи темных красок и перешел на светлую цветовую гамму, оставив свойственный цветочный орнамент и текстуру.
  3. Благородное дерево
    Для английского стиля дерева просто не бывает много. Шкафы, деревянные панели, паркет, карнизы, только натуральный массив и ценные породы.
  4. Обилие аксессуаров
    Небольшие мраморные бюсты, вазы, сувениры, декоративные подушки — все это может и должно присутствовать в английском интерьере. При этом все предметы должны хорошо просматриваться.
  5. Теплые тона
    Стиль характеризуется натуральными, приглушенными цветами. Наиболее подходящими будут различные оттенки коричневого, красного и желтого, а также теплый зеленый и серый.
  6. Загроможденность
    В английском интерьере предметы не принято ставить к стенам, чтобы сэкономить и освободить пространство. Напротив, все должно стоять в центре комнаты, создавая уютную, наполненную обстановку.
  7. Кресло с «ушами»
    Непременный атрибут стиля — кресло с высокой спинкой и характерными выступами в верхней части. Такой дизайн фокусирует тепло и защищает от сквозняков — идеальный вариант для времяпрепровождения с книгой у камина.

Для кого?

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

Русский стиль

Простота, естественность, традиции

  1. Натуральные материалы
    Русский интерьер не допускает пластика, стекла или блестящего металла. Предпочтительно использование натурального дерева как для внутренней отделки, так и в качестве основного материала для мебели.
  2. Простая мебель
    Мебель деревянная или плетеная, максимально простая, функциональная и с грубой обработкой. Главная особенность — незатейливые правильные формы и простота исполнения.
  3. Традиционные элементы
    Особый уют создают плетеные коврики, вязаные накидки и лоскутные одеяла (пэчворк), тонкие занавески из прозрачного кружева, глиняные горшки, медная посуда и расшитые полотенца и салфетки.
  4. Естественные цвета
    Базовые цвета максимально естественных, приглушенных оттенков — коричневых, красных, бежевых. Акценты и аксессуары могут быть яркого красного, синего, желтого и оранжевого цветов.
  5. Грубые ткани
    Текстиль выбирается с учетом русских традиций. По большей части это необработанный лен, хлопок и ситец, которые используются для штор, чехлов для мебели, скатертей и постельного белья.
  6. Роспись
    Свойственную стилю традиционную роспись в различных стилях можно наблюдать на посуде, декоративной плитке, шкафах и даже стенах.
  7. Элементы хранения
    Традиционный сундук для хранения вещей чаще встречается как декоративный элемент и заменяется буфетом или открытыми полками, куда выставляются самые красивые вещи.

Для кого?

Для поклонников колоритных вещей, уважающих традиции, или любителей простой и уютной обстановки.

SOLID принципы. Рефакторинг

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

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

В статье описаны пять основных принципов, которым должен соответствовать хороший объектно-ориентированный проект — SOLID. Кроме того, показаны некоторые приемы рефакторинга.

Содержание:

Рефакторинг

В литературе достаточно подробно описаны методы рефакторинга [2, 3, 4], зачастую ими являются весьма нехитрые приемы [2], например:

  1. если функция не используется — удалите функцию;
  2. если название функции не отражает намерения программиста — переименуйте функцию.

Процессы написания нового кода и рефакторинга должны быть разделены — эту мысль замечательно выразил Кент Бек:

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

Рефакторинг должен проводиться постоянно, даже во время изучения кода. Однако он выделяется в качестве отдельного этапа TDD (Test Driven Development, разработки через тестирование) [5].

Даже у опытных программистов нередко бывает предчувствие, что в программе что-то не так, но не удается определить что именно. Фаулер замечательным образом систематизировал методы рефакторинга, а также отметил признаки плохого кода — так называемые «запахи» [2], однако более фундаментальными для объектно-ориентированного подхода являются принципы SOLID.

Принципы чистого кода (SOLID)

Аббревиатура SOLID была предложена Робертом Мартином и обозначает пять основных принципов объектно-ориентированного проектирования. Ссылки на многие из этих принципов можно встретить в книгах Кента Бека [4], Герба Саттера [6], Скота Маерса [7], Мак-Колм Смита [8] и других исследователей.

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

LSP — Liskov Substitution Principle

Наследование является одним из базовых механизмов объектно-ориентированного программирования. Очень подробно этот механизм рассматривается Б. Мейером — он выделяет 12 видов наследования [10], однако, на практике чаще всего применяют наследование, реализующее отношения «является» (is-a, открытое наследование) или «реализуется посредством» (наследование реализации, закрытое наследование) [3, 6, 7]. Мак-Колм рассматривает наследование как базовый шаблон проектирования, при этом имеет ввиду is-a-наследование [8], именно к этому виду относится принцип LSP.

Принцип подстановки изначально сформулирован Барбарой Лисков и регламентирует правильное использование механизма наследования. Выделяются некоторый базовый тип, его подтип (класс-наследник). Согласно принципу LSP, программы должны быть написаны таким образом, чтобы в любом месте вместо базового типа мог быть подставлен подтип. Это означает, что классы наследники должны реализовывать интерфейс согласованно с интерфейсом базового класса.

В качестве примера рассмотрим классы геометрических фигур — точка, окружность, сфера.

Читайте также:  Монтаж пластиковых панелей на балконе

Мы могли бы реализовать три класса, независимо друг от друга, но тогда каждый из них содержал бы данные с координатами и соответствующий набор функций — т.е. в нашей программе появился бы повторяющийся код. Согласно Фаулеру «дублирование кода свидетельствует об упущенной возможности для абстракции» [2], т.е. среди трех классов нам надо найти наиболее общий и применить механизм наследования, сделать это можно различными способами:

Liskov Substitution Principle example

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

  • добавление функции вычисления площади в класс окружности, будет означать появление такой же функции у сферы. Однако, у сферы нет площади;
  • добавление нового класса точки трехмерного пространства (Point3D). С одной стороны мы не можем создать такой класс на базе сферы, т.к. у Point3D не должно быть радиуса. С другой стороны при наследовании трехмерной точки от двумерной, мы получим дублирование кода в класса 3DPoint и Sphere. Устранить дублирование сложно потому, что теперь сфера должна наследовать трехмерную точку и окружность, однако они имеют общий базовый класс, а значит мы пришли к проблеме ромбовидного наследования.

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

Другой программист мог бы заметить, что точка — «является» окружностью без радиуса, а окружность — сферой без третьей координаты. Однако, в этом случае у точки появится открытый интерфейс окружности, позволяющий получить радиус, что нельзя считать корректным. Скрыть интерфейс базового класса можно за счет использования закрытого наследования, однако оно задает отношение «реализуется посредством», поэтому принцип LSP на него не распространяется. Любой вид наследования является очень сильной связью между классами и создает множество проблем. К счастью, отношение «реализуется посредством», может быть определено посредством композиции, что всегда является более гибким и предпочтительным решением.

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

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

DIP — Dependency Inversion Principle

В любой объектно-ориентированной программе существуют зависимости (связи, отношения) между классами. Очевидно, что с ростом количества и силы зависимостей программа становится менее гибкой. Принцип инверсии зависимостей направлен на повышение гибкости программы за счет ослабления связности классов. Ряд источников утверждает, что суть DIP заключается в замене композиции агрегацией, мы рассмотрим это более детально.

Отношение композиции означает, что объекты одного из классов включают экземпляр другого класса. Такая зависимость является более слабой чем наследование, но все равно очень сильной. Более слабым, а значит гибким, является отношение агрегации — при этом объект-контейнер содержит ссылку на вложенный класс.

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

Допустим, мы разработали класс TextReceiver, который принимает по какому-либо каналу связи текст и расшифровывает его. При этом TextReceiver реализуется посредством класса TextDecription, ответственного за расшифровку текста, в связи с этим мы могли бы использовать композицию (верхняя часть рисунка):

Strategy pattern example

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

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

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

Подобная замена композиции агрегацией лежит в основе шаблона проектирования стратегия (Strategy) [8, 11], однако принцип DIP является более общим. Согласно формулировке принципа инверсии зависимостей от Роберта Мартина:

  • не должно существовать прямых зависимостей между конкретными модулями. Модули должны зависеть лишь от абстракций;
  • абстракции не должны зависеть от деталей [3].

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

Dependency Inversion Principle example

В верхней части рисунка приведена диаграмма, на которой персонаж умеет обрабатывать игровые элементы любого типа. Клиентский код выбирает очередную клетку на пути движения персонажа и передает ее для обработки, в результате каким-либо образом изменяется состояние. Между конкретными классами артефактов и персонажем имеются зависимости в связи с этим нарушается принцип DIP, в следствии этого осложняется сопровождение кода — при добавлении нового типа игрового объекта, изменения должны коснуться и класса Person.

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

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

OCP — Open/Closed principle

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

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

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

Очень важным требованием принципа открытости/закрытости является сохранение устойчивости интерфейса к расширению системы. Второй пример к принципу DIP иллюстрирует эту проблему: до тех пор, пока класс Person содержал отдельный метод для каждого типа артефакта — его интерфейс нельзя было назвать устойчивым к изменениям. Для решения проблемы мы могли бы создать абстракцию — базовый класс для всех артефактов и добавить в класс Person метод, принимающий эту абстракцию. Новый метод должен выполнять какие-либо конкретные действия в зависимости от типа, при добавлении нового вида артефакта — изменения коснутся лишь реализации этого метода, значит интерфейс можно считать стабильным.

SRP — Single Responsibility Principle

Роберт Мартин выделяет правило одной операции, заключающееся в том, что каждая функция должна решать всегда лишь одну задачу [3]. Принцип единой обязанности — это тоже самое правило, распространенное на класс/модуль.

Фаулер описывает принцип SRP через понятие зоны ответственности [2], под которой он имеет ввиду некоторый контекст в котором работает класс или отдельная функция. Внесения изменений в зону ответственности может повлечь необходимость изменения нашего класса. Класс каким либо образом изменяет свою зону ответственности — это является его обязанностью. Если принцип SRP не нарушается, то каждый класс имеет единственную обязанность, а значит — единственную зону ответственности и единственную причину для изменения. В связи с этим, Фаулер считает необходимость частого внесения изменений в класс «запахом» нарушения принципа единой обязанности.

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

ISP — Interface Segregation Principle

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

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

Interface Segregation Principle example

В верхней части диаграммы приведен класс автомобиля. Клиенты могут смотреть на него по-разному, например инспектор ГИБДД видит лишь номер двигателя и скорость, а жена водителя — бардачок и магнитолу. Мы не можем разделить класс на несколько частей, т.к. водителю нужно отслеживать текущую скорость (как инспектору) и хранить в бардачке документы (как это делает жена). Тем не менее, класс может выступать в разных ролях.

Жене совершенно не обязательно знать о номере двигателя и назначении ручника, сотрудник ГИБДД не должен рыться в нашем бардачке. Для решения всех этих проблем достаточно создать несколько специализированных классов интерфейса (как показано в нижней части рисунка), которые и следует передавать соответствующим клиентам. Исходный класс при этом останется неизменным.

Заключение и литература по теме

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

В двух фирмах из четырех, где я работал, менеджеры были именно такими — где-то удавалось убедить их обманом в необходимости рефакторинга под предлогом внедрения новых фич, но не везде. Один проект был начат с чистого листа через 4 года разработки. Если в ваши менеджеры ведут себя таким образом, а сроки сдачи всегда «вчера» — скорее всего вам не пригодятся знания по рефакторингу, SOLID, да и любая другая информация для развития профессиональных качеств программиста.

Следуя этому принципу устанавливаем остальные листы

ОКЛЕИВАНИЕ ОБОЯМИ ПРОКЛЕЙКА ПОВЕРХНОСТЕЙ

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

Ниже этой полосы проклейку выполняют большой кистью. При проклеивании оштукатуренных или других поверхностей с повышенной шероховатостью мучным или крахмальным клейстером в него добавляют 2—3 кг мел

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

ОКЛЕЙКА БУМАГОЙ

Бумагой оклеивают по просохшей проклейке. Строительные нормы и правила (СНиП) предусматривают оклейку бумагой монолитной штукатурки под простые и средней плотности обои, под плотные тисненые и тисненые моющиеся обои, а также под эти же обои и поливинилхлоридные пленки на бумажной и тканевой основе по деревянным поверхностям. Чисто выполненные гипсобетониые и гипсолитовые поверхности и листовые материалы оклейке не подлежат. Если же такие поверхности имеют повышенную шероховатость, то их оклеивают бумагой. Листы бумаги, обычно газеты, укладывают стопкой на столе или полу, намазывают холодным или горячим клеящим составом и оклеивают поверхности, лучше всего начиная сверху с переходом вниз. Наклеивают тонкую бумагу внахлестку или, что еще лучше, впритык, толстую бумагу — обязательно впритык. Оклейка должна вестись без пропусков, вздутых мест, морщин. Каждый наклеиваемый лист бумаги следует тща

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

Читайте также:  Инструменты и материалы для укладки потолочной плитки

Толстую бумагу наклеивают впритык, намазывая ее клеящим составом два или три раза. 3TQ делают для того, чтобы увлажнить бумагу — она станет мягче, и ее легче приклеивать. Бумагу можно предварительно увлажнить водой. Как только она размякнет, ее промазывают клеящим составом. Около наличников и плинтусов бумагу и обои наклеивают впритык, не находя на кромки наличников или плинтусов, от которых они часто отклеиваются. Перед наклейкой такие места вторично проклеивают. Часто между стеной, плинтусом или наличником имеются трещины, которые необходимо расчистить, смочить водой и замазать чистым гипсом, гипсом с мелом или песком, разровнять, затереть или загладить. Не все виды поверхностей оклеивают бумагой, однако и поверхности, не подлежащие оклейке, не воспрещается оклеивать после соответствующего ремонта и зачистки исправленных мест. .

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

ПОДГОТОВКА ОБОЕВ

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

Широкорулонные, тисненые обои, линкруст, поливинилхлоридные пленки на бумажной и тканевой основе, текстовинит, дерматин, древесные обои наклеиваются впритык, кромки обрезают ножом по линейке.

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

постепенно разматывая его, срезать кромку и левой рукой скатывать обратно в рулон (рис. 67).

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

Подготовленные рулоны режут на полотна такой длины, чтобы они равнялись высоте стены до карниза, фриза или гобелена. Отрезав первое полотно, приступают к отрезке второго, но так, чтобы предварительно совместить рисунок. Это делают для того, чтобы при наклеивании полотна обоев давали единый рисунок (рис. 68). Обои с крупным рисунком режут на полотна с предельным запасом. Все полотна должны иметь небольшой излишек по длине или припуск 5—10 см, чтобы был некоторый запас на неодинаковую высоту помещения или усадку обоев после намазывания их клеящим веществом, особенно клейстером. В процессе оклейки лишнюю часть полотна обрезают у плинтуса ножницами или ножом по линейке. Нарезать полотна из рулонов лучше всего так. Три, пять или более рулонов раскатывают на нужную длину, совместив точно рисунок, закрепляют каким-либо грузом, отрезают лишние концы, а затем по размеру ровно отрезают полотна. Таким же образом поступают и со следующей партией полотен: предварительно сдвинув рулоны так, чтобы строго совместился рисунок, отрезают лишние концы, а затем полотна. Нарезанные полотна складывают в стопку. Если нужно, стопку свертывают в большой рулон. В процессе нарезки полотен остается много различных кусков, которые собирают и используют для оклейки стен под и над окнами, над дверями и в других небольших местах со строгим совпадением рисунков. На рис. 69 показана развернутая поверхность стен, оклеиваемых обоями с использованием полотен разной длины. Если на верх обоев не наклеивают бордюр, то они должны находиться строго на одной линии. При наклеивании бордюра все неровности закрывают. На строительстве оклейку ведут без бордюра. Делают это так. Ниже пробитой линии или наклеивают обрезанные кромки обоев или нарезают из

обоев ленты шириной 2—3 см. Обои своими верхними концами наклеиваются на эти ленты, и все неровности концов становятся незаметны.

НАКЛЕИВАНИЕ ОБОЕВ ВНАХЛЕСТКУ

Обои следует наклеивать, начиная от окна с переходом в глубь помещения. Каждое первое полотно на любой стене наклеивается строго вертикально. Для этого от угла (лузга) отмеряют расстояние, равное ширине полотна, и с помощью веска отбивают линию, по которой строго вертикально и будет наклеено первое полотно (рис. 70). Последнее полотно на каждой стене наклеивается не впритык к углу, а его перекрывает на 2—3 см. Для этого от полотна еще до намазывания клейстером отрезают нужные излишки. Полотно на следующей стене наклеивается впритык к углу, закрывая тем самым наклеенную трех-пятисантиметровую ленту.

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

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

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

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

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

Оклеивать можно одному, но гораздо удобнее вдвоем.

Во время оклейки одному приходится без конца опускаться и подниматься, складывать полотно обоев в пакет, раскрывать его, приклеивать вверху примерно на длину 1 м, спускать оставшуюся часть полотна и приглаживать сперва вверху, затем внизу. Приглаживание следует начинать от середины с переходом к краям, следя, чтобы не было складок, морщин, пузырей и плохо приклеенных кромок. Приглаживание выполняют тряпками или щетками, последние более удобны (рис. 72). Работать вдвоем намного удобнее. Один из работающих находится наверху (стоит на столе, табурете, стремянке, скамье), а второй находится внизу, намазывая полотна обоев и складывая их так, как показано на рис. 73. Затем он подает работающему наверху намазанное полотно, тот берет его за один конец и распускает. Работающий внизу держит этот опущенный конец, слегка натягивает полотно, кромкой прикладывает к ранее отбитой линии или к кромке наклеенного полотна,- и оба приступают к приглаживанию.

Приглаживать надо аккуратно, чтобы не размазать краску на лицевой поверхности обоев, что часто случается при оклеивании простыми обоями. Иногда бывает, что после приглаживания под обоями остается воздушный пузырь, его прокалывают, выдавливают воздух и приглаживают. Если при самом аккуратном приглаживав и и краска на обоях все же тушуется (смазывается), то при глаживание надо производить через лист чистой бумаги, но не газеты, которая оставляет краску. Наклеив первое полотно, приступают ко второму, но так, чтобы рисунок был совмещен, а из-за первого полотна не выступала кромка ранее наклеенного. Таким образом, иеотрезанная кромка первого полотна перекрывается следующим. Иногда наклеиваемое полотно искривляется по своей длине и неточно ложится по кромке ранее наклеенного, закрывая немного какой-либо стороной вверху или внизу узкую полоску рисунка. При выравнивании такого полотна на нем могут образоваться складки, тогда следует дальше наклеивать «с закроем», т. е. перекрыть им часть рисунка ранее наклеенного полотна в нижней части стены, или же его надо надрезать в нескольких местах, что позволит разгладить морщины и наклеить его точно по кромке.

Искривление полотен обоев происходит от плохого качества обойной бумаги или от неравномерного нанесения клейстера или другого клеящего состава. Наклеивать целое полотно в угол стены не следует, так как оно очень часто плотно и прямо не приклеивается, и образуются морщины и складки. Если угол неровный, то часть полотна, ‘т. е. ленту, наклеиваемую в угол, следует надрезать в нескольких местах до линии сгиба, что обеспечит плотное ее приклеивание без складок и морщин. Напоминаем, что обои должны быть прочно приклеены к поверхности. Некоторые мастера поступают так. Размечают примерное расположение полотен на стене и под местом нахождения кромок наносят клеящим составом полосы, а иногда полностью проклеивают всю бумагу и особенно по месту наклейки верха обоев или бордюра. Часто обои плохо приклеиваются к кромкам ранее наклеенных полотен. Происходит это потому, что на клеивание производится на краску, нанесенную на кромки. В таких случаях рекомендуется прежде всего на кромку наклеенного полотна аккуратно нанести клеящий состав небольшой кисточкой и после подсыхания состава наклеивать следующее полотно. Недопустимо с избытком наносить клеящий состав на обои, это не всегда отвечает задуманному. Во время приглаживания клеящий состав выжимается из-под кромок и пачкает лицевую сторону обоев, так что обои приходится без конца вытирать чистой тряпкой, а это отнимает время, да и обои не всегда остаются чистыми.

Когда на стенах имеются выключатели и розетки и их по каким-либо причинам невозможно снять, а после работы поставить на место, то приходится поступать следующим образом. Берут сухое полотно, совмещают его рисунок с ранее наклеенным, точно намечают места для розетки и выключателя, снимают полотно, вырезают отверстия, намазывают полотно клеящим составом и наклеивают (рис. 74).

Если по оклеиваемым поверхностям проходят трубы, то прежде всего чих окрашивают масляной краской, после высыхания которой поверхности труб оклеивают бумагой в два слоя, но так, чтобы кромки ее приклеивались к стене по обеим сторонам трубы на ширину 1,5— 2 см. Сухое полотно обоев приставляют к ранее наклеенному, совмещают рисунок, намечают местонахождение трубы. На полотне вырезают полоску нужной ширины. После этого отрезают полосу обоев соответствующей ширины и оклеивают ею трубу, а затем наклеивают полотно (рис. 75). Весьма желательно, чтобы рисунок на трубе и полотне совмещался.

Печать авторской схемы в формат PDF. Способ 1

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

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

  • титульный лист с описанием схемы;
  • информация о присутствующих цветах в схеме;
  • информация о расходе нитей;
  • схема для вышивки.

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

  • создание титульного листа в формате PDF;
  • ввод данных о разработчике схемы в программе Pattern Maker;
  • настройка печати и печать схемы в файл PDF с помощью виртуального принтера.

Для формирования титульной страницы можно открыть, например, MS Word и ввести информацию следующего плана:

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

Изображение предполагаемого результата можно сформировать с помощью программы Pattern Maker, путем экспорта схемы в режиме виртуальных стежков («View As Stitches») в графический файл (см. Виды отображения схемы в РМ и Экспорт схемы вышивки в графический файл).

Подготовленную титульную страницу, используя программу виртуального принтера, следует распечатать в файл формата PDF, задав ему имя, например, «Orchids1.pdf». Для вывода окна печати можно использовать сочетание клавиш «Ctrl+P» или выбрав в меню «Файл → Печать» («File → Print»). В качестве имени виртуального принтера можно указать Bullzip PDF Printer, предварительно установив его на компьютер (принцип работы с виртуальным принтером смотрите в уроке Предварительный просмотр и печать схемы в PDF с помощью виртуального принтера).

Для ввода сведений о схеме требуется выбрать в меню пункт «Файл → Сведения…» («File → Information») (рис. 2) и занести желаемую информацию (см. Занесение информации о разработчике схемы в PM).

Для подготовки схемы к печати в файл PDF в первую очередь требуется настроить поля для печатаемых страниц, но обычно достаточно оставить эти значения по умолчанию, как на рисунке 3. (см. Настройка параметров страницы в PM)

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

Далее следует выполнить печать этой информации, выбрав в меню «Файл → Печать» («File → Print»). В качестве имени принтера указать «Bullzip PDF Printer» и нажать на кнопку «ОК». В следующем окне в настройках виртуального принтера на вкладке «Объединить» указать файл с заготовленной титульной страницей, а на вкладке «Общее» ввести название итогового файла со схемой (рис. 5). Нажать на кнопку «Сохранить».

Теперь осталось добавить в конец созданного файла саму схему, для этого необходимо выполнить соответствующие настройки в Параметрах страницы (рис. 6), указав желаемое количество стежков на дюйм, поставив флажок на «Печать легенды» и сняв флажок с «Информация о печати». Затем нажать на кнопку «ОК».

На данном этапе желательно просмотреть разбивку схемы на страницы, выбрав в меню «Файл → Предварительный просмотр» («File → Print Preview») и, в случае необходимости, подкорректировать значение количества стежков на дюйм.

Затем необходимо выполнить печать схемы в ранее подготовленный документ. Печать самой схемы на виртуальный принтер аналогична печати информации о нитях. Только в данном случае можно просто дописать новые страницы в конец уже созданного файла PDF (рис. 7). В результате этих действий окончательно сформируется схема для вышивки крестом в формате PDF (рис. 8).

Ссылка на основную публикацию