听说,很多新手程序员都曾踩过这些坑....

作者: Samer Buna ,EdgeCoder编辑

这篇文章总结了我在过去这些年编程过程中踩过的坑。希望能够分享给走在编程路上的你,时刻警醒避免再犯。

01 没有合理计划

高质量的代码从来不是一蹴而就的。它需要经过思考,调研,计划,疯狂写,测试,改进一系列周而复始的过程,百转千回,方能炼成。

新手最常犯的错误之一就是拿到任务,没有任何调研和计划就开写

小程序或许还行得通,如果是一个非常大且复杂的项目,基本就狗带了...

02 过度计划

凡事过犹不及。永远没有一个完美的计划,计划也总是在变化。

所以开始有一个大体的规划后,就要开始想怎么着手去写代码了。

要在过度计划和计划不足间追求一个动态平衡,才能写出最优代码。

切忌一下子把一个大程序中所有的feature一步一步全部考虑周密。

在写代码的过程中,你需要随时准备添加,删改feature以及debug,保持高度灵活性。计划重要,但开始写更加重要。

03 不关注代码质量

混乱代码基本等同于垃圾。编程的本质是和别人交流关于问题的解决方案,力求清晰简洁。

一些代码在写的时候需要注意如下小细节:

注意缩进和大小写

每行别超过80个字符

function长度别超过10行

变量名能够不言自明,不易混淆

大多数时候,短代码比长代码好

“想象后面接管你代码那人是个有暴力倾向的精神病,一旦写不清楚,他随时到你家找你”

04 想到一个方案就开写

刚开始编程时候,往往想到一个方案就开始写,很少考虑这个方案的时间空间复杂度或者潜在的错误。

一个问题如果你没有想到多个解决方案,很可能是你并没有真正理解这个问题。

程序员的工作重点并不是找到一个问题的答案,而是找到一个问题最简单的答案

这里简单的意思是这个方案可以正确解决问题,同时又简单易读懂。

这个时候需要开阔思路,去google一下其他方法,综合评定下,选一个可以解决问题并且最简洁的。

05 不用封装

封装,简单理解就是把一系列的数据放在一个类中。不用封装常常会造成严重的系统维护问题。

新手程序员,很难按照直觉建立一个类,或者决定类里面放什么。

如果你想改个东西,发现需要同时改更多其他的feature,这个时候得重新想想是不是自己开始架构架错了 。

就整体而言,你的代码需要高聚合性和低耦合性。

06 没有正确选择数据结构

新手程序员常纠结在算法上,其实熟练掌握每种数据结构的优缺点更能让你在编程中如虎添翼。关于正确使用数据结构的建议 :

多使用map来代替list

多使用栈来优化循环

让现有程序更乱

在一堆已经很乱的程序里面找到正确位置并且添加新的feature,类似于向乱成狗窝的房间里随手扔进一个新东西 —— 让现状变得更乱,并且你也找不到新东西放哪了。

正确的做法是先把现有的整理干净,然后再往里面填加新东西

以下是一些错误的做法:

仅仅为改一行而复制粘贴一整段代码

不用配置文件

用没必要的if条件语句和临时变量

关于上述的第三点,请看下面的例子

改动前的代码:

把不必要的if条件语句稍加改动,编程的样子就清晰多了:

07 不写测试

如果没有自动化的话,在建网页过程中,一般你会每写几行就刷新下来测试。

手动测试并没有什么错,但是更多你要考虑的是,怎么让测试这部分自动化,基本上是人做人该做的事情,电脑做电脑该做的事情。

制造并使用工具,是人和动物的本质区别。

“以测试为目标编程”并不是一句空话,甚至你可以在写程序之前先想想怎么设计测试程序。

08 没找对工具

锤子可以将一个钉子砸进墙里,但却不能把螺丝拧进墙里。不能说仅仅因为你喜欢用,或者你这把锤子在亚马孙上面五星好评,你就非要用它做它并不能胜任的事情。

新手需要多了解现在手头上工具的优缺点和局限性,然后多去了解,多去学习新工具,力求用最合适的工具最高效的干活。

没意识到程序问题

会造成数据问题

新手开始往往不会想到数据和代码之间的这种关系,有bug的代码很可能持续带来数据一致性的问题。

为避免此类问题,可以选择用多层数据验证方式,在前后端,网络传输和数据库这些地方都加入数据验证。

如果无法办到这些,至少在数据库层次加入以下限制。

能够熟练应用:

NOT NULL

UNIQUE

CHECK

PRIMARY KEY

FOREIGN KEY

09 对Code Review持怀疑态度

新手常把code review当成负面的东西,所有比较抵触,消极对待甚至害怕。

请点击此处输入图片描述

Code Review其实是一个很好的学习过程。

一朝为程序员,你需要接受这个过程并学会享受其中。

很多时候,code review会教你一些你不懂的东西,请用积极热情的态度去迎接你的reviewer。

10 不用版本控制

新手程序员常常忽略用版本控制软件,比如git的重要性。

版本控制并不只是指把你改好的东西汇入别人的程序里面。

版本控制更多是关于一部开发的历史。

从这里面能够帮我们和后续的开发者提供最一手,最全面的信息,来了解现在的代码是怎么一步一步得来的。

版本控制意味着可恢复性。 Git甚至可以通过二分法查找到当初引进bug的那个commit是源自哪里

更多科技求职咨询,请关注“来Offer网”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值