Какие практические шаги вы предпримете для обеспечения тщательности? [Дубликат]

    

У этого вопроса уже есть ответ:

    

Бит контекста

Я не уверен, подходит ли это для области programers.stackexchange, но я не буду публиковать ее в SO. Любая проблема с двусмысленностью, и я с радостью удалю ее.

Если бы мне пришлось открыто говорить о моих навыках и о том, как я сижу в компании, я бы сказал, что я на среднем уровне и около двухсот лет работы от съемки на старшую должность. Я разработчик C # с сильным (ish) фоном и проактивным отношением, но мое падение, однако, похоже, насколько я тщателен, и ему нужно быстро улучшаться.

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

Вопрос:

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

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

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

1 голос | спросил JᴀʏMᴇᴇ 30 MarpmMon, 30 Mar 2015 18:18:25 +03002015-03-30T18:18:25+03:0006 2015, 18:18:25

3 ответа


3

Сделайте 1 вещь за раз и продвигайтесь к 2-ой вещи только после того, как закончите с первым. Вы пропустили эти [httpPost] биты, потому что вы не писали контроллер и весь связанный с ним код, вы перешли прямо к следующему, прежде чем вы закончили первый.

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

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

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

ответил gbjbaanb 30 MarpmMon, 30 Mar 2015 18:27:55 +03002015-03-30T18:27:55+03:0006 2015, 18:27:55
1
  

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

Я по большому счету этого не делаю - это пустая трата времени.

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

  

Вы пишете, что вы хотите сделать в виде простого текста или псевдокода?

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

  

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

Это зависит от того, что вы имеете в виду. На многих работах я разбиваю пользовательские истории (1-2 неделя работы) на задания (0-2-дневная работа). Это, хотя не поможет мне уловить пропущенные атрибуты.

  

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

Совершенно верно. Потому что модульные тесты обычно захватывают такие глупые ошибки. Инструменты покрытия кода могут помочь мне понять, какие вещи (возможно) достаточно проверены и какие части могут понадобиться для большего количества глазных яблок. Единичные тесты должны составлять около 5 строк кода и должны иметь только одну причину. Реальный мир иногда мешает этому, но да, они должны быть такими гранулированными.

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

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

ответил Telastyn 30 MarpmMon, 30 Mar 2015 18:36:26 +03002015-03-30T18:36:26+03:0006 2015, 18:36:26
1

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

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

ответил Gavin Clarke 30 MarpmMon, 30 Mar 2015 23:35:55 +03002015-03-30T23:35:55+03:0011 2015, 23:35:55

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132