博主强烈推荐:模仿概念版QQ登录界面(超炫)附带源码下载
http://blog.csdn.net/fwj380891124/article/details/8203948
普通编程与专业编程之间有很多差别,而最为显著的就是截止日期。
截止日期/最后期限
当你给自己写程序的时候,只要你愿意,就可以用很多(或者很少)的时间来完成,但是当你给别人写程序的时候,你就只有一点有限的时间和资源来完成任务。而根据我的经验,一般会导致以下两种情况之一:
1.你必须延长时间以妥善完成任务。
2.你必须写些不严谨的代码来应付过关。
如果你做过专业编程,你会明白我的意思。只有极少数够灵活的项目能够给予足够的时间和资源来完成任务。这就使得程序员必须做出艰难的抉择。
任何一个有自尊的程序员都不愿意提交不合格的代码;但是当交易中伴随有超时违约金时,想要始终提交高质量的代码是很困难的,尤其是在专业环境下,与那些不需要理解技术违约概念的非技术员交易。
幸好,这里有几条准则供你参考,可以在临近截止日期时,帮你把不严谨的代码总数最小化。它们不一定能够快速修复问题,但毫无疑问将有助于那些需要日复一日,始终写出一流代码的人。
准则一:编码之前设置连续部署
这是我从《The Pragmatic Programmer/程序员修炼之道》一书(绝对是程序员的必读之书)中找出的小窍门。总是,我是说总是,在编码之前设置你的连续部署系统。
我所说的连续部署是什么意思?好的,在你开始编写你的项目之前,你应该有一个能部署你的项目代码为产品的系统(最好对于分期和开发环境也是如此)。这样,当你编码时,你就会有一个平和的心态,因为你知道你可以随时部署你的项目。
在很多的编程流程中,这一点能节约相当多的开发时间。一些测试环境(或者更糟,直接在服务器上编码),你可以直接把代码放到你首选的源代码控制系统中,然后让你的连续部署系统负责接下来的事情。这也许看起来不想个节约时间的方法,但是如果你考虑一下每天都要把你的代码复制过去并手动测试所浪费的时间,你就知道这样做能快速完成并在每月中节约数小时。
准则二:先写测试
如果你从没听说过测试驱动开发(TDD),请立刻看看维基百科的解释。如果有人付钱让你编写软件,并且规定了截止日期,你就要随时练习TDD。
测试驱动开发的基本概念是,在写项目代码之前,你写一段简单的代码来测试你假设的项目代码,以获得预期的反应。例如:你的项目需要你写一个函数,把两个数相加,并返回和。在写这段代码之前,你应该写一个测试函数,test_add_two_numbers,它调用你的add_two_numbers函数来验证不同的输入值所返回的结果都是正确的。
这看起来很麻烦,但是它有许多好处:
-
写测试首先能帮你明确你的应用程序架构。
-
你将有一个平和的心态,因为你知道你的代码是可运行的。
-
你能够轻易的重构项目,而不用担心破坏代码。
-
你可以避免放出低质量的代码以免玷污你的声誉。
准则三:透明
透明很难实现(取决于你的工作环境),但却非常有益处。
为了达到透明,你需要确保与接收代码的客户之间保持一条清晰的通信线路。你需要保持定期更新,这样才能看出来工作正在进行,并且进展的哪里。再好一点就是,你能一直部署代码到分期系统,从而让客户够看到未完成的项目和它一天天的改变。
如果你能跟你的老板(们)保持透明化,他们就很有可能了解是否需要推迟截止日期。非技术人员通常不懂软件开发,视它为黑盒技术。通过与客户保持清晰的通信和透明化,并让他们参与到开发进程中,客户可以更了解你的工作,使得对将要开发出来的产品更青睐。
规则四:维持日常计划表(Todo list)
时间管理问题肯定是超出本文谈论的范围,但是我仍要指出,为确保事情一直向前进展,作为一名程序员你所能做的最好的事情之一就是维持一份日常计划表。另外,一个得力的时间追踪工具也能帮上大忙。老外推荐的10个时间追踪工具。
软件开发是极为复杂的事情。成为一名优秀的程序员要求有多年的实践,耐心和锻炼,并且学无止境。当需要在截止日期内开发软件时,往往你正在编写一个复杂的系统。为保持思路清晰,并且确保发挥你编程的最大能力,你应该维持一份由每日需要完成(编码方向)的单独的任务组成的日常计划表。
不要写过于空泛的计划表,像“调试声音问题”这样的,而是要真正地想一遍,并且写出事情的几个步骤。例如:
-
写一个音乐文件加载功能的单元测试,检查mp3是否能够播放。
-
写一个音乐文件加载功能的单元测试,检查加载wav文件时是否崩溃。
-
创建新的特性分支,设计升级,适用于新的网页设计模板。
-
使用网页设计新模板升级style.css。
有一个明确的可操作的事件列表可以使你集中力量在一段时间内解决一个单独的任务。这样就不用时刻平衡分配和在脑子里想着接下来的步骤。编写软件已经够复杂的了,不要让你的生活更困难。
准则五:做应该做的事
毫无疑问,会有令你紧张和不舒服的情况出现。你拖延时间并忽略了新特性的单元测试吗?当这些情况发生时,不要任意妄为。相反的,做应该做的事。
不管是否需要你回顾还是重新查看一些旧代码,都要多写一些测试用例,甚至推迟截止日期也要这么做。作为一位专业的技术人员,持续地开发能够运行的代码是你的工作,即使这意味着你必须做出艰难的抉择。
结语
对一个软件开发人员来说没有轻松的任务。我们的世界一直充满挑战和困难,只有磨练和时刻准备着才能帮助我们渡过难关,并在好时光里成功。一直利用我们最精确的判断,通过运用毫不动摇的工程实践去打破时间的桎梏并且不向困难低头。
你能够做到。
分享到:
相关推荐
本文档讲述了关于本体论(ontology)的一些相关知识!本体论的一些特点及怎样编写
我写的一个信息论期末编程作业。 作业要求输入码字,生成线性分组码,错误图样,汉明距离,并进行最短距离译码,伴随式译码,标准阵列译码。 信息源默认为15位,默认正确的码字为全零码 程序只能纠2个错,全零码包括...
所看见过比较好的排队论课件。所见过的很好的排队论课件,对编程、建模很有帮助。
计算机软件开发的Java编程语言及应用——评《Java编程方法论》.pdf
基于演化博弈的模拟仿真,特别是对于双方博弈过程中的演化趋势进行分析
产品保险期限.xlsx源码EXCEL VBA宏编程xlsx实例代码下载产品保险期限.xlsx源码EXCEL VBA宏编程xlsx实例代码下载产品保险期限.xlsx源码EXCEL VBA宏编程xlsx实例代码下载产品保险期限.xlsx源码EXCEL VBA宏编程xlsx实例...
嵌_运行期限.zip昆仑通态触摸屏案例编程源码资料下载嵌_运行期限.zip昆仑通态触摸屏案例编程源码资料下载嵌_运行期限.zip昆仑通态触摸屏案例编程源码资料下载嵌_运行期限.zip昆仑通态触摸屏案例编程源码资料下载 ...
信息论与编程的课程教学,关于如何学习随机过程和马尔可夫链
面向方面编程技术的研究与实践,高尚,,传统的面向对象编程方法在处理一些关注点分散问题时存在着一定的局限性,面向方面编程增加了软件开发人员解决问题的维度,使编程
我觉得不错,和大家分享! 编程珠玑 编程珠玑 编程珠玑
《64位 微处理器系统编程和应用编程》 周明德编著 完整清晰版 1 针对当前应用最广泛的两种64位处理器--Intel和AMD的四核处理器作为基础进行介绍分析,反映了当代微处理器的最新发展。 2 把Intel和AMD两种处理器综合...
fx2n压力控制论程序.zip三菱PLC编程案例源码资料编程控制器应用通讯通信例子程序实例fx2n压力控制论程序.zip三菱PLC编程案例源码资料编程控制器应用通讯通信例子程序实例fx2n压力控制论程序.zip三菱PLC编程案例源码...
这是我找了蛮久的 看完之后 你会对排队论有了比较深入的了解 也很适合初学者看 里面还结合了大量的例题与matlab的编程 所以说 如果你需要的话 你可以直接用里面的程序 然后直接改代码就可以啦!
论数控编程后处理的系统格式修改.docx
python Qt GUI快速编程 PYQT编程指南 python Qt GUI快速编程 PYQT编程指南
14.10_论编程能力|Pythonic与Python杂记|Python3.8入门_&_进阶_&_原生爬虫实战完全解读
《64位 微处理器系统编程和应用编程》 周明德编著 完整清晰版 1 针对当前应用最广泛的两种64位处理器--Intel和AMD的四核处理器作为基础进行介绍分析,反映了当代微处理器的最新发展。 2 把Intel和AMD两种处理器综合...
MATLAB编程MATLAB编程MATLAB编程MATLAB编程MATLAB编程MATLAB编程MATLAB编程MATLAB编程MATLAB编程MATLAB编程MATLAB编程MATLAB编程MATLAB编程MATLAB编程MATLAB编程MATLAB编程
新版TOP2008编程软件。最后升级的。