Что кодирование инструкций должно сделать и является там какими-либо хорошими примерами инструкций? [закрытый]

Чтобы подражать точному шаблону в вашей команде grep, выполните

import re

pattern = re.compile('|'.join(key_words))

for log_line in log_lines:
    if pattern.search(log_line):
        print log_line

. Если вы хотите разрешить специальные символы, вам придется их избегать:

pattern = re.compile('|'.join(re.escape(word) for word in key_words))

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

for log_line in log_lines:
    if any(word in log_line for word in key_words):
        print log_line

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

for log_line in log_lines:
    if keywords.intersection(set(log_line.split()):
        print log_line
8
задан Justin Yost 4 December 2008 в 22:45
поделиться

11 ответов

Обычно существует три цели для кодирования стандартов:

  • Уменьшите вероятность ошибок
  • Уменьшите время, требуемое проанализировать код, написанный кем-то еще
  • Дайте кому-то прохождение питания

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

Однако существует некоторый определенный do's и dont's, который я заметил:

  • Осуществите последовательное пробельное использование. Вкладки, 2 пробелов, 4 пробелов, не имеют значения. Сохраните это последовательным, таким образом, уровни отступа не завинчены людьми, использующими различных редакторов. Я видел ошибки, сделанные, потому что программисты обслуживания неправильно истолковали уровень вложенности блока кода.
  • Осуществите последовательную методологию входа. Это - огромный дренаж на времени персонала поддержки, если они не могут скользить по журналам, потому что общий модуль регистрируется по разным причинам, и у всех есть различное определение Информации по сравнению с Предупреждением по сравнению с Ошибкой.
  • Осуществите последовательную обработку ошибок. Если модуль исключения бросков, модуль B коды ошибок возвратов и модуль C просто будут регистрироваться и идти дальше, то это будет боль для интеграции их, не позволяя ошибке проскользнуть через трещины.
  • Старайтесь избегать мелких вещей как размещение фигурных скобок. Это собирается получить много людей, спорящих по их любимому стилю, и в конце, он действительно не оказывает огромное влияние на удобочитаемость кода. С другой стороны, осуществление присутствия скобок может иметь значение.
  • При интеграции разрозненных кодовых баз не испытывайте желание изменить общие переменные соглашения о присвоении имен соответствовать золотому стандарту. У Вас может быть стандарт для продвижения, но что является самым важным, то, что любые локализованные стандарты, которые уже существуют, последовательно сохраняются. Если один модуль использует m_member, программист обслуживания должен использовать m_member2 вместо того, чтобы применять любой другой стандарт (такой как member2_ или m_lpcstrMember2 или безотносительно). Локальная непротиворечивость является королем.
  • Расположение файловой системы важно. Сохраните это последовательным. Помогите кому-то вскочить в библиотеку sourcebase и немедленно знать, где заголовки, Make-файл, источники и т.д. Если Вы работаете с Java или Python, это - легкая задача, потому что система пакета осуществляет его. Если Вы будете работать с C, C++ или каким-либо другим несметным числом языков сценариев, то необходимо будет разработать стандартное расположение сами и придерживаться его.
  • Не потейте небольшой материал. Переменные соглашения о присвоении имен, пробелы между круглыми скобками или ключевыми словами или именами функций... большая часть из этого не имеет значения, потому что это не уменьшает вероятность ошибки. Каждое правило, которое Вы устанавливаете, должно иметь конкретное объяснение, и Вы не должны бояться изменить или удалить его, если Вы обнаруживаете, что оно вызывает больше горя, чем это стоит.
  • Не осуществляйте бесплатные блоки комментария везде. Они закончат как отходы, и большинство комментариев более обеспечено быть выраженным в самом коде (как имена переменной или имена функций, например).

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

24
ответ дан 5 December 2019 в 04:33
поделиться
if( !codingGuidelines.Followed)
{
   reason = programmer.WhyNot();
   if( reason.Acceptable)
   {
      codingGuidelines.Integrate( reason);
   }
   else
   {
      team.GiveAssKicking(programmer);
   }
}
9
ответ дан 5 December 2019 в 04:33
поделиться

Это - довольно нерешенный вопрос, и ответ одинаково открыт:

Каждая инструкция должна стоить меньше для реализации, чем преимущество, которое она приносит.

Будьте осторожны, потому что каждая сторона уравнения имеет некоторые скрытые части.

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

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

8
ответ дан 5 December 2019 в 04:33
поделиться

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

Например, это тип вещей, которые я мог бы ожидать видеть:

  • Стиль имен переменной т.е. венгерской записи (не, что я строго использую их),
  • Методы должны быть прокомментированы с их общей целью, включая то, что они возвращают (если что-либо)
  • Классы должны быть определены с определенным расположением: т.е. все частные поля наверху, сопровождаемый событиями, открытыми методами, закрытыми методами, должны ли они быть в алфавитном порядке
  • Соглашения о присвоении имен для пространств имен, классов, методов, событий и свойств и т.д.

Вы получаете изображение. Я не должен быть ограничен для наполнения как:

  • Необходимо ли использовать Если нотация вместо интервала = (вздор)? верный: ложь;

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

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

4
ответ дан 5 December 2019 в 04:33
поделиться

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

При использовании .NET смотрите на StyleCop. По умолчанию это содержит стандарты, которые MS использует сами и используемый для разработки платформы .NET на основе. Можно получить его отсюда:

http://code.msdn.microsoft.com/sourceanalysis

Можно отключить правила, Вы не любите и добавляете свое собственное. Это может даже быть задано сценарием для осуществления правил, когда в коде регистрируются. Большая вещь об этом состоит в том, что, если Вы действительно плохо знакомы с этим видом материала, он скажет Вам точно, что Вы делаете неправильно. Если Вы хотите пойти один шаг вперед, смотреть на Resharper. Это - тот же вид вещи, но делает это в режиме реального времени, как Вы вводите (хотя по умолчанию это использует немного отличающийся стандарт.

Я уверен, что существуют подобные утилиты вокруг других языков, если c# не является Вашей вещью!

2
ответ дан 5 December 2019 в 04:33
поделиться

Инструкции по кодированию C# Juval Lowy являются превосходным примером надлежащей инструкции. У меня есть несколько вещей, которые я изменил бы в нем, но по большей части это фантастически.

1
ответ дан 5 December 2019 в 04:33
поделиться

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

Инструкции UI являются другим зверем, чем другие, я думаю.

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

1
ответ дан 5 December 2019 в 04:33
поделиться

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

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

Хорошими примерами являются "ВКЛАДКИ по сравнению с Пробелами" и "K&R по сравнению с размещением фигурной скобки ANSI". Проведите опрос в команде, примите решение и запишите ее. Примените решение ко всему своему существующему коду сразу и регистрируйте его отдельно. Никогда не обсуждайте это снова.

2
ответ дан 5 December 2019 в 04:33
поделиться

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

1
ответ дан 5 December 2019 в 04:33
поделиться

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

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

1
ответ дан 5 December 2019 в 04:33
поделиться

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

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

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

0
ответ дан 5 December 2019 в 04:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: