其他
文章平均质量分 66
Ch_ty
这个作者很懒,什么都没留下…
展开
-
关于指导新人的感想
一. 前言 最近指导的新人遇上了一次较大的失误,本文从指导者和新手程序员两个角度来总结我的个人体会感想。二. 作为导师 作为导师,是需要负担起指导新人的责任的,关于这一点自我感觉做的不够到位,因为在给予新人足够自由的成长空间和手把手指导之间的度其实是挺难把握的,于此大致有如下体会。先把新人当成傻子,基础问题需要事无巨细的说明。如:公司制度、代码规范、版本控制工具使用原则和流程、开发环境的搭建、自测流程和众多注意事项等。也许你认为很多很简单、是常识,但是对于新人来说也许真的就不知道,正如一句名言原创 2020-10-20 23:18:36 · 1108 阅读 · 2 评论 -
关于VS2019缩进问题及Format On Save工具
VS2019自带了缩进系统,但是默认配置不是很好用,下面的调参会让人更舒适。修改工具->选项->文本编辑器中对应语言的Tabs选项,关闭Tabs,一致改为空格,空格数量可选4或者2,看项目组的规范统一关闭工具->选项->文本编辑器中对应语言中粘贴后自动更新格式的选项下载Format On Save插件,并记得将EnableFormatDocument设置为false....原创 2020-10-20 22:43:50 · 6406 阅读 · 3 评论 -
关于解决“无法定位程序输入点于动态链接库”问题的思路
昨天跑代码突然遇到了“无法定位程序输入点于动态链接库”的问题,这种问题显然是动态库缺失或者地方放的不对,如果是自己写的小玩意儿细心检查一下即可,如果是工程项目则会麻烦很多,也许明明已经编译了,但是就是莫名其妙的报错。通过老大的帮助最终学会了如何解决。 针对该种情况,可以通过如下方法排查:使用everything查看是否有编译使用dependcy walker定位缺失的动态库实际应出现在什么位置 通过这种方式,可以很方便的解决工程项目中遇到的该问题。...原创 2020-09-24 22:03:34 · 9801 阅读 · 5 评论 -
大佬指点之发展规划
今日有幸和公司大佬单独吃饭聊天,并趁机请教,收益颇丰。1. 科普向关于程序总监/leader/CTO 高级程序员分两种:一种是在某一个方向钻研极深,全国、全球TOP的专家;第二种是知识面广博,在某几个方面涉猎较为深入有足够的知识。成为第一种难点在于如何保持对某一个方向高度的兴趣,多少年如一日的钻研,并且需要较高的天赋。成为第二种难点在于如何做到博而不杂,每种都沾一点点是没有用的。...原创 2019-09-13 00:56:54 · 266 阅读 · 0 评论 -
C++实现由观察者模式实现被成员类对上级类的通知
一. 简介 最近遇到了这样一个问题:A类中包含了一个成员类B类,B类会实时更新路由表,更新完之后希望能实时将新的路由表通知给A,使得A能更新总表并进行多项操作。而实际上,作为一个成员类的B类是没有权限去调用A的函数或者通知A的,而使用函数指针又不是优雅的C++解决方案,因此这里采用观察者模式解决。下面给出一个由观察者模式写的简单小例子。二. 观察者模式示例代码首先我们需要完成底层回调函数...原创 2019-08-17 12:10:37 · 330 阅读 · 0 评论 -
std::pair使用出错的例子
最近使用std::pair的时候发现了一处bug,记录于此。 代码如下所示:...int code_length = 0;int err = 0;std::pair(code_length, err) = parse(file);... 函数parse会返回pair类型的两个数值,我的目的是想让code_length和err分别获得该值。但是实际运行中发现值并不会赋给这两个...原创 2019-06-22 08:29:49 · 1485 阅读 · 0 评论 -
编译器优化造成的语句跳过问题
前几天写代码的时候由于疏忽造成了一个小bug,代码示例如下if (ret){ m_send == 1;}由于这里多打一个等号造成了该语句无效。在逐步调试的时候,发现会跳过该If判断语句不执行。通过反汇编,发现这里编译器自动优化省略了该判断语句。由此很好奇编译器在关闭了自动优化的情况下还会对哪些做自动优化。这里先写到这儿,待后续继续补充。总结:写代码一定要注意检查,不要犯这种低级...原创 2019-06-09 21:35:01 · 1715 阅读 · 0 评论 -
关于多次调用CreateFileW失败的问题解决
最近在使用CreateFileW的时候,遇到了INVALID_HANDLE_VALUE,通过get_lastError返回VIOLATION_SHARING的ERROR,由于我已经使用了FILE_SHARE_READ模式,因此很不能理解为什么会报错,通过仔细阅读微软官方文档发现其实内部的判定比我想当然的要复杂的多,现在记录如下:...原创 2019-03-26 22:21:38 · 2642 阅读 · 0 评论 -
windows下的libutp测试代码
libutp的github上仅有Linux版本的测试代码,在此分享一个个人修改的windows版测试代码,代码较为简陋,仅供参考。服务器端// vim:set ts=4 sw=4 ai:/* * Copyright (c) 2010-2013 BitTorrent, Inc. * * Permission is hereby granted, free of charge, ...原创 2019-03-30 20:16:41 · 455 阅读 · 0 评论 -
error C2238, error C2143解决方法
在使用VS编程的时候,偶尔会遇到报错:缺少“;”(在“类型”的前面)问题或者missing ; before type.该类问题的产生原因在于C99之前的C标准里规定只能在函数开头定义变量,而不能在中间位置定义,因而产生各种奇怪的报错。 为了解决该类问题,比较有效地有两种办法:第一种是仅在开头定义变量,第二种是使用VS2012之后的IDE。...原创 2018-09-14 22:17:22 · 5040 阅读 · 0 评论 -
Proactor模式详解
proactor结构模式在异步操作完成后触发服务请求的分配和分发 。1. 举个例子吧 考虑一个需要同时处理多个请求的网络服务程序,比如,一个高效的WEB服务器需要并发的处理来自于不同客户端浏览器的HTTP请求。当一个用户希望从某个URL下载内容时,浏览器和WEB服务器建立连接并发送HTTP的GET请求。WEB服务器顺序执行了:接收浏览器的连接事件,接受连接请求,读取请求,然后解析请求...原创 2018-08-27 23:07:31 · 15884 阅读 · 0 评论 -
Reactor模式详解
本文翻译至大神的论文,名字叫就叫reactor。 reactor设计模式用于需要并发处理多个客户端的服务器。1. 举个例子吧 假设我们需要建立一个提供分布式日志服务的事件驱动服务器。客户们使用客户端会向该服务器发送请求记录自己的状态信息,信息包括错误通知、debug信息、表现诊断等。该日志服务器对于收到的信息进行分类并分发操作,包括:显示屏显示、打印机打印、数据库存储等...原创 2018-08-20 22:15:58 · 9136 阅读 · 8 评论 -
debug心得(持续更新)
本文持续更新,记录debug的岁月里的心(keng)得(die)。 1. 写完代码记得多看几次,避免手抖导致的错误。编译器可以检测出一些明显的错误,但是不能检测出一些问题,比如a[recv] = x;a[send] = y;写成了:a[recv] = x;a[recv] = y;或者a[recv] = x;a[recv] = x;不仔细看,在一大堆代码里有...原创 2018-08-17 21:58:23 · 1210 阅读 · 2 评论