Всякий раз, когда я программирую, я предполагаю, что на моем столе стоит «нейрализатор» со слабым соединением, который может сработать в любой момент. Я стараюсь работать так, чтобы это не влияло на мою продуктивность. Цель состоит в том, чтобы получить «Нейрализ» в любой момент, не теряя скорости.

Это устройство размером со среднюю ручку, которое дает яркую вспышку, которая стирает воспоминания о прошедших часах, днях, неделях, месяцах или годах, в зависимости от выбранных настроек. — Википедия

Отличное объяснение вы найдете в фильме Здесь.

Влияет на вашу работу

«Neuralyzer-Programming» предъявляет некоторые интересные требования к методам и инструментам, используемым при программировании. Во-первых, без TDD у вас почти нет шансов.

С TDD вы либо находитесь в красном состоянии, и если вас нейтрализуют, вы находите красный тест, который можно сделать зеленым. Если вы находитесь в зеленом состоянии, вы можете выполнить рефакторинг и найти следующий тест во время его выполнения (надеюсь, у вас также есть контрольный список, где вы можете найти свои открытые задачи).

Если вы сначала напишете приемочные тесты, пометите их как проигнорированные и реализуете юнит-тесты до тех пор, пока они не пройдут, вы окажетесь в еще лучшем положении, потому что вы видите единственный проигнорированный тест после сброса и можете создать тест в его направлении.

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

Для «Нейрализатор-программирования» необходимы многие факторы. Лучший способ изучить их — установить таймер каждые полминуты и спросить себя, не повлияет ли это на производительность, если устройство перезагрузит вас в этот момент.

Нет научной фантастики

У всех нас на столе стоит «Нейралайзер», но называется он «Телефон». Он просто сидит там, ожидая перезагрузки вашего разума.

Программистов горячей линии нет

Нейрализатор-программирование — это не механизм, с помощью которого мы можем снова отвечать на звонки (я ненавижу это, но делаю это), он дает много преимуществ. Это позволяет нам превентивно планировать задачи.

При регулярной работе мы можем выполнять только неупреждающее планирование. Упреждающий означает, что планировщик может взять процессорное время у задачи и передать его другой. Задача не должна освобождать его. Таким образом, современные операционные системы достигают параллелизма даже на одном процессоре.

Мы можем сделать то же самое: добиться параллелизма. Параллельно разрабатывать много модулей (не говорю, что это хорошая идея, но бывает), назначать встречи и телефонные звонки и приостанавливать на некоторое время давно запущенный проект (например, open-source-проект) . Мы даже можем применять известные стратегии планирования…