问题与需求: 请读者先看这篇文章,[C++模版之旅]项目中一次活用C++模板(traits)的经历. 对于此篇文章提出的问题,我给出一个新的思路. talking is cheap,show me the code.文章结尾处,有最终版. 初版代码: class ExportData { union { string * sp; long* lp; double* dp; void* vp; }; enum my_type {SP,LP,DP} types; static unordered_m…
曾经曾在一个项目中碰到过一个挺简单的问题,但一时又不能用普通常规的方法去非常好的解决,最后通过C++模板的活用,通过traits相对照较巧妙的攻克了这个问题.本文主要想重现问题发生,若干解决方式的比較,以及最后怎样去解决的过程,或许终于的方案也并非最好的方案,但至少个人认为从发现到思考到解决到改善,这是一个对帮助个人成长非常不错的过程,所以凭记忆想把它记录下来,分享给大家. 先描写叙述下问题,项目中有这样一个接口类会暴露给外部使用,接口类定义例如以下(类方法名称以及描写叙述该问题无关的内容会有所…
前言:最近使用vue+webpack进行一个小项目的开发,按照官方模版文档完成项目初始化后打算引入ont-awesome字体图标库进行使用,引入过程中遇到一些问题并解决,现记录如下. 一开始进展很顺利,百度了基本用法后安装: npm install font-awesome –save 然后在main.js中引入: import 'font-awesome/css/font-awesome.css' 接下来就开始愉快的使用各种图标了: 12 <i class="fa fa-search&q…
Spring实例化Bean的三种方式分别是: 1,xml配置使用bean的类构造器 <bean id="personService" class="cn.service.impl.PersonServiceBean"></bean> 2,xml配置+factory类,使用静态工厂方法实例化 <bean id="personService2" class="cn.service.impl.PersonServ…
看了园子里很多介绍Caching的文章,多数都只介绍基本机制,对于Cache更新和依赖部分,更是只简单的实现ICacheItemRefreshAction接口,这在实际项目中是远远不够的.实际项目中,至少应该考虑以下3点: 外部数据:通过外部服务,从其他系统取来的数据.我们无法控制,也不知道啥时候会被更新.对于这部分数据,我们采用定时更新的策略,默认1小时更新1次,可配置. 内部数据:系统自己产生的数据,可以完全掌控.对这部分数据,我们实现ICacheItemRefreshAction接口,一旦…
最近在忙团队并行开发的事情,主要是将各个团队的代码分库,一方面可以降低耦合,为后面模块插件化做铺垫,另一方面采用二进制编译,可以加快编译速度.分库遇到了一些问题,很多都要通过Gradle脚本解决,所以稍微花时间研究了一下. Gradle虽为构建神器,但感觉学习曲线比较陡峭.Gradle User Guide内容很多,但有点太多了,多的你看不完,Gradle Plugin User Guide一篇文章主要讲了Android相关的配置,看完可能感觉马马虎虎会用,但到了修改一些构建流程的时候还是不知所…
如何在cocos2d项目中enable ARC 基本思想就是不支持ARC的代码用和支持ARC的分开,通过xcode中设置编译选项,让支持和不支持ARC的代码共存. cocos2d是ios app开发中最主流的2d游戏引擎,但是cocos2d开发的时候,苹果还没有推出 ARC(automatic reference counting,一种辅助内存管理的机制,编译器自动在代码中加入内存管理的语句,防止因开发者的疏忽造成的内存泄露和崩溃问题).所以如果你用cocos2d模版生成的工程,ARC是关闭的.…
在android项目中添加第三方jar包虽然不是一个很复杂的问题,但是确实给很多开发者带来了不小的困扰.我自己就曾经碰到过calss not found exception.error inflating class等本质都是第三方jar包未被真正识别但报错指向其他问题的状况,碰到这类问题时我们很容易会被这些指向不够准确的报错误导,因此正确地添加第三方jar包就显得很重要.网上关于这个问题的信息也比较杂乱,因此希望借此文章对这个问题进行明确的解释和解答. 首先要说的是为什么会出现这个问题?我们在…
由于浏览器的版本和兼容性问题,很多es6,es7的新的方法都不能使用,等到可以使用的时候,可能已经过去了很多年.Babel可以把es6,es7的新代码编译成兼容绝大多数的主流浏览器的代码. 本篇文章主要介绍在项目中如何安装配置和使用babel. 1.在项目下初始化 package.json $ npm init 2.在项目中安装babel $ npm install babel-cli --save-dev 3.安装babel插件 $ npm install babel-preset-xxxxx…
剑指Offer--企业级项目中分层的含义与依据及多态的优势   关于以上两点,由于项目经验较少,自己不是很明白,特整理如下. 常见分层架构模式 三层架构 3-tier architecture   微软.net 体系推荐的分层结构,因此早期在ASP编码的系统中被广泛应用,同时也被其他语言广泛借鉴. 表现层, Presentation layer(PL)   主要负责数据的输入接口和输出.输入指在WEB.客户端或为外界提供的API的数据请求接口:输出则是Web界面.客户端输出.API的数据输出.页…