SoftwareEngineering
安静的木子昊
在这里记录每天的点点滴滴
展开
-
常用类名
好的代码应该避免Manager之类的很模糊的名称, 此文收集一些可能代替Manager的词汇.* Controller* Container* Handler* Converter* View* Builder* Provider* Designer* Editor* Daemon* Herder(牧人)/Shepherd/WranglerHerde...原创 2020-03-24 22:59:35 · 681 阅读 · 0 评论 -
什么时候应该不用IoC?
最近看看到很多地方都说IoC比较好, 但是在实际开发当中贯彻IoC的时候却有些疑惑, IoC是应该始终贯彻的原则吗?```class Foo(obj): def __init__(self): self._bar = ProcessBar() #A Third def run(self): self._bar.start()...原创 2020-03-24 22:17:39 · 323 阅读 · 0 评论 -
函数参数应该注意些什么?
参数越少越好, 三个参数的函数应当尽可能避免, 超过三个参数的函数就不应该被使用了.一个参数的例子boolean fillExists(file_path);两个参数的例子Point p = new Point(0,0)两个参数的之间存在天然的顺序.像assertEquals(expected, actual), write(stream, path) 这种没有天然的顺序的函数都是...原创 2020-03-23 22:27:11 · 351 阅读 · 0 评论 -
函数应该注意些什么?
短函数的第一准则是短, 第二准则是比刚才那个函数还要短.public static String renderPageWithSetupAndTeardowns( PageData pageData, boolean isSuite) throws Exception { boolean isTestPage = pageData.hasAttribute("Test");...原创 2020-03-23 22:19:30 · 261 阅读 · 0 评论 -
函数名应该注意些什么?
函数名应该是动词或者动词词组, 比如postPayment, deletePage save当构造函数被重载的时候, 使用一个带描述参数的名字的静态工厂方法.当构造函数被重载的时候, 使用一个带描述参数的名字的静态工厂方法.Complex fulcrumPoint = new Complex(23.0)vsComplex fulcrumPoint = Complex.FromRea...原创 2020-03-23 22:04:48 · 181 阅读 · 0 评论 -
类名应该注意什么?
类和对象应该有名字或者名词短语, 例如Customer, WikiPage, Account, AddressParser.避免出现Manager, Processor, Data, Info 出现在名字当中.一个类名不应该是动词.原创 2020-03-23 22:01:22 · 243 阅读 · 0 评论 -
变量命名应该注意些什么
变量命名应该注意些什么?一个变量名字应该告诉你Why it exsits, What it does, How it used.如果一个变量需要一个注释, 那么这个名字并没有揭示意图.使用揭示意图的名字 int d; // elapsed time in daysvsint elapsedTimeInDays;当心那些变化很小的名称阅读XYZControllerForEffic...原创 2020-03-23 21:59:54 · 1022 阅读 · 0 评论 -
依赖注入的优点
依赖注入减少了一个类和其他类的耦合并且减少了依赖.通过让构造一些假的依赖项, 可以方便的对Client进行独立的测试.可以方便的分离出配置文件.减少应用程序中的构造代码.Client对依赖项的变化不敏感...原创 2020-03-23 09:47:00 · 3453 阅读 · 0 评论 -
Liskov Substitution Principle
LSP(Liskov Subsitution Principle)提供了一个原则去评价继承的合理性.一般情况下, 当我们发现A “IS-A” B 的时候, 我们会让B继承A.但是LSP告诉我们, 只有当A “IS-SUBSTITUTABLE-FOR” B的时候, 才应该让B继承A, 否则会带来一些问题.例子假设有一个类Rectangle, 他有长和宽两个属性, 那么Square 是否应该是...原创 2020-03-22 18:34:07 · 201 阅读 · 0 评论 -
Dependency Inversion Principle
DIP(Dependency Inversion Principle) 是一种设计原则.定义高层不应该依赖底层, 他们都应该依赖抽象.抽象不应该依赖细节, 细节应该依赖抽象.举例public class CustomerBusinessLogic{ public CustomerBusinessLogic() { } public string G...翻译 2020-03-22 13:29:01 · 181 阅读 · 0 评论 -
Inversion of Control
IoC(Inversion of Control) 是一种设计原则.我们认为一个类应该只有一个责任, 如果它还有其他的额外的责任, 那么这个责任就被成为一个control.比如公司的CEO开车这件事, CEO的主要责任是管理公司, 那么他就不应该亲自开车, 应为亲自开车是一种额外的责任, 是对车的控制, 所以应该委托给司机开车, 这样车的变化就对就由司机来承担, CEO完全不受影响.控制程序...翻译 2020-03-22 13:10:28 · 143 阅读 · 0 评论 -
设计原则和设计模式的区别
在软件工程当中,设计原则和设计模式是不同的.# 设计原则设计原则是为了更好的设计软件的高层指导方针. 它不提供具体的实现方式也不会绑定任何一种编程语言. 最常用的原则是SOLID(SRP, OCP, LSP, ISP, DIP)原则.比如,SRP(Single Responsibility Principle) 建议一个类只能因为一种原因而改变. 在开发的时候我们要将这些高层原则牢记...翻译 2020-03-22 00:30:53 · 838 阅读 · 0 评论