我的编程认知:多思考、多编码、多测试

在我的程序员生涯中,悟出了以下的一个程序编码流程;期间也接触了很多其它的理论和想法,但是我还是觉得这是最适合我的。

大致的样式是这样的:

  • 多思考(Think a bit)
  • 多编码(Code a bit)
  • 多测试(Test a bit)
  • 再来一遍(Go to Step 1)


第一步:多思考

有多少朋友会觉得,噼噼啪啪键盘节奏的快慢代表了程序生产力的高低?如果你也是这样想的,我希望你能在遇到问题时,先放一放,静心想一想。

如果思考的时候,觉得无从下手,不妨先问问自己:究竟要做什么? 一旦安静下来,这个问题的答案将会使我们辨清方向或者重新考虑问题的处理方法。

下一步,我会建议思考这个问题:自己是否把简单问题复杂化了? 尝试用最简单的办法来解决问题是每个程序员应该为之努力的目标。但当我们掌握了足够多的学识时,用如此简单的方法来解决问题是否大材小用了?如果这样想,或许最后找上我们的却是一堆堆越来越复杂的问题。尝试转一下思路,用简单的办法解决问题会导致最坏结果是什么呢?是比不能解决问题更差吗?学会跳出牛角尖,这一点很重要。

因此,在遇到问题时,不妨多问问自己以上几个问题。而当进行到一个瓶颈位置,进退维谷时,我会考虑进入下一步。

第二步:多做

我觉得这是最有趣的一步。因为很多时候,编程对于我们来说更像是打游戏,不是吗?但是要避免过犹不及。正如前述,当发觉做了无用功时,应该适当转变思路,并再次提醒自己:是否朝着既定的方向前进。

然后,我们接着做下一步。

第三步:多测试

实不相瞒,这一步不仅没有编码那么趣味盎然,甚至还十分让人烦恼。

但是,没有测试环节的项目,我建议还是在个人的开源项目中进行吧;因为不经过测试而发布的,应该没有多少人敢用。

除了烦恼,测试可能也是编码过程中最复杂的一个环节了。有别于编程那样的所见即所得,要找出最优的测试方案可得花上成倍的努力。测试的特点就是充满不确定性。

有的朋友采用的是测试驱动的开发方法,我的看法是:这是好的,但请坚持到底。对于我来说,如果是高度算法集中的项目,我也会采用该方法。

第四步:再来一遍

问题的解决很多时候都不是一蹴而就的,一遍下来的循环和反馈是至关重要的。打造软件的过程是一个不断学习的过程,不断学习加强技术和问题处理的能力。一个好的策略是遵循计划->执行->反思的过程来进行。

小结

以上就是我个人的一些有关编码流程的见解。时至今日,随着越来越多的便捷开发工具的推出,以上这四步流程走得更顺畅了。所以,请不妨试试吧。

我的编程认知:多思考、多编码、多测试

时间: 2024-11-10 18:22:03

我的编程认知:多思考、多编码、多测试的相关文章

走进windows编程的世界-----字符编码

1   字符编码 1.1编码的历史 1.1.1ASCII码 0=127 7位表示 1.1.2ASCII扩展码 0-255 8为表示. 代码页:通过代码也来切换对应的字符(数字表示) 1.1.3双字节字符集DBCS 使用一个或两个字节表示字符. 1.1.4Unicode编码 全部使用2个字节表示字符 内存 硬盘等资源占用变大.对编码支持度大. 字符集 1.2C 语言和编码 1.2.1单字节的字符和字符串 Char  cText = 'A'; Char * pszText ="ABCD"

bash脚本编程之条件判断、条件测试

脚本编程: 编程面向过程有如下几种执行方式 顺序执行 选择执行:  如 if, case 循环执行:  如 for, while, until bash的变量类型: 本地变量 set VAR_NAME=value 设置变量赋值 如: set User=Centos unset VAR_NAME 撤消变量赋值 如: unset User=Centos ${VAR_NAME} 作用范围:当前shell进程: 局部变量 local VAR_NAME=value 设置变量赋值 unset VAR_NAM

php中序列化与反序列化在utf8和gbk编码中测试

在php中如果我们统一编码是没有什么问题了,但是很多朋友会发现一个问题就是utf8和gbk编码中返回的值会有所区别: php 在utf8和gbk编码下使用serialize和unserialize互相序列化和反序列化会出现无法成功反序列化的问题. 问题出现的原因主要是在不同编码下strlen函数计算中文字符串长度不同的原因. <?php $array=array('title'=>'php教程分享网','url'=>'http://www.111cn.net'); echo serial

编码UI测试

转自他人博客 使用 UI 自动化验证代码 Visual Studio 2013 驱动器通过其用户界面 (UI) 的应用程序的自动化的测试称为编码的 UI 测试的 (CUITs). 这些测试包括用户界面控件的功能测试. 它们使您可以验证整个应用程序,包括其用户界面,能正常工作. 没有验证或在用户界面中,例如在网页中的其他逻辑时,编码的 UI 测试将特别有用. 他们还经常用于自动执行现有手动测试. 下面的插图所示,一种典型的开发体验可能位置,开始时,您只需生成您的应用程序 (F5) 然后单击通过 U

UNIX网络编程(第三版 ) 测试代码 7.2

头文件 #ifndef UNP_H_ #define UNP_H_ /**  * @file unp.h   * @brief  global structure for unp  * @author mhw  * @copyright galaxywind  * @date 2013/11/06  * @note  *        */ #include <stdlib.h> #include <stdio.h> #include <string.h> #inclu

[编程题-美团] 字符编码

[编程题] 字符编码 请设计一个算法,给一个字符串进行二进制编码,使得编码后字符串的长度最短. 输入描述: 每组数据一行,为待编码的字符串.保证字符串长度小于等于1000. 输出描述: 一行输出最短的编码后长度. 输入例子: MT-TECH-TEAM 输出例子: 33 #include <cstdio> #include <cstring> #include <cstdlib> #include <cmath> #include <algorithm&

【转】【编程技巧】字符编码总结

本文转自:http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html 原文作者:阮一峰 今天中午,我突然想搞清楚Unicode和UTF-8之间的关系,于是就开始在网上查资料. 结果,这个问题比我想象的复杂,从午饭后一直看到晚上9点,才算初步搞清楚. 下面就是我的笔记,主要用来整理自己的思路.但是,我尽量试图写得通俗易懂,希望能对其他朋友有用.毕竟,字符编码是计算机技术的基石,想要熟练使用计算机,就必须懂得一点字符编码的知

使用editplus等编程工具时UTF-8编码去掉BOM头方法(转载备查)

Unicode规范中有一个BOM的概念.BOM--Byte Order Mark,就是字节序标记.在这里找到一段关于BOM的说明: 在UCS 编码中有一个叫做"ZERO WIDTH NO-BREAK SPACE"的字符,它的编码是FEFF.而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中.UCS规范建议我们在传输字节流前,先传输 字符"ZERO WIDTH NO-BREAK SPACE".这样如果接收者收到FEFF,就表明这个字节流是Big-Endia

软件编程含有中文的编码问题

SI与codeblocks编码设置 1.以UTF-8格式打开源码文件,并将UTF-8格式作为默认的编码模式. 情况一:源文件的格式为UTF-8(str="中文") codeblocks的打开格式.保存格式.代码解析格式.内码编码格式.与设置一致,解析输出不能看到准确的汉子,这取决操作系统,因为国内windows操作系统cmd的输出是gbk,所以会有乱码,但是可以将编码的hex打印出来,就可以看到其内码格式为UTF-8. 代码解析:即编辑器对c/c++这些语言的解析. 情况二:源文件不是