Словарь ИТшника

Словарь постоянно развивается и растёт. В этом словаре собраны термины и сокращения по программированию, безопасности и другим темам.

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

Программирование

Это Liskov Substitution Principle или LSP. Это третья буква в знаменитом сокращении SOLID. 

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

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

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

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

Программирование

Принцип инверсии зависимостей (Dependency Inversion Principle) - принцип объектно-ориентированного программирования, суть которого состоит в том, что классы должны зависеть от абстракций, а не от конкретных деталей. Используется для минимизации зацепления в компьютерных программах. Может рассматриваться как уменьшение знаний о данных и поведении объекта (и зацепления с ним) до минимума, описанного интерфейсом.

Принцип входит в пятёрку принципов SOLID. Это буква D в этом сокращении. Принцип был выведен в трудах Роберта Мартина.

Модули верхних уровней не должны зависеть от модулей нижних уровней. Оба типа модулей должны зависеть от абстракций. Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.

Принцип открытости/закрытости

Программирование

Чаще можно увидеть этот принцип в виде сокращения OCP или Open/Closed Principle. Более подробно читаем про этот принцип в Open Closed Principle

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

Программирование

Interface Segregation Principle (ISP) переводится как Принцип разделения интерфейса. Это четвёртая буква в аббревиатуре SOLID. 

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

Кто-то трактует этот принцип как – лучше больше маленьких интерфейсов, чем один маленький. Я предпочитаю больше маленьких интерфейсов, но не уверен, что это правильное объяснение принципа. 

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

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

Пишите мне