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

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

CQS

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

CQS (Command Query Separation) — это принцип проектирования, предложенный Бертраном Мейером (автором языка Eiffel), согласно которому методы объекта должны быть либо командой, либо запросом, но не одновременно.

Каждый метод должен быть либо:

Командой — изменяет состояние объекта, но не возвращает значение.

Запросом — возвращает данные, но не изменяет состояние.

# Нарушает CQS:
def withdraw(amount):
    balance -= amount
    return balance  # и меняет, и возвращает

# Соответствует CQS:
def withdraw(amount):
    balance -= amount  # команда

def get_balance():
    return balance     # запрос

Cross Site Scripting

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

Казалось бы, это должно сокращаться до CSS, но нет, это XSS

DAL

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

Расшифровывается как Data Access Layer – уровень доступа к данным, так что более подробно читаем здесь Data Access Layer

Data Access Layer

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

Data Access Layer – уровень доступа к данным - предоставляет самые данные. За счёт отделения слоя данных его можно реализовать под различные базы данных и подменять по мере необходимости, можно абстрагироваться так, чтобы можно было тестировать другие слои отдельно от данных. 

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

Разделение на слои – является очень важным в разработке, чтобы проще было поддерживать код и расширять. На слое DAL не должно быть никакой логики, и он должен возвращать объекты, которые представляют данные, нужные для бизнес-логики. 

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

Data Definition Language

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

Data Definition Language или язык определения данных или можно сокращённо DDL — это часть SQL, предназначенная для определения и управления структурой базы данных. С помощью DDL можно создавать, изменять и удалять объекты базы данных, такие как таблицы, представления, индексы и схемы.

Основные DDL команды:

- CREATE — создаёт новый объект базы данных.

- ALTER — изменяет существующий объект базы данных.

- DROP — удаляет объект из базы данных.

- TRUNCATE — удаляет все строки из таблицы, но сохраняет её структуру.

Команды DDL обычно автоматически фиксируются (autocommit) — изменения вступают в силу сразу и не могут быть отменены через ROLLBACK.

Data Manipulation Language

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

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

Основные команды DML:

- INSERT — добавляет новые строки в таблицу.

- UPDATE — изменяет существующие данные.

- DELETE — удаляет строки из таблицы.

В отличие от DDL-команд, DML-команды не фиксируются автоматически — они требуют явного подтверждения через COMMIT. Изменения можно отменить с помощью ROLLBACK, если транзакция ещё не зафиксирована.

Data Query Language

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

Data Query Language сокращённо DQL — это подмножество SQL, предназначенное для извлечения данных из базы данных. В отличие от DDL (структура) и DML (изменение данных), DQL фокусируется исключительно на запросах к данным.

Несмря на такое крутое название DQL, оно состоит только из одной команды SELECT, зато какой. SELECT команду относят и к DML, особенно есть есть ещё секция FROM и WHERE

DDL

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

DDL в ящыках запросов SQL это Data Definition Language или язык определения данных — это часть SQL, предназначенная для определения и управления структурой базы данных. С помощью DDL можно создавать, изменять и удалять объекты базы данных, такие как таблицы, представления, индексы и схемы.

Более подробно тут Data Definition Language

Deface

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

Deface тип хакерской атаки, при которой какая-то страница веб-сайта заменяется на другую — как правило, вызывающего вида (реклама, предупреждение, угроза и т.д.). Если дословно перевести deface на русский, то это будет изменение лица. 

Более подробно Дефейс.

Dependency Inversion Principle

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

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

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

О блоге

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

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

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

Пишите мне