Monday, January 16, 2012

Кривые гвозди

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

Иногда один и тот же гвоздь приходится забивать по несколько раз (повторно использовать), и так выходит, что иногда перед тем как забить, кривой гвоздь нужно поровнять. Этот процесс у меня почему то ассоциировался с рефакторингом, т.к. вроде бы гвоздь у тебя есть, но чтобы забить кривой гвоздь, нужно приложить намного больше усилий и времени, потому проще его сначала выровнять (отрефакторить), а потом уже забить "более" ровный.

Так как в принципе не все кривые гвозди можно достаточно хорошо выровнять чтобы повторно забить, иногда проще взять новый гвоздь (написать какую то часть кода заново), что конечно дороже по деньгам, но экономней по времени.

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

No comments:

Post a Comment