Список статей:

Обучающие статьи для улучшения ваших знаний в сфере IT

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

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

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

Принципы объектно-ориентированного проектирования

Принципы объектно-ориентированного проектирования

SOLID принципы:

  • The Single Responsibility Principle​ (SRP) — Принцип единственной обязанности У класса должна быть только одна причина для изменения.
  • The Open Closed Principle​ (OCP) — ​Принцип открытости/закрытости Программные сущности (классы, модули, функции и т. п.) должны быть открыты для расширения, но закрыты для модификации.
  • The Liskov Substitution Principle​ (LSP) — ​Принцип подстановки Лисков Должна быть возможность вместо базового типа подставить любой его подтип.
  • The Interface Segregation Principle​ (ISP) — ​Принцип разделения интерфейсов Клиенты не должны вынужденно зависеть от методов, которыми не пользуются. Интерфейсы принадлежат клиентам, а не иерархиям​
  • The Dependency Inversion Principle​ (DIP) — ​Принцип инверсии зависимости Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.

Другие принципы:

  • Release Equivalence Principle (REP) — ​Принцип эквивалентности повторного использования и выпуска Единица повторного использования равна единице выпуска.​
  • Сommon Closure Principle (CCP) — ​Принцип общей закрытости Все классы внутри пакета должны быть закрыты относительно изменений одного и того же вида. Изменение, затрагивающее пакет, должно затрагивать все классы в этом пакете и только в нем.​
  • Сommon Reuse Principle (CRP) — Принцип совместного повторного использования Все классы внутри компонента используются совместно. Если вы можете повторно использовать один класс, то можете использовать и все остальные.
  • Acyclic Dependencies Principle (ADP) — ​Принцип ацикличности зависимостей В графе зависимостей между пакетами не должно быть циклов.​
  • Stable Dependencies Principle (SDP) — ​Принцип устойчивых зависимостей Зависимости должны быть направлены в сторону устойчивости.
  • Stable Abstractions Principle (SAP) — ​Принцип устойчивых абстракций Пакет должен быть столь же абстрактным, сколь и устойчивым​
0 159 21.01.2018 18:18

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

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

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

MV-паттерны для проектирования веб-приложений

MV-паттерны для проектирования веб-приложений

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

0 109 25.12.2017 16:39

Шаблоны проектирования "банды четырёх (GoF)"

Шаблоны проектирования "банды четырёх (GoF)"

Статья о Шаблонах (или паттернах) проектирования. Паттерны описывают типичные способы решения часто встречающихся проблем при проектировании программ.

 

Что такое паттерны проектирования?

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

0 333 17.12.2017 12:00

Поведенческие паттерны: Хранитель (Memento) C#

Поведенческие паттерны:  Хранитель (Memento) C#

В данной статье мы рассматриваем Поведенческий шаблон проектирования "Memento" и его реализацию на .NET

Назначение:

Паттерн Хранитель (Memento) — позволяет выносить внутреннее состояние объекта за его пределы для последующего возможного восстановления объекта без нарушения принципа инкапсуляции.

  • Не нарушая инкапсуляции, паттерн Memento получает и сохраняет за пределами объекта его внутреннее состояние так, чтобы позже можно было восстановить объект в таком же состоянии.
  • Является средством для инкапсуляции "контрольных точек" программы.
  • Паттерн Memento придает операциям "Отмена" (undo) или "Откат" (rollback) статус "полноценного объекта".

Когда использовать Memento?

  • Когда нужно сохранить состояние объекта для возможного последующего восстановления;

  • Когда сохранение состояния должно проходить без нарушения принципа инкапсуляции;

Поведенческие паттерны: Интерпретатор (Interpreter) C#

Поведенческие паттерны:  Интерпретатор (Interpreter) C#

В данной статье мы рассматриваем поведенческий шаблон проектирования "Интерпретатор" и его реализацию на .NET

Назначение:

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

Когда использовать Паттерн Interpreter:

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

0 134 16.12.2017 11:00

Структурные паттерны: Приспособленец (Flyweight) C#

Структурные паттерны: Приспособленец (Flyweight) C#

В данной статье мы рассматриваем структурный шаблон проектирования "Flyweight" и его реализацию на .NET

Назначение:

Паттерн Приспособленец (Flyweight) - шаблон проектирования, который позволяет использовать разделяемые объекты сразу в нескольких контекстах. Данный паттерн используется преимущественно для оптимизации работы с памятью.

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

Когда использовать Flyweight?

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

Порождающие паттерны: Прототип (Prototype) C#

Порождающие паттерны:  Прототип (Prototype) C#

В данной статье мы рассматриваем порождающий шаблон проектирования "Прототип" и его реализацию на .NET

Назначение:

Прототип —​ позволяет создавать новые объекты путем клонирования уже существующих. Ппо сути данный паттерн предлагает технику клонирования объектов.

Когда использовать Прототип?

  1. Класс порождаемого объекта определяется в момент выполнения.
  2. Когда желательно избежать наследования создателя объекта. В этом случае, Прототип является конкурентом Абстрактной фабрики.

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

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

0 130 03.12.2017 10:18