程序人生
碎碎念
xktesla
生命诚可贵,不要总纠结于设计一个完美的架构然后再开始功能的开发,理论与实践相结合,功能与架构并行推进。
展开
-
对六大设计原则的理解
我是野路子出身,因此教科书式的知识我接触的相对较晚,二十三种设计模式可能是在2017年首次接触的,而六大设计原则是2020年才首次听闻。这么久以来,我一直对这六种设计原则理解的比较浅显,因为我总觉得他们之间的界限不够明确,存在很多重叠的规则。 ̄□ ̄||但从个人的项目实践经验上,我还是有一些个人的理解,在此记录,也作为分享。对于一个多模块系统软件,大致上可以理解为:模块之间应尽可能采用接口调用方式,即面向接口编程,这样可以在一个模块改动时对另一个模块影响最小; 模块里类的业务功能设计,遵循单原创 2022-04-26 09:08:52 · 199 阅读 · 0 评论 -
x2lib——一个C++基础库(整合了一些工具类、框架类、轻量开源库)
x2lib: 一个C++基础库(整合了一些工具类、框架类、轻量开源库)原创 2022-04-19 17:16:01 · 173 阅读 · 0 评论 -
如何关闭WinDefender(亲测有效)
Windows自带杀毒软件经常会出现MsMpEng.exe占用CPU高,且无法结束进程的问题。该方法理论上适用于任何windows版本,甚至适用任何不想让其启动的程序。方法(以MsMpEng.exe为例):Step1:系统运行状态下记录下MsMpEng.exe的路径。Step2:关机重启进入PE系统。Step3:找到MsMpEng.exe文件,右键使用记事本打开,随便删除一段内容,保存。Step4:重启系统,搞定!下图是我更改后的MsMpEng.exe,为防止意外做了备份Ms原创 2022-04-16 12:47:45 · 6105 阅读 · 0 评论 -
程序猿炒股
今年是我入市的第四年,战绩如下图。简单总结一下,第一年凭本事亏掉50%,第二年第三年凭运气赚了40%,第四年凭实力赚了10%,现在基本上盈亏平衡。我一直将炒股认作是少有的几种合理的“不劳而获”的赚钱方式之一。我一直很坚信股市可以赚钱,即便是亏损50%的时候。这几年我一直在钻研炒股技巧,并且自认为已经有一些有效成果。另外,我还在开发一款自动炒股软件,由于是业余时间开发,效率并不高,已经持续了一年时间,但我的策略一直很清晰,预计2022年年中可以达到初步上线标准。同志们请拭目以待...原创 2021-12-31 20:37:14 · 362 阅读 · 0 评论 -
我们的研发项目B现状及问题
基本情况(截止2021-12-08):开发环境:VS2010工具集代码量(.c;.h;.cpp,不含第三方库和基础库):285万行工程个数(不含第三方库和基础库):200个SVN分支数:107个让人诟病的问题:VS2010工具集对C++11不够友好。但由于个别项目依赖了旧版本lib,一直没有升级工具集。 编译环境搭建过于复杂。以至于同事们都只能从官网下载之前的安装包,解压后覆盖到生成目录,才能保证编译出的程序能正常启动。【离谱...原创 2021-12-26 10:09:31 · 524 阅读 · 0 评论 -
C++如何限制模板类的类型
在使用泛型编程时,有时候会有类似需求:要求T只能为某个类,或某几个类,那应该如何实现?据我所知有3中:使用模板函数; 使用typeid函数; 巧用static_cast;前两种学习理解起来都比较复杂,以后有空了再更,暂时只介绍第3种,示例和方法如图:...原创 2021-12-29 13:59:56 · 4071 阅读 · 0 评论 -
从2345离职的原因
不知不觉已经从2345离职近一年。2345是我目前为止待过的最有名气,市值最高的一家公司,也可谓是我的职业巅峰了。可惜我只待了半年。当初离职并非我的主观意愿,而是在三重因素的叠加下,不得已离职。第一件事,是我和一位同事在一个项目的协同开发中发生了严重意见分歧,我们在一个星期内连吵了4次架。他是P5的老员工,我是P3,当时新开了一个项目,他作为业务层主力开发兼项目负责人,我作为ui层的主力开发。在涉及到模块间对接时,发生了分歧,我要求他向我提供模块之间的调用接口,调用流程,调用方法。得到了他直截了当的拒原创 2021-12-16 22:34:23 · 146 阅读 · 0 评论 -
迪米特原则与需求变动的较量——类中函数设计
作为一个开发,最头疼的莫过于需求频繁变动,遇到一个高水平的产品还好,但如果你家产品总是靠着拍脑袋写需求,那简直是噩梦。我在刚毕业时遇到过一个,现如今又遇到一个……六大设计原则中的迪米特原则,提倡的是暴露最少接口,适用于系统与系统对接,模块与模块对接,类与类对接,甚至类中的函数互调。当我们预判到需求可能会发生变动时,在不便沟通时,如何在迪米特原则和可能变动的需求之间取折中解?——需求变动后代码改动最小,且改动对类的内部结构影响最小。首先要具备由顶层设计思维(本文指由类中设计),然后我的方法您才会觉得有原创 2021-12-11 12:04:04 · 181 阅读 · 0 评论 -
跨年夜干了个这——一个自适应字符窗口打印器
效果如下图,标题和版权信息,代码在文末/*************************************************************************** Desc : PrintBlock** Param : [in] iStartEnd 两端偏移量** : [in] pString 要打印的字符,不能包含换...原创 2019-12-31 23:20:45 · 226 阅读 · 0 评论 -
一个好用的C++ string Format“函数”
我这个人总是喜欢在写代码时追求极致,比如总是纠结于变量的命名,内存的消耗,执行的效率,接口的便捷性,代码的可扩展性。。。但很多时候需要在他们之间做取舍,这就导致我在编码时经常陷入僵局,唉。。。真是程序员的可悲,为此几年前我还专门将自己的CSDN签名改成了现在这样。今天我又带来一个函数,挺不起眼的,但是也分享一下const std::string& StrUtil::Format(const char* pszFmt, ...){ va_list body; va_start(body原创 2021-12-26 12:01:26 · 1805 阅读 · 0 评论 -
个人编码习惯——C++(持续更新)
private/protected函数使用小驼峰,如createWindow public函数使用大驼峰,如CreateWindow 时间变量前缀,tmXXX表示time_t类型,ulXXX表示uint64_t类型,uXXX表示uint32_t类型 命名空间无特殊情况统一小写 分层设计时,某一层的门面头文件不可包含另一层的门面头文件,如ui/ui.h不可包含dao/dao.h 代码段推荐注释方法 头文件#ifndef定义方式推荐如下,VS“菜单-工具”自带了GUID生成工具 当无法确定一个函数原创 2021-11-23 13:46:53 · 634 阅读 · 0 评论 -
一种更合理的面试方案
我是个“个性鲜明”的人,我指的是做事风格,并非社交性格。有个成语可以一定程度上形容我——愤世妒俗。我讨厌一些传统制度,主要有:统考制,传统婚俗,传统面试。毫无疑问与制度对抗的人基本都没有好下场,我也一样。暂且不讨论我在面对统考制和传统婚俗时的做法。传统的程序员面试,一般分为三阶段:面技术,面管理,面人品。我总觉得面试和统考很像,我指的是,两者在筛选人才上都同样极具盲目性。有三个问题我想问问用人单位或教育部:所有人都一样吗?并不是。所有人都将一样吗?也并不是。所有人都应该一样吗?当然也不是。原创 2021-11-23 08:52:13 · 225 阅读 · 0 评论 -
怎样能做好公司——个人见解
我没开过公司,只是一个履历较多原创 2021-11-04 13:15:01 · 207 阅读 · 0 评论