🧐 Из необычного для меня, выделю этот совет:
Одна переменная — одна цель. Например, вы хотите записать дату и время окончания смены и одновременно по этой же переменной понимать, закончилась ли смена. Никогда так не делайте! Только явное обозначение в другой булевой переменной.
ShiftEndedAt, IsShiftEnded.🆚 Подхожу к этому вопросу полностью противоположно: по наличию или отсутствию временнОй метки можно определить факт начала или окончания процесса.
Даже больше: бывали на практике случаи, когда изначально в системе использовался только флаг, типа
IsShiftEnded, а потом мы понимали, что нужна ещё и отметка времени - в результате рефакторинга булево значение убиралось из кода и из базы в пользу метки времени.