博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
编码上的小改进
阅读量:5149 次
发布时间:2019-06-13

本文共 1114 字,大约阅读时间需要 3 分钟。

IF 

最初我的代码是这样的if(xxxx){    ...    if(xxxx)    {        ....        if(xxxxxx)        {             //做最后要做的事。        }    }}问题是,最后要做的事,并没有被执行,而我根本就不知道是哪个if没进来后来代码变成if(xxxx){log('xxxx');return ;}...如此n个判断,这样以来,看Log基本上可以定位到问题所在了。但仅仅这样,依旧不够。接下来的情况是,我知道程序命中该if,那我怎么知道是哪里不对。所以修改后的代码为if(xxxx){log('xxxx=:'+xxxx);return ;}记录该if判断关注或检查的值,用于进一步分析。

进一步明确职责,避免void类型

方法A内部,需要将某个值交给方法B来执行,逻辑上是毫不关心方法B的返回值。代码则是这样void A(string message){    B(message);    ... }方法A的目的,是处理Message,只不过由于某种需求,B也要处理,于是将其挂在A中。此时B方法未完成预期的结果,此时问题不好定位。于是代码变成void A(string message){    var ret = B(message);    if(ret == 0 )     {        log('方法B的返回值为0 异常');    }    ...}这样,若B方法除了问题,直接根据Log快速定位到B方法,然后让写B方法的人来定位,写A方法的人,该干嘛干嘛。

其他

  1.封装的目的是尽可能隔离变化,如数据库操作。

  2.针对接口进行编程。如在数据库操作上,我们直接使用某个数据库的访问类SqlHelper,这样在切换数据库时代价太大。若当前仅仅只支持Sql数据库,也可以使用工厂,返回接口,给应用层使用。

  3.以做产品为目的,程序员存在目的是奉献更好的产品,不能疲于赶进度。

  4.项目尽可能使用增量式发布。需要添加功能时,直接复制某些文件即可,避免重装站点,或者整体覆盖,容易引起意想不到的问题,风险过大。

  5.调试日志使用文件记录,这样后期代价小一些,如果有必要清理日志,可单独做。总比现场出了问题,背个笔记本,单步调试的好。

  6.使用MVC进行开发时,最好是在分析清楚业务编写代码,直接使用测试工具对接口进行测试。后端开发,则是保证后端接口的合理性和稳定性,而前台页面假设为变化多端的。

转载于:https://www.cnblogs.com/codealone/p/3533677.html

你可能感兴趣的文章
Inferred type 'S' for type parameter 'S' is not within its bound;
查看>>
objective里面的单例模式
查看>>
Git常用命令
查看>>
jQuery 遍历
查看>>
k8s中的api server的ca证书,可以和front proxy ca证书一样么?
查看>>
【UVa-679】小球下落——二叉树的编号
查看>>
Microsoft SQL Server sa 账户 登录错误18456
查看>>
windows:nginx配置http、https反向代理
查看>>
关于滚动更新的设计技巧
查看>>
rsync+ssh
查看>>
StackOverflow程序员推荐:每个程序员都应读的30本书
查看>>
链表 相关操作思路
查看>>
张瀚荣 如何用UE4制作3D动作游戏
查看>>
SQL ALTER TABLE 语句在项目中的使用
查看>>
【笔记篇】斜率优化dp(二) SDOI2016征途
查看>>
pairwork2测试作业
查看>>
理解之通用的重定向方法
查看>>
Collection接口这样学不迷路!(List、Set、SortedSet、Queue)第二篇
查看>>
设置myeclipse新建jsp文件默认编码为UTF-8
查看>>
indeed招聘
查看>>