代码也要“人生规划”

news/2024/7/10 4:46:02 标签: 工作, 数据库, 框架, 任务, 优化, 扩展

写代码,是程序员的天职,一个程序员是好是坏,一看写的代码便知。初级程序员经常容易犯的一个错误就是任务刚下发,便急急忙忙开始写代码,没有经过仔细的思考,这在企业级项目开发中,是一个非常忌讳的错误。没有经过缜密思考的代码,写出来后,即便最后能达到实现功能的目的,但很可能会留下隐患,然后我们就开始了漫长的“打补丁”的路程。

但是“打补丁”终究只是临时补救的办法,总是会给整体的“美观”“效能”带来影响,当补丁的数量越来越多时,也就基本达到“面目全非”“惨不忍睹”的境地了,取而代之的将是崭新的面貌——二次开发。所以规划不好的代码,很容易造成工程项目的延期、甚至推翻重做,正所谓“后患无穷”啊。

在写代码之前,我们首先要分析技术难点,评估整体的工作量,制定工作计划。这是为了保证项目进度的一个前提,也是帮助自己合理利用时间完成工作的一个保障。对于难点,如果感觉能在一定的时间内突破,可以优先攻克;如果感觉没把握,一般建议就先放放。就是说,有时我们不是一定遵循由上到下一步步的开发,可能会分为几个块(难、易)去开发,此时如果你没有合理的规划安排,就可能会出现“驴唇不对马嘴”的情况,即块之间的兼容性问题。这时你再改改这改改那的,你就已经失去了宏观的把控力和全局观了。

如果你规划的好,就会思考难点的块与其他之间的交互问题,设计的时候也就不会疏漏边界问题,那么此时不管你是先突破难点的块也好,还是先实现简单的也好,都不会出现上述的问题。

这便是我们接下来要做的事情:设计代码块结构和代码块边界。这件事并不容易,考虑的问题同样很多,不仅要考虑块之间的层次结构,还要考虑块之间的耦合性。块的结构首先必须要符合整体框架结构的要求,其次要旅顺实现功能的思路,不要杂乱无章,或绕个山路十八弯,结构一定清晰明确,每一代码块层的出现都要有它的意义,并且同一层内的代码的意义要统一。

降低代码耦合性的目的就是提高可修改性、可扩展性,谁也不能保证写完的代码就一定没有bug,如果某代码块出了问题,低耦合性的代码块设计便为我们带来了极大的便利,不仅易于修改,也易于替换。要想降低耦合性,就离不开代码块的边界设计,边界设计最好简单明确,尽量依赖于抽象,而不依赖于具体,边界出口也要尽量遵循单一的原则。

接下来,就可能要进入正式的写代码阶段了,在写代码的过程中,我们还要注意几点。一、简单。不是说代码的实现方式越复杂越好,而是越简单巧妙越好,越简单的代码,其可靠性往往是越高的,可读性、可拓展性也往往是越高的,然后再利用清晰巧妙的思路,将简单的东西拼装组合起来,这样构成的“复杂”才是最为优秀的。二、性能。写代码不只是实现功能而已,效率同样的需要“充分条件”,在写代码时就已经要考虑了,可千万别天真的想实现功能后再去优化,你那只能体现双倍的工作量而已。影响性能的因素也有很多,比如低效率循环、频繁的数据库交互、高内存利用率、无用垃圾文件过多造成检索低下等等。三、注释。代码不仅是写给自己的,也是写给别人的,丰富明确的注释,会让自己和别人快速的摸清你的实现思路,可不要对自己过于自信说自己写的代码自己了解,我不信过个半年你还能记住多少。注释丰富也非常有利用团队开发。

代码也要“人生规划”,写代码是种艺术,也是自我素质的体现,优秀的程序员是勤于思考的,优秀的代码是思考后的结晶,走的自然也最远最好。


http://www.niftyadmin.cn/n/1661497.html

相关文章

主流Ajax框架介绍

现在的网站开发不同以往,越来越漂亮,越来越强大,也越来越讲究用户体验,Ajax、jquery正式因此而兴起的,建立在基础上的框架自然也就越来越多。那么这么多框架我们如何选择呢?我今天就为大家介绍下。&#xf…

调整数组顺序使奇数位与偶数前面

题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,是的所有奇数位与数组的前半部分,所有偶数位与数组的后半部分。 解题思路: 一般思路:维护两个指针,第一个指针初始化时指向数组的…

如何写递归函数

递归函数,是指某一函数内部自己直接或间接地调用自己,即直接递归和间接递归。是语言中比较高级的技术用法。 递归函数之所以难,是因为是一种过于抽象化的技术,写代码的时候无法直观的看出逻辑是否符合自己要求,因此想…

Xcode9 打包ipa(导出ipa测试包)时总是意外退出

今天用xcode9,打包ipa总是意外退出。 正处在测试阶段,所以打的也是测试包 ,路径是:Product -> Archive -> Export -> Save for Ad Hoc Deployment,导出为测试IPA包 发布到蒲公英官网,但是卡在 这一步&#xf…

将java源码打成jar包

方法一:通过jar命令 jar命令的用法: 下面是jar命令的帮助说明: 用法:jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files ... 选项包括: -c 创建新的归档文件 -t 列出归档目录 -x 解…

Hadoop生态圈-使用Kafka命令在Zookeeper中对应关系

Hadoop生态圈-使用Kafka命令在Zookeeper中对应关系   作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任。 一.zookeeper保存kafka的目录 二.使用Kafka命令在Zookeeper中对应关系 1>.创建主题在zookeeper中的对应关…

模板引擎介绍

模板引擎,是指利用某种模板语言将页面制成模板,再依据业务逻辑将该模板语言翻译成业务数据,从而生成最终展示页面。其目的就是要把页面与业务数据实现彻底分离。它不属于特定技术领域,而是跨领域跨平台的概念。在Asp、Jsp下有模板…

Java开发者-Git使用

Java开发者-Git使用 本文主要是通过Idea工具,讲解Java项目中如何使用Git Java开发者-Git使用一 克隆代码二新建修改文件并提交新建修改提交到本地仓库提交到远程仓库 四新建分支 切换分支新建分支切换分支 五更新代码与代码合并更新代码合并代码 六添加标签七撤销提…