2008-05-13

让人头疼的新手

关键字: 说说工作
刚进公司没多久时,领导让我带两个新人(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));
	}


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

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


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

有则改之,无则加勉,别无他意,仅此而已!
评论
shishi11 2008-06-25
我们也遇到过这样的问题,想想解决的办法:
一,起步的时候,一定要有模板,当然如果能采用如继承的方式更好,像SS3那样,SCUD都继承。当然,于他们的提高有限,但可以提高代码质量,也有利于开发。
二,这也是经验问题,比如“魔术数字”问题,新手不太明白,得让他知道好处。LJ的例子里也有,为什么不写成'xxx='+id的方式,因为有种可能性被SQL注入。得让新手明白为什么。当然这个工作应该新手自己完成,但本着带新人的原则,应该适当指导一下。
三,工具,人都不可靠,机器好些。我最近在研究checkstyle,由机器保证代码。
四,代码生成,也见过类似的东东,虽然有些灵活性上的问题,但一般普通地方还是可以的,新手就做点简单的工作吧。

当然,我碰到过超XX的,让她看一下别人的代码写自己的,结果连包名类名都一样,把别人的给覆盖了,她自己的过了,别人不灵了还不知为什么。
shishi11 2008-06-25
我们也遇到过这样的问题,想想解决的办法:
一,起步的时候,一定要有模板,当然如果能采用如继承的方式更好,像SS3那样,SCUD都继承。当然,于他们的提高有限,但可以提高代码质量,也有利于开发。
二,这也是经验问题,比如“魔术数字”问题,新手不太明白,得让他知道好处。LJ的例子里也有,为什么不写成'xxx='+id的方式,因为有种可能性被SQL注入。得让新手明白为什么。当然这个工作应该新手自己完成,但本着带新人的原则,应该适当指导一下。
三,工具,人都不可靠,机器好些。我最近在研究checkstyle,由机器保证代码。
四,代码生成,也见过类似的东东,虽然有些灵活性上的问题,但一般普通地方还是可以的,新手就做点简单的工作吧。

当然,我碰到过超XX的,让她看一下别人的代码写自己的,结果连包名类名都一样,把别人的给覆盖了,她自己的过了,别人不灵了还不知为什么。
open2ye 2008-06-25
mylifestyle1225 写道
armorking 写道
mylifestyle1225 写道
不过还是谢谢指点,我会改成英文的.然后把名字改得尽量意义明确些.


如果不是对美外包的项目的话,为什么非要用英语写注释

恩,是不是对美外包的,这是个金融报文的解析和生成,所以自然没什么SQL,JDBC,SPRING等东东了.
有道理,注释的作用本来就是为了让人看懂.


你觉得以下怎么样?


// وقع الكتاب المقدس
jian'shang 2008-06-07
我觉得那两个人应该是受了误导,可能在试用期间看了公司的“规范代码”,他也许是想验证传入的参数,但又没加异常处理,呵呵,这事只能怨公司
sanfeng_chow 2008-05-30
终于看完了。受益颇深。
07年毕业的人还不少哦。呵呵。
dongle2001 2008-05-27
我也经常写这样的代码。

工作两年多了,最近才发现,这么写法真的是害人害己。
CherryRemind 2008-05-23
我们TEAM里面也这样的同事, 受不了, 尽做些不必要的判断.

<代码大全2>一本介绍CODE STYLE的书, 对新手很有帮助
tjxjj 2008-05-20
唉.看了下,自己代码也没新手高多少

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

晒晒他们的部分代码!


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

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


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

有则改之,无则加勉,别无他意,仅此而已!


只能说明两点:
1. 你们没有能力培养起程序员
2. 你们的项目管理混乱

在我们项目组,新人的招收是很严格的,但是招收进来, 就会给予很多的培养和指导。 一个新人,前几个月的试用,会有专人给予全方位的指导,如果有代码风格,代码质量的问题,很快就能够发现,并给他指出来, 新人会很快能够改进。 不至于会有人说, 某某写的代码有问题一年以后才发现。

难道你们没有code review 机制? 我们的项目中,每一行代码的提交,都会有code review, 这种可笑的代码质量问题很难在cvs 代码中找到。 每个project的build 出去以后会做design 的review, 提出design的改进方法, review 的过程, 也是对整个团队提高的过程。

建议楼主也从自己项目组的管理上找找问题。
bjfeel 2008-05-20
都够浮躁的;不过写这样代码的人本身态度有点问题,不只是能力的问题。
只是新手的话没必要BS的,都是从这个阶段过来的(其实我现在还是新手,做2年java了,才发现刚入门。。这里很多人也算不上多老手)
hotjava 2008-05-20
我最后一次回这个帖子,我并不是什么高手,白干几年,除了加班把身体熬差了,没什么大的收获。我只是希望刚刚工作或者是工作n久都不知道怎么写代码的人,好好看看,代码大全,重构这样的书。也算是自己的基本功把。
就像一个网球运动员,如果弯腰低头去拣求,必然观众觉得他不是高手,不专业。
至少应该拿拍子一抄,就把球弄起来了,这样才帅嘛。
malphi 2008-05-20
不错,至少知道判断空。。。
javaxy 2008-05-20
重点的是这种人怎么找到工作的!
programming 2008-05-20
String sql = "";
if (sql != null)
{
sql = " from OccurProj a where a.id=" + id;
}
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 + "' ";


工作有一年,怎么还会这样的代码,有些东东,String sql = "";
if (sql != null)
{
sql = " from OccurProj a where a.id=" + id;
}
他们头脑里面怎么想的,是逻辑不懂呢,还是没有认真去学.
sutra 2008-05-18
抛出异常的爱 写道
ddbird 写道
第3段 sql的拼装能倒着写也蛮强的,肯定copy过来以后看都没看,就看了Eclipse报的编译错误,改了变量名字,就算完事了。

很多人都这么干活,不知道他们的脑子长的是什么。。。。

完成任务呢。
murainwood 2008-05-17
mylifestyle1225 写道
回LS的,拿出来晒就是为了请老手指点的.
有事说事,没事少插嘴,不说话没人把你当哑巴.每个人都有菜鸟的过程,你也不是这么过来的么?你是一个新人的时候有胆量晒代码让人指点吗?
典型的中国人的挖苦讽刺,自持清高的心理,不知道你自己达到了什么境界.
是不是这么说一句,很有满足感?那就成就你的满足感吧.但是我到了你这个年龄,肯定能超过你这类货色.

小孩子说大话了不是?
Unmi 2008-05-17
还是不错的,我看过写几年代码都出现这种问题,甚至是方法名首字母大写的问题
hunter006 2008-05-17
哈哈 没必要强调新手。有的老手也犯这样的错误,如果可能加大代码审查力度吧,这些小错误如果有可能可以通过代码审查避免。
seekgirl 2008-05-17
armorking 写道
代码1问题多多


这里jdk已经有BigDecimal.ZERO,你这是浪费内存。
private static BigDecimal BIGDECIMAL_ZERO = new BigDecimal("0");

/**
* 查询方案金额总和
*
* @param lottype
* Long
* @return BigDecimal
*/
方法名不骆驼
public BigDecimal getSummary(Long lottype)
{
if (lottype == null
){
return BIGDECIMAL_ZERO;
}

String sql = sql = " select sum(amount) from OccurProj a where a.lottype = " + lottype;

List ls = find(sql);

&&改为||
if (ls == null && ls.size() == 0)
{
return BIGDECIMAL_ZERO;
}

OccurProj occurproj = (OccurProj) ls.get(0);
return occurproj.getAmount();

}


你别又误导新人哦
zhengshina5 2008-05-17
我靠,说了这么多都没说到正点上

你管他代码正确不正确的。

先满足了功能再说,功能满足了对错再谈,

功能都没满足那没用,功能满足了代码错误的话,能用就行,

如果想更好的发展就修改下不就可以了被




这样的代码和公司有很大的关系,不只能说是个人的问题。
你怎么样评判别人的态度就不好了。

这是不一定的,
发表评论

提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则

您还没有登录,请登录后发表评论

daoger
  • 浏览: 183727 次
  • 性别: Icon_minigender_1
  • 来自: 山东济南
  • 详细资料
搜索本博客
我的相册
Fe9b8bf5-5e8b-35c4-ad80-88fec768d45c-thumb
image007
共 105 张
存档
最新评论