2016年的搬码总结

1、避免重复,否则出现bug多处一样的代码让你无从下手,除非debug调试;
2、相同的功能逻辑应归类划分,管理好类似逻辑,试着对比抽取;
3、编程不要急于编程,想清楚输入和输出,异常输入的处理,对函数返回码的验证;否则,一个小小的失误可能花费你1个小时的时间去寻找莫名其妙的bug;
4、做好自己的工具库,比如:日志输出;Unicode与ANSI多字符的转换;一些数据处理库:四舍五入、三角函数;
5、做好版本控制;尽情的使用SVN,GIT,前提是控制版本的同时,写好版本描述;
6、使用语言本身的库,抛弃基于平台的库API,多使用stl等支持多平台的库;
7、不应该出现注释的代码;关键的地方进行注释,不需要注释的地方不要有注释;
8、类的规模尽量的小;类中成员变量的使用出现的频率尽量少,在类中使用,最好使用引用的形式来使用成员变量;这样你在查找引用或者查找全部的时候,不会出现几百处的使用;
10、不使用全局变量,在多数多线程程序中,全局变量意味着出乎意料的bug产生;
11、莫名其妙的bug总是有原因的,使用二分法查找bug;
12、调试bug、复现bug时不要冲动,电脑是不会犯错的,一切都是因为你的技术不过关;
13、对文件的读写操作,当需要频繁的读取,不要频繁的使用fread或者fwrite,要不整段读取,要不对大文件采用文件内存映射;大块new和频繁的new是会大量消耗系统时间的;
14、Debug调试下出现的assert提示,应该一一查找原因;因为assert出现总是有原因的;
15、每一段功能逻辑都要跟一遍,有时候代码不是你想像的那样进行的,如;你要释放一个类指针,按照void*方式传入时,delete是不用调用该类的析构函数的,正确的方式是delete(A*)ptr;
16、当不知道程序需不需要优化,就不要着急优化,先保证功能正常使用;

12、修改代码时,一定要上下文读懂,不要急于修改;
13、多向别人学习;
14、把所有修改涉及到的功能提示测试,覆盖测试;
15、保留每次提交的版本;

时间: 2024-10-14 20:03:23

2016年的搬码总结的相关文章

广州启帆机器人搬码拣画册

广州启帆机器人搬码拣画册 ?????????????????for??global??enterprises 原文地址:https://www.cnblogs.com/zhangguofu/p/10322642.html

visio2013/2016软件及激活码总汇

在平时写论文等材料时,需要用到Visio进行画图,不过Visio确实强大,但是由于收费就让人非常不解了,但是这段时间通过在网上购买和自己下载总汇,总汇汇集了2013和2016版本,今天共享出来,希望对大家有用: (1) Visio2013 软件及激活码:链接:https://pan.baidu.com/s/1Sy1EnuZ50y_IZSTbXMybKw 提取码:y4x9     (2)Visio2016 软件及激活码:链接:https://pan.baidu.com/s/18nx0FQqMQRK

IntelliJ IDEA 2016.2激活

激活码 43B4A73YYJ-eyJsaWNlbnNlSWQiOiI0M0I0QTczWVlKIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVFbWFpbCI6IiIsImxpY2Vuc2VSZXN0cmljdGlvbiI6IkZvciBlZHVjYXRpb25hbCB1c2Ugb25seSIsImNoZWNrQ29uY3VycmVudFVzZSI6ZmFsc2UsInByb2R1Y3RzIjpbeyJ

GGTalk ——C#开源即时通讯系统

http://www.cnblogs.com/justnow/ GGTalk ——C#开源即时通讯系统 下载中心 GGTalk(简称GG)是可在广域网部署运行的QQ高仿版,2013.8.7发布GG V1.0版本,至今最新是5.5版本,关于GG更详细的介绍,可以查看 可在广域网部署运行的QQ高仿版 -- GGTalk总览. GGMeeting是可在广域网部署运行的视频会议系统Demo,2015.05.11发布V1.0版本,关于GGMeeting更详细的介绍,可以查看 打造自己的视频会议系统 GGM

select for update引发死锁分析

本文针对MySQL中在Repeatable Read的隔离级别下使用select for update可能引发的死锁问题进行分析. 1. 案例 业务中需要对各种类型的实体进行编号,例如对于x类实体的编号可能是x201712120001,x201712120002,x201712120003类似于这样.可以观察到这类编号有两个部分组成:x+日期作为前缀,以及流水号(这里是四位的流水号). 如果用数据库表实现一个能够分配流水号的需求,无外乎就可以建立一个类似于下面的表 CREATE TABLE nu

263网络通信面试总结

这是我做了三年多前端的第一次面试,面试没做什么准备,基础知识习惯了随用随查,这次面试效果并不好,需要自己反思总结一下. 经过这次面试,我总结出七点,只要能做好这七点,我想这次面试应该胸有成竹的. 1.面试前,一定要简单刷点前端的基础知识也能巩固及串联曾使用过的技术点: 2.面试前,一定要将简历上的项目在脑海里过一遍,最好能能在纸上将之前的业务流程都画一遍,顺便将曾处理的技术难点都总结一下, 在自我介绍时,可以说下自己做过哪些项目,并攻克了哪些难题,比流水账的介绍会提高面试官给自己的评分: 3.简

AOP 和Spring.net

前言: 其实笔者在早三四年前就开始接触AOP, 但是一直未曾真正理解,当你开始理解就会明白使用它的好处, 这也是笔者花费挺长时间开始慢慢反省所得,希望在以后撸代码的日子里,多做思考而不是做个搬码的机器, 笔者在项目中使用的Spirng.net. 什么是AOP?AOP和OOP有什么关系? AOP面向切面编程,它允许开发者动态的修改静态的OO模型.在运行时,动态的将代码切入到类的指定方法指定位置上 AOP和OOP的关系:个人觉得它是OOP思想的一种补充,打个比方,OOP是上下,AOP则兼顾左右 正因

聊一聊前端模板与渲染那些事儿

欢迎大家收看聊一聊系列,这一套系列文章,可以帮助前端工程师们了解前端的方方面面(不仅仅是代码): https://segmentfault.com/blog/frontenddriver 作为现代应用,ajax的大量使用,使得前端工程师们日常的开发少不了拼装模板,渲染模板.我们今天就来聊聊,拼装与渲染模板的那些事儿. 如果喜欢本文请点击右侧的推荐哦,你的推荐会变为我继续更文的动力 1 页面级的渲染 在刚有web的时候,前端与后端的交互,非常直白,浏览器端发出URL,后端返回一张拼好了的HTML串

使用 Raspberry Pi 上的传感器在 Node.js 中创建一个 IoT Bluemix 应用程序

先决条件 一个IBM Bluemix 帐号,一个 Raspberry Pi 2 或 3,一个 PIR 运动传感器 适用于本文的 Github 存储库 如果您是一位精明的 Bluemix 开发人员,您可能只想看看如何在 node.js 中与 IoT 建立连接,或者只想了解如何从此 github 存储库中拉取我的代码. git clone https://github.com/nicolefinnie/iot-nodejs-tutorial 以下是实现与 IBM IoT 平台连接在一起的 4 个 R