`
daoger
  • 浏览: 529750 次
  • 性别: Icon_minigender_1
  • 来自: 山东济南
社区版块
存档分类
最新评论

让人头疼的新手

阅读更多
刚进公司没多久时,领导让我带两个新人(07年7月份毕业的)。他们两个是试用期3个月都过了之后才参与到我们现在的项目中来的,算起来他们也工作了快一年了,可是今天无意中修改一个他们写过的一个类文件时,看到他们写的一些代码,让我又好气又好笑。可能也是我以前只注意给他们测试功能了,没怎么注意代码方面的问题吧!

晒晒他们的部分代码!


/**
	 * 查询方案金额总和
	 * 
	 * @param lottype
	 *            Long
	 * @return double
	 */
	public Double getsummation(Long lottype)
	{
		double sum = 0.00;
		List ls = null;
		String sql = "";
		if (sql != null)
		{
			sql = " select sum(amount) from OccurProj a where a.lottype = '" + lottype + "' ";
		}
		ls = find(sql);
		if (ls != null && ls.isEmpty())
		{
			for (int i = 0; i < ls.size(); i++)
			{
				OccurProj occurproj = (OccurProj) ls.get(i);
				sum = sum + occurproj.getAmount();
			}
		}
		return sum;
	}




/**
	 * 根据主键查询明细信息
	 * 
	 * @param occurproj
	 *            OccurProj
	 * @return String
	 */
	public List queryById(Long id)
	{
		String sql = "";
		if (sql != null)
		{
			sql = " from OccurProj a where a.id=" + id;
		}
		return translateCode2Str(find(sql));
	}



/**
	 * 参数查询
	 * 
	 * @param occurproj
	 *            OccurProj
	 * @param lottype
	 *            Long
	 * @return List
	 */
	public List queryByPara(String username, Long lottype)
	{
		String sql = "";
		if (username != null && username.length() > 0)
		{
			sql += " and a.username like ? ";
		}
		if (sql.length() > 1)
		{
			sql = " from OccurProj a where 1=1 and a.lottype = '" + lottype + "' " + sql;
		} else
			sql = " from OccurProj where lottype = '" + lottype + "' ";
		return translateCode2Str(find(sql));
	}


我现在也体会到当初我找工作的时候为什么那么难了,同时也提醒一下即将毕业的朋友,想找到不错的工作,你的工作态度确实得端正!

以前没带过新人,大家也介绍一下,带新人的经验吧!


我需要说明一下,我发贴的目的是想提醒一下临近毕业的朋友,不是公司不需要应届毕业生,应届毕业生有优点也有缺点。但是你进入公司以后,自己的发展和进步还是要靠自己的努力。工作了半年还能写出这样令人佩服的代码,那就只能是你自己的问题了,当然也有我自己的责任,毕竟是我带他们。

有则改之,无则加勉,别无他意,仅此而已!
分享到:
评论
79 楼 mylifestyle1225 2008-05-14  
liusong1111 写道
zqrain 写道
daoger 写道
zqrain 写道
实在看不过去了!
如此批评应届生,难道你不是从菜鸟慢慢成高手的?!(假定你真的是高手的话)
我倒是非常质疑你目前的能力。团队里面竟然没有合理的coding standard和architecture,还厚着面皮拿应届生说事。这就是真正的高手所为吗?!
自己好好反思一下,你们那边的应届生为什么会犯这种错误吧,高手同志!


每一个人都是从菜鸟成长起来的,但是成长过程中的成功更多的还是来自于自己的努力,师父领进门,修行在个人!

我以前也会范一些错误,当初也没少唉批,但是能写出这样的代码:
 String sql = "";   
        if (sql != null)  

那就不是水平问题了,这是工作态度的问题。我承认这其中有我的责任,但是象这样的问题,没有人教就不知道该怎么做了么?


客观的说,我一点也没有看出来上面的code是“态度”问题。我觉得这种错误是普通的菜鸟都会犯的错误,态度好的菜鸟也可能犯。

我倒觉得这个问题的产生大部分原因是开发流程和管理问题。

请问,你们的程序员为什么会用字符串拼SQL?难道你们没有相关的coding standard?!难道你们没有基本的code review?!

我不清楚,这个程序员犯了多次错误才被发现和纠正?还是多次被纠正之后依然“我行我素”?=>到底是招了不该招的人?还是没有良好的管理和流程?(对于这个问题,我对你们不清楚,无法得出结论,你自己倒是可以随便思考一下)


抛出异常的爱 写道
colin4k 写道
抛出异常的爱 写道
zqrain 写道
实在看不过去了!
如此批评应届生,难道你不是从菜鸟慢慢成高手的?!(假定你真的是高手的话)
我倒是非常质疑你目前的能力。团队里面竟然没有合理的coding standard和architecture,还厚着面皮拿应届生说事。这就是真正的高手所为吗?!
自己好好反思一下,你们那边的应届生为什么会犯这种错误吧,高手同志!


我们team没有coding standard

只有review
PS:我也是被人天天批评成长起来的。我不认为这样成长起来有什么不对,或是有更好的方式能成长起来。
PS2:现在我也还在被人批评。比如这个坛子上的 。。刘松。。他激励我看ror的方式也很激烈。

能把review形成制度很难得啊

就三个人什么形式都很好实现
如果有五个人我估计想review就有点难了。


你是在做管理。
我更赞同zqrain的说法,更多的应该思考用什么手段去防止此类事情发生。
我们现在的做法,每个新功能、任务或BUG,都在BUG管理系统上对应一个ticket,也就是说,任何工作,都有据可查。
每次代码提交,都必须对应一个ticket -- 通过SVN的hook自动检查,comment中没有ticket号的会提交失败。
每次resolve ticket时,都必须先提交给另一个人review -- 通过定制BUG管理系统的流程做到。
code review的人,可以在BUG管理系统中,看到历次commit的历史记录(修改的文件列表,点击文件链接可以看到SVN Diff)。每次commit,都有邮件通知。
每次code review,也必须检查testcase的编写情况。
有CC做自动测试,对失败的测试给出报告和邮件通知。情况严重的,从制度上,可能有一定的惩罚措施。
这种一对一的强性review机制,不知道对楼主有没有帮助。

定期不定期的技术交流、专题讨论、结对编程等,也是解除这种情况的办法。

毕竟,这种很明显的代码问题,如果只是在偶然的情况才发现,第一需要解决的,就是制度问题。有了合适的制度,才能把经验不丰富的毕业生孵化成高手。






客观的赞同你的说法.不错的工作氛围.
78 楼 liusong1111 2008-05-14  
zqrain 写道
daoger 写道
zqrain 写道
实在看不过去了!
如此批评应届生,难道你不是从菜鸟慢慢成高手的?!(假定你真的是高手的话)
我倒是非常质疑你目前的能力。团队里面竟然没有合理的coding standard和architecture,还厚着面皮拿应届生说事。这就是真正的高手所为吗?!
自己好好反思一下,你们那边的应届生为什么会犯这种错误吧,高手同志!


每一个人都是从菜鸟成长起来的,但是成长过程中的成功更多的还是来自于自己的努力,师父领进门,修行在个人!

我以前也会范一些错误,当初也没少唉批,但是能写出这样的代码:
 String sql = "";   
        if (sql != null)  

那就不是水平问题了,这是工作态度的问题。我承认这其中有我的责任,但是象这样的问题,没有人教就不知道该怎么做了么?


客观的说,我一点也没有看出来上面的code是“态度”问题。我觉得这种错误是普通的菜鸟都会犯的错误,态度好的菜鸟也可能犯。

我倒觉得这个问题的产生大部分原因是开发流程和管理问题。

请问,你们的程序员为什么会用字符串拼SQL?难道你们没有相关的coding standard?!难道你们没有基本的code review?!

我不清楚,这个程序员犯了多次错误才被发现和纠正?还是多次被纠正之后依然“我行我素”?=>到底是招了不该招的人?还是没有良好的管理和流程?(对于这个问题,我对你们不清楚,无法得出结论,你自己倒是可以随便思考一下)


抛出异常的爱 写道
colin4k 写道
抛出异常的爱 写道
zqrain 写道
实在看不过去了!
如此批评应届生,难道你不是从菜鸟慢慢成高手的?!(假定你真的是高手的话)
我倒是非常质疑你目前的能力。团队里面竟然没有合理的coding standard和architecture,还厚着面皮拿应届生说事。这就是真正的高手所为吗?!
自己好好反思一下,你们那边的应届生为什么会犯这种错误吧,高手同志!


我们team没有coding standard

只有review
PS:我也是被人天天批评成长起来的。我不认为这样成长起来有什么不对,或是有更好的方式能成长起来。
PS2:现在我也还在被人批评。比如这个坛子上的 。。刘松。。他激励我看ror的方式也很激烈。

能把review形成制度很难得啊

就三个人什么形式都很好实现
如果有五个人我估计想review就有点难了。


你是在做管理。
我更赞同zqrain的说法,更多的应该思考用什么手段去防止此类事情发生。
我们现在的做法,每个新功能、任务或BUG,都在BUG管理系统上对应一个ticket,也就是说,任何工作,都有据可查。
每次代码提交,都必须对应一个ticket -- 通过SVN的hook自动检查,comment中没有ticket号的会提交失败。
每次resolve ticket时,都必须先提交给另一个人review -- 通过定制BUG管理系统的流程做到。
code review的人,可以在BUG管理系统中,看到历次commit的历史记录(修改的文件列表,点击文件链接可以看到SVN Diff)。每次commit,都有邮件通知。
每次code review,也必须检查testcase的编写情况。
有CC做自动测试,对失败的测试给出报告和邮件通知。情况严重的,从制度上,可能有一定的惩罚措施。
这种一对一的强性review机制,不知道对楼主有没有帮助。

定期不定期的技术交流、专题讨论、结对编程等,也是解除这种情况的办法。

毕竟,这种很明显的代码问题,如果只是在偶然的情况才发现,第一需要解决的,就是制度问题。有了合适的制度,才能把经验不丰富的毕业生孵化成高手。





77 楼 liusong1111 2008-05-14  
抛出异常的爱 写道
zqrain 写道
实在看不过去了!
如此批评应届生,难道你不是从菜鸟慢慢成高手的?!(假定你真的是高手的话)
我倒是非常质疑你目前的能力。团队里面竟然没有合理的coding standard和architecture,还厚着面皮拿应届生说事。这就是真正的高手所为吗?!
自己好好反思一下,你们那边的应届生为什么会犯这种错误吧,高手同志!


我们team没有coding standard

只有review
PS:我也是被人天天批评成长起来的。我不认为这样成长起来有什么不对,或是有更好的方式能成长起来。
PS2:现在我也还在被人批评。比如这个坛子上的 。。刘松。。他激励我看ror的方式也很激烈。


你觉得是激励你看ror我也没办法。
在我看来,你在技术版发的贴基本都是垃圾,而且往往张扬的对新手指手划脚,我如果不站出来表达一下愤慨之情,实在对不住即将逝去的青春。

你根本就不懂技术。

76 楼 抛出异常的爱 2008-05-14  
zqrain 写道
抛出异常的爱 写道
我们team没有coding standard 只有review


当然需要有review。

没有review的coding standard,最后就是没有人看,也没有人执行的“管理规章”;
没有coding standard的review,就是缺乏“法制”的技术“独裁”。

没想过。这么多。。。
不过coding standard 除了命名方式以外还要把什么写在里面呢?
75 楼 zqrain 2008-05-14  
抛出异常的爱 写道
我们team没有coding standard 只有review


当然需要有review。

没有review的coding standard,最后就是没有人看,也没有人执行的“管理规章”;
没有coding standard的review,就是缺乏“法制”的技术“独裁”。
74 楼 抛出异常的爱 2008-05-14  
colin4k 写道
抛出异常的爱 写道
zqrain 写道
实在看不过去了!
如此批评应届生,难道你不是从菜鸟慢慢成高手的?!(假定你真的是高手的话)
我倒是非常质疑你目前的能力。团队里面竟然没有合理的coding standard和architecture,还厚着面皮拿应届生说事。这就是真正的高手所为吗?!
自己好好反思一下,你们那边的应届生为什么会犯这种错误吧,高手同志!


我们team没有coding standard

只有review
PS:我也是被人天天批评成长起来的。我不认为这样成长起来有什么不对,或是有更好的方式能成长起来。
PS2:现在我也还在被人批评。比如这个坛子上的 。。刘松。。他激励我看ror的方式也很激烈。

能把review形成制度很难得啊

就三个人什么形式都很好实现
如果有五个人我估计想review就有点难了。
73 楼 zqrain 2008-05-14  
daoger 写道
zqrain 写道
实在看不过去了!
如此批评应届生,难道你不是从菜鸟慢慢成高手的?!(假定你真的是高手的话)
我倒是非常质疑你目前的能力。团队里面竟然没有合理的coding standard和architecture,还厚着面皮拿应届生说事。这就是真正的高手所为吗?!
自己好好反思一下,你们那边的应届生为什么会犯这种错误吧,高手同志!


每一个人都是从菜鸟成长起来的,但是成长过程中的成功更多的还是来自于自己的努力,师父领进门,修行在个人!

我以前也会范一些错误,当初也没少唉批,但是能写出这样的代码:
 String sql = "";   
        if (sql != null)  

那就不是水平问题了,这是工作态度的问题。我承认这其中有我的责任,但是象这样的问题,没有人教就不知道该怎么做了么?


客观的说,我一点也没有看出来上面的code是“态度”问题。我觉得这种错误是普通的菜鸟都会犯的错误,态度好的菜鸟也可能犯。

我倒觉得这个问题的产生大部分原因是开发流程和管理问题。

请问,你们的程序员为什么会用字符串拼SQL?难道你们没有相关的coding standard?!难道你们没有基本的code review?!

我不清楚,这个程序员犯了多次错误才被发现和纠正?还是多次被纠正之后依然“我行我素”?=>到底是招了不该招的人?还是没有良好的管理和流程?(对于这个问题,我对你们不清楚,无法得出结论,你自己倒是可以随便思考一下)
72 楼 mylifestyle1225 2008-05-14  
批评指点完全能接受,有利于成长,别带有挖苦讽刺之类的用心就够了.谁不是从新人开始的?
71 楼 colin4k 2008-05-14  
抛出异常的爱 写道
zqrain 写道
实在看不过去了!
如此批评应届生,难道你不是从菜鸟慢慢成高手的?!(假定你真的是高手的话)
我倒是非常质疑你目前的能力。团队里面竟然没有合理的coding standard和architecture,还厚着面皮拿应届生说事。这就是真正的高手所为吗?!
自己好好反思一下,你们那边的应届生为什么会犯这种错误吧,高手同志!


我们team没有coding standard

只有review
PS:我也是被人天天批评成长起来的。我不认为这样成长起来有什么不对,或是有更好的方式能成长起来。
PS2:现在我也还在被人批评。比如这个坛子上的 。。刘松。。他激励我看ror的方式也很激烈。

能把review形成制度很难得啊
70 楼 daoger 2008-05-14  
zqrain 写道
实在看不过去了!
如此批评应届生,难道你不是从菜鸟慢慢成高手的?!(假定你真的是高手的话)
我倒是非常质疑你目前的能力。团队里面竟然没有合理的coding standard和architecture,还厚着面皮拿应届生说事。这就是真正的高手所为吗?!
自己好好反思一下,你们那边的应届生为什么会犯这种错误吧,高手同志!


每一个人都是从菜鸟成长起来的,但是成长过程中的成功更多的还是来自于自己的努力,师父领进门,修行在个人!

我以前也会范一些低级错误,当初也没少唉批,但是能写出这样的代码:
 String sql = "";   
        if (sql != null)  

那就不是水平问题了,这是工作态度的问题。我承认这其中有我的责任,但是象这样的问题,没有人教就不知道该怎么做了么?
69 楼 抛出异常的爱 2008-05-14  
zqrain 写道
实在看不过去了!
如此批评应届生,难道你不是从菜鸟慢慢成高手的?!(假定你真的是高手的话)
我倒是非常质疑你目前的能力。团队里面竟然没有合理的coding standard和architecture,还厚着面皮拿应届生说事。这就是真正的高手所为吗?!
自己好好反思一下,你们那边的应届生为什么会犯这种错误吧,高手同志!


我们team没有coding standard

只有review
PS:我也是被人天天批评成长起来的。我不认为这样成长起来有什么不对,或是有更好的方式能成长起来。
PS2:现在我也还在被人批评。比如这个坛子上的 。。刘松。。他激励我看ror的方式也很激烈。
68 楼 zqrain 2008-05-14  
实在看不过去了!

如此批评应届生,难道你不是从菜鸟慢慢成高手的?!(假定你真的是高手的话)

我倒是非常质疑你目前的能力。团队里面竟然没有合理的coding standard和architecture,还厚着面皮拿应届生说事。这就是真正的高手所为吗?!

自己好好反思一下,你们那边的应届生为什么会犯这种错误吧,高手同志!
67 楼 wufan0023 2008-05-14  
抛出异常的爱 写道
colin4k 写道
mylifestyle1225 写道
vicksong 写道
能满足客户功能的代码就是好代码

这话赞同.

殊不知很多dead project就是因为这句话形成的

事实上除了最终用户提出的功能外,很多没提出来的功能需求也是需求。

自己项目的总结:
无论什么样的需求(哪怕是一个类),对自己代码负责的精神是要有的。
自己写的哪怕是一个类,经过严格的测试再交给别人用都会有信心。
没有严格要求自己的心态,是没有什么发展的。
66 楼 qjzhyf 2008-05-14  
需求2/8开,往往好多项目都写在那2的需求上。
65 楼 mylifestyle1225 2008-05-14  
涉行不深,恍然大悟,LS的话有道理.
64 楼 抛出异常的爱 2008-05-14  
colin4k 写道
mylifestyle1225 写道
vicksong 写道
能满足客户功能的代码就是好代码

这话赞同.

殊不知很多dead project就是因为这句话形成的

事实上除了最终用户提出的功能外,很多没提出来的功能需求也是需求。
63 楼 colin4k 2008-05-14  
mylifestyle1225 写道
vicksong 写道
能满足客户功能的代码就是好代码

这话赞同.

殊不知很多dead project就是因为这句话形成的
62 楼 mylifestyle1225 2008-05-14  
vicksong 写道
能满足客户功能的代码就是好代码

这话赞同.
61 楼 jiming 2008-05-14  
lzycxy 写道
if (ls != null && ls.isEmpty())  
他想干嘛?


这段代码功能能正常工作?
楼主测过他们的功能的话应该能发现问题啊!
60 楼 不落天空 2008-05-14  
注入就是这个样子形成的。。。。

相关推荐

    AJAX——新手快车道

    是也同样会碰到麻烦,遇到障碍,感觉头痛。如果没有真正的专家的指导,我不 可能如此迅速地将AJAX掌握到目前这样的程度,要真是让我自学三个月,然 后就写出书来的话,那真是在骗钱了。 老手能够快速学习的另一个...

    结构设计中让人头疼的超筋.pdf

    在结构设计中,"超筋"是一个常见的问题,尤其对于新手设计师来说,它可能造成困扰。超筋是指结构或构件的配筋量超过了其实际所需的承载能力,这通常与位移、相对位移过大或者变形不协调有关。位移包括水平位移、竖向...

    新手如何看懂电路图 硬件工程师电路分析物联网模电单片机嵌入式技术.doc

    电路图是电子工程师日常工作中不可或缺的一部分,但新手如何看懂电路图却是一件让人头疼的事。特别是在单片机控制电路中,电路图的理解对整个项目的成功至关重要。 首先,让我们来理解电路图中的符号。VCC 和 GND ...

    Java软件开发工程师简历模板包装教学问题完整版.doc以及工作面试指导技巧

    为什么收费? 1、这是花了我很多天的心思,用心打造...我们每个人平均每年都要做一次简历修改,你跳槽的时候就不会头疼简历了; 我应该怎么用? 因为有很多人照搬,最好不要照搬,按照你自己的想法用这样的套路去包装!

    素材管理软件,媲美eagle

    如日常工作中因为某个项目所收集的图片,或是平时逛设计网站所保存的图,又或者是平常收集的一些源文件,管理起这些素材总是让人头疼。 于是就诞生了开发一个素材管理工具。而且得到了光大设计师的高度认可。 软件...

    postfix权威指南 中文版

    如果sendmail让你头痛万分,现在你有更好的选择 —— Postfix。安全的结构设计与优异的可靠性,使它广受专家的好评与赞赏。Postfix也是许多新手的第一选择,因为它太容易架设了!事实上,Postfix已经成为MacOS X默认...

    熊海博客 v1.4

    不少问题确实让我有些头痛,得到的大部分是埋怨,也慢慢失去了继续开发的动力了,大部分业余时间开发PHP版本的博客了,但我知道,好的东西是要经过千锤百炼的,不管什么事,无法做到让所有人都满意,现在整理了一个...

    常见的PC机硬件、软件故障现象及对应的故障处理方法

    电脑出现的故障总是让人头疼,但掌握了正确的处理方法,大部分问题都能迎刃而解。我们汇总了常见的PC硬件和软件故障现象及其解决方法,帮助你快速诊断并修复电脑问题。 从硬件方面,我们探讨了诸如电源问题、散热...

    金士顿16GU盘DT101 G2量产加全内置UD

    1、前言:为了制作成功这个U盘,我着实费了不少时间和精力,因为是新手。在网上教程很多,看得我是眼花眼花缭乱,看得头疼。不过功夫不负有心人,我用了两天时间终于把这个可爱的启动U盘搞定啦。并且用了一下午时间...

    金士顿16G U盘双启动教程

    1、前言:为了制作成功这个U盘,我着实费了不少时间和精力,因为是新手。在网上教程很多,看得我是眼花眼花缭乱,看得头疼。不过功夫不负有心人,我用了两天时间终于把这个可爱的启动U盘搞定啦。并且用了一下午时间...

    KnockOut 2.77-超强抠图软件及教程

    KnockOut 解决了令人头疼的抠图难题,使枯燥乏味的抠图变为轻松简单的过程。Knockout 2.0不但能够满足常见的抠图需要,而且还可以对烟雾、阴影和凌乱的毛发进行精细抠图,就算是透明的物体也可以轻松抠出。即便你是...

    单片机入门的方法与学习误区介绍

    ARM单片机是大多数新手选择的入门切入点,但由于知识的不足,在设计过程中新手们经常会遇到这样或那样的问题,ARM异常中断返回就是这样一种令人头疼的问题。在ARM的使用问题中异常中断返回是新手们较为苦恼的问题,...

    ARM单片机三种中断返回情况的分析与解决办法

    ARM单片机是大多数新手选择的入门切入点,但由于知识的不足,在设计过程中新手们经常会遇到这样或那样的问题,ARM异常中断返回就是这样一种令人头疼的问题。在ARM的使用问题中异常中断返回是新手们较为苦恼的问题,...

    ARM单片机三种中断返回情况的分析

    ARM单片机是大多数新手选择的入门切入点,但由于知识的不足,在设计过程中新手们经常会遇到这样或那样的问题,ARM异常中断返回就是这样一种令人头疼的问题。在ARM的使用问题中异常中断返回是新手们较为苦恼的问题,...

    MCGS数据采集单片机数据传送的设计资料.zip

    - 想实现创新,但电路设计让您头疼? - 答辩前夜,PPT资料和报告成为你的噩梦? 一份资料,解决所有问题! - 完整方案设计:从构思到实现,步步为营,轻松拿下创意点! - 专业电路设计:科学合理的电路图,无需再因...

    出租车计价器设计资料.zip

    - 想实现创新,但电路设计让您头疼? - 答辩前夜,PPT资料和报告成为你的噩梦? 一份资料,解决所有问题! - 完整方案设计:从构思到实现,步步为营,轻松拿下创意点! - 专业电路设计:科学合理的电路图,无需再因...

    电子万年历设计与制作资料.zip

    - 想实现创新,但电路设计让您头疼? - 答辩前夜,PPT资料和报告成为你的噩梦? 一份资料,解决所有问题! - 完整方案设计:从构思到实现,步步为营,轻松拿下创意点! - 专业电路设计:科学合理的电路图,无需再因...

    基于单片机的作息时间控制钟系统资料.zip

    - 想实现创新,但电路设计让您头疼? - 答辩前夜,PPT资料和报告成为你的噩梦? 一份资料,解决所有问题! - 完整方案设计:从构思到实现,步步为营,轻松拿下创意点! - 专业电路设计:科学合理的电路图,无需再因...

Global site tag (gtag.js) - Google Analytics