Программирование -- деятельность мозгоемкая. Если ее не контролировать, эффективность падает. Вообще, оно вполне поддается управлению, для этого придуманы и паттерны, и методики, но, как в любом деле, здесь есть свои ловушки. Сейчас рассмотрим капкан под названием "Допосинение" (или "ни шага дальше, пока это не заработает").
Это случается так: человек начинает писать программу: сначала проектирует, затем набрасывает каркас, затем пишет код, который работает, и все пока хорошо.
Затем он пишет код, который не работает так, как надо, и он начинает его отлаживать. Здесь и находится вход в ловушку "ни шага дальше". В зависимости от отношения сложности проблемы к способностям программиста время решения проблемы лежит в интервале от нескольких секунд до нескольких дней, а вторым, но даже более важным параметром, является количество усилий, затрачиваемых на решение проблемы: оно также лежит в некоем ранге от "легко" до "посинения". Хорошо, когда на решение проблемы тратится адекватное ее реальным размерам количество сил. Желательно делать это "легко", можно -- "с трудом", опасно -- "до посинения".
Допосинение является ловушкой. Это когда программист утратил чувство реальных размеров проблемы и может бороться с ненавистным "багом" часами, расходуя энергию в режиме берсерка. Он забывает, что в целом програма уже работает (или что есть более важные места для исправления). Часто исправление одной микро-ошибки, которую кто-то и ошибкой даже не посчитал бы (ведь можно просто улучшать то, что уже работает) забирает большую часть энергии. У художников это называется "рисовать портрет с уха", кажется.
Это антоним к "расширению сознания" -- а именно сужение его в одну мысль-точку: "это должно заработать именно так и не иначе".
Чтобы избежать ловушки Допосинения, нужно научиться отлавливать тот момент, когда усталость достигает некоего порогового уровня. Как только это случилось, нужно переключаться на другую задачу и возвращаться к этой только потом (часто "потом" оказывается, что и возвращаться-то уже не к чему -- проблема была смехотворной).
Структура объектно-ориентированного приложения фрактальна, и заблудиться во фрактале так же легко, как в горах. А чтобы все же не заблудиться, нужно представлать себе, в какой части фрактала ты находишься, и если это его относительно малая часть и ты в ней уже давно (уже четыре часа переписываешь 10 строк кода, а они все не работают, как ты хотел) -- то пора выбираться на уровень выше и решать другие проблемы. Главное, сделать это до того, как решение данной задачи отняло почти все силы.
А какие способы есть у вас?
June 18 2006, 17:30:41 UTC 5 years ago
June 18 2006, 17:34:50 UTC 5 years ago
Некоторые с этой же целью перекуривают. В этом польза курения :-Р
А у нас такой вид тут из окна -- в самую даль... Пойду на закат гляну!
5 years ago
5 years ago
June 18 2006, 18:18:32 UTC 5 years ago
June 18 2006, 18:25:57 UTC 5 years ago
К твоим ответам не придерешься. То есть, конечно, при желании придраться можно, но желания такого даже не возникает ;)
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
June 18 2006, 18:39:03 UTC 5 years ago
а про перерывчик уже сказали. =)
June 18 2006, 19:03:56 UTC 5 years ago
June 18 2006, 18:44:44 UTC 5 years ago
June 18 2006, 19:05:12 UTC 5 years ago
5 years ago
5 years ago
June 18 2006, 21:57:33 UTC 5 years ago
полагаю, что чаще всего проблема допосинения - результат попытки охватить разом бОльшую часть фрактала, чем та, с которой мозг способен комфортно работать. например разрабатывая "систему распределения прав" в масштабе приложения, много теоретизируя, можно воткнуть и вообще наворотить нелепого, но если спуститься до следующего уровня и написать before_filterы к отдельно взятому контроллеру, это не только решит часть объемлющей задачи но и прояснит моменты, которые до этого оставались неясными. контроллер за контроллером и напротив "системы распределения" можно ставить галочку, вообще смешное определение, где там система я не могу понять, один миксин, но не суть.
если же человек часами работает над десятью строками кода, значит он ошибся в чем-то принципиально важном или ему просто пора пойти отдохнуть, выспаться. в программировании, в разработке не должно быть "сложных моментов", в целом, да, может быть сложная система, но сложный момент это сродни пиханию туда, куда не лезет.
еще есть хороший способ - разделение себя на две части, которыми удобно обсуждать путь к эффективному решению любой задачи. Или думать про себя как бы ты описал проблему и ее решение в книге - при попытке последовательного изложения неясности - а именно из-за неясностей, эдаких глитчей, которых в хаосе заметить сложно потому-что мозг по ним проскальзывается, возникает большинство проблем и не только в программировании - становятся очевидными и легко проясняются.
June 19 2006, 12:15:45 UTC 5 years ago
Интересно: ты описываешь противоположную показаной сторону циклического блуждания во фрактале разработки -- назовем это "макро-тупики", когда человек не может начать делать что-то конкретное. Кажется, это также называют анти-паттерном "Аналитический паралич" ("Analysis paralysis"): Выделение непропорционально больших усилий фазе анализа проекта. Вместе с упомянутыми "микро-тупиками" они дают два пограничных уровня возможных тупиков. А сколько их посередине.. %-)
Про разделение сказано особенно хорошо, это вообще очень "разгружающая" методика.
June 18 2006, 22:28:18 UTC 5 years ago
June 19 2006, 12:33:41 UTC 5 years ago
June 19 2006, 03:25:58 UTC 5 years ago
June 19 2006, 12:17:59 UTC 5 years ago
June 19 2006, 05:40:50 UTC 5 years ago
Заходишь в цикл, осознаёшь и выходишь из него, меняя что то. Например холодный душ.
Щас вот с гитарой так парюсь. )))
June 19 2006, 12:33:13 UTC 5 years ago
И я могу один аккорд долго играть.. и самое опасное в том, что мне это звучание даже нравитс, транс такой простой и легкий получется ;)
5 years ago
June 19 2006, 06:04:29 UTC 5 years ago
я сам пришел к похожему подходу не так давно.
то есть, на интуитивном уровне, это было и так понятно, но пытливое сознание всё стремится сузиться в каждой точке напражения и устроить общий коллапс.
сейчас у меня получается решить такие заковыристые проблемы за несколько подходов. причем как правило проблема решается довольно просто, нужно только увидеть её в нужном ракурсе - и как раз для этого нужны перерывы в рукопашной борьбе с ней.
пока ты сам находишься в каком-то завитке фрактала, общий его рисунок уловить бывает трудно.
June 19 2006, 12:36:29 UTC 5 years ago
June 19 2006, 10:29:56 UTC 5 years ago
June 19 2006, 11:57:31 UTC 5 years ago
5 years ago
5 years ago
5 years ago
June 20 2006, 09:32:39 UTC 5 years ago
June 20 2006, 10:51:43 UTC 5 years ago
5 years ago
July 12 2006, 04:58:02 UTC 5 years ago
July 12 2006, 10:01:23 UTC 5 years ago
Сорри, только не сейчас
Работы по флэшу/флексу -- гора. Растущая ;)Знакомых тебе предлагать для работы?
5 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
Anonymous
June 7 2007, 09:19:49 UTC 4 years ago
Любовная магия. Привороты.
MESSAGE