随笔:写代码和做开发的不同

摘要:
作为一个即做过后台开发,又写过前端代码,还带过几批开发兄弟,后来又干过业务的人,我对做开发和写代码的不同有一些感悟。写代码和做开发是不同的,从一个新手程序员接到的任务开始讲吧!

作为一个即做过后台开发,又写过前端代码,还带过几批开发兄弟,后来又干过业务的人,我对做开发和写代码的不同有一些感悟。

写代码和做开发是不同的,从一个新手程序员接到的任务开始讲吧!

一般新手程序员会被分配一个任务,告诉你要写的模块功能需求和输入、输出要求。

这个时候,新手会查看之前的前辈们写的代码参考,复制可用的部分,中间填上功能逻辑。

很多坑就是这个时候埋下的:

1. 在一个程序员尚不清楚整体业务逻辑和总体需求,只知道部分要求的时候,进行功能开发规划和写代码时,就会自然而然地惯性思维驱使下,进行简化代码的逻辑功能、高度耦合代码功能块,逻辑分层非常混乱,可能过两天就看不懂自己在写什么了。而当需求变更时,往往程序员会非常痛苦,因为在代码功能高度耦合的情况下,必须重新编写功能才能完成变更,原先的代码逻辑已经“改不动”了(悲剧!)

2. 直接调用或复用前辈留下的代码(遗产!)是存在风险的,很多时候新手程序员并不清楚复用的代码当时为什么这么写,调用的功能内部除了注释上写明的功能外还干了其他什么事,就这样直接拿来用了之后,可能需求是满足了,但是实际上线后,各种匪夷所思的BUG、问题随之而来。造成耗费大量时间排查问题后,确认问题出在某段被盲目复用的代码上。

3. 新手在写代码时对开发语言本身的理解还停留在教科书上的语法阶段,如何使用语言提供的强大框架、调用现成的API和功能函数等都是不清楚的,或者说非常迷茫,往往为了实现一个功能,自己去写一个复杂的代码逻辑,或者不知道某个API的坑,调用之后留下隐患。

以上对新手程序员的描写就是“写代码”的情景描述。

而“开发”是什么?

“开发“是有规划、有目标的

一、有规划

在被分配一项任务时,开发人员会去了解整体需求,如果拥有1~2个同类项目经验的话,还会为未来可能出现的需求变更预留余地,会分解功能里的逻辑,写出逻辑层次分明的代码,并且代码功能块的耦合度较低。这样在敏捷开发流行的今天,在做需求变更的时候就非常的轻松。(我本人就是这样)

二、有目标

开发做出的系统不止是完成需求要求的基本功能,还要考虑代码执行效率、数据库的使用是否合理、调用其他同事写的方法前要查看源码是否有不适合的逻辑,对于框架、API等也要多调查网上的资料,看看是否有坑。对于并发控制(数据库)、线程调度(后台)、容器重用(前端)等也要有所认识。更高阶的需要考虑安全,一些访问的控制,代码的健壮度(不能因为送了一个错误的参数就抛错误崩溃了)、算法问题造成的溢出等。

总结

所有程序员都是从Ctrl+C、Ctrl+V开始的,都会走过一些坑,尤其是现在流行的敏捷开发,会遗留大量的垃圾代码。因为需求不明确,功能模块规划就模糊、界限不清楚,再加上某些科班出生的程序员会有“迷之自信”,认为能把100行的代码浓缩写成1行是很高超的技巧,给运维留下很深的隐患。

一个程序员,从新手的“写代码”成长为有经验的“做开发”,需要经历至少2年(1~2个大项目,可能会有大量加班996那种)。

P.S. 其实在前端和后台做开发也有很多门道。之后再写那部分,未完待续。。。^_^

免责声明:文章转载自《随笔:写代码和做开发的不同》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇git subtreeJmeter(四)Cookie管理器下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

win10快捷键大全 win10常用快捷键

win10快捷键大全大家可以来了解一下,今天小编带来了win10常用快捷键,很多朋友喜欢使用快捷键来操作电脑,那么Windows10系统有哪些新的快捷键呢• 贴靠窗口:Win +左/右> Win +上/下>窗口可以变为1/4大小放置在屏幕4个角落 • 切换窗口:Alt + Tab(不是新的,但任务切换界面改进) • 任务视图:Win + Tab...

最难忘的Bug调试经历

摘要:目前,著名的社区问答网站Quora上出现一个很火的讨论:你调试过最难的Bug是什么?大家纷纷留言,把自己最痛苦的一次调试经验写下来。 相信每位程序员都有过一段不堪回首地Bug调试经历,程序员一听到自己的程序有Bug,会有各种搞笑的反应,大家可以移步去看看“ 程序员遇到Bug后的30种常见反应 ”。 目前,著名的社区问答网站Quora上出现一个很火的...

服务打印机powerdesigner 15打开pdm文件弹出安装打印机窗口java教程

废话就不多说了,开始。。。 powerdesigner 15打开pdm文件弹出安装打印机窗口,如下图所示提示啥子行执打印务任前要需安装打印机,这是不是其的啥子默认设置的啊,前以用的12.5的时候都不会涌现这样的情况,望前以遇到这类情况的兄台够能给一个解决方案,不然每次都弹出窗口费事的很! 每日一道理 毅力,是千里大堤一沙一石的凝聚,一点点地累积,才有前不见...

iPhone用nib/xib文件载入窗口,和用代码写窗口,到底哪个快?(转)

本篇译自:Matt Gallagher的blog-http://cocoawithlove.com原文:http://cocoawithlove.com/2010/03/load-from-nib-or-construct-views-in.html 有人认为iPhone上用代码来构建加载窗口要比用nib文件来得更快。真的假的?下面文章做了一个实验,说明了...

9本Java程序员必读的书

本文列出的9本书在Java程序员界都是被认为很棒的书。当一个程序员开始初学Java时,他的第一个问题应该是如何选择一本书来作为指导学习Java。这个问题也就表明,相对于其他的教程和博客,Java书籍还是很重要的参考,主要表现在以下两点 ●通常书籍是由比较权威的程序员来撰写的。 ●相比其他媒介,书籍对于内容的描述更加详细,解释更加明确。 本文列出的九本...

.ftl文件 是什么文件 freemarker

freemarker的文件一般以后缀ftl,ftl文件的头上要写 <#assign ww=JspTaglibs["/WEB-INF/webwork.tld"] /> 这样才能在ftl中使用webwork的tag。 freemarker确实是不错的模版语言引擎,尤其是处理对象图很方便,处理xml也很方便,还支持xpath 什么是FreeMarker...