"Ты делаешь это неправильно!" чувство

NB - Этот вопрос не является ударом в RoR или в системе плагина Redmine


Я работаю над настраиваемым плагином для Redmine, платформы менеджера проектов, построенной с помощью Ruby on Rails (RoR). Теперь я на самом деле не RoR или, если на то пошло, парень из Ruby. Мне удалось написать плагин, и все работает, несмотря на беспорядок за кулисами. "Ты делаешь это неправильно!" чувство исходит из того факта, что я знаю, что RoR является высоко оцененной структурой, поэтому должно быть просто, лучше, элегантно, [вставить здесь лучший практический термин], способы делать то, что я сделал. Я не слишком заинтересован в том, чтобы сделать этот код максимально совершенным, только по той причине, что это используется только внутренне, и действительно, люди только заботятся о том, чтобы он "работал" (я единственный, кто будет смотреть на код).

Какие слова мудрости можно передать, чтобы подавить "Ты делаешь это неправильно!" чувство? Я уверен, что это чувство присутствует, тогда, вероятно, верно, что задача под рукой делается неправильно.

Ответ 1

В чем проблема? "Youre Doing It Wrong!!" чувство - это сущность нашего существования.

Ответ 2

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

Итак, если мне нужно создать, скажем, приложение для управления клиентами, мой первый шаг может быть:

Создайте действительно дерьмовое приложение для управления клиентами.

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

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

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

Ответ 3

Не подавляйте чувства! То, что это неправильное чувство, является ключом к инновациям. Просто спросите себя: "Если это неправильно, то что будет лучше?"

Ответ 4

Не думай об этом как о "Ты делаешь это неправильно!" Подумайте об этом как "Какой лучший способ сделать это?" Лучший случай, когда вы делаете это более эффективно, в худшем случае вы обнаружите что-то, что может быть полезно для вашего следующего проекта.

Ответ 5

Я никогда не заканчивал часть кода, на которой я на 100% доволен. Но тогда я не верю, что в мире есть один (нетривиальный) кусок кода, который не может быть улучшен.

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

Ответ 6

Говорят, что писатели должны что-то писать каждый день, хорошо это или нет.

Marc Raibert advice - это если вы не можете написать что-то хорошее, напишите что-нибудь плохое, а затем отполируйте его.

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

Так что не ожидайте совершенства.

Ответ 7

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

Ответ 8

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

Ответ 9

В частности, с Redmine, система плагинов по-прежнему нова, и мы пытаемся разработать лучшие практики. Поскольку Redmine (и Ruby on Rails) являются Open Source, я предлагаю поднять свои чувства на проектные форумы и посмотреть, что думают люди. Другие могут согласиться с вами и могут помочь улучшить системы.

Примечание. Я являюсь одним из основных разработчиков Redmine, помог создать плагиновую систему Redmine и выпустил около дюжины плагинов Redmine. И даже я чувствую, что вещи время от времени назад.

Ответ 10

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

Ответ 11

"В чем проблема? Чувство" Youre Doing It Wrong!! "является сущностью нашего существования".

Возможно, это не так, но:

"Программист - это тот, кто зарабатывает на жизнь от решения проблем, вызванных решениями, которые он изобрел раньше".

Ответ 12

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

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