黑马程序员技术交流社区

标题: 程序员:你的代码为谁而写 [打印本页]

作者: 神兽    时间: 2015-7-29 22:59
标题: 程序员:你的代码为谁而写
问问自己,现在正为谁编写代码?
    为了按时交付任务
    也许最常见的原因就是为了按时交付任务。走走捷径,宁可复制粘贴删掉几行代码也不愿意重构代码,然后匆匆交工。我们都这么做过,也都知道这是不妥的。
    为了突出的考核结果
    当管理者本身不懂代码,却有一套程序员“好坏”评价标准时,会出现什么情况?程序员要理清这套标准并不困难,因为他们的特长就是解决难题,然后他们会努力完善自己,从而迎合评价标准。代码行数、已解决Bug数量、注释的密度、代码深度等都可能是衡量编码人员的指标,但这些又都是相对标准,而不是绝对标准。也有些新颖的衡量手段(比如“已删除代码的行数”)。
    为计算机编写
    从某种意义上来说,所有的程序都是为计算机编写的,但计算机应当程序员最后才考虑的。计算机只注重语法,不注重注释和变量名称。大多数程序语言也不注 重间 距与代码格式化。当然,你还是要选择正确的算法,但不要想着通过微小的优化来加速算法。在for循环中,使用i++还是++i并不重要,编译器和JITs 会解决这些问题。在考虑优化算法之前,还是应该先把代码写的清晰易懂。要知道编码在使用通用模式时,计算机和编译器运行的更快。
    为了自己
    虽然学习一门新的程序语言很有趣,不过如果你将整个公司架构都建立兴趣之上是不切实际的。Hacker News上曾有一则相关故事,Lambda the Ultimate网站上还有更糟糕的案例。如果你是为自己写代码,你可以不加注释,可以随意使用糟糕的变量名,甚至使用其他“怪癖”,但这样写出来的怪异 代码别人很难看明白。不过没关系,因为每个人都会时不时想在某些事上找点漏洞出来。
    为后来者编程
    编程是把抽象观念转换成计算机可以理解的形式。即使是细微的抽象观念,转换成代码也是很不简单。因此很多软件项目都衍生出了成千上万甚至是上百万行的代码,相当于一本代码书。通过有限的语法与其他人交流这些概念,大多数时候都注定失败。
    我所写的最出色代码就是我愿意花时间来添加注释、列出代码流、甚至附上一些ASCII文字图的代码。编写过程专注于如何把自己抽象概念,与今后将有可 能读到这些程序的、不幸的程序员进行传递和交流。我认为专注于这种交流,代码会变得越来越好,因为你会更深入地思考抽象概念以及如何对正在做的事情分层, 而不是一味的编写代码和转到下一个程序块。
    注释使代码变得更好理解。每当你再次做某事的时候,总会比上一次更好。当你在编写代码和注释时,就是将抽象概念向读者解释了两遍。这会迫使你思考更 多。很多次我写完一个代码以后都会对它写一个注释。然后从头修订代码,甚至改变了一些小地方,例如选择更好的变量名称,来更好的交流想法。
    评价代码/程序员
    综合前文所述,可以看出,编程人员孰优孰劣确实难以定夺。因为难以明确他们编写代码目的。你可以考评代码,但你无法得知代码编写者当时的心理状况。或 许那天是星期五,他急着要赶去维加斯度周末;也许是程序出了问题,他不得不采取紧急补救措施,但这些补救措施一用就是5年;也可能他原本就是个不合格的程 序员。
    也许编程真是一门艺术?
    我不知道如何公正地考核编程人员,我想也没几个公司能做到。看看程序员的面试流程就清楚了,他们只不过坐在桌前被问几个问题而已;根本没有什么标准测试能让计算机科学专业的学生证明自己已经掌握了必要的技能。
    编程工作带有太多艺术色彩,所以不可能通过测试手段或者固定的考核标准来评价。
    你知道还有哪个领域也是通过视觉媒介将抽象的概念传达给其他人?美术和绘画作品。今天,我们或许会说梵高是个大人物(其画作闻名于世),但是仍然有人不喜欢他的作品。类似表达抽象概念的事物不应该用“好”或“坏”来评价。
    程序员可以做到的就是时刻提醒自己,编程的目的要正确。不能仅仅要求编译器能识别就行,不能为了迎合某种考核标准,也不能为了按时交工而编程。相反,应该适时注解或写文档,解释或记录代码功能。只要用心,你就能编写出优秀代码。如此一来,以后就会有人夸你是个优秀程序员,而不会因你那一万行的代码文件而“咒骂”你是“极品”程序员。

作者: 湖北小白    时间: 2015-7-29 23:55
今天班级大神讲了一句话,你现在的生活取决于你三的年前,而我们现在就是不希望三年后同之前那样后悔.只有加油,奋斗!
作者: huangguan    时间: 2015-7-30 00:18
我喜欢好好写注释
作者: 神兽    时间: 2015-7-30 00:25
写注释不光是为了别人看得懂,同时也是为了自己再看的时候也看得懂
作者: 低调大众    时间: 2015-7-31 21:11
我的代码为未来的生活而编写
作者: 老中医    时间: 2015-8-1 00:10
我是为了人类的进步而写,不要问我为什么这么吊,我只想安静的奉献{:2_45:}
作者: 孙虾米    时间: 2015-8-1 08:52
未来的生活
作者: Mr冷夏    时间: 2015-8-1 08:53
我是标题党,不管你的程序为谁而写 反正我的程序是为了伟大的领袖人物毛爷爷而写。
作者: tsldxszd    时间: 2015-8-1 13:31
家庭 ,为了她们
作者: wuyaxing    时间: 2015-8-1 21:45
哇 好帖子 说的太有道理啦
作者: 徐翔    时间: 2015-8-2 22:01
我的代码为未来的生活而编写,楼主大神
作者: 叶顺达    时间: 2015-8-3 23:30
兽兽  {:2_32:}
作者: 陈冬雪    时间: 2015-8-4 00:26
为了未来而写
作者: 入戏太深嗷嗷嗷    时间: 2015-8-4 23:04
为了中华之崛起而敲代码
作者: xcy458778612    时间: 2015-8-5 07:02
为了美好的生活,为了美好的明天!!
作者: zcywxb126    时间: 2015-8-5 12:18
编程还是多写点注释吧 !  !  !
作者: 神兽    时间: 2015-8-5 12:43
叶顺达 发表于 2015-8-3 23:30
兽兽

小达子{:3_46:}
作者: vanish    时间: 2015-8-5 13:35
为了未来的生活!
作者: fengyuewud    时间: 2015-8-6 09:24
这是一个值得思考的问题
作者: 飓风少年    时间: 2015-8-6 20:42
为我自己的将来写代码,不放弃
作者: Alex007    时间: 2015-8-7 22:39
加油  为自己而写
作者: wy8215866    时间: 2015-8-7 22:47
老哥我在就业班
作者: wy8215866    时间: 2015-8-7 22:48
等你等你等你
作者: 编程小黑    时间: 2015-8-8 11:08
为了一颗不服输的心,为了得到别人的肯定,为了一个不大不小自己知道的梦想!
作者: LiuWei2015    时间: 2015-8-8 13:20
代码,是为了生活而写的。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2