如何说服同事修改些代码的风格(JAVA的)。。求指引

gKiwi 发布于 2013/07/02 14:16
阅读 2K+
收藏 4

代码如下:

//同事的。。。
public interface IXXXSV{
    public int getXXXByList(Map map,ArrayList<String> ColumnList,ArrayList<ArrayList<String>> ResultList) throws Exception;
}

//我的。。
IXXXSV sv=(IXXXSV)Factory.getSV(IXXXSV.class);
Map inMap=new HashMap();
List columnList=new ArrayList();
List resultList=new ArrayList();
sv.getXXXByList(inMap,columnList,resultList);
我们都说是扩展性什么的,但是一下子说服力貌似不高,而且他那样子写也不算错。


所以我就很纠结了,怎样说服他改下代码风格,不然我每次声明的话,都得 写成ArrayList<String> list=new ArrayList<String>();累都累死了。。 

如何向同事有效解说而不是显得自己很装逼。。

我觉得这个能写篇文章了~
--------------------------------------------------------------PS

看到一些回复表示自己可能写的一点乱了,问题如下:

在声明方法时候,入参声明是用"接口+匿名泛型"还是“实现类+显式泛型”?。我如何说服他 方法的入参应该用"接口+匿名泛型"?

以下是话题补充:

@gKiwi:可能我说的不够明白。再次补充下: 我的意思不是说声明之间有没有空格之类的或者格式美观之类的(代码是我纯手敲的,没考虑这方面),想表达的意思是关于“接口的使用”问题! 同事声明成ArrayList<String> arrlist 这样子我调用他接口的时候,声明的对象也必须是ArrayList(或者其子类),而List list则会爆出编译异常。这样子是非常痛苦的。。 (2013/07/02 18:39)
加载中
0
罪恶的花生
noday
noday
声明要用接口不要用实现类
gKiwi
gKiwi
有啥建议没?
gKiwi
gKiwi
主要集中在方法声明时候,入参声明应该是用”接口“还是"实现类"的问题
0
喜之郎
喜之郎
哈哈,我同事跟你说的一模一样,我到是不管了,主要是他写的我不用去维护。我跟你的风格一样,主要是考虑可读性,容易Debug,要是一行抛了空指针异常,很容易看出哪个变量为空。要是你是同事的上级,就去说。否则去说就可能会被认为装逼。每个人有不同的风格也正常。
gKiwi
gKiwi
方便自己,为难别人这个是。。
0
铂金浪子
铂金浪子
强迫症患者!
gKiwi
gKiwi
是代码编译不过的问题。。。
0
铂金胖子
铂金胖子
说服你的公司用统一的代码风格。
铂金胖子
铂金胖子
@gKiwi 说服你们的团队负责人用统一的代码风格。我们以前的项目,每次都要先规定好代码的风格,还有出错的日志等等。要有说明文登,demo等。
gKiwi
gKiwi
团队都是临时组,磨合起来略痛苦~
0
vivid
vivid

我倒是觉得你同事错的不厉害,你比他错的厉害。

公共接口不使用泛型很容易出错。你的代码出错的几率更高,而且你的代码更不宜人类阅读

vivid
vivid
回复 @gKiwi : 不适合阅读指的是没有使用泛型
gKiwi
gKiwi
回复 @vivid : 嗯,学习了。目前同事第三个复杂点的参数改成List<List> list 了,这样子要好些。还想请教下的就是:说我的代码不容易人类阅读?。。求个适合人类阅读的格式。。谢谢了
vivid
vivid
回复 @gKiwi : 同时回复你的补充问题:参数要是用:接口+匿名泛型。但是也不是绝对。例如:List<? extends IMyInterface) or List<String> or List<IMyInterface>这几种是比较合理的
vivid
vivid
回复 @gKiwi : 这个接口定义的确实是有问题,不应该使用ArrayList,而应该使用List接口。但是接口中定义泛型是一个很好的编程习惯。如果不使用泛型,那么实现接口的人就要崩溃了,因为他要处理不同的类型的情况,而这种类型是不可预估的;那么调用接口的人也同样会疯掉,他可能发现我正确的传入了参数,但是系统抛异常了。(不能口头上约定接口的参数类型,尤其是多人协同的时候)
gKiwi
gKiwi
我觉得不是,因为在调用时候我无法确定传入的泛型到底什么,而这样子显式声明的话,只能迫使其扩展性降低(略装。。)。我到觉得他应该在取值时候进行显示类型转换为好。特别是在大项目中,上百人之间接口调用这样子是非常痛苦的!
下一页
0
魔力猫
魔力猫
使用接口而不是具体实现类应该是常识。除非有特别的原因,否则不应该把具体实现 暴露出来。这个问题其实是很严重的设计问题,建议找你们团队领导好好谈一谈,规范一下开发规范。
gKiwi
gKiwi
确实如此。但是公司目前的状况属于很多个地方有分公司,然后某个项目需要再从各个地方调用,临时组团对进行开发,磨合起来比较痛苦。
0
levis999
levis999

public int getXXXByList(Map map,ArrayList<String> ColumnList,ArrayList<ArrayList<String>> ResultList) throws Exception;

我觉得是个规范问题,,其中ArrayList应该是用List。

gKiwi
gKiwi
常识吧。当你自己写很多小块代码自己测试完的时候,你就会发现使用接口的妙处了。
0
lsdbestboy
lsdbestboy
两个人的code都有问题,不过楼主的问题更厉害~
gKiwi
gKiwi
求指教,不胜感激。
0
leo108
leo108
嗯……我看到等号两边都没空格就觉得代码风格不好
gKiwi
gKiwi
这个是文本框手打的,只是想表述下方法声明时候,参数是用“接口"还是用"实现类",与有没有空格木关系。。
乖猫的老公
乖猫的老公
+1,看上去密密麻麻的,太不美观了
0
sun007521
sun007521
感觉看你同事代码舒服
sun007521
sun007521
说服他,让给修改,呵呵
gKiwi
gKiwi
确实舒服,但是代价就是不易维护,其他人调用他代码的时候非常痛苦!
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部