+
 新版
2013-08-26 20:45

引用来自“zhangzhikai”的评论

没看懂楼主的文章,不知道楼主是想反对那六个观点,还是支持?

这智商
2013-08-23 09:57

引用来自“一线码农”的评论

同感呀,Java动不动就是接口,很多getter setter,一点都不简洁

但是有调理啊,面向对象编程就要面向接口,这是他的特点
2013-08-22 20:01
这篇文章的意义不在于他说的内容,而在于一种怀疑态度。首先我们要思考这个为什么是准则呢?原理是什么。最近用脚本编程让我觉得自己很狗屎,因为我不明白脚本内部的运行机制,而只是在我以为的基础上去用。其次,你以为的准则有时是不太合适的,每种规则都有它的适用范围,从问题的角度去选择方法,而不是从规则的角度去套问题,这点非常重要。
2013-08-21 10:22
好习惯做到一定程度,不妨从工作效率角度去体会下~ 还行~我赞同“减少浪费”
2013-08-21 09:18
我也完全赞同,但是我们的项目用了框架,很多事情已经改变不了了。
2013-08-20 09:12
没看懂楼主的文章,不知道楼主是想反对那六个观点,还是支持?
2013-08-19 13:49

引用来自“屈利春”的评论

蓝翔的学生又实习了吗?

现在已经无法直视名字中带有翔字的……
2013-08-19 10:40
getter和setter是为了满足java bean规范,初学者才会认为它们很奇怪,其实它类似于一种工业标准,否则spring framework怎么用呢。
2013-08-19 09:27

引用来自“囫囵吞枣”的评论

虽然你貌似有足够的理由质疑最佳实践,Java本身也没有强制你必须那么做,但是没有这些约定,Java就不会产生Spring,Hibernate,Struts等优秀的框架,比如你反对getter/setter,按照你自己的风格行事,没有了getter/setter,你让Spring如何帮你注入依赖呢

如果getter/settter确实是多余的 仅仅为了让spring注入就有点舍本逐末了 所以问题是getter/setter是不是真的多余 去如果真的不这么用 spring一样有办法注入
2013-08-14 16:53
要灵活啊!
2013-08-14 15:40
三四五三条感触最深,其他的也深表认同。只有第一条没感觉,咋回事呢
2013-08-14 14:58
我还是偏向规范化编程
2013-08-14 10:13

引用来自“邓攀”的评论

谷歌没收购sun那一次很失败,orcale这个老狗,在开源方面比苹果还不要脸,苹果是敌视开源,orcale是买一个死一个

SUN公司是个牛B的公司
2013-08-14 10:09
面向接口编程
使用Setters/getters,禁止public属性
单个返回语句
认同。
2013-08-14 10:08
没有想到居然有这么多人回复。那就多说两句!
有质疑才有进步,但这个老外在这里所质疑的都是Java的精髓。如果他了解下编程语言的发展历程,或者用过Fortain、C等过程语言,Delphi VB等早期的OO语言,那么他就了解为什么会有这些最佳实践了!
1. import类,而不是import整个包
VB和Delphi(2007之前)是没有包的,或者说只有一个默认的包,他们面临的一个问题是类名冲突。Java第一次完美解决了类名冲突问题(通过命名空间,即包名)。引入整个包,他是在冒着类名冲突的风险。
2 面向接口编程
面向接口编程是编程语言的一次具体进步。Ms Office是M$独家开发的,但他也使用了接口,而且为了解决接口与实现的问题,搞了一个非常丑陋的注册表,在导出一个Office报表的时候,谁也无法确定用户机器上安装了那个版本的Excel。
3 禁用某种语言功能
能力有限,还没有接触的他所说的这些禁区,无法对此评价
4.使用Setters/getters,禁止public属性
在C和Basic中,除了函数内部的变量,都是public的,都是全局的,正是因为放开字段有问题,才有了后来OO编程,强调对字段的封装。
Dephi,VB或者C++虽然强调封装,可方法(或者叫函数)命名没有任何可遵守的约定,而在Java中,封装字符使用getter/setter的确是Java的首创,也是Sun公司努力的结果,
正式在这些默认的约定基础上,Java开发者才能享受到Spring带来的便利,才有Hibernate,Struts等框架;Delphi、VB、C/C++等永远无法做到
5.单个返回语句 和 尽量责任分离
我认为这个没有什么问题。
Java不仅仅是一种编程语言,也是一种文化。这种文化很多情况就表现为约定,而不是靠语法来约束。就像走路,不但要有红绿灯的约束,还要有靠右边走及(行人/机动车)各行其道的约定。当然Java也不是万能的,如果感觉Java不趁手,可以考虑使用其他语言,比如Java的变种Ruby、Groovy等。
2013-08-13 16:41

引用来自“風一樣的男子”的评论

引用来自“唐海康”的评论

引用来自“風一樣的男子”的评论

瞎扯
压根就不理解接口编程干嘛的
你要是涉及到远程调用啥的,难道你把实现类打包丢给调用者?

都是假设……一开始分析好需求,如果只有一种实现还用接口干嘛。面向接口不能滥用。

如果需要提供给外部调用,同时又不想让调用者知道具体实现呢?

向外提供api,当然应该用接口了,事实似乎也只能是接口吗,无论的rmi还是webService都只能是接口,作者的意思是“面向接口编程”的思想被滥用了,现在许多应用工程,除了serivce接口就是dao接口,真的是很冗余
2013-08-13 16:37

引用来自“chocotan”的评论

引用来自“艾皮狗”的评论

非常认同文章的观点,比如说那个"面向接口编程",真的是被滥用了。看看现在这些工程,调用一个service,首先是一个接口,然后是该接口的实现,接着又在里边调用dao接口,最后才是dao实现,而整个工程的service和dao接口都只有一个实现,却不得不写那么多无聊的接口,找代码也不方便,java本身就是一个语法很啰嗦的语言,这样一搞,开发效率就更低了

因为你的接口只有一个实现

反正目前我做过的所有工程里边,这种所谓的service和dao接口都仅有一个实现,而且也没有什么理由会有第二个实现。试想一下,如果真有第二个实现,该怎么用呢,哪些地方会用到第二个实现呢?如果要用第二个实现,那就需要改代码(使用注解方式的话),或者修改xml文件,关键是这些serivice和dao都是工程内部自己用的,根本就不可能还会有什么第二个实现
2013-08-13 13:08
对于set get 方法我也有相同的看法。
2013-08-13 10:42

引用来自“_2kw”的评论

引用来自“貌似掉线”的评论

引用来自“_2kw”的评论

引用来自“貌似掉线”的评论

引用来自“_2kw”的评论

google编码规范里面 都是写着禁止哦。。。。

刚看到google android源码里有goto语句,但代码一点也不失优雅。
JB/dalvik/dexopt/OptMain.cpp

android最开始不是google写的吧...

嗯。最开始确实不是google写的。不过我说的并不是针对google编规范里面所说的禁止而进行反驳,我是觉得,goto用得好的话,代码同样不失可读性和优雅。如上面所附的源文件中的代码。

我其实对代码的规范性不是那么重视 或者说规范性是好事 但终究还是要把精力放在实现好的产品上面 规范性一旦形成了习惯 就没有讨论的必要了

嗯。。我觉得规范应该 是基于一些原则的,在这些原则下,编程的工作能做得更好。当规范过于死板,那就不是规范,而是束缚了。
2013-08-13 07:12

引用来自“貌似掉线”的评论

引用来自“_2kw”的评论

引用来自“貌似掉线”的评论

引用来自“_2kw”的评论

google编码规范里面 都是写着禁止哦。。。。

刚看到google android源码里有goto语句,但代码一点也不失优雅。
JB/dalvik/dexopt/OptMain.cpp

android最开始不是google写的吧...

嗯。最开始确实不是google写的。不过我说的并不是针对google编规范里面所说的禁止而进行反驳,我是觉得,goto用得好的话,代码同样不失可读性和优雅。如上面所附的源文件中的代码。

我其实对代码的规范性不是那么重视 或者说规范性是好事 但终究还是要把精力放在实现好的产品上面 规范性一旦形成了习惯 就没有讨论的必要了
2013-08-13 06:39
为什么要放弃治疗呢?
2013-08-13 01:14

引用来自“_2kw”的评论

引用来自“貌似掉线”的评论

引用来自“_2kw”的评论

google编码规范里面 都是写着禁止哦。。。。

刚看到google android源码里有goto语句,但代码一点也不失优雅。
JB/dalvik/dexopt/OptMain.cpp

android最开始不是google写的吧...

嗯。最开始确实不是google写的。不过我说的并不是针对google编规范里面所说的禁止而进行反驳,我是觉得,goto用得好的话,代码同样不失可读性和优雅。如上面所附的源文件中的代码。
2013-08-12 22:50
讨论“度”的问题从来都没有结果,没有最好,只有更合适。
2013-08-12 20:06
文章的观点我全部赞同,大部分我就是这么做的。除了get,set方法和import类,因为这是统一要求,但是我自己写着玩的程序都不这么干。
2013-08-12 19:32
呵呵,有两个问题:1)写成接口的另外一层意思是对于未来的不可预知性,即使当前只有一种实现;2)使用get/set,至少可以在改成多线程的情况下不动声色地加锁解锁。
2013-08-12 18:43

引用来自“貌似掉线”的评论

引用来自“_2kw”的评论

google编码规范里面 都是写着禁止哦。。。。

刚看到google android源码里有goto语句,但代码一点也不失优雅。
JB/dalvik/dexopt/OptMain.cpp

android最开始不是google写的吧...
2013-08-12 17:41

引用来自“唐海康”的评论

引用来自“風一樣的男子”的评论

瞎扯
压根就不理解接口编程干嘛的
你要是涉及到远程调用啥的,难道你把实现类打包丢给调用者?

都是假设……一开始分析好需求,如果只有一种实现还用接口干嘛。面向接口不能滥用。

如果需要提供给外部调用,同时又不想让调用者知道具体实现呢?
2013-08-12 17:38
! 黑黑黑、
2013-08-12 17:08
看完这篇文章,我忍不住“呵呵”
2013-08-12 17:05

引用来自“風一樣的男子”的评论

瞎扯
压根就不理解接口编程干嘛的
你要是涉及到远程调用啥的,难道你把实现类打包丢给调用者?

都是假设……一开始分析好需求,如果只有一种实现还用接口干嘛。面向接口不能滥用。
2013-08-12 17:01

引用来自“囫囵吞枣”的评论

虽然你貌似有足够的理由质疑最佳实践,Java本身也没有强制你必须那么做,但是没有这些约定,Java就不会产生Spring,Hibernate,Struts等优秀的框架,比如你反对getter/setter,按照你自己的风格行事,没有了getter/setter,你让Spring如何帮你注入依赖呢

其实有一些框架像play会自动把public转成private,然后帮你加默认的getter和setter的,也可以自己提供,这样不会自动生成。
2013-08-12 16:54

引用来自“貌似掉线”的评论

引用来自“starstroll”的评论

引用来自“崔钢”的评论

import类,而不是import整个包
对于java这样的语言来说,明确的引入类,可以提高编译的速度,当然这个不明显,也不是最重要的。关键是可以提高可读性。

面向接口编程
这个我也觉得意义不是很大,但是如果你需要使用spring,aop技术,多使用接口是好的。

禁用某种语言功能
goto语句问题我就不说了。这个真的没有必要。

使用Setters/getters,禁止public属性
这个东西是javabean规范,如果你需要使用某些框架,这个是很必要的。此外保护对象的内容,这个是封装的基本意识。。。。

尽量责任分离
这些原则,说说就行了,估计也难以做到极致。不如追求,简单明确。

import类只会提高用记事本读代码时的可读性,用IDE的话import直接被藐视,本来命名空间这类东西就不是必须的。

AOP技术同样地降低代码可读性,少了几行代码缺在代码中隐藏了太多的陷阱。

goto说实话,如果if段落长的话,真不如goto逻辑来得清晰,存在必定合理。

同时存在getter/setter的属性有什么东西是被保护的?不同时存在getter/setter的属性还是占极少数,个人认为这个论点有一定道理。

凡事不能极端,必须有一个平衡点。

我也不同意作者这一 点。事实上,并不难维护,毕竟现在也不是都用编辑器写代码,使用ide能使效率更高,而关于这一点,使用eclipse仅需要做的只是按下ctrl+shift+O。
goto语句也在android源码中刚读到,在那代码里对goto的使用使代码一点也不失优雅。

同时存在getter跟setter和直接public并不完全相同,函数内是可以做一些控制和变换的,但是很多getter和setter与直接public没有区别。
2013-08-12 16:53
不服来辨!!! >.<
2013-08-12 16:34

引用来自“haitao”的评论

引用来自“風一樣的男子”的评论

引用来自“haitao”的评论

引用来自“風一樣的男子”的评论

瞎扯
压根就不理解接口编程干嘛的
你要是涉及到远程调用啥的,难道你把实现类打包丢给调用者?

作者说了:类改为接口,非常简单——需要时再改也不迟。除非一开始就是知道必须按接口写的

这不是方便不方便的问题,接口编程的本质是什么?屏蔽实现
好好理解再说

文明上网,理性发言

编程的本质是什么?
代码易理解,编写高效,运行高效,维护高效

编程的本质,不是提高生产力么?
2013-08-12 16:26

引用来自“風一樣的男子”的评论

引用来自“haitao”的评论

引用来自“風一樣的男子”的评论

瞎扯
压根就不理解接口编程干嘛的
你要是涉及到远程调用啥的,难道你把实现类打包丢给调用者?

作者说了:类改为接口,非常简单——需要时再改也不迟。除非一开始就是知道必须按接口写的

这不是方便不方便的问题,接口编程的本质是什么?屏蔽实现
好好理解再说

文明上网,理性发言

编程的本质是什么?
代码易理解,编写高效,运行高效,维护高效
2013-08-12 16:18

引用来自“starstroll”的评论

引用来自“崔钢”的评论

import类,而不是import整个包
对于java这样的语言来说,明确的引入类,可以提高编译的速度,当然这个不明显,也不是最重要的。关键是可以提高可读性。

面向接口编程
这个我也觉得意义不是很大,但是如果你需要使用spring,aop技术,多使用接口是好的。

禁用某种语言功能
goto语句问题我就不说了。这个真的没有必要。

使用Setters/getters,禁止public属性
这个东西是javabean规范,如果你需要使用某些框架,这个是很必要的。此外保护对象的内容,这个是封装的基本意识。。。。

尽量责任分离
这些原则,说说就行了,估计也难以做到极致。不如追求,简单明确。

import类只会提高用记事本读代码时的可读性,用IDE的话import直接被藐视,本来命名空间这类东西就不是必须的。

AOP技术同样地降低代码可读性,少了几行代码缺在代码中隐藏了太多的陷阱。

goto说实话,如果if段落长的话,真不如goto逻辑来得清晰,存在必定合理。

同时存在getter/setter的属性有什么东西是被保护的?不同时存在getter/setter的属性还是占极少数,个人认为这个论点有一定道理。

凡事不能极端,必须有一个平衡点。

我也不同意作者这一 点。事实上,并不难维护,毕竟现在也不是都用编辑器写代码,使用ide能使效率更高,而关于这一点,使用eclipse仅需要做的只是按下ctrl+shift+O。
goto语句也在android源码中刚读到,在那代码里对goto的使用使代码一点也不失优雅。
2013-08-12 16:12

引用来自“zengraoli”的评论

只看第2点----面向接口编程,只会多增加代码量
要不然,咱们多学学c?不要使用类,在main里面写入全部的方法?那样会不会减少很多的代码行?

C也不是把全部方法写入main,这是第一点。
第二,不使用类和面向接口编程没有什么直接的关系。盲目地使用接口并不代表它的反面就是不面向对象。
2013-08-12 16:10

引用来自“_2kw”的评论

google编码规范里面 都是写着禁止哦。。。。

刚看到google android源码里有goto语句,但代码一点也不失优雅。
JB/dalvik/dexopt/OptMain.cpp
2013-08-12 15:55

引用来自“1inus”的评论

引用来自“囫囵吞枣”的评论

虽然你貌似有足够的理由质疑最佳实践,Java本身也没有强制你必须那么做,但是没有这些约定,Java就不会产生Spring,Hibernate,Struts等优秀的框架,比如你反对getter/setter,按照你自己的风格行事,没有了getter/setter,你让Spring如何帮你注入依赖呢

为啥不能注入?who tell you that?

O spring 是遵守这些规范的
2013-08-12 15:50

引用来自“囫囵吞枣”的评论

虽然你貌似有足够的理由质疑最佳实践,Java本身也没有强制你必须那么做,但是没有这些约定,Java就不会产生Spring,Hibernate,Struts等优秀的框架,比如你反对getter/setter,按照你自己的风格行事,没有了getter/setter,你让Spring如何帮你注入依赖呢

为啥不能注入?who tell you that?
2013-08-12 15:47
垃圾文章。
2013-08-12 15:39

引用来自“haitao”的评论

引用来自“風一樣的男子”的评论

瞎扯
压根就不理解接口编程干嘛的
你要是涉及到远程调用啥的,难道你把实现类打包丢给调用者?

作者说了:类改为接口,非常简单——需要时再改也不迟。除非一开始就是知道必须按接口写的

这不是方便不方便的问题,接口编程的本质是什么?屏蔽实现
好好理解再说
2013-08-12 13:52

引用来自“蛋蛋为何忧伤”的评论

引用来自“starstroll”的评论

引用来自“工头叫我去搬砖”的评论

欧阳锋练九阴真经都能练出门道,小喽啰这样的话早死了;风清扬说剑法就一定要用剑吗,真气所至,草木皆为利刃,飞花落木亦可伤人,不认识他的人肯定认为风在放屁。层次不同看到的东西不同,所以在还没到这个层次前,还是老老实实按照师傅给的剑谱套路来吧

如果人都是这样的话,世界就不会进步,中国的人只能舞刀弄剑,百多年前就被灭了。只有不断的质疑才有突破的空间。

质疑也要有一定的资本才行,你让上幼儿园的小孩子去质疑java代码的最佳实践,他/她会质疑出什么....

有什么资格看不起幼儿园的小孩子?经过时间的洗礼自问我已经没有当年幼儿园时期的创新思维了。伽利略也是在不断怀疑人类的“真理”才能发现真理。
2013-08-12 13:47
这篇文章不好。——直直的回答。
2013-08-12 13:42
不太同意gettser和setter,其他的ok
2013-08-12 13:30
如果你把一棵树砍成牙签那么大小的块,你得到的就是一堆垃圾。
2013-08-12 13:03
不错,确实触及了一些傻叉的傻叉做法。
2013-08-12 12:56

引用来自“starstroll”的评论

引用来自“工头叫我去搬砖”的评论

欧阳锋练九阴真经都能练出门道,小喽啰这样的话早死了;风清扬说剑法就一定要用剑吗,真气所至,草木皆为利刃,飞花落木亦可伤人,不认识他的人肯定认为风在放屁。层次不同看到的东西不同,所以在还没到这个层次前,还是老老实实按照师傅给的剑谱套路来吧

如果人都是这样的话,世界就不会进步,中国的人只能舞刀弄剑,百多年前就被灭了。只有不断的质疑才有突破的空间。

质疑也要有一定的资本才行,你让上幼儿园的小孩子去质疑java代码的最佳实践,他/她会质疑出什么....
2013-08-12 12:52

引用来自“chocotan”的评论

引用来自“艾皮狗”的评论

非常认同文章的观点,比如说那个"面向接口编程",真的是被滥用了。看看现在这些工程,调用一个service,首先是一个接口,然后是该接口的实现,接着又在里边调用dao接口,最后才是dao实现,而整个工程的service和dao接口都只有一个实现,却不得不写那么多无聊的接口,找代码也不方便,java本身就是一个语法很啰嗦的语言,这样一搞,开发效率就更低了

因为你的接口只有一个实现

强烈赞同啊
2013-08-12 12:49
虽然你貌似有足够的理由质疑最佳实践,Java本身也没有强制你必须那么做,但是没有这些约定,Java就不会产生Spring,Hibernate,Struts等优秀的框架,比如你反对getter/setter,按照你自己的风格行事,没有了getter/setter,你让Spring如何帮你注入依赖呢
2013-08-12 12:39
getter/setter最主要的意义应该是能够被代理,部分属性getter/setter部分public显然不合理,加上我们无法预期到将来增加的模块,这种做法没什么不合理。所以这点我坚决不同意。
其他的大多是滥用,显然任何事情都得有个度
2013-08-12 12:36
个人表示:仁者见仁,智者见智!
如果你把一棵树砍成牙签那么大小的块,你得到的就是一堆垃圾。
这个举例有点极端了,也许是我太钻牛角尖了。
2013-08-12 12:33
brew upgrade vim
brew upgrade macvim
2013-08-12 12:20
有道理,但没有意义。我说明天是世界末日,也可以找到很多理由支持。但是不一定会发生呀。
2013-08-12 12:19
这么说吧,实际上根本不存在通用的最佳实践。最佳实践根据不同属性的项目而不同。这些所谓的最佳实践在一定程度上抑制了程序员的思考,最常见的问题就是getter/setter,绝大多数都是用在pojo上,其实除了某些框架要求外,这些getter/setter根本毫无用处,反而会有副作用。另外,很多人用惯了getter/setter,根本不会去思考什么应该暴露,什么应该保护。看似什么都保护了,其实是什么都暴露了
2013-08-12 12:13

引用来自“崔钢”的评论

import类,而不是import整个包
对于java这样的语言来说,明确的引入类,可以提高编译的速度,当然这个不明显,也不是最重要的。关键是可以提高可读性。

面向接口编程
这个我也觉得意义不是很大,但是如果你需要使用spring,aop技术,多使用接口是好的。

禁用某种语言功能
goto语句问题我就不说了。这个真的没有必要。

使用Setters/getters,禁止public属性
这个东西是javabean规范,如果你需要使用某些框架,这个是很必要的。此外保护对象的内容,这个是封装的基本意识。。。。

尽量责任分离
这些原则,说说就行了,估计也难以做到极致。不如追求,简单明确。

import类只会提高用记事本读代码时的可读性,用IDE的话import直接被藐视,本来命名空间这类东西就不是必须的。

AOP技术同样地降低代码可读性,少了几行代码缺在代码中隐藏了太多的陷阱。

goto说实话,如果if段落长的话,真不如goto逻辑来得清晰,存在必定合理。

同时存在getter/setter的属性有什么东西是被保护的?不同时存在getter/setter的属性还是占极少数,个人认为这个论点有一定道理。

凡事不能极端,必须有一个平衡点。
2013-08-12 11:35
最不喜欢的就是:Setters/Getters
2013-08-12 11:30
很好的文章,至少把这些“最佳实践”放在了一个可讨论的位置上了
2013-08-12 10:56

引用来自“風一樣的男子”的评论

瞎扯
压根就不理解接口编程干嘛的
你要是涉及到远程调用啥的,难道你把实现类打包丢给调用者?

作者说了:类改为接口,非常简单——需要时再改也不迟。除非一开始就是知道必须按接口写的
2013-08-12 10:54

引用来自“工头叫我去搬砖”的评论

欧阳锋练九阴真经都能练出门道,小喽啰这样的话早死了;风清扬说剑法就一定要用剑吗,真气所至,草木皆为利刃,飞花落木亦可伤人,不认识他的人肯定认为风在放屁。层次不同看到的东西不同,所以在还没到这个层次前,还是老老实实按照师傅给的剑谱套路来吧

假九阴真经
2013-08-12 10:53
欧阳锋练九阴真经都能练出门道,小喽啰这样的话早死了;风清扬说剑法就一定要用剑吗,真气所至,草木皆为利刃,飞花落木亦可伤人,不认识他的人肯定认为风在放屁。层次不同看到的东西不同,所以在还没到这个层次前,还是老老实实按照师傅给的剑谱套路来吧
2013-08-12 10:41
goto 在跳出多重循环还有点用
2013-08-12 10:31
瞎扯
压根就不理解接口编程干嘛的
你要是涉及到远程调用啥的,难道你把实现类打包丢给调用者?
2013-08-12 10:27

引用来自“艾皮狗”的评论

非常认同文章的观点,比如说那个"面向接口编程",真的是被滥用了。看看现在这些工程,调用一个service,首先是一个接口,然后是该接口的实现,接着又在里边调用dao接口,最后才是dao实现,而整个工程的service和dao接口都只有一个实现,却不得不写那么多无聊的接口,找代码也不方便,java本身就是一个语法很啰嗦的语言,这样一搞,开发效率就更低了

因为你的接口只有一个实现
2013-08-12 10:26
挺好,做了这么多年开发确实在有些点上有共鸣,但这其实是一个个人编程和合作编程的问题。
如果自己一个人或是2个人的工程代码,有些点确实比较适用,比如接口,set,get,public。但如果是一个team的工程,显然还是遵守规范才是第一位的。
这些都是老生常谈的问题,其实笔者更多的是在拿Java开刀,这些冗余的复杂不是一次两次进行这样的争论了。

但现在自己在写一些小工程的时候确实不再老老实实的写哪些接口,set,get什么规范之类的了。
2013-08-12 10:21
基本都同意。
2013-08-12 10:10
作者一定是一个自由开发者。他如果试试在一个团队里工作,且团队里有1-2两新手的情况下,他这些玩意儿通通不适用。
2013-08-12 09:59
非常认同文章的观点,比如说那个"面向接口编程",真的是被滥用了。看看现在这些工程,调用一个service,首先是一个接口,然后是该接口的实现,接着又在里边调用dao接口,最后才是dao实现,而整个工程的service和dao接口都只有一个实现,却不得不写那么多无聊的接口,找代码也不方便,java本身就是一个语法很啰嗦的语言,这样一搞,开发效率就更低了
2013-08-12 09:57
很极端
2013-08-12 09:51
拒绝接受本文看法
2013-08-12 09:38
除了语法,估计没有什么是必须遵守的。开发者也应该放得开,很多都不是必须的,只是有些大公司这么规范了,所以被传开。我估计对于黑客来说,这些都是笑话。我个人认为,只要是易于理解,运行正确、高效,其他都不是问题。
2013-08-12 09:37
楼主代码一般都一个人写吧?
2013-08-12 09:29
钻牛角尖了
2013-08-12 09:26
import类,而不是import整个包
对于java这样的语言来说,明确的引入类,可以提高编译的速度,当然这个不明显,也不是最重要的。关键是可以提高可读性。

面向接口编程
这个我也觉得意义不是很大,但是如果你需要使用spring,aop技术,多使用接口是好的。

禁用某种语言功能
goto语句问题我就不说了。这个真的没有必要。

使用Setters/getters,禁止public属性
这个东西是javabean规范,如果你需要使用某些框架,这个是很必要的。此外保护对象的内容,这个是封装的基本意识。。。。

尽量责任分离
这些原则,说说就行了,估计也难以做到极致。不如追求,简单明确。
2013-08-12 09:25
类与接口的设计应该遵循领域模型。
2013-08-12 09:24
这些观点适合个人开发,如果团队开发,代码会很会乱,不好维护.
2013-08-12 09:14
大家要注意的是过犹不及这句话。对于某些规则不明所以照搬照抄过犹不及,看完这篇文章后就一味拒绝这些在绝大多数情况下是良好建议的规范更是过犹不及。
其实很多人在骂get set,但是其实根本不知道为什么get set吧。
2013-08-12 09:04
能有这样不一样的思路非常赞!不编寻常吗码
2013-08-12 09:03
这篇文章很可笑
2013-08-12 08:58
没什么意义
讨论的很多问题其实只是个"度"的问题
2013-08-12 08:55
谁说面向接口编程就一定得用接口?别说别人极端 本文就很极端
2013-08-12 08:54
很赞同作者观点、
2013-08-12 08:52
interface:有人写了一个interface里面有一个方法,方法有10个字符串参数,你说有用?

getter setter:只有1%的情况下,才需要在setter中增加额外的判断,而且这时候object已经不是简单的bean了。

2013-08-12 08:52
getter/setter和单个返回这2条比较同意,其他不能赞同
getter/setter在框架里运作很好,但是自己写一些东西,完全没必要全部这样写
2013-08-12 08:49
同感呀,Java动不动就是接口,很多getter setter,一点都不简洁
2013-08-12 08:43
拒绝getter setter
2013-08-12 08:35
有点极端啊
2013-08-12 08:33
只看第2点----面向接口编程,只会多增加代码量
要不然,咱们多学学c?不要使用类,在main里面写入全部的方法?那样会不会减少很多的代码行?
2013-08-12 08:25
极为认同文中看法,Java社区普遍有过度规范、盲目规范的问题
2013-08-12 08:19
视情况而定,这些规范大多是为适应多人协作,如果团队有几十人,就会发现这些东西很有用
2013-08-12 08:19
除了最后一点“尽量责任分离“ 在我这边没有什么实践性意外,其他的所有条目,我都是用文章中所支持的风格。
2013-08-12 08:16
我表示很赞同这文章里面的观点。
2013-08-12 08:02
完全同意本文观点,而且也一直是这么做的。
2013-08-12 07:47
google编码规范里面 都是写着禁止哦。。。。
2013-08-12 07:41
拒绝接受本文看法
2013-08-12 07:37
通常都是说"不推荐",而不是"禁止"
2013-08-12 07:03
挺针对性的!但是我也拒绝接受本文的看法,哈
回复 @
{{emojiItem.symbol}}
返回顶部
顶部