Можно ли использовать black
Содержание статьи
Форматируем код при помощи black
В сообществе Python ещё лет 20 назад осознали ценность форматирования кода, когда на свет появился PEP8 — документ, который призван сделать весь код, написанный на Python, оформленным одинаково и поставить точку в бесконечных спорах о стиле оформления кода. PEP8 и правда глубоко вошёл в идеологию Python. Писать код, который нарушает PEP8 — это считается очень плохой практикой. Это одна из первых заповедей, про которые говорят начинающим питонистам.
Почему же консистентный стиль оформления кода так важен, что этому посвящен целый PEP? Самая главная мысль — читаемость важна. Вот какие ещё мысли у меня возникают по поводу стиля оформления кода.
- Код быстро меняется. Реалии разработки ПО сегодня очень отличаются от того, что было 50 или 30 лет назад. Тогда код мог быть написан единожды программистом-одиночкой, и работать десятилетиями без изменений. Сегодня код чаще разрабатывается командами программистов, и меняться он должен постоянно, реагируя на изменчивые обстоятельства внешней среды. К консистентно оформленному коду намного проще вернуться в будущем, понять его, найти ошибку и исправить, или допилить новую фичу.
- Код пишется один раз, а читается множество раз. Сэкономленная сегодня минута на консистентном оформлении кода может вылиться в часы чтения и попыток понять этот же код завтра (или через полгода). Когда код оформлен одинаково, мозгу не нужно отвлекаться на незначащие детали оформления. Так намного проще вникнуть в суть написанного. В командной разработке просто необходим общий стиль, которого будут придерживаться все.
- Код пишется для людей, а не для компьютеров. Машинам абсолютно индифферентно, сколько вы там ставите пробелов, пустых строк, какую длину строки используете или где вы ставите запятые. Если код синтаксически верен, то компьютер отлично вас поймёт. Языки высокого уровня (такие как Python) были специально разработаны для того, чтобы как можно дальше уйти от написания непонятного людям машинного кода. Мы пишем код для людей. Но людям очень важны такие незначащие детали, как отступы, запятые и скобки. С их помощью можно сделать код как понятным с первого взгляда, так и сложным и запутанным.
- Время программиста стоит дорого. Писать хорошо оформленный код просто дешевле на долгих дистанциях. Допустим, что оформление кода поможет ускорить его понимание пусть даже всего на 1 минуту. Умножьте на количество человек, которые будут читать этот код, и на (потенциально бесконечное) количество раз, которое они будут к нему возвращаться, и на стоимость работы одного программиста за минуту — получаете кучу сэкономленных деняк.
- Консистентный код сокращает количество дискуссий на ревью, потому что коллегам уже не приходится напоминать про скобки и запятые.
- Консистентный код порождает меньшие диффы, так что его элементарно проще ревьювить.
Следование PEP8 можно автоматически контролировать при помощи таких инструментов, как flake8 или pylint, но тогда форматировать код придётся вручную. Как мы уже выяснили, время разработчика стоит дорого. Можно ли как-то автоматизировать этот процесс?
Кроме того, PEP8 описывает лишь основные правила оформления кода, но оставляет свободу интерпретации во множестве краевых случаев, из-за чего может появиться неконсистентность оформления. Есть ли какие-нибудь более строгие конвенции, чем PEP8?
Почему бескомпромиссный? Потому что black навязывает свой стиль кода, и его практически нельзя конфигурировать. Возможно, вам пока что так не кажется, но это огромный плюс black.
Попробуйте в команде хотя бы из нескольких человек прийти к согласию по поводу того, как код выглядит лучше всего и читается проще всего.
Например, оба варианта абсолютно валидны с точки зрения PEP8, но у каждого стиля есть свои поклонники и противники.
# так? def func(«arg1», «arg2″, kwarg=»value») # или так? def func( «arg1», «arg2″, kwarg=»value» )
У меня был опыт попытки выработать в команде конвенцию, и это не так просто. Не потому что люди плохие или упрямые, просто у каждого своё понимание красоты и удобства. Наверняка, начнётся борьба вкусов и мнений. black избавляет от всех этих обсуждений — есть готовый стиль оформления кода, где все решения уже приняты за вас.
Да, иногда black выдаёт не самый красивый код, но, если подумать, красота кода не так важна, как консистентность, последовательность, одинаковость. black осознанно приносит красоту в жертву консистентности.
Скажу по собственному опыту, что к отформатированному black коду привыкаешь очень быстро, и буквально через несколько дней просто перестаешь замечать форматирование вообще. Просто читаешь код.
Установка
К сожалению, на момент написания этого поста, black не имеет стабильных релизов, пока что есть только бета-версии. Смею вас заверить, что black даже в бета-версии уже достаточно стабилен и используется в куче серьезных проектов. Правда, отсутствие стабильных релизов немного усложняет установку.
black устанавливается из PyPI. Давайте выясним, какая на данный момент последняя доступная версия при помощи следующего трюка (или можно просто её посмотреть на странице проекта на PyPI):
$ pip install black== Collecting black== ERROR: Could not find a version that satisfies the requirement black== (from versions: 18.3a0, 18.3a1, 18.3a2, 18.3a3, 18.3a4, 18.4a0, 18.4a1, 18.4a2, 18.4a3, 18.4a4, 18.5b0, 18.5b1, 18.6b0, 18.6b1, 18.6b2, 18.6b3, 18.6b4, 18.9b0, 19.3b0, 19.10b0) ERROR: No matching distribution found for black==
Команда завершится ошибкой, но выведет список доступных версий. Найдем последнюю доступную версию и запомним её.
Внутри виртуального окружения нужно выполнить, заменив версию на последнюю:
$ pip install black==19.10b0
А если вы используете pipenv или poetry, то вот так:
$ pipenv install —dev black==19.10b0 $ poetry add —dev black==19.10b0
Обратите внимание, что при установке black через pipenv обязательно нужно указывать конкретную версию. Я описал, что произойдёт, если этого не сделать, а взамен разрешить pipenv устанавливать пре-релизные версии в посте про pipenv.
Использование
black имеет очень интуитивный интерфейс командной строки.
Вот так можно отформатировать все файлы в текущей директории (и рекурсивно в поддиректориях):
$ black . reformatted /home/br0ke/git/pipenv/pipenv/cli/__init__.py reformatted /home/br0ke/git/pipenv/pipenv/__init__.py … All done! ✨ ???? ✨ 50 files reformatted, 11 files left unchanged.
И это практически единственная команда, которую вам нужно запомнить.
А вот так можно отформатировать один конкретный файл:
$ black setup.py reformatted setup.py All done! ✨ ???? ✨ 1 file reformatted.
Интеграция с редактором/IDE
Очень удобно, когда форматтер запускается прямо из редактора кода автоматически, например, при сохранении файла. black так или иначе можно интегрировать со всеми известными науке редакторами. Процесс подробно описан здесь. Обязательно это сделайте, иначе не ощутите всей прелести автоматического форматирования.
Использование в CI
А ещё нужно настроить запуск black в сервисе для непрерывной интеграции (CI), например, GitHub Actions, GitLab CI или Travis CI. Так black сможет блокировать пулл-реквесты (или мердж-реквесты), в которых содержится неотформатированный код.
В режиме «проверки» black не будет форматировать файлы, а просто напечатает список неотформатированных файлов и завершится кодом ошибки, что должно «уронить» всю проверку целиком.
Конфигурация
Кое-какую минимальную возможность настройки black все-таки предоставляет. Стоит отметить, что в большинстве случаев этого делать не придётся, потому что у black достаточно разумные настройки по умолчанию.
Вот так можно настроить максимальную длину строки и файлы, которые форматировать не нужно. В pyproject.toml в корне проекта добавьте:
[.black] line-length = 88 include = ‘.pyi?$’ exclude = »’ ( /( .eggs # exclude a few common directories in the | .git # root of the project | .hg | .mypy_cache | .tox | .venv | _build | buck-out | build | dist )/ | foo.py # also separately exclude a file named foo.py in # the root of the project ) »’
Настройка flake8, чтобы он не противоречил black
У flake8 своё мнение по поводу того, как должен быть отформатирован код, которое не всегда совпадает с мнением black. Чтобы не возникало конфликтов, рекомендуется выключить некоторые проверки flake8, по примеру того, как это сделано в репозитории black.
Что меня бесит в стиле black
Есть некоторые моменты, с которыми я категорически несогласен. Думаю, рассказать про них тоже нужно.
Рассмотрим пример исходного кода:
(f»Hello, {user_name}!», «What a wonderful day!», «I don’t know you. Are you new here?» if user_name != «Andrey» else «Nice to meet you again!», «Today is», ..now().isoformat())
Я специально сделал побольше аргументов в функцию (), чтобы вызов функции стал достаточно длинным, чтобы black разнёс его на несколько строк. Обратите внимание на тернарный оператор. Теперь отформатируем и посмотрим на результат:
( f»Hello, {user_name}!», «What a wonderful day!», «I don’t know you. Are you new here?» if user_name != «Andrey» else «Nice to meet you again!», «Today is», ..now().isoformat(), )
Тернарный оператор затерялся среди других аргументов функции, его теперь очень трудно заметить. Чтобы исправить, давайте возьмём тернарный оператор в скобки и ещё раз отформатируем:
( f»Hello, {user_name}!», «What a wonderful day!», ( «I don’t know you. Are you new here?» if user_name != «Andrey» else «Nice to meet you again!» ), «Today is», ..now().isoformat(), )
Теперь намного понятнее, не правда ли? Такое может произойти не только с тернарными операторами, но и с длинными арифметическими выражениями, и с длинными строками, которые разбиты на несколько частей:
func(True, # Обратите внимание, что между следующими «строками» нет # запятой, так что фактически это один строковый литерал. # Хороший приём для объединения длинных строк внутри скобок. «Lorem ipsum dolor sit amet, consectetur adipiscing elit. » «Sed dolor massa, mollis a commodo in, molestie in risus.»)
Эта функция имеет два аргумента — булевый и строковый. Отформатируем:
func( True, «Lorem ipsum dolor sit amet, consectetur adipiscing elit. » «Sed dolor massa, mollis a commodo in, molestie in risus.», )
black опять не помог сделать код читаемее. Выглядит так, будто функция имеет три аргумента, хотя на самом деле их только два. Нужно хорошо присмотреться, чтобы заметить отсутствие запятой. Поставим скобки вручную и отформатируем ещё раз:
func( True, ( «Lorem ipsum dolor sit amet, consectetur adipiscing elit. » «Sed dolor massa, mollis a commodo in, molestie in risus.» ), )
Стало в сто раз лучше. Теперь всё очевидно.
Надеюсь, что когда-нибудь эту шероховатость починят, а до тех пор я просто вручную ставлю скобки вокруг вот такого некрасивого кода. Такое случается не так уж часто. В целом, даже почти не больно.
Консистентное форматирование кода — это невероятно важно, потому что упрощает восприятие кода другими людьми (или самим же автором кода, но через полгода). Автоматическое форматирование кода (почти) не требует вообще никаких усилий со стороны автора.
Хоть black и имеет свои недостатки, он всё равно явно окупает усилия, затраченные на ручную расстановку скобок, потому что случается это довольно редко. Как и любой инструмент, black дорабатывается, и будем верить, что все проблемы рано или поздно исправят.
black, наряду с flake8 и pytest, попал в мой набор незаменимых инструментов, которые я пытаюсь использовать во всех своих проектах. И вам рекомендую.
Если понравилась статья, то подпишитесь на уведомления о новых постах в блоге, чтобы ничего не пропустить!
- документация black;
- репозиторий проекта на GitHub;
- yapf — ещё один форматтер кода, который можно гибко конфигурировать;
- isort — сортировка импортов с разбиением на секции, удобно использовать вместе с black.
Источник
Как правильно использовать черную маску из Китая?,ТОП-7 выводов из статьи. Теперь вы знаете, как пользоваться черной маской из Китая!
Как пользоваться черной маской из Китая? Эффективна ли она при борьбе с угрями? Или помогает только от прыщей и черных точек?
Эти и многие другие вопросы задают все те, кто решил заказать с Алиэкспресс это «чудо чудесное». Производитель гарантирует получение видимого результата у 97,8% женщин уже после первого нанесения.
Китайская маска — это состав, который наносится на поверхность кожи. После нанесения он затвердевает, образует пленку. С этой «пленкой» нужно проходить несколько минут, а потом снять.
Производитель утверждает, что на поверхности «черной маски» вы увидите следы черных точек, загрязнений, угрей и прыщей.
В каких случаях показано использование черной маски от угрей и прыщей?
- Вы давно и безуспешно боретесь с черными точками на носу, в области лба, подбородка и щек.
- У вас загрязненные глубокие поры, которые необходимо очистить.
- Вы страдаете от акне (угревой сыпи, угревой болезни) легкой и средней степени тяжести.
- У вас много подростковых прыщей и угрей, которые связаны с гормональными изменениями.
- Вы столкнулись с гнойными воспалениями и фурункулами.
- У вас прыщи появляются во время ПМС, кожа чувствительная к косметологическим препаратам.
- У вас жирная кожа, на которой периодически появляются угри и прыщи, а вы хотите «подсушить» ее, вернуть красоту, «фарфоровую бледность» и благородную чистоту.
- У вас на лице и других участках кожи так называемые «сальные пробки».
Как пользоваться черной маской? Противопоказания
Первым делом нужно уточнить, что у средства есть противопоказания. Нельзя наносить его, если:
- У вас аллергическая реакция (на любой стадии).
- Участки кожи имеют ожоги (в том числе и из-за воздействия солнечных лучей).
- На коже есть открытые раны (царапины, повреждения, трещины и другие).
- У вас акне (угревая сыпь), сопровождающаяся сильным воспалением кожных покровов. Как правило, производитель рекомендует аккуратно использовать это средство тем, у кого акне 3-ей стадии.
Вам важно знать, как использовать черную маску для лица правильно. В противном случае неаккуратность может вызвать сильнейшее воспаление верхних слоев кожи, может стать причиной аллергических реакций, спровоцирует сильный отек или появление кровоточащих ранок.
Если вы задаете вопрос о том, как пользоваться черной маской от черных точек, соблюдайте и еще одно правило.
Косметологи рекомендуют быть осторожными при нанесении состава на кожу вокруг глаз и на веки. В противном случае сильные вещества могут вызвать раздражение, отеки, «мешки» и потемнения.
Кстати, эффективность средства от угрей и прыщей обусловлена уникальным составом, созданным на основе древних рецептов красоты:
- Уголь бамбука. Уголь является проверенным средством против черных точек, прыщей, угревой сыпи, акне и других проблем с кожей, сальными железами. активные вещества угля бамбука проникают глубоко в поры кожи и как будто бы «выталкивают» оттуда вредные вещества, бактерии, микроорганизмы и продукты их жизнедеятельности.
- Провитамин В5. Вещество, которое успокаивает кожу, снимает воспалительные процессы и раздражение, дарит красоту и эластичность. Провитамин В5 проникает в кожу, связывает воду, «вымывает» вредные вещества.
- Проростки пшеницы. Используются в составе средства для тонизирования клеток дермы, для улучшения состояния и рельефа кожи. Она становится мягкой и свежей, наполняется особенной бархатистостью. При этом раздражение, зуд, шелушение, ощущение жирности постепенно исчезают.
- Масло грейпфрута. Питает клетки, приводит в норму работу сальных желёз (за счет этого кожа становится менее жирной уже после первого использования уникальной маски из Китая). Дополнительно масло грейпфрута отбеливает и сужает поры, защищает от образования неприятных черных точек, от появления новых угрей. За счет уникальной формулы масло грейпфрута «заглаживает» следы акне, помогает устранить рубцы, сделать их менее яркими и заметными.
Черная маска от черных точек: как использовать, чтобы не навредить?
Производитель рекомендует быть осторожными с маской людям с сухой кожей. Перед использованием лучше еще раз протестировать состав на руке. Но разберемся с этим подробнее.
Этап №1. Разбираемся, можно ли нам вообще применять маску из Китая
Если у вас чувствительная и сухая кожа, могут возникнуть осложнения. Чтобы знать о них заранее (а не тогда, когда все лицо начнет краснеть и шелушиться), есть простой способ. Итак:
- Возьмите 1 «горошинку» состава.
- Нанесите на запястье равномерным слоем.
- Подождите 7-10 минут.
- Смойте теплой водой.
- Протрите полотенцем.
- Посмотрите, есть ли раздражение.
Если на запястье есть сильные покраснения, появился зуд, возникло шелушение, будьте осторожными. Лучше отложить применение средства «до лучших времен».
Если все нормально, то можно смело переходить на следующую стадию. Дальше мы более подробно разберемся, как пользоваться черной маской для лица.
Этап №2. Очищаем и готовим поверхность кожи для нанесения маски из Китая
Нам необходимо обеспечить доступ активных веществ к порам. Для этого специалисты рекомендуют:
- Снять косметику при помощи привычных средств (молочко, гель, пенка или другие).
- Промыть лицо при помощи геля, лосьона или пенки.
- Промыть поверхность под теплой водой. Мыло использовать нельзя! Активные щелочные компоненты мыла разрушают естественную гидролипидную поверхность. Это сушит, приводит к потери привлекательного внешнего вида и эластичности (а это становится «залогом» преждевременного старения).
- Протереть полотенцем мягкими массажными движениями.
Этап №3. Распариваем кожу (этап не является обязательным, но повышает эффективность действия компонентов черной маски)
Производитель детально описал способ применения и указал, что при легкой и средней степени акне (угревой сыпи), стоит распаривать кожу.
Это можно сделать несколькими способами:
- Способ №1. Берем полотенцем, смачиваем его в теплой воде. Затем кладем его на поверхность лица примерно на 10-15 минут.
- Способ №2. Делаем «водяную баню». Берем кастрюлю с водой, добавляем в нее 1 ч.л. ромашки (можно использовать алоэ). Ставим на медленный огонь, дожидаемся первого пара. После этого наклоняемся над кастрюлей и даем горячему воздуху «обнять» ваше лицо и кожу. Длительность процедуры — 10-12 минут.
- Способ №3. Идем в сауну («парилку») и сидим там те же 10-15 минут.
После распаривания протираем поверхность и переходим к следующему этапу.
Этап №4. Наносим черную маску на лицо
Инструкция по использованию черной маски из Китая детально описывает, что необходимо делать:
- Возьмите густой слой вещества.
- Нанесите его на Т-зону (если пользуетесь в первый раз). Т-зона — это лоб + середина носа + подбородок. Если после первого раза будет результат, то в следующий раз вы сможете нанести состав на все лицо.
- Выжидайте примерно 20 минут.
Чтобы при нанесении не было проблем, рекомендуем вам воспользоваться советами:
- Для защиты волос воспользуйтесь специальной повязкой (или косынкой). В противном случае вам придется «отдирать» состав и от волос.
- Не наносите состав на поверхность над губами.
- Постарайтесь не наносить черную маску на брови.
- Следите за состоянием маски: если она слишком затвердела, то вы не сможете ее снять.
- Если вы пропустили момент «затвердевания», попробуйте чуть-чуть смочить «закаменевшую маску» водой.
Не нужно «тыкать» состав каждые 2 минуты, проверять его состояние и состояние кожи. Это может привести к неравномерности покрытия. В результате из-за этого вам сложнее будет снять маску.
Этап №5. Снимаем Black Mask и очищаем поверхность кожи
Теперь вы знаете почти все о том, как правильно использовать китайское косметологическое «чудо». Осталось только снять Black Mask. Делать это необходимо от подбородка, аккуратно двигаясь вверх.
После снятия косметического средства промываем поверхность под теплой водой (не используем мыло!).
Если вы соблюдали указанные выше требования, то проблем не должно возникнуть.
На всякий случай есть несколько советов:
- Не выходите на солнце и не идите на пляж сразу после использования маски (кожа очень чувствительная, могут возникнуть ожоги и аллергические реакции).
- Используйте после процедуры качественный питательный крем.
- Смотрите по состоянию кожи, чтобы не было сильного раздражения, аллергических реакций, неприятных ощущений.
Если вы посмотрите на поверхность маски, то увидите там белые следы от прыщей, остатки черных точек, микроволосинки и многое другое.
На этом инструкция о том, как пользоваться блэк маской из Китая в домашних условиях, закончилась. Нам осталось только пожелать вам всегда оставаться стильными и красивыми.
Ответы на самые распространенные вопросы по использованию черной маски из Китая
Вопрос №1. Как часто необходимо наносить Black Mask?
Производитель рекомендует использовать Black Mask 3 раза в неделю для качественного очищения, устранения легкой и средних степеней акне. Курс лечения от угрей — 1 месяц.
После этого можно сократить количество процедур до 2-х в неделю, потом — до 1 в неделю. Не рекомендуем «резко» отказываться от использования средства: это может спровоцировать резкий рост прыщей и высыпаний.
Вопрос №2. Для каких типов кожи подходит средство? Как пользоваться черной маской из Китая обладательницам сухой кожи?
Производитель указывает, что состав подходит для любого типа кожи (жирная, нормальная/комбинированная, сухая).
Но перед использованием Black Mask лучше проверить состав на запястье. В 90% случаев средство подходит, не вызывает отторжения или негативных реакций.
Вопрос №3. На какие участки не стоит наносить состав?
Не рекомендуем использовать средство на таких участках:
- поверхность над губой,
- брови,
- веки,
- кожа вокруг глаз,
- поврежденная кожа.
Нельзя использовать средство после ряда косметологических процедур (химический или механический пилинг, а также другие).
Нельзя перед нанесением состава черной маски пользоваться скрабами и другими препаратами с выраженным очищающим и отшелушивающим эффектом.
Вопрос №4. Можно ли использовать черную маску из Китая на спине, шее или груди?
Производитель говорит только о возможности нанесения на лицо. Но многие девушки уже протестировали эффективность на других участках тела: зона шеи, плечи, спина.
Отзывы в основном положительные, поэтому и вы можете попробовать использовать блэк маск.
Вопрос №5. Можно ли наносить другие средства во время использования черной китайской маски?
Нет. Состав наносят на предварительно очищенную кожу, на которой нет следов от тональника, пудры, крема и другой декоративной косметики.
Но после снятия состава вы можете воспользоваться питательным кремом.
Во время курса лечения от угрей или прыщей вы можете применять любые косметические средства.
Вопрос №6. Что будет при систематическом применении черной маски из Китая? Какого результат стоит ожидать?
Производитель «хвастается» результатами в цифрах:
- более 93% испытуемых избавились от угрей, черных точек и прыщей всего за 1 курс (30 дней),
- у 84% пациентов кожа стала здоровой и сияющей уже после 14 дней курса,
- у 91 из 100 результат был заметным уже после 1-го применения.
Если вы решитесь пользоваться черной маской из Китая, то получите потрясающие результаты. Препарат:
- избавляет от черных точек,
- уничтожает угри и прыщи,
- борется с накоплением в порах кожи вредных веществ (шлаков и токсинов),
- активизирует процессы межклеточного и внутриклеточного обмена,
- проникает в поры гораздо глубже, чем любые другие средства,
- разглаживает морщины, подтягивает кожу,
- снимает отечность, устраняет «мешки под глазами»,
- тонизирует клетки кожи,
- дает результат уже после 1-го применения,
- чистит поверхность кожи и глубинные слои,
- борется с проблемами зоны «Т»,
- питает каждую клеточку, наполняет ее полезные веществами, соединениями и микроэлементами,
- дарит эластичность, упругость и мягкость,
- уничтожает сальные пробки.
Эффект доступен при полноценном и систематическом применении состава. Поэтому рекомендуем вам заказывать сразу несколько упаковок «,с расчетом на будущее»,, чтобы потом не пришлось искать контакты продавца, делать заказ снова, ждать 15-60 дней доставки.
- Перед нанесением состава необходимо очистить и распарить кожу. Это легко можно сделать и в домашних услвиях.
- Средство имеет противопоказания, поэтому будьте осторожными при нанесении (чтобы не было аллергических реакций).
- Черная маска из Китая борется с угрями и угревой сыпью, устраняет проблему при систематическом использовании. Это подразумевает необходимость применять состав 3 раза в неделю.
- После маски не стоит выходить на мороз, идти на пляж. Лучше нанести питательный крем и посидеть дома. В нашем инструкции вы найдете все необходимые продцедуры, которые нужно пройти до нанесения китайской маски и после процедуры.
- Китайская черная маска помогает справиться с возрастными проблемами кожи, повышенной активностью сальных желез, угревой сыпью (акне) легкой и средней степени тяжести, черными точками, прыщами.
- Эффективность препарата достигает 97,8%, это доказано в ходе клинических испытаний. После 2-х недель ежедневного нанесения состава у 83% пациентов наблюдались положительные изменения. А у 91 и 100 результаты были видны уже после первого нанесения китайского средства.
- Есть зоны, на которые состав наносить не стоит. Это область над верхней губой, брови, веки, зона под глазами. В противном случае черная маска может вызвать раздражение, отеки, «мешки» и «круги». Некоторые использовали состав на области плеч, спины, декольте, шеи (результат был положительным).
Пускай же ваша кожа будет здоровой, упругой и сияющей! А страшные угри и акне на долгое время останутся в прошлом!
Загрузка…
Источник