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

NB - Этот вопрос не касается RoR или системы плагинов Redmine.


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

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
11
0
2 005
12
Перейти к ответу Данный вопрос помечен как решенный

Ответы 12

Ответ принят как подходящий

В чем проблема? "Ты делаешь это неправильно !!" чувство - это суть нашего существования.

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

Tim Lesher 25.12.2008 03:38

Могу только согласиться. Позвольте мне процитировать Скотта (simpable.com/code/sick): «Если как разработчик вы когда-нибудь сможете взглянуть на код, который вы написали 6 месяцев назад, и не почувствуете легкую тошноту, пора упаковать его и заняться чем-нибудь еще».

Cohen 19.02.2009 23:49

Правда! Ваш ответ меня рассмешил.

Gabriel Florit 12.05.2009 06:58

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

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

Robert K 23.12.2008 00:48

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

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

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

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

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

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

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

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

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

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

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

Хороший. Я не знала, что мой способ развития ценится :)

VVS 18.06.2009 20:48

Искренне +1 здесь. Я не думаю, что возможно создать приличную версию чего-либо, пока вы уже не создадите «дрянную» версию этого. (И это не ограничивается созданием программного обеспечения!)

reuben 05.07.2012 00:44

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

Совет Марка Райберта - это если вы не можете написать что-то хорошее, написать что-то плохое, а затем отполировать это до чертиков.

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

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

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

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

theman_on_vista 31.12.2008 19:25

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

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

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

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

«В чем проблема?« Ты делаешь это неправильно !! » чувство - это суть нашего существования ».

Возможно, это не совсем связано, но:

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

Другие вопросы по теме