Какие ярлыки программирования вы заканчиваете тем, что сожалеете или отступили?

Я видел этот вопрос, и он напомнил мне об AutoGenerateColumns в старой DataGrid. Несколько раз, когда я их использовал, я закончил это, потому что мне понадобилось форматирование данных за стандартом "выплевывать столбцы источника данных". Аналогично, с переключением, похоже, что это сэкономит время, но тогда вам нужно будет отслеживать состояние или что-то еще, и вы переписываете код соответствующим образом.

Есть ли вещи, которые вы в конечном итоге используете, думая, что это сэкономит ваше время, но в конечном итоге откажется, потому что он не делает то, что вам нужно?

Ответ 1

Сделайте небольшое улучшение в существующей рабочей системе и не покрывайте ее испытаниями.

Много раз это заканчивалось отладкой ада. Хуже всего то, что, черт возьми, пошел к моим коллегам, а не ко мне.

Ответ 2

Я думаю, что очевидным ответом на самое жалкое программирование "shortcut" было бы gotos.

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

Ответ 3

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

Таким образом, веб-уровень вызывает интерфейс делегата вызовы делегирование вызовов реализации вызовы интерфейса службы вызовы службы вызова dao интерфейс вызывает dao-реализацию и т.д.

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


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

Если вы пишете мир привет, просто напишите код и, если нужно, наполните его позже.

Ответ 4

Предоставление Visual Studio выполнять привязку данных. Он работает большую часть времени, но иногда он вводит тонкие ошибки, которые требуют гораздо больше времени для поиска и решения, чем для ручной привязки данных.

Ответ 5

Скопировать/вставить несколько строк кода, которые похожи, но не точно такие же, как тот код, который вам нужен прямо сейчас, почти всегда приводят к ошибке в этом коде.

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

Ответ 6

Использование последней и самой большой функции из < insert framework здесь > только для того, чтобы он терпел неудачу и занимал больше времени.

Я все для новых функций, но использовать их слишком рано может быть проблематичным.

Ответ 7

Использование макросов C/С++. Я думаю, что это большие проекты ловушек, которые попадают в более чем небольшие проекты.

Ответ 8

Не совсем ярлык, но: Написание класса С++ String, даже не учитывая возможность того, что у кого-то была такая же идея. Однако это было хорошим упражнением, поскольку я узнал, что:

  • Написание библиотеки не делает все программирование под гору оттуда. Может быть проще иметь библиотеку под рукой, но если сложнее понять семантику библиотеки, чем реализовать функциональность вручную, библиотека может оказаться довольно бесполезной.
  • С++ имеет множество действительно опрятных функций.
  • В С++ всегда отсутствует одна функция, которая мне действительно нужна.