编程技巧
何亮-1108
一个流媒体/图像/视频/视觉行业技术老兵(撸代码的)
展开
-
接口设计漫谈之回调函数1
回调函数一 最近看到一个USB设备数据通讯的接口设计,觉得很典型,值得拿出来说一下。 接口很简单,核心的就是两个函数,如下: ------------------------------------------------------------------------------Int SendCommand(void *pCmd, int原创 2013-01-24 13:42:42 · 527 阅读 · 0 评论 -
编程小提示
编程的一些小心得原创 2013-11-11 17:28:12 · 757 阅读 · 0 评论 -
开发调试之确定原则
所谓的确定原则,指的是对于开发过程中遇到的问题,我们解决问题的思路应该是从胜利走向胜利、从确定走向确定,而不是相反,即从失败走向胜利、从不确定走向确定。这个原则虽然说起来简单,但能成为习惯,遇到问题就按照这个原则去解决却不太容易。 举个例子来说明,比如某软件的 v 0.66版本发现某 bug,而回归到 v 0.60 版本却无此问题,对这个bug ,我们的工程师应该怎么查呢?经过原创 2013-07-17 16:58:12 · 556 阅读 · 0 评论 -
C++ 多线程开发技巧 5
新的问题 继续看网络视频播放器的例子。最开始需求很简单:一路网络视频的播放。在程序设计上,主线程负责UI和用户输入响应,另外再开一个线程负责网络视频数据接收、解码和显示,这个线程我们称之为业务线程。现在问题来了:业务线程怎么创建最好? 最常见的处理方式:超级类解决一切 我们知道,主线程是不需要创建的,而涉及到UI的开发中,总存在一个主窗口的窗口类,这原创 2013-04-18 14:04:15 · 932 阅读 · 0 评论 -
C++ 多线程开发技巧 4
互斥量过多:数据类的设计 对每个变量都使用一个MUTEX 进行保护当然是有问题的,因此,可以把逻辑上相关较强的数据都放到一个类中,然后使用一个 MUTEX 对这个类进行保护,这样就可以极大的减少 MUTEX 的数量,同时程序的可读性和可维护性都得到很大的提升。 看个例子。 #include "..\..\port\port.h"#i原创 2013-04-17 11:28:27 · 600 阅读 · 0 评论 -
C++ 多线程开发技巧 3
新的问题 保护原则的正确性已经验证,但是在实现时,我们发现了两个新问题。 第一个是刚才的实现中,似乎打破了我们以前说的对称原则,仔细看代码会发现在Modify 函数中,mutex_lock 被调用了一次,而mutex_unlock 却被调用了2次。这个问题虽然是个小问题,但是对于完美主义的我而言,却是个大问题。当然,在培训的实践中,也确实发现部分学员很容易忘原创 2013-04-16 17:07:59 · 673 阅读 · 0 评论 -
C++ 多线程开发技巧 2
看个打破保护原则的例子#include #include static DWORD WINAPI MyThread( LPVOIDlpParam ); static int num = 20; int main(int argc, char *argv[]){ HANDLEhThread[4]; inti;原创 2013-04-16 16:10:31 · 624 阅读 · 0 评论 -
C++ 多线程开发技巧 1
1 为什么要多线程 第一种情况很好理解,那就是在多CPU 时,使用多线程可以提高CPU的使用率。 第二种情况更常见,在单CPU单核的计算机上,使用多线程技术,也可以把进程中负责IO处理、人机交互而常备阻塞的部分与密集计算的部分分开来执行,编写专门的线程执行密集计算,从而提高了程序的执行效率。举一个例子说明一下:比如网络视频播放器,它有以下几个工作需要同时原创 2013-04-16 15:26:18 · 745 阅读 · 0 评论 -
代码review的心得
1. WHY 代码review 是提高开发团队代码质量的一个非常好的技术手段,同时也是了解和培养新手程序员的一个非常好的方法,我个人的建议是所有的开发团队都应该努力推广代码review这一技术实践。 2. WHO原则上,如果有条件,应该是团队中所有人相互进行代码review,或者说,确保每行代码都被除作者以外的人review过。也就是说,不仅仅团队L原创 2013-03-27 18:01:33 · 1445 阅读 · 0 评论 -
编程规则与高质量代码
常常听到程序员抱怨他接手的代码比较“烂”,维护起来很吃力,甚至说什么“还不如重新做一遍”等等。这一现象很大程度是因为代码的可读性比较差,而到底应该怎样提高代码的可读性呢? 我们先来做一个分析,那就是代码为什么普遍存在这可读性不好的弊端。我曾经注意过一个现象,那就是同一个业务逻辑,不同的工程师有着不同的实现方式,即,实现该业务逻辑的代码因为工程师的不同而不同,甚至,同一个工程师因原创 2013-01-28 00:32:25 · 562 阅读 · 0 评论 -
关于编程中的命名问题
好的代码应该是很好维护的,而代码的可维护性很大程度取决于它的可读性,而提高代码可读性最重要的事情就是重视程序中所有类、函数、变量的命名。以我个人的观点,写程序,最重要的事情就是命名,把命名这个环节做好,好代码自然就来了,反之,不重视命名,或者说胡乱命名,那要想得到好的代码,则是不可能的事情。 编程中命名既然如此重要,可是要做好却是十分的不容易,下面我总结一些关于命名的规则,如果原创 2013-01-25 14:23:37 · 1174 阅读 · 1 评论 -
C++ 类的设计规则
类是C++ 语言的核心概念,要想写出高质量的C++代码,最重要的事情就是把类设计好,下面介绍一些C++类设计的基本规则。 1 命名 类名一般是名词,用大白话说就是类一般都是个“东西”,根据我的命名原则,业务逻辑中涉及到的所有“东西”在程序中都应该有一个对应的类。 类的方法一般是动词,或者动宾式组合,类方法的隐含的主语就是类自己。举个例子来说,类名原创 2013-04-19 17:14:45 · 7044 阅读 · 2 评论