Задать вопрос
UnknownHero
@UnknownHero

Совместить логгер и комментарии. Что вы думаете по этому поводу?

Всем привет!

В целях улучшения читаемости кода часто изобретаю всякие велосипеды. В свой практике (и из умных книг) выработал стиль написания самодокументирующегося кода. Сейчас вот хочу добавить не только читаемость кода по отдельности, но и добавить читаемость бизнес логики. Для этого я бы хотел скрестить комментарии и логгирование. Как-то вот так:
...   
   public function executeSomeBusinessProcess() {
       $this->logger('Start executing some business process');
       $this->logger('Create something in database');
       $someData = $this->_buildSomeData();
       $this->someRepository->add($someData);
       $this->logger('Send some events');
       $this->events->sendSomeEvents($someData);
       $this->logger('End of some business process');
   }
...

В примере написано что-то очевидное,но если бизнес логика будет специфичная, то такие "комментарии" могут стать уместными. Кроме того можно будет анализировать логи всех процессов и понять что в какой последовательности вызывается. Что-то типа:
1. Presenter. Начали обработку http
2. Presenter. Собрали модель пользователя из http запроса
3. Business. Начали процесс регистрации пользователя
4. Business. Отправляем запрос в БД на создание пользователя
5. Database. Создаём новое поле в таблице Users
6. Business. Отправляем email новому пользователю
7. Mail. Отправка письма на почту user@example.com
8. Business. Завершаем создание пользователя
9. Presenter. Завершаем HTTP запрос.

При этом в фильтре логов можно бы было оставить только Business и проанализировать как работает тот или иной процесс.
Так же в сам лог можно передавать какие-то данные связанные с сообщением лога и проводить внутри assert тестирование.
В итоге можно получить живые комментарии , которые формируют сценарии бизнес процессов, а так же возможно являются инструментом для assert тестирования. Обычно в логи попадают не только комментарии, сколько какие-то значения. Меня же интересует формирование сценариев и способ сделать код более читаемым.

Что думаете по этому поводу ? Сильно загнул ?
  • Вопрос задан
  • 214 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
AxianLTD
@AxianLTD
Зачем изобретать велосипед? Если это java, то https://www.tutorialspoint.com/java/java_documenta..., для php свои приблуды есть, для других языков свои.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
sim3x
@sim3x
Логгер должен иметь уровни
notify
info
error
warning
critical
Если к етим уровня тебе хочется добавить метки, то никто не запрещает
В итоге можно получить
[critical] [business] [module: xxx] "date_time" "Message"

по которому можно будет проходится grep-ом
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы