【问题标题】:What is the correct way to reuse code in any team-based (work) project?在任何基于团队的(工作)项目中重用代码的正确方法是什么?
【发布时间】:2019-07-08 08:13:21
【问题描述】:

所以在我工作的时候,我的一位同事(代码)审查了我的代码(如下所示)。代码经过了一点编辑,所以它没有显示它的内容。

//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() 方法根据我们所追求的类型(发票或订单)更改过滤器。 db 查询几乎相同。

据我的同事说,有两个可为空的参数而不是给一个类型参数会更好地提高代码的可重用性和可读性。


我的问题是(很明显):哪种方法更好,代码可重用性的黄金法则是什么?

附:请记住,我是一名初级 (.NET) 程序员。我正在尝试学习更多关于良好编程的概念,但互联网太误导了,因此现在 StackOverflow 上的问题。

【问题讨论】:

标签: c# reusability code-reuse


【解决方案1】:

我想说代码可重用性是一个很好的目标,但不一定总是最好的解决方案。

如果一个方法经过大量逻辑和/或大量单元测试,那么重用它是有意义的,但对于像您在示例中给出的那样简单的方法,它并不那么重要。

我牢记的一条经验法则是,如果您发现自己对同一件事进行了两次以上的编码,请看看您是否可以重复使用它。

另一个是从长远来看,项目独立性胜过代码重用。因此,与其在项目之间添加太多关系,不如重复代码(这里用 C# 术语讨论)。

关于您最初的问题:由于敏感数据已被删除,因此代码示例有点难以理解,但我想我会很想只写两种方法,以提高可读性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-16
    • 1970-01-01
    • 1970-01-01
    • 2018-04-30
    • 2013-12-21
    • 1970-01-01
    • 2020-08-09
    • 1970-01-01
    相关资源
    最近更新 更多