Dav*_*rab 17 c# refactoring class
一个好的经验法则是我智能地重构超过50行的任何方法.
计数不包括注释和空格,而是实际代码.我之所以聪明地说,有很多时候,超过50行的课程是可以接受的,不能或不应该改变.
我对课程没有经验法则.一般来说,我不检查类是否应该重构.
在我目前的项目中,我刚刚完成了一个近4000行的课程.然而,没有超过50的方法,并且大多数行和方法是私有的,并且不对类外的任何数据起作用.
重构类的经验法则是什么?
Mar*_*tta 43
当班级违反SRP时,是时候重构了.
单一责任原则是一种计算机编程原则,规定每个模块或类应对软件提供的功能的单个部分负责,并且该责任应完全由类封装.其所有服务应与该责任严格一致
不要让LOC成为您的主要指标.对我来说50条线看起来真的很小.使用50行文件,您最终会在解决方案中拥有不合适数量的类文件.您在文件之间进行的所有导航都会降低您的工作效率,您的IDE将始终充斥着太多标签.我个人尝试先按名称空间将类组织成逻辑组.在逐个类的基础上,我尝试使代码更小,更容易阅读.有时,类文件会变大.当类文件是2000多行时,我开始感到恶心.除此之外,我会根据具体情况处理.
我不会说重构大型课程有任何"经验法则".有时一个类真的封装了很多业务逻辑,应该尽可能大.但是,您可以考虑问自己一些问题:
(假设你正在编写面向对象的代码)我的代码是否真的面向对象?也就是说,它是否遵循单一责任原则(谢谢,Nebakanezer)?这个班是帮助班吗?如果是这样,我怎么能将其方法重构为更合适的对象类?
我有一个坚实的架构吗?也就是说,我是在利用抽象和继承而不是在每个班级重新发明轮子吗?重载方法是否适当调用基本方法?
我真的需要所有这些代码吗?是否可以使用xpath,lambda表达式或某种形式的数据库驱动表达式来外化某些逻辑?
代码是否可扩展?容易维护吗?它是从一开始就设计得很好,还是我们总是制作小补丁来试图解决问题?
我希望这有点帮助; 重构大型课程可能很困难,但我想如果你开始查看我的问题,你可能会很快发现你的代码还有改进空间......我知道我通常会这样做.
特别是看#1 - 人们在整个地方创建大量的帮助类是非常普遍的,这是非常反面向对象的(在我看来).这是一个不同的主题,但你可能想要看到你所做的课程中真正的所谓 - 以及在其他地方可能/应该是什么.
根据经验,如果课程可维护且灵活,则可能不需要更改.:)
归档时间: |
|
查看次数: |
12774 次 |
最近记录: |