воскресенье, 19 февраля 2012 г.

Logging


В мае 1953 года под Калькуттой в воздухе  разрушился  первый в мире реактивный пассажирский лайнер "Комета-1". Расследуя причины той катастрофы, австралийский учёный Дэвид Уоррен предположил, что записи переговоров членов экипажа, а также показания приборов при падении могли бы помочь в установлении причин крушений самолётов. Несколько лет спустя он создал первый бортовой самописец - устойчивое к повреждениям устройство, записывающее основные полётные параметры самолёта (высота, скорость, отклонение закрылков, тангаж и т.д.), а также звук из кабины. Это устройство позволило установить причины множества авиакатастроф во всём мире и предотвратить будущие трагедии. В настоящее время бортовые самописцы являются обязательными для установки на все гражданские самолёты.

среда, 28 сентября 2011 г.

YAGNI (You ain't gonna need it)


Леонард потратил много времени на то, что (как он считал) ему понадобится в будущем - забронировал столик ресторане, купил билеты в кино и т.п. Из-за этого он не успел сделать то, что важно для Пенни здесь и сейчас - купить цветы и одеться поприличнее. Если бы Леонард не пытался предсказать будущее, а делал то, что действительно нужно, шансов на свидание у него было бы больше. Кроме того, он сэкономил бы время, потраченное на то, что так и не пригодилось.

среда, 7 сентября 2011 г.

DRY: Part 5 - Data duplication

Другие части эпической саги о вреде дублирования:

И последний, на мой взгляд, тип дублирования - дублирование данных. Магические строки и магические числа ужасны сами по себе, потому что их значения очевидны только для автора в момент написания кода. Дублирование этой магии ужасно вдвойне.

DRY: Part 4 - Conditional logic duplication

Другие части эпической саги о вреде дублирования:

Этот вид дублирования не так очевиден, как предыдущие - потому что повторяется лишь условная логика, управляющая потоком выполнения приложения. Выполняемые при этом операции зачастую совершенно различны.

Нет ничего плохого в том, чтобы написать блок switch один раз (часто я так поступаю при создании объектов с помощью фабрики). Но повторение одних и тех же условий - не сулит ничего хорошего. Например, расчёт зарплат и бонусов зависит от типа сотрудника:

DRY: Part 3 - Creational logic duplication

Другие части эпической саги о вреде дублирования:

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

Всем известно, что в компании DcMonald's ленивых, грубых и неопрятных сотрудников превращают в зомби. При этом в каждом из этих случаев приходится повторять непростой процесс изготовления шаманом порошка из рыбы фугу, отравления сотрудника и чтения заклинания: