Новые книги

Задачи рефакторинга тесно связанны с задачами написания понятного, удобного кода. Соответственно, если я пишу как следует писать или чего лучше избегать — это к рефакторингу не относится. С одной стороны. Но ведь следуя этим рекомендациям, вы можете пересмотреть свой код и исправить потенциальные ошибки. А вот это уже чистой воды рефакторинг. Поэтому я не буду особенно зацикливаться именно на рефакторинге, а буду рассказывать о хорошем, понятном коде.

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

Примеры я буду приводить на языке Object Pascal. В основном я работаю на нём, пишу на Delphi. Предвидя нападки со стороны поклонников C-подобных языков, скажу два тезиса:
Отношения с клиентами – это не что-то абстрактное, возникающее само по себе. В секторе B2B существует последовательная система, позволяющая выстроить деловые связи с практически любым клиентом, а значит, успешно продавать и выполнять планы продаж.

Она будет полезна везде, где есть тендеры и корпоративные заказчики: в маркетинге, сфере диджитал, PR, рекламе, юридических, медицинских, страховых и консалтинговых услугах и т. д.

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

Выборка без использования фразы WHERE

2.2. Выборка без использования фразы WHERE
2.2.1. Простая выборка

Запрос выдать название, статус и адрес поставщиков

SELECT	Название, Статус, Адрес
FROM	Поставщики;
дает результат, приведенный на рис. 2.1,а.

При необходимости получения полной информации о поставщиках, можно было бы дать запрос

SELECT	ПС, Название, Статус, Город, Адрес, Телефон
FROM	Поставщики;
или использовать его более короткую нотацию:
SELECT	*
FROM	Поставщики;

Здесь "звездочка" (*) служит кратким обозначением всех имен полей в таблице, указанной во фразе FROM. При этом порядок вывода полей соответствует порядку, в котором эти поля определялись при создании таблицы.

Еще один пример. Выдать основу всех блюд:

SELECT	Основа
FROM	Блюда;

дает результат, показанный на рис. 2.1,б.

а)б)в)
НазваниеСтатусАдрес
СЫТНЫЙрынокСытнинская, 3
ПОРТОСкооперативСадовая, 27
ШУШАРЫсовхозНовая, 17
ТУЛЬСКИЙуниверсамТульская, 3
УРОЖАЙкоопторгПесчаная, 19
ЛЕТОагрофирмаПулковское ш.,8
ОГУРЕЧИКфермаУкмерге, 15
КОРЮШКАкооперативНарвское ш., 64
Основа
Овощи
Мясо
Овощи
Рыба
Рыба
Мясо
Молоко
Молоко
...
Кофе
Основа
Кофе
Крупа
Молоко
Мясо
Овощи
Рыба
Фрукты
Яйца

Рис. 2.1. Примеры простой выборки

2.2.2. Исключение дубликатов

В предыдущем примере был выдан правильный, но не совсем удачный перечень основных продуктов: из него не были исключены дубликаты. Для исключения дубликатов и одновременного упорядочения перечня необходимо дополнить запрос ключевым словом DISTINCT (различный, различные), как показано в следующем примере:

SELECT DISTINCT Основа
FROM	Блюда;

Результат приведен на рис. 2.1,в.

2.1 | Содержание | 2.2.3