Принцип dry в веб-дизайне

Примечания

  1. The Concise New Partridge Dictionary of Slang, Eric Partridge, Tom Dalzell, Terry Victor, Psychology Press, 2007, p.384.
  2. Pit & Quarry, Vol. 63, July 1970, p.172, quote: «as in every other step of the development process, follow the KISS principle — Keep It Simple, Stupid.»
  3. ↑  (недоступная ссылка) (18 ноября 1994). Дата обращения 24 января 2016.
  4.  (недоступная ссылка). Дата обращения 1 октября 2015.
  5. KISS // Толковый словарь по информатике / Пивняк Г.Г.. — Д.: Нац. горн. ун-т, 2008. — С. 130. — 599 с. — ISBN 978-966-350-087-4.
  6.  (англ.). Babylon.com. Дата обращения 25 июля 2010.
  7. Eric Raymond. // The Art of Unix Programming. — Addison-Wesley. — ISBN 0-13-142901-9.

Происхождение

По имеющимся сообщениям, акроним был придуман Кларенсом Джонсоном, ведущим инженером Lockheed Skunk Works (создатели Lockheed U-2, SR-71 Blackbird и многих других).

В то время как уже несколько десятилетий популярно использование расшифровки «Keep it simple, stupid», Джонсон расшифровал KISS как «Keep it simple stupid» (без запятой) и эта трактовка до сих пор используется многими авторами (стоит, однако, отметить, что в английском языке, в отличие от русского, запятая используется для достаточно редко). В ней не было никакого скрытого смысла, что инженер был глуп; как раз наоборот.

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

Акроним часто используется в ВВС США и в области разработки программного обеспечения.

Рефакторинг и DRY

Пришло время разобраться с принципом DRY.

DRY, упрощенная формулировка — «не дублируйте свой код». Принцип кажется простым, но в нем есть подвох: для избавления от дублирования кода нужно создавать абстракции. Если эти абстракции будут недостаточно хороши, мы нарушим принцип KISS.


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

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

Чеклист правильной абстракции:

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

Итак, давайте приступим к рефакторингу.

А у нас есть ярко выраженный дублирующийся код:

Код для копирования

В данном коде дублируется композиция из 2-х элементов: , . Давайте объеденим их в новую абстракцию :

Код для копирования

Теперь наш выглядит так:

Код для копирования

Читать стало проще. Имя абстракции соответсвует задаче, которую она решает. Цель компонента очевидна. Кода стало меньше. Значит мы идем в правильном направлении!

Сейчас видно, что в дублируется логика.

То, что там происходит, можно разбить на 2 этапа:

Код для копирования

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

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

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

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

А до тех пор будет выглядеть так:

Код для копирования

Таким образом соблюдается однородность типа при вводе и выводе в компонент и скрывается истинная природа происходящего для внешнего кода. Если нам в будущем понадобится другой компонент ui, например, checkbox или select, то в нем мы тоже будем сохранять однородность типа на вводе-выводе.

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


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

Вернемся к делу, обновим наш компонент в соответсвии с изменениями в :

Код для копирования

Это выглядит уже совсем неплохо, но мы можем еще лучше!

Давайте реализуем эту функцию:

Код для копирования

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

Посмотрим на получившийся код:

Код для копирования

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

KISS (Keep it simple, stupid! — Делайте вещи проще!)

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

KISS — это принцип проектирования и программирования, при котором простота системы декларируется в качестве основной цели или ценности. Есть два варианта расшифровки аббревиатуры: «keep it simple, stupid» и более корректный «keep it short and simple».

В проектировании следование принципу KISS выражается в том, что:

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

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

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

В программировании следование принципу KISS можно описать так:

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

Также KISS имеет много общего c принципом разделения интерфейса из пяти принципов , сформулированных Робертом Мартином.

DRY

“Don’t Repeat Yourself” – How many times do you see that there are similar codes in different parts of a system? The DRY principle, formulated by Andrew Hunt and David Thomas in their book The Pragmatic Programmer, states that “every piece of knowledge must have a single, unambiguous, authoritative representation within a system.»  In other words, you must try to maintain the behavior of a functionality of the system in a single piece of code.

On the other hand, when the DRY principle is not followed, this is known as WET solutions, which stands for either Write Everything Twice or We Enjoy Typing.

DRY programming is very useful, especially in big applications where code is constantly maintained, changed and extended by a lot of programmers. But, you also should not abuse DRY code and implement it in all ofyour projects. Remember the first two principles: KISS and YAGNI.

There are a lot of other principles and good software app development tips to increase productivity and efficiency, but I believe that these three are the basics. Putting them into practice will rescue you and your team from a lot of headaches trying to maintain code that people don’t understand. At iTexico, we practice what we preach and are always looking for ways to leverage technologies such as Blockchain and ASP .NET MVC to create seamless experiences for users. Contact us to learn more!

Формы выпуска

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

Каждый вид дезодоранта имеет некоторые важные отличия и назначения, которые важно учитывать при покупке


Ниже имеется таблице с формами Драй Драй, их виды и отличия.

Форма Описание
Dry Dry Classic Данная форма антиперспиранта обладает стандартным составом, в котором наблюдается около 30,5 % содержания гидрата хлористого алюминия. Он рассчитан на длительный период использования — до 7 дней. Он выпускается в виде аппликатора или в форме шарикового дезодоранта с объемом 35 мл.
Dry Dry Sensitive Это линия дезодорантов Драй драй без спирта. Они предназначены для кожи с повышенной чувствительностью. В составе также снижен процент содержания активного компонента гидрата алюминия до 24 %. Срок действия у них не большой, такой же, как и у обычных антиперспирантов — до двух дней. Выпускается в роликовых флаконах с объемом 50 мл.
Dry Dry Light Это легкая форма дезодорантов Драй драй от обильного потоотделения, которая обладает универсальным составом. Период воздействия составляет не больше 3 дней. Несмотря на то, что срок действия не долгий, эта форма подходит для всех типов кожи. Также можно применять для всех участков тела.
Dry Dry Foot Spray Форма обладает высокой эффективностью, и она предназначена для устранения повышенной потливости ног. В составе предусмотрена специальная формула с ментолом, которая оказывает антибактериальное воздействие и приятно охлаждает ноги.
Dry Dry Man Данное средство предназначено только для мужчин. Оно подходит для людей, которые ведут слишком активный образ жизни. При использовании не оставляет пятен и следов на одежде. Обладает приятным мужским ароматом.
Одноразовые салфетки Драй Драй Салфетки выпускаются в удобной упаковке по 10 штук. Они обладают антибактериальным воздействием. Их удобно применять в командировках, поездках, путешествиях. Период действия при применении салфеток составляет в среднем 7 дней. Они подходят для всех частей тела. Удобно использовать для обработки области подмышек, ладоней, ступней, ими также можно протирать область межпальцевого пространства.
Гель или крем Драй Драй 100 мл

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

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

The First Usability Principle?

KISS may have been the first usability principle for product design – though it was never formally presented as a usability principle. It focuses on the idea that if we can’t understand a product, we can’t use it properly and that the widest possible audience must be able to understand it, if the product is to gain maximum market share. This is as true for mobile applications as it is for fighter planes.

Author/Copyright holder: United States Navy. Copyright terms and licence: Public Domain.

The Lockheed F-35 will have been built to the KISS principle and so should your products if you want them to succeed.

Применяем принцип KISS к самим принципам проектирования +12

  • 23.01.18 07:57

• varanio • #347242 • Хабрахабр • •

5800

Программирование, ООП, Проектирование и рефакторинг, Разработка веб-сайтов, Разработка веб-сайтов, Анализ и проектирование систем

(Update: заменил картинку на более нейтральную)

Коллега упомянул в беседе принцип «Convention over configuration», и я подумал, блин, наверно это что-то крутое, нужно изучить, почитать статьи, а то отстану от жизни.

Каково было моё удивление, что вcё обьяснение помещается в одной фразе «Используй дефолты, которые можно при желании переопределять».

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

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

Значение Перевод
KISS «Keep it short and simple», «Keep it simple, stupid!» и т.д. Не усложняй код без веской причины
Инкапсуляция Нам не надо знать, что там у объекта внутри, просто используем публичные методы. Так мы упрощаем для понимания сложные системы и уменьшаем связанность объектов друг с другом
Convention over configuration Вместо конфига, описывающего всё, лучше использовать дефолты, которые при желании можно переопределять в конфиге.
Принцип подстановки Барбары Лисков Оригинальная формулировка: «… Пусть q(x) является свойством, верным относительно объектов x некоторого типа T. Тогда q(y) также должно быть верным для объектов y типа S, где S является подтипом типа T…«) Поведение класса-наследника не должно противоречить поведению, заданному классом-родителем. Чтобы можно было без проблем подставить объект класса Dog туда, где ожидается объект класса Animal
Принцип единственной ответственности Класс должен делать что-то одно
Принцип разделения интерфейса «…Клиенты не должны зависеть от методов, которые они не используют…» В аргументах конструктора или метода не надо ожидать объект со множеством лишних деталей, если классу для работы нужен лишь маленький специфический объектик или вообще тупо один integer. И точно не надо пихать во все классы контейнер зависимостей.
High Cohesion Класс должен делать что-то одно :). Если вы видите, что некоторые методы используются обособленно, отдельно от других, с какими-то своими данными, значит у вас не high cohesion. Возможно стоит разделить класс на части или перенести часть методов куда-то еще
Low coupling Классы должны быть как можно меньше завязаны на другие классы, особенно на их содержимое. Не управляйте лапами собаки, управляйте собакой
Принцип инверсии зависимостей «… Модули верхних уровней не должны зависеть от модулей нижних уровней. Оба типа модулей должны зависеть от абстракций. Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций…» Классы должны быть как можно меньше завязаны на другие классы 🙂 Для гибкости кода в аргументах конструктора/метода нужно делать интерфейсы или абстрактные классы, а не конкретные классы.
Принцип открытости/закрытости «… Программные сущности (классы, модули, функции и т. п.) должны быть открыты для расширения, но закрыты для изменения…» Новая функциональность должна добавляться путём добавления нового класса, а не добавлением новой ветки if в существующий класс, который делает всё на свете.
YAGNI «You aren’t gonna need it», ?«Вам это не понадобится» Не надо делать того, что не просили. Подход «возможно в будущем понадобится» сильно усложняет код и поддержку

Avoid Creating a YAGNI (You aren’t going to need it — Вам это не понадобится)

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

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

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

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

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

5 последних уроков рубрики «Разное»

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

  • Как разместить свой сайт на хостинге? Правильно выбранный хороший хостинг — это будущее Ваших сайтов

    Проект готов, Все проверено на локальном сервере OpenServer и можно переносить сайт на хостинг. Вот только какую компанию выбрать? Предлагаю рассмотреть хостинг fornex.com. Отличное место для твоего проекта с перспективами бурного роста.

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

  • Подборка из нескольких десятков ресурсов для создания мокапов и прототипов.

Преимущества и недостатки режима осушения

Процесс осушения климатической системой воздуха имеет свои недостатки:

  1. Поломка устройства приводит к потере функции «Dry».

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

  1. Не желательно использовать в зимнее время.

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

  1. Чрезмерное количество опций мешает работе основных функций климат-системы.

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

  1. Снижение эффективности опции «рост температуры».

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

Несмотря на такое количество минусов, опция «Dry» имеет и свои преимущества:

  1. Комфорт в помещении.

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

  1. Экономия пространства.

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

  1. Регулировка влажности и температуры.

Дополнение функционала сплит-системы указанной опцией создает максимально комфортные условия по регулировки влажности и температуры.

Подборки

Армейские ПесниКлассика пианиноМузыка из рекламыДетские песни из мультфильмовМузыка для аэробикиСборник песен 70х годовДля любимого человекаКлассика в современной обработкеКлубные миксы русских исполнителей3D ЗвукДальнобойщикиЗарубежный рэп для машиныТоповые Клубные ТрекиМощные БасыДискотека 2000Песни про папуХристианские ПесниЗимняя МузыкаМузыка Для МедитацииРусские Хиты 90ХГрустная МузыкаRomantic SaxophoneТанцевальный хип-хопНовогодние песниЗарубежные хиты 80 — 90Песни про покемонаРомантическая МузыкаМотивация для тренировокМузыка для сексаМузыка в машинуДля силовых тренировокПремия «Grammy 2017»

Keep It Simple, Stupid

Nikita GoncharukFollow

Feb 2, 2019 · 5 min read

Дэниэл Лемайр, профессор Сomputer Science в Университете Квебека в Монреале (Канада), рассуждает о том, что чем проще код, тем лучше. Судя по комментариям к статье, дискуссия вокруг принципа проектирования KISS будет продолжаться всегда.

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

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

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

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

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

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

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

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

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

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

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

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

Используйте укороченную запись свойств

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

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

YAGNI

“You Aren’t Gonna Need It” – Sometimes, as developers, we try to think way ahead, into the future of the project, coding some extra features “just in case we need them” or thinking“we will eventually need them”. Just one word: Wrong! You didn’t need it, you don’t need it and in most of the cases… “You Aren’t Gonna Need It”.

YAGNI is a principle behind the extreme programming (XP) practice of “Do the Simplest Thing That Could Possibly Work”. Even when this principle is part of XP, it is applicable in all kinds of methodologies and processes of development. By implementing the ideals of “You Aren’t Gonna Need It” programming, you will save yourself time and be able to move forward with projects efficiently.

When you feel an unexplained anxiety to code some extra features that in the moment are not necessary, but you think they will be useful in the future, just calm down and see all the pending work you have at this moment. You can’t waste time coding those features that you may end up needing to correct, change, or remove because they do not fit the needs of the product.


С этим читают