为什么基础很好的程序员写的代码依旧很烂?

2015-02-14 19:41:31 +08:00
 wyan453351466

日常工作中发现一些基础很好的程序员,熟知各种设计模式、算法等高大上的技术,可是写的代码依旧很烂、漏洞百出,并且一直在用最basic的方式编程。

例如忽视很多语言的新特性和新的框架,忽视好用的工具,很喜欢写原生的SQL,并且使用很老的框架和很老的方式编程。

这是什么原因造成的呢?这样的情况在你的身边是否很普遍呢?

17374 次点击
所在节点    程序员
102 条回复
WhatIf
2015-02-15 16:04:11 +08:00
@jerryouyang web.xml当然所有java ee web框架必须有啊, 这个是servlet规范。
你说的当然也会问, 熟悉什么就问什么,只要说的清楚就行。 总之, 我们想要了解的是:他是否知道最擅长的东西的日常工作是怎么做的,以及他过去是怎么做的。 
那个题目的具体形式是:用你习惯使用的方式做一个用户登录页面, 无所谓连不连数据库,无所谓页面美化,但是要在服务器上可运行。
cYcoco
2015-02-15 16:36:41 +08:00
楼主你就知道自己代码一定很美?给别人指出来呗。你自己觉得自己代码好看人家说不定觉得是一坨屎捏
cvv
2015-02-15 17:00:24 +08:00
一,搞清楚作者在解决一个什么样的问题(比如基础工具类,长期内都不会再有人修改或维护)
二,搞清楚作者有没有完好的解决这个问题(没有逻辑漏洞,没有性能或安全问题)
三,搞清楚项目的平均代码水平(是不是整个项目大部分代码风格都是这样的)
四,搞清楚项目的未来计划(是不是这个项目很快就会被新的项目替代)
五,搞清楚时间作者的时间成本(是不是被要求在极短时间内写出来的)

作为一个开发人员,上下文这么关键的东西都没有给出就来提问,想来楼主的逻辑思维能力也还有飞跃性的提升空间…
lingo233
2015-02-15 18:21:57 +08:00
框架?之前没有怎么办?难道是凭空飞出来的?上帝给的
felixyale
2015-02-15 18:28:51 +08:00
代码经验是时间堆起来的,要真正喜欢才会想去优化,像艺术一样完成它
zhujinliang
2015-02-15 18:33:43 +08:00
我觉得你们可以找个空闲时间,互相看看对方的代码风格,然后尝试写写,都互相感受一下
Havee
2015-02-15 19:20:36 +08:00
算法好,代码写的差不是很正常?
人家只需要论证一个模型的可行性,接下来都是码农的活。好吧,有些抬杠了,只是想说,如果真热衷算法的,代码差是正常的,人家是搞研究的,码代码只是实现这个模型的需要。研究所里一般将这类活交给各导师的学生去实现。

说起框架,明确说,7、8年经验的老码农,对新框架的熟悉程度一般不如1、2年经验的新手,更甚者自备一套自己的框架,用不用框架是要看你实际需求。

另外,别否认了,拿出昨天自己写的代码,今天看也是一坨屎,影响判断的有很多外在因素。

话说太多,也不如代码直接 show 出来,描述一下需求,环境,让大家瞧瞧是否真的烂。
gandofyan
2015-02-15 21:44:09 +08:00
在一些场合,SQL和JDBC的这套, 反而可能是更适合的. 最近的一个项目中, 在进行性能调优的时候发现, SQL和JDBC的性能比Spring Batch的要好...

另一个问题确实也有其他人提到, 面试时候所展现的能力和实际工作的能力还有很大不同....

综合起来看, 只要技术水平在平均线上, 负责肯干的话, 一般以后的工作中都不会拖后腿
jiejieup
2015-02-16 03:10:22 +08:00
这个问题暴露了楼主喜欢钻研新的技术甚于解决当前的问题。多学几门框架和语言不能提高你代码的质量。解决问题的思路或者说建模,才是一个程序员最重要的能力,这个能力从这个问题的角度体现在如果现有的框架和技术能解决当前的问题,就绝对不会冒着风险去学习新的框架和技术。ps:好代码真的存在吗?
arachide
2015-02-16 06:13:14 +08:00
mhycy
2015-02-16 09:08:29 +08:00
如果不是通篇不用花括号,变量随便写甚至签名到处有的代码一般也没啥,
原生SQL有何不妥?ORM能降低日后维护的难度么?试试做企Z业F项目?三天两头改需求,我宁可一个个项目重新封装一个API类也不写ORM.

另外新特性新框架有考虑过后续维护人员的感受么?
(我们经理说: 你走了项目就没人会维护了,以后还是别这样写了.)

PS. 注入问题在PHP+MYSQL组合中用PDO解决...暂时看着没啥问题,不知道大家有何看法.
zhangdawei
2015-02-16 09:16:15 +08:00
写的不够多吧。
另外,可能风格问题。
zhicheng
2015-02-16 10:49:39 +08:00
一个人很懂建筑,为什么砌墙还是东倒西歪。
fumer
2015-02-16 11:15:05 +08:00
@WhatIf 还可以google那做不出来的估计还是换行吧。
lovekohn
2015-02-16 13:02:22 +08:00
学习好!=技术好!=能力高
TerranC
2015-02-16 13:50:32 +08:00
这个还是和情怀有关吧,粗线条的人不在意细节,也或者吃亏不够多。
nooper
2015-02-16 22:21:56 +08:00
基础好不是绝对。而是实战经验让他根本都没思维和如何提高自己,得过且过的绝对不会基础好
stand1921
2015-02-18 04:32:04 +08:00
先说说反面,楼主你认为他不好的地方可能并不是他不好,可能反而是你错了。例如写原生sql可能没什么问题,反倒是滥用ORM我认为会增加程序复杂性。有许多场景代码是根本没有可移植性的,用了ORM也移植不了。basic方式也有简单的好处,这个不能一概而论。
再说说正面的,楼主确实说得是,这个概括地说就是工作的态度问题。其实工作方法是最容易教的,反倒是态度基本很难改。工作方法你一说,他一听,再做一遍,新算法他就会了。他会了他就不用,为什么呢?其实这个好理解,他为什么要花费训练成本去使用新方法呢?旧方法一样能用啊,还省训练成本。工作从来不是大多数人的追求,绝大多数人追求吃、喝、玩、乐,楼主你下班回到家干什么,下班后到家每天的娱乐活动是加班吗?想必不是吧。大多数人对工作是不求好的。你怎么能让一个下班后不工作的人下班后去自愿工作呢?基本不可能,人家追求就不在这。
程序员的根本追求是什么?就是不写程序,还拿薪水。编程这项工作是很难量化的,程序员写烂代码难以被考核,编程这项工作是有这种养烂程序员的土壤的。
我刚开始实习的时候,我所在的项目组一共3个人,一个我无实际工作经验,一个2年经验的程序员,一个2个月经验的实习生,我去的第二个星期我就贡献了全组80%的代码。其实你、我这种人才是少数的奇葩,烂程序员(主要是态度烂)才是多数人的常态。
jedihy
2015-02-18 11:21:50 +08:00
你说的什么语言啊
hyyou2010
2015-02-18 20:16:08 +08:00
推荐《代码大全》

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/170996

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX