Как правильно повторно использовать код в любом командном (рабочем) проекте? - PullRequest
0 голосов
/ 14 февраля 2019

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

//Types is a static class with static strings (because enums cant be strings)
//id can be the id of two different subjects
var data = GetFromDb(Types.Type, id);

GetFromDb(string type, int id){
    string filter = GetFilter(type);

    db.Query(SELECT * FROM WHERE filter=id)
}

Идея этого кода заключается в том, что его можно использовать для двух разных тем.Допустим, для получения деталей счета и заказа.Метод GetFilter() меняет фильтр в зависимости от того, какой тип (счет или заказ) мы ищем.Запрос БД практически идентичен.

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


У меня вопрос (вполне очевидно): какой метод лучше и каковы золотые правила повторного использования кода?

PS Имейте в виду, что я младший (.NET) программист.Я пытаюсь выучить больше концепций для хорошего программирования, но Интернет слишком вводит в заблуждение, поэтому вопрос сейчас о StackOverflow.

1 Ответ

0 голосов
/ 14 февраля 2019

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

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

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

Еще одно, что в долгосрочной перспективе независимость проекта превосходит код -повторное использование.Итак, скорее дублируйте код, чем добавьте слишком много связей между вашими проектами (здесь речь идет о терминах C #).

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

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