读书人

小弟我拒绝接受的几个最佳编程实践方法

发布时间: 2014-01-05 18:22:55 作者: rapoo

我拒绝接受的几个最佳编程实践方法





set/get并非只是规范,而是有益才被广泛使用,写代码和做设计久了就会明白得;
90%不需要第二实现?这个90%是从哪里来的?接口的用处到底是什么?还是请深入理解面向对象编程的内涵;
增删改查怎么会是世界的全部呢?只是数据的存取嘛!



90%都会有第二种实现的。 其中一个是mock
第一点我想说,同意“存在即合理”,但这只有指导意义,但不应该成为大家思维的阻碍。
第二点,接口的用处我已经用例子说明了,请看完嘛,不要只看一半就气冲冲回我让我“深入理解面向对象编程”……

你的信息隐藏我觉得说得对,当然这种由业务控制,由程序员控制的事情是不是一定得靠getset代码来限制就说不清了,所以还是我说的不可证实,不可证伪。合理也是合理,不写也可以不写,哈哈。

关于第二点看来对后面的实质内容提不出什么异议,就算是也认可了吧,哈哈。至于这90%不知道我说估算出来的算不算 ,或者作为一个开放性命题,看到的大伙都来说说自己实践中都有怎样的多实现?反正这种接口的优势我只在做java server开发的经历中体会到过,web的确没体会过。
哎 , iteye论坛真是要完了! 19 楼 nakupanda 2013-12-30 大家别中计, 查看一下左栏<评论排行榜>那里的几篇文章, 注看以下几点:

1, 楼主除了发了个主贴就从来没出现过了

2, 文章涵盖太广泛, 观点也不尽相似.

结论: 这个楼主只是随随便便上网找了些文章发出来, 甚至<转载>这样的标签也懒得加上.

20 楼 white_crucifix 2013-12-30 这个博主一贯就是发点翻译文或者鸡汤的

另外最近首页突然出现好几篇鸡汤…… 21 楼 Alex丿 2013-12-30 同感~。。。 22 楼 freezingsky 2013-12-30 有些东西叫守则也叫规范,但如果不分情景的死守,就变成了墨守成规。 23 楼 sswh 2013-12-31 引用import类,而不是import整个包

这个好处体现在代码阅读时。

可以给阅读者一个总体的概览,粗粗浏览一下当前类依赖的外部类,结合当前类名、包结构,可以快速猜测当前类的实现目标、实现方式。

增强了代码的可读性。
24 楼 sswh 2013-12-31 引用面向接口编程

接口体现的是业务模型中的“概念”,接口给了软件结构一个清晰的描述。

多人协作时,依赖其他(人/其他模块)提供的接口,是非常重要的。

如果连接口都无法清晰的划定,说明软件结构的职责、概念没有理清楚,

依赖于实现的代码,一般软件结构上都是混乱的。



25 楼 alvin198761 2013-12-31 sswh 写道引用面向接口编程

接口体现的是业务模型中的“概念”,接口给了软件结构一个清晰的描述。

多人协作时,依赖其他(人/其他模块)提供的接口,是非常重要的。

如果连接口都无法清晰的划定,说明软件结构的职责、概念没有理清楚,

依赖于实现的代码,一般软件结构上都是混乱的。




楼主一个人能开发出一个魔兽,或者微软的一个操作系统,所以面向接口对他来说不是什么高级货,还会影响进度。。 26 楼 kidneyball 2013-12-31 1) import类,而不是import整个包
文章作者(估计不是博主)可能没遇过因为种种历史原因同一个包名被分散在多个jar包中的情况。明确import类有助于在阅读代码时理清依赖关系。

2)面向接口编程
程序不仅仅是要一次运行,还要给别人看和用(二次开发)的。接口除了功能上可以轻易改变实现外,还可以告诉后续开发的程序员:这里是设计来给你改实现的。而不实现接口的类,则暗示这是一个内部实现,如果你改实现的话原作者在更新时不保证能向前兼容。

3)禁用某种语言功能
通用语言是设计来解决"所有“问题的,必然对各种边界场景有完善的应对措施,但某些边界条件不是企业业务的常态而且有明显副作用,一个企业针对自身情况从政策上禁用某些有明显副作用的语言特性,很正常。

4)使用Setters/getters,禁止public属性
这个作者可能不知道有动态代理这回事。

5)单个返回语句
这一点本来没有问题,在一个职责单一的方法里,先对一些简单边界情况进行处理返回,然后再处理正常主线逻辑,是很常见的做法(Java类库里这样的做法就有不少)。但这个作者同时又反对”尽量责任分离”则有很大问题,一个长方法里有多处返回点,会让阅读者不知道这个方法在干什么。而且如果你在排错时如果想跟踪这个方法每次被调用的返回值,则需要打多处断点。

6)尽量责任分离
比喻错误,如果你把一颗树砍成牙签那么大小的块,但这些牙签大小的块仍然有序地结合为树木的形状并且保持稳定(编程里你把方法按职责拆分后,仍然会有高层的方法把这些小方法有序组织起来),那就不是垃圾,而是卖得很贵的乐高积木

7) 放之四海皆准的最佳实践方法
做任何事情都要有个理由 ———— 反对任何事也应有个理由
如果你做的未能符合预期,重做,替换方法或给予修正 ———— 作者所反对的那些事情,恰恰是在保证程序能方便地“重做,替换或给予修正”
扔掉垃圾通常是你最应该做的事情——不论这垃圾造价多高 ————— 首先你得搞清楚为何这堆造价这么高的东西会被认为是垃圾。

读书人网 >编程

热点推荐