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

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

DML

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

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

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

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

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

LSP

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

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

MFA

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

Multi-factor authentication или Многофакторная аутентификация. Более подробно читаем в Многофакторная аутентификация

О блоге

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

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

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

Пишите мне