Эссе о разработке игр, мышлении и книгах

Бесконечность схем данных

Программист думает о путях, которыми ходят байты. [Демон сидящий](https://ru.wikipedia.org/wiki/Демон_сидящий) (с) [Врубель](https://ru.wikipedia.org/wiki/Врубель,_Михаил_Александрович)

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

Расскажу об одной боли при разработке и проектировании ПО — преобразованиях данных между их схемами. Буду говорить о серверах, как наиболее наглядном и знакомом мне примере, но соображения можно распространить на весь софт.

Для демонстрационных целей местами может случиться некоторое преувеличение.

Рассмотрим простейший проект, этакий минимальный набор:

  • один тип клиентов;
  • один сервис;
  • одно хранилище.

Данные, соответственно, ходят в обе стороны:

  • между клиентом и сервисом;
  • между сервисом и хранилищем.

Сколько схем данных вы тут видите?

Далее

Почему разработчики не сделают эту простую штуку?

Животрепещущий вопрос, не правда ли?

Меня уже 3 года как им пытают персонально, поэтому я решил попытаться рассказать всё-таки почему. Рассказывать, конечно, буду со стороны разработчика-одиночки. В командах побольше есть некоторые нюансы, но суть та же.

Для затравки приведу небольшую иллюстрацию, смысл её, думаю, понятен.

Взгляд на проект со стороны пользователя и разработчика.

Взгляд на проект со стороны пользователя и разработчика.

Далее

Тесты, которые тестируют тесты

Или почему в них нет необходимости.

Часто, когда рассказываешь новичкам про автоматическое тестирование, всплывает один и тот же вопрос: «А кто будет проверять сами тесты? Придётся писать тесты для тестов, потом тесты для тестов для тестов…» Все любят рекурсию и ещё больше любят уесть ей собеседника.

Странно, ни разу не попадался вопрос: «Кто тестирует тестировщиков?» — по сути, та же проблема вид сбоку.

Но действительно, почему нет необходимости тестировать тесты? (и тестировщиков)

Далее