Как выглядит код хорошего программиста? [закрыто]

Я программист-любитель (начал с VBA, чтобы сделать Excel быстрее) и работаю с VB.NET / C # .NET и пытаюсь изучить ADO.NET.

Аспект программирования, который всегда меня расстраивал, это то, как выглядит «хорошо»? Я не профессионал, поэтому мне не с чем сравнивать. Что делает программиста лучше? Это:

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

Иными словами, если бы я посмотрел на код профессионального программиста, что бы я первым заметил в их коде относительно моего? Например, я читаю книги типа «Профессиональный ASP.NET» от Wrox press. Являются ли примеры кода в этой книге «мировым классом»? Это вершина? Может ли кто-нибудь из лучших программистов взглянуть на этот код и подумать, что это хороший код?

14.12.2008 14:31:36
30 ОТВЕТОВ
РЕШЕНИЕ

Приведенный ниже список не является исчерпывающим, но именно об этом я и подумал при рассмотрении вашего вопроса.

  • Хороший код хорошо организован. Данные и операции в классах сочетаются друг с другом. Между классами нет посторонних зависимостей. Это не похоже на "спагетти".

  • Хорошие комментарии кода объясняют, почему все сделано, а не то, что сделано. Сам код объясняет, что сделано. Потребность в комментариях должна быть минимальной.

  • Хороший код использует значимые соглашения об именах для всех, кроме самых переходных объектов. Название чего-либо является информативным о том, когда и как использовать объект.

  • Хороший код хорошо проверен. Тесты служат в качестве исполняемой спецификации кода и примеров его использования.

  • Хороший код не "умный". Это делает вещи прямыми, очевидными способами.

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

Я еще не читал его, но книга, которую я планирую прочитать на эту тему, - « Чистый код » Роберта С. Мартина.

129
14.12.2008 14:51:43
Очень хорошие очки. Мне особенно нравится замечание «хороший код не умный». Чрезвычайно сложно писать код, который другие люди находят читаемым и обслуживаемым. Написание кода «собачий завтрак», который никто не понимает (включая вас самих через некоторое время), - самая легкая вещь в мире.
Stein Åsmul 1.07.2009 15:43:52
Хороший код не "умный". Это делает вещи прямыми, очевидными способами. лучшая часть
nawfal 6.10.2011 05:40:27
Чистый код Мартина - отличная книга. По сути, хорошее программирование - это просто хорошее написание. Это может звучать безумно, но я бы порекомендовал прочитать «Политику и английский язык» Оруэлла . Это очень коротко, но вы увидите много совпадений между наблюдениями Оруэлла и работами таких людей, как Мартин. Неудивительно, что такие люди, как Мартин, являются хорошими писателями и программистами.
0x1mason 12.03.2012 15:11:21
@tvanfosson Вы уже прочитали книгу? :-)
Natan Streppel 27.11.2013 19:51:44
Из этой книги я многому научился, читать не скучно.
reggie 7.08.2014 03:07:57

Код это поэзия.

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

Следствие по следствию:

Читатель будет вами в момент n от даты создания кода. Окупаемость написания кода для читателя является монотонно возрастающей функцией n. Читатель, впервые смотрящий на ваш код, обозначается n == бесконечность.

Другими словами, чем больше промежуток времени с момента написания кода до его повторного посещения, тем больше вы оцените свои усилия по написанию для читателя. Кроме того, любой, кому вы передадите свой код, получит большую выгоду от кода, написанного читателем в качестве основного соображения.

Второе следствие:

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

Третье следствие:

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

16
14.12.2008 15:20:34
За исключением того, что с кодом должно быть очевидно, что именно вы имеете в виду. +1, хотя
Rik 14.12.2008 14:45:58
Однажды Ричард Габриэль увидел, как он пишет свои стихи программистам. Мне понадобилось время, чтобы установить связь.
Thorbjørn Ravn Andersen 14.06.2010 18:26:12

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

5
14.12.2008 14:39:36
я не уверен, что вы можете сказать «хороший код должен быть легко понят» - некоторый код выполняет очень сложные функции, сами эти функции не так легко понять, поэтому сразу не следует, что код, который вы не можете понять, является плохим кодом - это может быть здорово код работает через сложную концепцию.
flesh 14.12.2008 17:07:22
Сложный, хороший код будет считаться умным кодом?
kevindaub 14.12.2008 18:35:04

Хороший код читабелен. У вас не будет проблем с пониманием того, что делает код при первом прочтении кода, написанного хорошим профессиональным программистом.

4
14.12.2008 14:40:56
К сожалению, «читабельность» - вещь субъективная.
Gewthen 7.11.2013 18:44:37

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

Во-вторых, вы заметите, что их код разделен на небольшие методы / функции, занимающие не более пары дюжин строк. Они также используют имена методов с самоописанием, и, как правило, их код очень удобочитаем.

Третье, что вы заметите, после того, как вы немного поэкспериментируете с кодом, это то, что логику легко следовать, легко модифицировать и, следовательно, легко поддерживать.

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

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

94
2.07.2009 21:22:13
+1 за подведение итогов очень эффективно. Еще одна вещь, которую можно добавить, - избегать слишком большого количества вложенных веток. Вероятно, два уровня приемлемы, после чего становится слишком трудно следовать.
Naveen 14.12.2008 14:54:47
Вы правы. Я думал о добавлении этого, но думал, что это может быть слишком конкретным
Eran Galperin 14.12.2008 15:03:40
Действительно хорошее резюме. Что касается нескольких строк кода, я думаю, что для новичков было бы хорошо сказать, что это РЕЗУЛЬТАТ чистого кода, а не способ получить чистый код - не заставляйте себя писать маленькие функции, вы сделаете это в любом случае, если ваш дизайн, например, следует принципу KISS.
Klaim 14.12.2008 17:08:49
Я бы не придавал слишком большого значения «маленьким функциям», ни как цели, ни как результат. Слишком много маленьких функций так же трудно следовать, как страницы непрозрачного кода.
staticsan 14.12.2008 21:51:32
Хотя иногда это неизбежно, в целом, когда я смотрю на длинные методы, я думаю: «Этот метод пытается сделать много? Как насчет замены некоторых блоков логики методами с осмысленными именами?» Я считаю, что следовать логике, состоящей из таких методов, гораздо проще, чем пытаться переварить всю логику одновременно
Eran Galperin 14.12.2008 23:41:52

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

0
14.12.2008 14:42:24

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

0
14.12.2008 14:42:55

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

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

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

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

15
6.02.2009 12:45:41

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

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

В хорошем коде такие вещи названы так, что лишние комментарии не нужны.

Хороший код имеет тенденцию быть коротким.

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

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

0
14.12.2008 14:49:24

[Чисто субъективный ответ]
Для меня хороший код - это форма искусства, как и картина. Я мог бы пойти дальше и сказать, что на самом деле это рисунок, который включает в себя символы, цвета, «форму» или «структуру» кода, и все это так легко читается / выполняется. Комбинация читабельности, структуры (т.е. столбцы, отступы, даже имена переменных одинаковой длины!), Цвета (имена классов, имена переменных, комментарии и т. Д.) - все это делает то, что мне нравится видеть, как «красивую» картинку, сделай меня либо очень гордым, либо очень ненавидящим мой собственный код.

(Как сказано выше, очень субъективный ответ. Извините за мой английский.)

2
14.12.2008 14:53:55

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

http://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1229267173&sr=8-1

11
14.12.2008 15:07:57

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

Когда программист имеет такое мышление, все остальное прекрасно ложится на свои места.

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

0
14.12.2008 15:19:53

(Я использую «он» ниже, потому что это человек, к которому я стремлюсь , иногда с успехом).

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

Таким образом, его код должен:

  1. Работа (не имеет значения, насколько быстро код получает неправильный ответ. В реальном мире нет частичной оценки).
  2. Объясните, как он знает, что этот код работает. Это комбинация документации (мой выбор - javadoc), обработки исключений и тестового кода. В реальном смысле, я считаю, что тестовый код строка за строкой является более ценным, чем функциональный код, если ни по какой другой причине, кроме как он объясняет, «этот код работает, это то, как его следует использовать, и именно поэтому я должен получить заплатил «.
  3. Поддерживаться Мертвый кодекс - это кошмар. Устаревшее обслуживание кода - это рутинная работа, но оно должно быть выполнено (и помните, это «наследие» в тот момент, когда оно покидает ваш рабочий стол).

С другой стороны, я считаю, что хороший программист никогда не должен делать такие вещи:

  1. Одержимость форматированием. Существует множество IDE, редакторов и симпатичных принтеров, которые могут форматировать код в соответствии со стандартными или личными предпочтениями, которые вы считаете подходящими. Я использую Netbeans, я настраивал параметры формата один раз и нажимаю alt-shift-F время от времени. Решите, как вы хотите, чтобы код выглядел, настройте свою среду и дайте инструменту выполнить всю работу.
  2. Одержимость соглашениями об именах за счет человеческого общения. Если соглашение об именах ведет вас по пути наименования ваших классов "IElephantProviderSupportAbstractManagerSupport", а не "Zookeeper", измените стандарт, прежде чем усложнить его для следующего человека.
  3. Забудьте, что он работает в команде с реальными людьми.
  4. Забудьте, что основной источник ошибок кодирования находится прямо сейчас за его клавиатурой. Если есть ошибка или ошибка, он должен сначала посмотреть на себя.
  5. Забудь, что то, что происходит вокруг, приходит. Любая работа, которую он делает сейчас, чтобы сделать свой код более доступным для будущих читателей, почти наверняка принесет ему непосредственную пользу (потому что, кто будет первым, кто попросит взглянуть на его код? Он есть).
0
14.12.2008 15:32:44
@ Кен, хо-хо, твой ум ослепил меня, сэр. Теперь надень очки: 8-р
Bob Cross 14.01.2010 01:23:50

Я поддерживаю рекомендацию Боба Мартина «Чистый код».

«Красивый кодекс» был высоко оценен пару лет назад.

Любую из книг Макконнелла стоит прочитать.

Возможно, «Прагматичный программист» тоже будет полезен.

%

2
14.12.2008 15:47:00

Лично мне придется процитировать «Дзен Питона» Тима Питерса. Он сообщает программистам Python, как должен выглядеть их код, но я считаю, что он применим практически ко всему коду.

Красиво лучше, чем безобразно.
Явное лучше, чем неявное.
Простое лучше, чем сложное.
Сложный лучше, чем сложный.
Квартира лучше, чем вложенная.
Разреженный лучше, чем плотный.
Читаемость имеет значение.
Особых случаев недостаточно, чтобы нарушать правила.
Хотя практичность превосходит чистоту.
Ошибки никогда не должны проходить бесшумно.
Если явно не молчать.
Перед лицом двусмысленности откажитесь от соблазна гадать.
Должен быть один - и желательно только один - очевидный способ сделать это.
Хотя этот путь может быть неочевидным на первый взгляд, если вы не голландец.
Сейчас лучше, чем никогда.
Хотя никогда не бывает лучше, чемпрямо сейчас
Если реализацию сложно объяснить, это плохая идея.
Если реализацию легко объяснить, это может быть хорошей идеей.
Пространства имен - одна из отличных идей - давайте сделаем больше!

30
24.01.2016 20:51:54
Единственная проблема с «Должен быть один - и желательно только один - очевидный способ сделать это». Очевидный путь во многом зависит от того, как вы думаете о проблеме. Это обязательно против функциональности.
grom 15.12.2008 05:22:22
«Квартира лучше вложенной» - очень сомнительно.
Íhor Mé 9.06.2017 22:54:14

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

На мой взгляд, код хорошего программиста не зависит от языка ; Хорошо написанный код может быть прочитан и понят за короткое время с минимальным мышлением, независимо от используемого языка программирования. Будь код на Java, Python, C ++ или Haskell, хорошо написанный код понятен людям, которые даже не программируют на этом конкретном языке.

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

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

Одна из книг, которая открыла мне глаза на чтение кода хорошего программиста, - это Beautiful Code . В нем много статей, написанных авторами различных программных проектов на разных языках программирования. Тем не менее, когда я читал это, я мог понять, что автор писал в своем коде, несмотря на тот факт, что я никогда даже не программировал на этом конкретном языке.

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

6
14.12.2008 16:57:17
На мой взгляд, код хорошего программиста не зависит от языка +1
nawfal 6.10.2011 05:42:58

Цитирую Фаулера, суммируя читаемость:

Любой дурак может написать код, понятный компьютеру.
Хорошие программисты пишут код, понятный людям.

- сказал он.

71
16.12.2008 16:12:02
Вау +1, для того, чтобы быть коротким и сладким
devsaw 5.10.2013 21:22:39
Ну, там идет весь код, когда-либо написанный на Perl.
Will I Am 19.03.2015 19:47:13
Что бы я ни писал, мой ЛАБ-УЧИТЕЛЬ никогда не понимал: p
Prakash Bala 27.07.2016 10:32:34

Если вы пишете на C ++ код, есть очень хорошая книга с отличным стандартов кодирования , что мы имеем в виду в уни называется: « C ++ Стандарты кодирования: 101 правил, инструкций и лучших практик » Херб Саттер, Андрей Александреску и Бьярне Страуструп.

0
14.12.2008 17:19:07

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

По сути, это книга, наполненная лучшими практиками программирования для функциональности и стиля.

3
14.12.2008 21:35:43
  1. Оно работает
  2. У него есть юнит-тесты, которые доказывают, что он работает

Остальное глазурь ...

0
14.12.2008 18:12:28

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

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

Относительно того, чтобы посмотреть на книги, я бы сказал, определенно не в моем опыте. Посмотрите на API и фреймворки, соглашения по коду и код других людей и используйте свои собственные инстинкты, и попытайтесь понять, почему вещи такие, какие они есть, и каковы последствия вещей. То, что код в книгах почти никогда не делает, - это планирование незапланированного, что и является проверкой ошибок. Это окупается только тогда, когда кто-то отправляет вам электронное письмо и говорит: «Я получил ошибку 321» вместо «эй, приложение сломано, эй».

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

3
14.12.2008 18:28:43
  • Легко читать
  • легко написать
  • прост в обслуживании

все остальное филигранно

6
14.12.2008 19:12:59
«Легко читаемый» для программиста A и «легкий в обслуживании» для программиста B - две противоречащие друг другу цели, они никогда не могут быть достигнуты. Любое кодирование предполагает компромисс между этими двумя в зависимости от бизнес-приоритетов. Написание кода, который легко читать любому, делает его менее понятным для того, кто его написал.
alpav 13.01.2010 15:57:37
@alpav: то, что вы говорите, абсолютно верно для некачественных программистов, а НЕ для опытных и опытных программистов, которые знают, что через год им придется поддерживать свой собственный код, которого у них нет памяти, поэтому они хотят, чтобы его было легко читать и легко читать. поддерживать. Они могут быть достигнуты, и я делал это неоднократно в течение 30 лет, вы совершенно не правы.
kloucks 13.01.2010 18:14:45
alpav: Можете ли вы привести пример того, как они противоречат друг другу? Они кажутся мне идеально выровненными: как вы можете поддерживать что-то, если не можете это прочитать?
Ken 13.01.2010 18:21:59
  • Лучший код обладает определенной элегантностью, которую вы узнаете, как только увидите.
  • Это выглядит продуманно, с заботой и вниманием к деталям. Это очевидно сделано с кем-то со знанием дела и имеет искусство об этом - Вы могли бы сказать, что это выглядит скульптурным и полированным, а не грубым и готовым.
  • Это соответствует и легко читается.
  • Он разделен на маленькие, очень сплоченные функции, каждая из которых выполняет одну задачу и делает ее хорошо.
  • Он минимально связан, это означает, что зависимости немногочисленны и строго контролируются, обычно ...
  • Функции и классы зависят от абстракций, а не от реализаций.
0
14.12.2008 20:45:17

На это очень хорошо ответил в книге Фаулера «Рефакторинг». Это отсутствие всех «запахов», которые он описывает на протяжении всей книги.

1
14.12.2008 21:02:53

Я не видел «Профессиональный ASP.NET», но я был бы удивлен, если это лучше, чем ОК. Посмотрите этот вопрос для некоторых книг с действительно хорошим кодом. (Конечно, это варьируется, но принятый ответ трудно победить.)

1
23.05.2017 12:17:49

Это кажется (должно быть) часто задаваемыми вопросами. Недавно появилась статья ACM о красивом коде. Кажется, много внимания уделяется простоте чтения / понимания. Я бы назвал это «легко читаемым / понимаемым экспертами в предметной области». Действительно хорошие программисты склонны использовать лучшие алгоритмы (вместо наивных простых для понимания алгоритмов O (n ^ 2)) для любых заданных проблем, за которыми может быть трудно следовать, если вы не знакомы с алгоритмом, даже если хороший Программист дает ссылку на алгоритм.

Никто не совершенен в том числе хороших программистов , но их код , как правило, стремятся к:

  1. Корректность и эффективность с проверенными алгоритмами (вместо наивных и случайных взломов)
  2. Ясность (комментарий для намерения со ссылкой на нетривиальные алгоритмы)
  3. Полнота охвата основ (соглашение о кодировании, управление версиями, документация, модульные тесты и т. Д.)
  4. Сжатие (СУХОЙ)
  5. Надежность (устойчива к произвольному вводу и прерыванию запросов на изменение)
1
14.12.2008 21:50:34

По иронии судьбы, чем лучше программист, тем менее он становится незаменимым, потому что созданный код лучше обслуживается кем-либо (как указано в общем согласии Эрана Гальперина).

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

0
14.12.2008 22:00:45

я второй рекомендация для "чистого кода" дяди Боба. но вы можете взглянуть на http://www.amazon.com/Implementation-Patterns-Addison-Wesley-Signature-Kent/dp/0321413091, так как я думаю, что этот вопрос немного лучше подходит для вашего конкретного вопроса. хороший код должен соскочить со страницы и рассказать вам, что он делает / как работает.

1
14.12.2008 22:49:13

Джефф Этвуд написал хорошую статью о том, как кодировщики в первую очередь ссылаются на машинисток: http://www.codinghorror.com/blog/archives/001188.html

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

Структура

Комментарии

районы

Я разработчик программного обеспечения, что означает, что во время обучения я сталкивался со многими разными языками, но мое программирование всегда «чувствуется» одинаково, как и мое письмо на fekberg.wordpress.com, у меня есть «особый» способ печатать.

Теперь, программируя разные приложения и на разных языках, таких как Java, C #, Assembler, C ++, C, я пришел к «стандартному» написанию, которое мне нравится.

Я вижу все как «коробки» или регионы, и в каждом регионе есть свои комментарии. Регион может быть «классом Person», и внутри этого Региона у меня есть пара методов для свойств, которые я могу назвать «Методы доступа» или тому подобное, и у каждого свойства и региона есть свои поясняющие комментарии.

Это очень важно, я всегда вижу свой код, который я делаю, как «являющийся частью API», когда ОЧЕНЬ важно создать структуру API, и элегантность .

Думать об этом. Также прочитайте мою статью, в Communication issues when adapting outsourcingкоторой в общих чертах объясняется, как плохой код может конфликтовать, Enterpret, как вам нравится: http://fekberg.wordpress.com/2008/12/14/communication-issues-when-adapting-outsourcing/

1
14.12.2008 23:27:03

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

Все программисты на грамотном уровне:

  • Комментарий правильно
  • Структура Эффективно
  • Документ Чисто

Однажды я услышал, как сотрудник сказал: « Я всегда был очень логичным и рациональным. Я думаю, именно поэтому мне нравится развиваться »

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

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

8
15.12.2008 00:52:36
Не столько искусство, сколько ремесло.
Thorbjørn Ravn Andersen 14.06.2010 18:47:19
Мне больше нравится определение, если честно. Я знаю многих разработчиков, которые верят в сверхтвердые и быстрые правила и не видят более полной картины того, почему эти правила были созданы и в случаях, когда их нужно нарушать
Lance Bryant 24.01.2017 19:20:25