摘要:
关于多看阅读的一些杂想。一些希望,还有一些触动。 阅读全文
2015年7月16日
2015年1月2日
摘要:
发现有一些问题几乎是所有的新人都会遇到,而且也常因为缺乏一些基本的知识而无从下手。函数调用栈的内容就是其中之一。于是花点时间把以前写的内容整理出来。 程序在运行期间,内存中有一块区域,用来实现程序的函数调用机制。这块区域是一块LIFO的数据结构区域,我们可以叫函数栈(调用栈)。每个未退出的函数都会... 阅读全文
2015年1月1日
摘要:
Visual Studio每次出“莫名其妙的问题”的时候都非常棘手。这次遇到这么一个问题: 新建的Windows的控制台窗口程序(C++),编译链接运行没有问题。但是想单步调试一下,所以在程序的某个地方打上断点,再运行程序,程序可以在断点处停下,但是继续单步执行不下去,会跳出程序直接执行完毕。所以... 阅读全文
2014年11月1日
摘要:
背景 GMock 我们项目中现在的模块测试框架使用了CATCH+GMock的方式实现回归测试和打桩。 GMock的介绍在官网上有,这里为了铺垫,大概地描述一下GMock能实现的效果。大约可以看成这样: void A() { if(B()) { //... } Else{ //... } } A是被测函... 阅读全文
2014年10月4日
摘要:
打算在项目中试试 CATCH 这个测试框架。请同事在工程中进行了试验,结果却出现了一点问题。 CATCH 和 GTest 之类的框架一样,可以直接在 C++ 文件中定义测试函数,就能自动地注册到测试列表中,而不需要显式地“注册”测试函数这样的代码。其实原理很简单,就是定义一个宏(TEST_CASE... 阅读全文
2014年9月7日
摘要:
周末大家都休息吧 哥也休息~虽然会看看邮件 16:53 想来想去还是管理差吧 也就是,问题还是在我们身上,我们不够作为,和我们的能力有限。大多时候公司不在乎你是怎么挣钱的。除了不做违法的事儿,只要你能把钱挣回来,怎么做都行。能力越强,越自由。所以有时候怪公司这怪公司那的不一定是到点子上,中层... 阅读全文
2014年8月18日
摘要:
这次项目一个“小小的”设备的开发,就涉及到了和美国、中国、日本、意大利、德国、印度、韩国、台湾八个国家和地区和工程师进行沟通。这充分地体现了现代社会生产中,各国发挥自己的特长,参与全球分工和合作,以获得双赢的特征。(也相当体现了英语作为一门“世界语”,掌握良好英语沟通能力非常重要)。 这不,这了推进项目的进度,解决与BSP交互中发生的各种问题,2014年7月,受客户委托,再次前往意大利硬件供应商... 阅读全文
2014年6月29日
摘要:
作者:唐风 Base 64是一种比较古老的编码方式,在通信中非常常见。它实现很简单。 What? “Base64是一种基于64个可打印字符来表示二进制数据的表示方法(来自维基)”。这句话我一开始没有看懂,现在我用我懂的方式再解释一下:我们可以把通信的数据流分为两种,“二进制流”和“文本流”。(注意,后面的定义并不严谨)。文本流是指数据串是以“人类可读的字符”组成的,数据流中出现的 0x00,... 阅读全文
2014年6月8日
摘要:
最近又从离职同事那里听到这样的抱怨(原因),说做的事没有技术含量。想一想,从事车载软件开发这个行业快8年了,这个话题似乎从来没有停过。我自己曾经也为自己做的事是否有技术含量而苦恼过,今天就专门花点时间聊一聊。 为什么会觉得没有技术含量? 真正思考过这个问题的人很少。简单粗暴地概括,大部分人(我所遇到的全部)都只是觉得,“这个事我会做了,所以没有技术含量”。也就是说,他们只是不愿意用已经会的方法... 阅读全文
2014年6月1日
摘要:
C++的语言品味是独特的,喜欢的人特别喜欢,讨厌的人特别讨厌。虽然Bjane Stroustrup不断地宣称C++的发展方向是新手友好的,但实际上对新手来说,最重要的还是有强大方便的标准库可以使用(像Java/C#/Python之类),让程序员们可以迅速地完成手头的工作。Bjane Stroustrup本人也看到这个问题,并经常强调强加标准库的重要性,不过好像标准委员会并没有太理会这个事,大部的提... 阅读全文
2014年4月20日
摘要:
最近一直在参与重构项目中的代码。 之前写的代码最大的问题在于“想到哪里写到哪里”,没有从功能上先整体地进行分析,然后将类似的业务分类到一些,有条理地书写代码。应该来说本来是可以这么去做的, 因为我们花了不少时间去做详细设计。写代码的同事已经对业务的逻辑有了相对完整的理解。但由于不少同事在写代码方面经验还比较少,因此很难做到这一点。所以就想到哪里写到哪里,也比较少审视前后写的代码一起来看是不是结构... 阅读全文
2013年11月5日
摘要:
在这篇博文里,我提到了一个例子,说的是使用C++实现类型安全的printf。这个例子很惊艳,但是在我写程序的时候,并非那么“迫切”地需要它出现在我的工具箱中,因为它并不比普通的printf方便,而且它没有出现的标准库中。所以自己也懒得整。相反,这个函数的兄弟,sprintf,倒是一个非常需要的函数。不仅仅是因为需要它类型安全,而是 sprintf 有比 printf 更多的麻烦: 首先它确... 阅读全文
2013年9月23日
摘要:
以前我们还只是聊聊QQ,看看网页,通信安全似乎并不为人所重视,而现如今电子商务已经极为普及,我们在网上的生活也已经非常丰富和重要,因此对帐户的安全,信息的保密便越来越重视。对信息进行加密是保证通信安全的最为基本也是最为重要的手段之一。最近的项目正好涉及到通信安全相关的内容,所以也学习一些入门的基本知识。 基本概念 明文就是我们真正想要通信的信息,这些信息要不就是人类可读的,要不就是有明显意... 阅读全文
2013年9月21日
摘要:
作者:唐风 主页:www.cnblogs.com/liyiwen 前几个星期买了,一直没有直接细翻,买的时候看了背面的两个推荐,一个是孟岩,一个是Scott Meyers(Effective C++系列的作者)。二牛推荐必属精品,于是没有细读,直接买下。 这次去往返合肥,不想带什么行李,包里就只装了这本书,于是在火车上花时间翻了一遍。这才确认,原来这本书居然成书于1995年……那... 阅读全文
2013年9月10日
摘要:
作者:唐风 主页:www.cnblogs.com/liyiwen --------------- 记得我毕业时第一次到公司面试的时候,人事经理问我,你第一次到公司有些什么印象?我当时回答她说,我从公司大门进入到面试的会议室,中间路过了办公区(当时我们公司还比较小),我看到大部分人的屏幕上显示的都是Outlook(Foxmail)这样邮件客户端的界面,好像大部份人都是在处理邮件,我以为一个技术... 阅读全文
2013年8月26日
摘要:
作者:唐风 主页:www.cnblogs.com/muxue 一直都没有搞清楚傅里叶变换,那些公式一看就“懂”,但合上书就忘,因为从来就没有真正地理解过。但傅里叶变换实在是太重要了,随手翻一本信号,电路的书,都能看到它的身影,避是避不开的。想要真正的入门电子系统... 阅读全文
2013年4月30日
摘要:
《C++ concurreny in action》 第五章 C++的内存模型和原子操作 5.1 Memory model basics (内在模型基础) Memory model 涉及两个方面:structural 和 concurrency structural 是基础,主要是对象的布局 5.1.1 Objects and memory location The C++ Standa... 阅读全文
2013年4月22日
摘要:
唐风 www.cnblogs.com/liyiwen 《C++ concurreny in action》 第四章 Synchronizing concurrent operations 这一章主要讲C++11中的进行线程同步的方法 4.1 Waiting for an event or other condition 经常遇到的一种场景是一个线程A需要等待另一个线程B完成一些“事”(操作)才能往下运行继续处理。 有以下几种“办法” 一,设置一个多个线程都能访问到的变量,B线程一旦完成自己的操作,就把这个全局的变量设为某个值,而线程A则 不断地去检查变量的值是不是已经设置为这个... 阅读全文
2013年4月21日
摘要:
作者:唐风 主页:www.cnblogs.com/liyiwen C++11已经问世两年了,各大编译器也都加紧跟进对C++11的特性和库的实现(这里有一份GCC,MSVC,CLANG的对C++11的支持情况表)。在我们还没有来得及消化新的C++的时候,C++标准委员会并没有停下。从C++11正式发布到今天,他们一直在为C++14(以及以后的C++17)努力工作着。4月20日,来自C++标准委员会的网站上的一篇新闻说,用于 C++14 的投票草案已经完成。这意味着 C++14的内容基本上要定型了,这其中包括: generic lambdas(泛型的lambda表达式,也就是... 阅读全文
2013年4月17日
摘要:
唐风 www.cnblogs.com/liyiwen 《C++ concurreny in action》 第三章 sharing data between threads 3.1 线程间共享数据的“问题” invariants 被破坏(比如说一个读一个写) 3.1.1 race conditions 条件竞争是: In concurrency, a race condition is anything where the outcome depends on the relative ordering of execution of operations on two o... 阅读全文