2012-12-05 2 views
1

У меня всегда были проблемы с динамическим языком, например Python.Как уменьшить ошибки в динамическом языке, таком как python, и улучшить качество кода?

Несколько неприятностей:

  1. ошибка опечатка, я могу использовать pylint, чтобы уменьшить некоторые из этих ошибок. Но есть еще некоторые ошибки, которые pylint не может понять.
  2. Ошибка типа объекта, я часто забыл, какой тип параметра, int? ул? какой-то объект? Кроме того, забыли тип какого-либо объекта в моем коде.

Единичный тест иногда может помочь мне, но у меня не всегда есть время, чтобы сделать UT. Когда мне нужен сценарий для выполнения небольшого задания, строка кода составляет 100 - 200 строк, но не большая, но у меня нет времени на выполнение модульного теста, потому что мне нужно как можно скорее использовать сценарий. Таким образом, появляется много ошибок.

Итак, любая идея о том, как уменьшить количество этих проблем?

+1

Может быть, лучше подходит для [programers.stackexchange.com] (http://programmers.stackexchange.com/) – sloth

+0

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

+0

Статический язык @LennartRegebro найдет вашу ошибку типа объекта во время компиляции, поэтому это не будет проблемой, но в Python вы часто забыли, что это за тип, и нет ошибки времени компиляции, чтобы сообщить вам об этом – jiluo

ответ

4

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

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

2

В дополнение к unittesting (см. Ответ chamila_c), придерживаясь хороших соглашений и стиля кодирования. Я думаю, что я знаю одноразовые скрипты, о которых вы говорите (предполагая, что это то, о чем вы говорите), и часто написание полного набора тестов для них кажется излишним. Несколько других советов, которые могут помочь:

  • Переведите код в функции. Часто бывает легче определить проблему, особенно проблему с именами, если вы имеете дело с небольшим изолированным фрагментом кода. Кроме того, гораздо проще написать единичный тест для небольшой функции. Я считаю, что использование этого подхода означает, что вам не нужен полный набор тестов для тестирования и изоляции выявленной проблемы.
  • Придерживайтесь последовательного и выразительного соглашения об именах. Например, используйте min_value = min(all_values), а не что-то вроде a = min(b). То же самое касается имен функций, используйте def calculate_mean(sequence), а не def f(s)
  • Прочитать и применить PEP8.
  • Документируйте свой код с комментариями. Это занимает всего несколько секунд при написании кода, и это значительно облегчает выяснение того, что происходит, когда вы возвращаетесь к нему. Его удивительная деталь, которую вы можете забыть всего за один день!
+0

Да, я имею в виду одноразовые скрипты, большую часть времени, я борюсь с этими сценариями и исправляю ошибки. Я думаю, вы дали хорошие советы. Благодаря! – jiluo

Смежные вопросы