Разное

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

WebSocket

Как украсть секреты разработчиков через Websocket?

Это история о запутанном и не очень полезном методе извлечения кода, создаваемого ничего не подозревающими JavaScript разработчиками, занятыми над секретными проектами.  Недавно в сети появилась...
Education

Какие ошибки можно допустить в описании пользовательских сценариев и как их исправить

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

4 простых способа рефакторинга кода

Рефакторинг — это процесс обновления существующего кода без изменения его функционала. Существует множество причин рефакторить код, включая производительность, читаемость и масштабируемость в будущем. Рефакторинг — это важная часть процесса...
Education

Учимся программированию как Эйнштейн

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

Любовь к программированию начинается с расширений VS Code

VS Code продолжает расширять границы своей фан-зоны, и все новые разработчики спешат поделиться своим восторгом от его полезных плагинов. Описание 16 расширений для тех, кто хочет сэкономить время и написать внешне привлекательный код.
Education

21 серьёзная ошибка за 21 год работы программистом

7 апреля 2020 года — знаменательная дата для меня, ведь ровно 21 год назад в этот день началась моя карьера программиста. Уф! Всё было будто вчера, а...
Education

Как достичь уровня senior-разработчика

Разработчики ПО классифицируются по уровням опыта следующим образом: · junior (2–3 года); · senior (10+ лет); · middle (период между junior и senior). Однако многолетний опыт ничего не...
Mathematics

Простейшее объяснение парадокса Монти Холла

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

Какой язык программирования используют самые счастливые разработчики?

В мире информационных технологий существует множество стереотипов, например «PHP — самый плохой язык» или «Python — это язык для начинающих». К счастью, мы можем представить себе истинное положение...
Linux Windows

Как установить Linux Mint рядом с Windows 10 [инструкция для чайников]

Итак, вы решили перейти на Linux. Хорошее решение! А еще лучше, если вы выбрали Linux Mint! Linux Mint — один из лучших дистрибутивов для новичков. В установке...
VSCode

Как настроить Visual Studio Code для C, C++, Java, Python

Visual Studio Code — популярный редактор кода, бесплатный и с открытым исходным кодом. Но я уверен: каждый из нас, кто пытался настроить Visual Studio Code для разработки...
Education

3 инструмента, чтобы начать программировать на недорогом гаджете

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

Комментарий в коде написать - всё равно, что проиграть

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

7 причин выгорания программистов

Джерри — джуниор-разработчик, который в начале своей карьеры не мог дождаться утра, чтобы приступить к работе. И каждый вечер, даже после 10-часового рабочего дня, он чувствовал...
Learning

15 идей для вашего приложения. Часть 1

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

5 настроек рабочего стола Linux для разработчиков

Linux: программируйте удобнее Как только я начал работать из дома, я решил, что пришло время капитального ремонта рабочего стола. В офисе я обычно использую MacBook...
Education

Программирование: 5 недооцененных навыков

Убедитесь, что они есть в вашем арсенале Сейчас инженеры-программисты нуждаются в довольно широком спектре навыков. Наверху списка этих навыков вы найдете что-то вроде того, что… вам...
VSCode

Как я настроил VS Code

Недавно я был в аэропорту Борисполь на Украине, работал над статьей для блога, как вдруг мой VS Code перестал работать. Он крашнулся дважды меньше...
Vim

Стоит ли разработчику изучать VIM в 2020 году?

Введение Небольшая предыстория для понимания контекста. В конце 2018 года я всерьез занялся программированием, решив развивать карьеру. До этого я создавал (довольно плохие) сценарии для...
Education

10 признаков того, что программирование не для вас

Часто на Reddit или Quora я вижу вопросы “Как понять, что я могу стать хорошим программистом?”. Такие вопросы о программировании часто всплывают, когда люди...
Dataset

Лучшие бесплатные источники наборов данных для анализа

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

Знакомство с Git и GitHub: руководство для начинающих. Часть 1

Часть 1, Часть 2 Ищите, с чего бы начать изучение Git и GitHub? Хотите поработать с другими? Усердно трудитесь над проектом? Или вдруг заметили, что...
Linux

10 лучших легких дистрибутивов Linux для старых компьютеров

10. Peppermint   Peppermint — это облачно-ориентированный дистрибутив Linux, не требующий мощного железа для запуска. Он основан на Lubuntu и использует окружение рабочего стола LXDE для более плавной...
Education

10 программистских терминов на понятном языке

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

Какие языки программирования лучше учить в 2019 году

Если бы мы жили в идеальном мире, выбор языка программирования ни на что бы не влиял. Большинство популярных языков используются для похожих задач. Неопытным...
Github

Top 100 наиболее популярных репозиториев на GitHub

GitHub стал не просто хостингом для хранения кодов, а огромным сообществом разработчиков. Масштабы GitHub колоссальны: более 30 миллионов аккаунтов, более 2 миллионов организаций и более...
Containers

Как настроить Docker и Windows Subsystem for Linux (WSL): история о любви?

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

12 привычек эффективного разработчика

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

10 тенденций в разработке программного обеспечения в 2019 году

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

Перестаньте фокусироваться на синтаксисе, если хотите стать senior-разработчиком

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

Подсказки по именованию логических переменных

Существует определенное соглашение  —  снабжать имена логических переменных и функций префиксами “is” или “has”. Ну, знаете, что-то вроде isLoggedIn, hasAccess или наподобие этого. Но на...
Education

Парное программирование: недостатки, которые предпочитают умалчивать

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

8 незаменимых веб-приложений для разработчиков

1. Online GDB Online GDB — это браузерный компилятор, интерпретатор и отладчик. Поддерживает 20 языков программирования, включая C, C++, Python, Ruby, C#, Swift и JavaScript. Для меня он бесценен...
Education

Используйте перечисления, а не логические аргументы

Когда лучше избегать логических аргументов? Логические значения — это первый тип данных, который изучает любой программист. А почему бы и нет? Они являются самыми простыми из всего...
Pandas

Вычислительные затраты на написание чистого кода

Почему иногда люди пишут подобный код? var = float(str(alist).split())/3+float(alist) Ответ прост: чтобы сэкономить вычислительное время. Стоит только написать это в четыре строки… var = alist[::-1][0] var = str(var).split()[1:4] var...
Education

4 шага для повышения концентрации

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

Как пройти собеседование по проектированию систем?

У большинства компаний в сфере информационных технологий отдельный тур собеседования посвящён проектированию систем. Кандидатов просят спроектировать масштабируемую систему типа Facebook NewsFeed, Instagram stories, WhatsApp-чата,...
Python

Как организовать код в Python

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

10 Расширений VS Code Insider для веб разработки 2020

Детище Microsoft — Visual Studio Code — сохранит лидирующую позицию среди редакторов и ИСР на 2020 год. От огромного сообщества на его маркетплейс постоянно поступают крутые расширения, ...
Motivation

7 секретов для поддержания мотивации при изучении программирования

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

10 программистов-самоучек, ставших преуспевающими разработчиками

Если вы читаете эту статью, потому что находитесь в начале пути самообучения программированию или уже достигли его середины и начинаете сомневаться, то воспользуйтесь приведёнными...
IT Job

Как начать работать программистом почти без опыта

Я попал в Кремниевую Долину через черный ход — я начинал свою карьеру с простых и быстрых подработок на фрилансе. Рекомендую этот подход: это эффективный и...
UX

Основные принципы дизайна для НЕ дизайнеров

Я сформировала этот список, посредством многолетнего наблюдения за своими друзьями НЕ дизайнерами, семьей и коллегами, которым постоянно приходится сталкиваться с необходимостью применения дизайна в...
Docker

Почему вы должны обратить внимание на Docker?

Когда я гуглил информацию о фреймворках глубокого обучения (deep learning), я заметил, что почти каждый из этих фреймворков поддерживался Docker. В итоге у меня...
Git

Основы Git за 5 минут

По мере своего становления в роли разработчика приходит понимание того, что большая часть работы ведется в команде. И при работе в команде нужна система...
Web Development

Список навыков для начинающих фронтенд-разработчиков

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

Собеседование Java разработчика. Наиболее Часто Задаваемые Вопросы

В этом посте, я с удовольствием раскрою, вероятно, большинство возможных вопросов на Java-собеседовании, от простых до самых сложных. Чем отличаются статические методы и переменные...
Blockchain

Введение в блокчейн  -  основу криптовалют

Вы ещё помните то время, когда курс криптовалют вырос более чем в 50 раз всего за 1 год?! Вот наглядный график произошедшего: А затем случилось...
Web Design

9 лучших примеров макетов сайта и идей для веб-дизайна в 2018

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

Разработчики, которые постоянно что-то изучают — вот вам совет!

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

Как настроить отладчик для Chrome extension в Visual Studio Code

Отладка веб-приложений с помощью Visual Studio Code значительно повышает эффективность работы, помогает сэкономить много времени и сохранить чистоту кода. Приступим! Начало установки Для начала установите расширение...
Programming

Почему вам нужно учить больше языков программирования

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

Как добиться большей зарплаты на собеседовании

Прежде чем мы начнём разговор о зарплате, давайте обсудим разработку ПО. Разработка — это квалифицированный труд. Вы явно не будете стоять на конвейере, добавляя по винтику...
Career Change

Как я стал программистом в 40 лет

Вот, как я сменил свою прежнюю работу на front-end разработчика в 40 лет, не имея ни образования, ни опыта работы в этой сфере. Я...
Self Improvement

5 вредных привычек неэффективных программистов

Плохие программисты вовсе не глупы. Просто у них есть вредные привычки. Некоторые программисты лучше других. Существует своего рода статистика: небольшая группа программистов — на уровне «великолепно», чуть...
Docker

Сканируем образы Docker на уязвимости

Как своевременно обнаружить уязвимости? Итак, вы создали Dockerfile, протестировали контейнер на рабочей станции разработки и ждете, когда он подцепится в CI/CD. Через какое-то количество времени...
Blockchain

6 шагов до карьеры блокчейн-разработчика

Шаг 1: оцените свои навыки Вероятно, что у вас, как у разработчиков, после работы со множеством разных технологий появился свой “любимый” стек технологий, которые вам оказались...
Linux

6 месяцев без Windows: ужасная правда об играх на Linux

Последние 6 месяцев я старался работать исключительно в Linux и не намерен отказываться от задуманного. Такой опыт оказался прогрессивным, обучающим и, временами, даже забавным....
Machine Learning

Топ-10 курсов по машинному и глубокому обучению в 2020

Знаете, о чём я мечтал, когда начал изучать машинное обучение? О таком сборном курсе по машинному обучению формата всё-в-одном. В то время было трудно...
React Native

5 лучших курсов по React Native для разработчиков мобильных приложений

Если вы — веб-разработчик, который хочет создавать мобильные приложения, но не хочет тратить время на изучение Java/Kotlin (для Android) или Objective C/Swift (для iOS),...
Java

Как научиться программировать на Java и с чего начать

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

Искусственный интеллект оживит наших близких

После того, как Роман Мазуренко, близкий друг Евгении Куйды, погиб в автокатастрофе, она решила возвести ему памятник. Она собрала все текстовые сообщения, которые он...
Education

Что может помешать разработчику самостоятельно создать успешное приложение

Четыре года назад я опубликовал своё первое приложение в Google Play Store. И по ходу разработки я наткнулся на множество препятствий, но также и...
Archive

Форматы .tar .zip .gz: Различия и эффективность

Вы наверняка встречали файлы с расширением .tar, .zip или .gz . А знаете ли вы, чем они отличаются, почему мы их используем, и какой формат наиболее эффективен? Различия между...
Ruby

Как и почему я перешёл с Ruby на Python

В 2008, когда я ещё учился на инженера-разработчика, двое моих друзей решили запустить проект под названием Feedbooks. Суть проекта состояла в создании электронной библиотеки,...
git

Топ 10 альтернатив Github для размещения Open Source проектов

Github — мощная, безопасная и самая популярная онлайн платформа для размещения проектов с контролем версий, с использованием Git. Хоть Github больше известен как платформа для разработки...
Ubuntu

Установка и использование Snap-пакетов в Ubuntu 18.04

Введение Snap (или Snappy) — это система развертывания программ и управления пакетами, созданная Canonical. Эти пакеты чаще называют «снепами». Для работы с ними используется утилита «snapd», встроенная...
VIM

Преодолейте ваши страхи перед Vim

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

Топ 10 бесплатных инструментов для автоматизированного тестирования

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

Введение в Subject в реактивном программировании

Subject — это «особый» тип наблюдаемого объекта, который позволяет транслировать значения сразу нескольким подписчикам. Самое классное здесь то, что Subject предоставляет ответы в режиме реального времени. Например,...
Education

64 совета на основе 50 лет опыта в разработке ПО

Первый урок по программированию (конечно же, FORTRAN) я посетил, когда учился в колледже в 1970. За последние же полвека я провёл уйму времени, работая...
Testing

Наглядное руководство по каждому типу тестов

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

13 Горячих клавиш, которые должен знать каждый пользователь Ubuntu 18.10

Рассмотрим некоторые полезные сочетания клавиш для Ubuntu 18.10 с графическим окружением GNOME. Мы не включили в эту статью универсальные сочетания клавиш, такие как Ctrl...
Java

9 вещей, которыми следует заняться Java программисту в 2018 году

Будучи Java разработчиком и автором Java-блога, я часто встречаю вопросы от java-программистов со всего мира, о том, как можно улучшить свои навыки. В прошлом я написал...
Java

Как правильно учиться Java-программированию: история одного тьютора

Моя история Все началось больше десяти лет назад. Решив стать программистом, я начал изучать несколько языков, чтобы в конечном итоге найти «свой» язык. В Java я...
Git

5 шагов к созданию крутого пул-реквеста

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

Нативное будущее кроссплатформенной разработки

Коротко о кроссплатформенности Сейчас кроссплатформенная разработка не пользуется большой популярностью. Основная причина состоит в том, что существующие инструменты не в полной мере справляются со своей...
CodeReview

Code Review - Полное руководство

После проведения сотни code rewiew, лично возглавив R&D (Research & Development) команду и спровоцировав несколько непреднамеренных ошибок, я решил поделиться своими выводами о том,...
Education

Возраст - это просто цифра

“Я боюсь, что для меня уже слишком поздно менять профессию… Вообще менять что-либо существенное в жизни уже поздно. Мне уже (подставьте соответствующий вам возраст,...
Software Development

Возвращаемся к SOLID

Вы помните, что именно представляет собой один из краеугольных камней большой разработки программного обеспечения? В первые годы своей работы большинство разработчиков сталкиваются с принципами SOLID,...
The key to learning fast

Секрет быстрого обучения

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

О чём не говорят инженеры ПО

Здесь, на Medium, на YouTube и во всем интернете люди говорят о том, как они стали программистами без степени в компьютерных науках. Некоторые переходят...
Education JavaScript

Как мой 10-летний сын выучил Javascript 

“Папа . . . А чем ты зарабатываешь на жизнь?” Этот неожиданный вопрос заставляет нас, родителей, испытать чувство гордости. Так как он означает, что ребенок наконец-то видит в...
Git

Как стать Git-мастером: 7 советов по повышению производительности

Автозаполнение команд Git в терминале Большинство команд терминала для Git начинаются с ключевого слова git, за которым следует пробел и второе ключевое слово. Из-за наличия...
Education

Искусство упрощения для программистов

Недавно я наткнулся на очень интересную книгу авторства Nagisa Tatsumi. Называется она “Искусство упрощения: как избавиться от беспорядка и найти радость” (“The Art of...
Clean code

Как писать чистый код?

Роберт Мартин: «Единственная адекватная мера качества кода — это количество восклицаний «какого чёрта!» вминуту». Позвольте объяснить. Делая код-ревью, я испытываю три эмоции: Какого черта!  —  с отвращением. Этот...
Programming

Практические советы начинающим программистам

Когда я начал делиться своими работами по освоению программирования и хаком своего образования, многие очень сильно заинтересовались и стали спрашивать, как начать учиться программированию. Я...
Docke and Gitlab

Как настроить непрерывную интеграцию на GitLab с помощью Docker

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

Знакомство с Git и GitHub: руководство для начинающих. Часть 2

Часть 1, Часть 2 Рабочий процесс на GitHub Допустим, у вас есть проект с кучей разных идей и возможностей для дальнейшей реализации. Что-то из этого...
Java

Как правильно учиться Java-программированию: история одного тьютора

Моя история Все началось больше десяти лет назад. Решив стать программистом, я начал изучать несколько языков, чтобы в конечном итоге найти «свой» язык. В Java я...
Self Improvement

Как отладка поможет вам стать лучшим разработчиком

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

Java против Kotlin. Android

Противостояние Java и Kotlin  —  тренд последних дней. Java  —  везде, однако Kotlin наступает, предлагая значительные преимущества. Итак, Java и Kotlin конкурируют. Мы обсудим...
Testing

ПО без тестирования - что самолет без крыльев

Можете ли вы представить авиакомпании, которые никогда бы не тестировали свои самолеты, а просто доставляли бы на место уже готовые. Чувствовали бы вы себя...
Developer Productivity

Топ-12 факторов, уничтожающих продуктивность программиста

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

Самый важный навык для программиста

Нет, нет и нет. Скажем вместе. НЕТ! Хорошее начало. Но чему мы говорим НЕТ? Это важный момент, который сбивает с толку даже опытных программистов. Написание кода составляет большую часть...
MacBook Pro

Почему разработчики не должны пользоваться MacBook Pro?

Около десяти лет назад в интернете появилась статья, утверждающая, что “у каждого разработчика должен быть MacBook Pro”, в которой перечислялся ряд причин, например: Лучший...
Software Development

У меня появилась идея для приложения, но…я не разработчик

У меня есть идея для веб-приложения Мои поздравления — вас посетила муза! Теперь пришло время внимательно взглянуть на вашу идею и решить, следует ли ее доработать, перейти...
Software Development

Создание правильного чек-листа для инспекции кода

Инспекция кода — это неотъемлемая часть процесса разработки, придуманная для снижения технических недоработок и обеспечения постоянства кодовой базы. Все, кто пишет код, допускают ошибки. Поэтому крайне...
Education

Как приобрести навыки, необходимые для выживания в мире современных технологий

5 способов, которые помогут перестать беспокоиться о будущем Современный мир нестабилен и непрерывно развивается. Автоматизированные машины, данные и алгоритмы, компьютеры и код — изменения затрагивают все аспекты нашей...
Interview

Почему люди проваливают собеседования по алгоритмам и структурам данных в крупных компаниях?

Компьютерные науки — это область с огромными возможностями. Миллионы студентов всего мира мечтают построить карьеру в этой сфере. Но возникает неожиданная проблема: несмотря на то, что...
3 применения исключений, которые улучшат навыки программирования на Java

3 применения исключений, которые улучшат навыки программирования на Java

В статье мы узнаем: 1. Как выбрасывать исключение в пустом классе «Optional».2. Как тестировать и просматривать исключение.3. Как использовать ошибки утверждения. 1. Как выбрасывать исключение в...
Как PyPy ускоряет Python до уровня C?

Как PyPy ускоряет Python до уровня C?

Обзор PyPy, быстрого интерпретатора Python: улучшение производительности программы без изменения кода!
Насколько С++ быстрее Python

Насколько С++ быстрее Python

Есть миллион причин любить Python (особенно специалистам по данным). Но сильно ли он отличается от более профессиональных низкоуровневых языков программирования, таких как С или С++? Скорее всего, многие дата-специалисты или пользователи Python задавались этим вопросом или однажды задумаются об этом.
Самые полезные библиотеки Go

Самые полезные библиотеки Go

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

7 факторов, которые помогут улучшить UX-дизайн

Чтобы улучшить UX, нужно знать «слабые места» интерфейса. Есть типичные «проблемные зоны», на которые дизайнеру следует обращать особое внимание. Обычно именно здесь кроются причины...