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

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

Dependency Inversion Principle

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

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

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

DML

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

Data Manipulation Language или сокращённо DML — это подмножество SQL, предназначенное для работы с данными внутри таблиц. Более подробно можно почитать тут Data Manipulation Language.

DoS (Denial of Service)

Безопасность

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

Атака может осуществляться с помощью:

- создание искусственной перегрузки, отправляя огромное количество запросов или данных на целевой ресурс

- запуск на целевом ресурсе действий, которые расходуют несоизмеримое кличество ресурсов

Не путаем с DOS, где все буквы большие. В этом случае это операционная система от MS - MS DOS. 

DQL

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

DQL - Data Query Language  — это подмножество SQL, предназначенное для извлечения данных из базы данных. Более подробно тут Data Query Language

DRY

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

Полностью звучит как Don’t Repeat Yourself и означает, что не стоит повторять себя. Если один и тот же код реализовать в разных местах, то их оба придётся поддерживать и помнить о существовании повторения. Поэтому не должно быть повторения и нужно выделять повторяющиеся блоки в отдельные функции или библиотеки.

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

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

Generic

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

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

Пример:

public class ValueContainer
{
    public T Value { get; set; }
}

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

var container = new ValueContainer();
container.Value = 123;

А может быть строка:

var container = new ValueContainer();
container.Value = "Это строка";

Так как мы указываем конкретный тип при создании объекта, мы всё ещё получаем проверку типов и связанную с этим безопасность

Пример на Python

def identity(x: T) -> T:
    return x

Без дженериков пришлось бы писать классы для каждого типа данных

def identity_int(x: int) -> int:
    return x

def identity_str(x: str) -> str:
    return x

Interface Segregation Principle

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

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

ISP

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

В случае с программированием это сокращение означает Interface Segregation Principle или Принцип разделения интерфейса. Это четвёртая буква в аббревиатуре SOLID. Подробнее читаем здесь Принцип разделения интерфейса

KISS

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

Это сокращение, которое расшифровывается как Keep it simple, stupid!, что дословно переводим как Делай проще, тупица. Этот принцип призывает писать код как можно проще. Этот принцип относится не только к программированию. Фраза ассоциируется с авиаконструктором Кларенсом Джонсоном. 

В качестве вариаций расшифровки использовались: «keep it super simple», «keep it simple, silly», «keep it short and simple», «keep it short and sweet», «keep it simple and straightforward», «keep it small and simple», «keep it simple, soldier», «keep it simple, sailor», «keep it simple, sweetie», «keep it stupidly simple» и «keep it sweet and simple». В ИТ всё же используется вариант с Keep it simple, stupid!

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

Liskov Substitution Principle

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

Это Принцип замещения Лисков, поэтому подробнее читаем про него здесь.

О блоге

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

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

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

Пишите мне