Отметьте принципы, которые можно отнести к фундаментальным принципам построения компьютеров

Обновлено: 05.07.2024

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

  • Следует повторяемому процессу
  • Требуются особые стандарты качества.
  • Опирается на сотрудничество группы специалистов.

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

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

Бесплатная пробная версия LeanKit: программа LeanKit Online Kanban

Подпишитесь на 30-дневную бесплатную пробную версию, и вы и ваша команда сможете начать создавать онлайн-доски Канбан уже сегодня. Убедитесь сами, как LeanKit поддерживает инициативы по непрерывной доставке, устраняет потери и улучшает процессы доставки и скорость вашей команды.

7 принципов бережливого производства

  • Устранение отходов
  • Построить качество
  • Создавайте знания
  • Отложить обязательство
  • Быстрая доставка
  • Уважать людей
  • Оптимизировать все

В своей книге Lean Software Development: An Agile Toolkit Мэри и Том Поппендик описали, как эти принципы Lean можно применить к разработке программного обеспечения. Вот краткое изложение каждого из этих принципов, а также практические советы по их применению в разработке программного обеспечения.

Устранение отходов

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

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

  • Ненужный код или функциональность: оттягивает время до клиента, замедляет обратную связь.
  • Начинать больше, чем можно завершить. Добавляет ненужную сложность в систему, приводит к переключению контекста, задержкам передачи и другим препятствиям для потока.
  • Задержка в процессе разработки программного обеспечения: оттягивает время до клиента, замедляет обратную связь.
  • Нечеткие или постоянно меняющиеся требования: приводит к переделкам, разочарованию, проблемам с качеством, отсутствию внимания.
  • Бюрократия: замедляет скорость
  • Медленная или неэффективная коммуникация: приводит к задержкам, разочарованиям и плохому общению с заинтересованными сторонами, что может повлиять на репутацию ИТ-отдела в организации.
  • Частично выполненная работа: не добавляет ценности клиенту и не позволяет команде учиться на работе.
  • Дефекты и проблемы с качеством: приводят к переделке, отказу от работы и снижению удовлетворенности клиентов.
  • Переключение между задачами: приводит к низкому качеству работы, задержкам, сбоям в общении и снижению морального духа команды.

Качество сборки в

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

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

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

  • Парное программирование. Чтобы избежать проблем с качеством, объедините навыки и опыт двух разработчиков вместо одного.
  • Разработка через тестирование: создание критериев для кода перед его написанием, чтобы убедиться, что он соответствует бизнес-требованиям.
  • Постепенная разработка и постоянная обратная связь
  • Сведите к минимуму состояние ожидания: уменьшите переключение контекста, пробелы в знаниях и потерю внимания.
  • Автоматизация: автоматизируйте любой утомительный, выполняемый вручную процесс или любой процесс, подверженный человеческим ошибкам.

Создавайте знания

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

  • Парное программирование
  • Проверки кода
  • Документация
  • Вики — для постепенного наращивания базы знаний.
  • Тщательно прокомментированный код
  • Сеансы для обмена знаниями
  • Обучение
  • Используйте инструменты для управления требованиями или историями пользователей.

Отложить обязательство

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

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

Отсрочка обязательства означает:

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

Быстрая доставка

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

  • Слишком заблаговременно думать о будущих требованиях.
  • Блокаторы, на которые срочно не ответили
  • Сложные инженерные решения и бизнес-требования

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

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

Уважение к людям

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

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

Оптимизировать все

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

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

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

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

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

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

Бесплатная пробная версия LeanKit: программа LeanKit Online Kanban

Подпишитесь на 30-дневную бесплатную пробную версию, и вы и ваша команда сможете начать создавать онлайн-доски Канбан уже сегодня. Убедитесь сами, как LeanKit поддерживает инициативы по непрерывной доставке, устраняет потери и улучшает процессы доставки и скорость вашей команды.

Бесплатная пробная версия LeanKit: программа LeanKit Online Kanban

Подпишитесь на 30-дневную бесплатную пробную версию, и вы и ваша команда сможете начать создавать онлайн-доски Канбан уже сегодня. Убедитесь сами, как LeanKit поддерживает инициативы по непрерывной доставке, устраняет потери и улучшает процессы доставки и скорость вашей команды.


Старший менеджер по маркетингу

Рэйчел Линн, сертифицированный специалист по SAFe Agilist, является менеджером по маркетингу и профильным экспертом в Planview, ведущем поставщике программного обеспечения для управления портфелем проектов, бережливой и гибкой доставки, управления проектами и управления инновациями. Ее опыт работы в различных отраслях B2B и B2C по-прежнему вызывает у нее интерес к пути клиентов SaaS. Рэйчел имеет степень бакалавра в области коммуникативных исследований Университета Флориды.

SOLID — это аббревиатура первых пяти принципов объектно-ориентированного проектирования (ООД), разработанных Робертом К. Мартином (также известным как дядя Боб).

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

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

SOLID означает:

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

Принцип единой ответственности

Принцип единой ответственности (SRP) гласит:

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

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

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

Для квадратов вам нужно знать длину стороны:

Для кругов вам необходимо знать радиус:

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

Чтобы использовать класс AreaCalculator, вам потребуется создать экземпляр класса, передать массив фигур и отобразить результат внизу страницы.

Вот пример с набором из трех фигур:

  • окружность радиусом 2
  • квадрат длиной 5
  • второй квадрат длиной 6

Проблема с методом вывода заключается в том, что AreaCalculator обрабатывает логику вывода данных.

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

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

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

Класс SumCalculatorOutputter будет работать следующим образом:

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

Это соответствует принципу единой ответственности.

Принцип открытого-закрытого

Принцип открытого-закрытого состояния (OCP) гласит:

Объекты или сущности должны быть открыты для расширения, но закрыты для модификации.

Это означает, что класс должен расширяться без изменения самого класса.

Вернемся к классу AreaCalculator и сосредоточимся на методе sum:

Рассмотрите сценарий, в котором пользователю требуется сумма дополнительных фигур, таких как треугольники, пятиугольники, шестиугольники и т. д. Вам придется постоянно редактировать этот файл и добавлять дополнительные блоки if/else. Это нарушило бы принцип открытого-закрытого.

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

Вот метод площади, определенный в Square:

А вот метод области, определенный в Circle :

Метод суммы для AreaCalculator можно переписать следующим образом:

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

Однако возникает другая проблема. Откуда вы знаете, что объект, переданный в AreaCalculator, на самом деле является фигурой или фигура имеет метод с именем area?

Написание кода для интерфейса — неотъемлемая часть SOLID.

Создайте ShapeInterface, поддерживающий область:

Измените классы фигур, чтобы реализовать ShapeInterface .

Вот обновление Square:

А вот и обновление Circle :

В методе sum для AreaCalculator вы можете проверить, действительно ли предоставленные фигуры являются экземплярами ShapeInterface ; в противном случае создайте исключение:

Это соответствует принципу открытого-закрытого.

Принцип замены Лисков

Принцип замены Лисков гласит:

Пусть q(x) — доказуемое свойство объектов x типа T. Тогда q(y) должно быть доказуемо для объектов y типа S, где S — подтип T.

< /цитата>

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

На основе примера класса AreaCalculator рассмотрим новый класс VolumeCalculator, расширяющий класс AreaCalculator:

Вспомните, что класс SumCalculatorOutputter выглядит следующим образом:

Если вы попытались запустить такой пример:

При вызове метода HTML для объекта $output2 вы получите сообщение об ошибке E_NOTICE, информирующее вас о преобразовании массива в строку.

Чтобы исправить это, вместо возврата массива из метода суммы класса VolumeCalculator верните $summedData :

$summedData может быть числом с плавающей запятой, двойным числом или целым числом.

Это удовлетворяет принципу подстановки Лискова.

Принцип разделения интерфейса

Принцип разделения интерфейсов гласит:

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

По-прежнему используя предыдущий пример ShapeInterface, вам потребуется поддерживать новые трехмерные формы Cuboid и Spheroid , и эти формы также должны будут вычислять объем .

Давайте рассмотрим, что произойдет, если вы измените ShapeInterface, чтобы добавить еще один контракт:

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

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

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

Таким образом, у вас может быть единый API для управления фигурами:

Теперь в классе AreaCalculator вы можете заменить вызов метода площади на calculate, а также проверить, является ли объект экземпляром ManageShapeInterface, а не ShapeInterface.

Это соответствует принципу разделения интерфейсов.

Принцип инверсии зависимостей

Принцип инверсии зависимостей гласит:

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

Этот принцип позволяет разделить связь.

Вот пример PasswordReminder, который подключается к базе данных MySQL:

Во-первых, MySQLConnection является низкоуровневым модулем, а PasswordReminder — высокоуровневым, но в соответствии с определением D в SOLID, которое гласит Зависит от абстракции, а не от конкретики. Фрагмент кода выше нарушает этот принцип, поскольку класс PasswordReminder вынужден зависеть от класса MySQLConnection.

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

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

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

Этот код устанавливает, что как высокоуровневые, так и низкоуровневые модули зависят от абстракции.

Заключение

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

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

Хотите узнать больше? Присоединяйтесь к сообществу DigitalOcean!

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

Мэг Рид

Дизайн отличается от искусства тем, что у него должна быть цель. Визуально эта функциональность интерпретируется тем, что изображение имеет центр внимания, точку фокусировки. Возможно, вы думаете: «Но подождите! Я думал, что дизайн — это прежде всего творчество?» Если вы предприниматель или начинающий дизайнер, у вас может возникнуть соблазн пойти на риск и скомбинировать первые пять шрифтов и цветов, которые привлекли ваше внимание, полагая, что вы создаете что-то новое и оригинальное. новый. Скорее всего, вы столкнетесь с запутанным, незавершенным или просто уродливым дизайном.

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

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

1. Акцент

пример принципа акцент в дизайне: постер со скрипкой-гитарой на сцене

Дизайн плаката miai313 для Handel’s Messiah Rocks

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

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

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

2. Баланс и выравнивание

пример принципа баланс дизайна: красочный закат над горами рекламный дизайн

Дизайн плаката: Швин для Rumspringa

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

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

Есть вопрос? Задайте его нашей команде.

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

3. Контраст

пример принципа контраст дизайна: черная пантера, кошка дизайн

Дизайн плаката Дарьи В. для Mama J

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

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

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

4. Повтор

пример принципа повторение дизайна: вертикальные цифры и оформление текста

Дизайн постера от robbyprada для Zoom.de

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

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

5. Пропорция

пример принципа Пропорция дизайна: плакат с покерным забегом в винтажном стиле

Дизайн плаката Махуна

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

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

6. Движение

пример принципа дизайнерское движение: афиша концерта струнного оркестра с морским существом

Дизайн плаката Стефаносп для Great American Music Hall

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

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

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

7. Пробел

пример для принцип оформления пустого пространства: афиша кинофестиваля «Всадник» width=

Дизайн постера для pmoretti

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

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

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

Как использовать принципы дизайна

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

пример нарушения дизайна правила: Кровать, передвинутая Ребеккой Шифф, дизайн Джанет Хансен

Перемещенная кровать, Ребекка Шифф. Дизайн Джанет Хансен для Knopf

Рассмотрите обложку Ребекки Шифф "The Bed Moved", созданную Джанет Хансен. Это была одна из самых хвалебных обложек книг 2016 года.

Но вы сразу прочитали первую строчку как «Theeb?» Ваш взгляд перескочил на нижнюю строку, где буква М из слова «перемещено» изолирована от остальной части слова? Дизайн явно нарушает два правила движения и выравнивания. Но! Благодаря тому, что дизайнер уверенно использует смелую контрастную цветовую схему и повторяющуюся структуру, ваш взгляд легко ориентируется на название и автора книги.

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

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

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

Принципы дизайна — законы с запасом хода

Принципы дизайна — это основные советы, которые помогут вам создавать простые в использовании и приятные дизайны. Вы применяете их, когда выбираете, создаете и упорядочиваете элементы и функции в своей работе. Принципы дизайна представляют собой накопленный опыт исследователей и практиков в области дизайна и смежных областях. Когда вы применяете их, вы можете предсказать, как пользователи, скорее всего, отреагируют на ваш дизайн. «KISS» («Keep It Simple Stupid») — это пример принципа, согласно которому вы разрабатываете дизайн для неспециалистов и, следовательно, сводите к минимуму любую путаницу, с которой могут столкнуться ваши пользователи.

Контрольный список дизайна, составленный Фрэнксом Спиллерсом, – это пример набора индивидуальных принципов дизайна для мобильного пользовательского интерфейса (UX).

При проектировании взаимодействия с пользователем (UX) очень важно свести к минимуму когнитивную нагрузку пользователей и время на принятие решений. Авторы окончательной работы Универсальные принципы дизайна заявляют, что принципы дизайна должны помочь дизайнерам найти способы улучшить удобство использования, повлиять на восприятие, повысить привлекательность, научить пользователей и принимать эффективные дизайнерские решения в проектах. Чтобы эффективно применять принципы дизайна, вам нужно хорошо разбираться в проблемах пользователей и хорошо понимать, как пользователи воспримут ваши решения. Например, вы не используете автоматически соотношение веса заголовка и текста 3:1, чтобы соблюдать принцип хорошей иерархии. Это соотношение является стандартным правилом. Вместо этого рекомендация, которую вы можете использовать для реализации хорошей иерархии, гласит: «текст должен легко читаться». Вы должны проявлять осмотрительность всякий раз, когда применяете принципы дизайна, чтобы предвидеть потребности пользователей — например, вы решаете, как направлять взгляд пользователя, используя симметрию или асимметрию. Следовательно, вы адаптируете принципы к каждому случаю и создаете прочный опыт по мере того, как со временем удовлетворяете потребности пользователей.

«Дизайн — это не монолог; это разговор».

—Уитни Хесс, тренер по эмпатии и консультант по UX-дизайну


< /p>

Типы принципов дизайна

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

Король юзабилити Якоб Нильсен определил десять «заповедей»:

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

Эксперт по эмпатии Уитни Хесс добавляет:

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

<р>2. Предложите несколько вариантов — не мешайте пользователям приятного; вместо этого предоставьте им необходимые альтернативы.

<р>3. Уменьшите количество отвлекающих факторов: разрешите пользователям выполнять задачи последовательно, а не одновременно.

<р>4. Сгруппируйте связанные объекты вместе.

<р>5. Иметь удобную визуальную иерархию, отражающую потребности пользователей, с удобным доступом к часто используемым элементам.

<р>6. Сделайте так, чтобы вещи было легко найти.

<р>7. Покажите пользователям, откуда они пришли и куда направляются, с помощью указателей/подсказок.

<р>8. Обеспечьте контекст — покажите, как все взаимосвязано.

<р>9. Избегайте жаргона.

<р>10. Делайте проекты эффективными и оптимизированными.

<р>11. Используйте значения по умолчанию с умом: когда вы предлагаете заранее определенные, хорошо продуманные варианты, вы помогаете свести к минимуму решения пользователей и повысить эффективность.

<р>12. Не задерживайте пользователей — обеспечьте быструю реакцию интерфейса.

<р>13. Сосредоточьтесь на эмоциях – удовольствие от использования так же важно, как и простота использования; пробудить у пользователей желание увеличить вовлеченность.

<р>14. Используйте принцип «меньше значит больше» — учитывайте все в дизайне. Если функциональные и эстетические элементы не улучшают впечатление пользователя, забудьте о них.

<р>15. Следите за механизмами навигации, организационной структурой и т. д., чтобы дизайн был стабильным, надежным и предсказуемым.

<р>16. Создайте хорошее первое впечатление.

<р>17. Будьте заслуживающими доверия и заслуживающими доверия — идентифицируйте себя через свой дизайн, чтобы убедить пользователей и устранить неопределенность.

Наша страница «О нас» демонстрирует хорошую иерархию, простоту навигации, использование пробелов и т. д., устанавливая при этом доверие.

Краткое содержание: 10 основных принципов интерактивного дизайна Джейкоба Нильсена. Их называют "эвристиками", поскольку они представляют собой общие эмпирические правила, а не конкретные рекомендации по удобству использования.

Якоб Нильсен

2020-11-15 24 апреля 1994 г .; Обновлено 15 ноября 2020 г.

Темы:

Поделиться этой статьей:

Загрузите бесплатный постер с 10 эвристиками юзабилити Джейкоба внизу этой статьи.

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

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

Советы

  • Четко сообщайте пользователям о состоянии системы — никакие действия с последствиями для пользователей не должны предприниматься без их информирования.
  • Отправьте отзыв пользователю как можно быстрее (в идеале сразу).
  • Укрепляйте доверие посредством открытого и постоянного общения.

Подробнее

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

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

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

Советы

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

Подробнее

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

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

Советы

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

Подробнее

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

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

Советы

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

Подробнее

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

Есть два типа ошибок: промахи и ошибки. Промахи — это неосознанные ошибки, вызванные невнимательностью. Ошибки — это сознательные ошибки, основанные на несоответствии между ментальной моделью пользователя и дизайном.

Советы

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

Подробнее

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

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

Советы

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

Подробнее

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

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

Советы

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

Подробнее

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

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

Советы

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

Подробнее

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

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

Советы

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

Подробнее

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

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

Советы

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

Подробнее

Примечание от Джейкоба

Первоначально я разработал эвристику для эвристической оценки в сотрудничестве с Рольфом Моличем в 1990 году [Молич и Нильсен, 1990; Нильсен и Молич, 1990]. Четыре года спустя я усовершенствовал эвристику на основе факторного анализа 249 проблем юзабилити [Nielsen 1994a], чтобы получить набор эвристик с максимальной объяснительной силой, в результате чего появился этот пересмотренный набор эвристик [Nielsen 1994b].

В 2020 году мы обновили эту статью, добавив больше объяснений, примеров и связанных ссылок. Хотя мы немного усовершенствовали язык определений, сами 10 эвристик остались актуальными и неизменными с 1994 года. Если что-то остается верным в течение 26 лет, это, скорее всего, будет применяться и к будущим поколениям пользовательских интерфейсов.

Бесплатный плакат с 10 эвристиками

Загрузите бесплатный постер с 10 эвристиками юзабилити Якоба внизу этой статьи в разделе Загрузки. Вы можете скачать итоговый постер в 3-х размерах: полный постер, A4 и Letter. Вы также можете загрузить полный набор из 11 постеров (10 эвристик юзабилити и итоговый плакат).

Jakob

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

См. также

Примеры

  • 10 эвристик удобства использования, применяемых к сложным приложениям — примеры эвристик, применяемых к сложным и специализированным программным приложениям.
  • 10 эвристик юзабилити, применяемых к виртуальной реальности — см. эвристики, применяемые к виртуальным 3D-средам. — Прекрасные примеры 10 эвристик в интерактивных и визуальных пользовательских интерфейсах, предназначенных для развлечения.
  • 10 эвристик юзабилити, применяемых в повседневной жизни (просто для развлечения)

Контрольные списки и рекомендации

  • Полный набор из 2397 рекомендаций по дизайну пользовательского интерфейса (в нескольких отчетах).
  • Список основных принципов дизайна интерфейса, составленный Брюсом "Тог" Тоньяццини. Список немного слишком длинный для эвристической оценки, но служит полезным контрольным списком.

Ссылки

Загрузки

Об авторе

Якоб Нильсен, доктор философии, является адвокатом пользователей и руководителем Nielsen Norman Group, которую он основал вместе с доктором Дональдом А. Норманом (бывшим вице-президентом по исследованиям в Apple Computer). Доктор Нильсен основал движение «проектирование юзабилити со скидкой» для быстрого и дешевого улучшения пользовательских интерфейсов и изобрел несколько методов юзабилити, включая эвристическую оценку. Он является обладателем 79 патентов США, в основном касающихся способов упрощения использования Интернета.

Подпишитесь на нашу электронную рассылку Alertbox:

Последние статьи об удобстве использования интерфейсов, дизайне веб-сайтов и исследованиях UX от Nielsen Norman Group.

Читайте также: