- 博客(43)
- 资源 (5)
- 收藏
- 关注
原创 我的程序员生涯
写文章的目的:1.今年30岁了,记录一下过去几年的生涯。 2.如果能给看到的程序员兄弟一点点启发也算有点意义了。背景:2013年毕业于某普通一本院校计算机专业,家贫无依。现状:有了善解人意的妻子,聪明可爱的孩子,几家互联网公司,全国新一线几套房子,还是对这个世界充满希望,依旧心怀感恩。过程:我分为两个阶段讲述,1.进阶CTO篇。2.创业实践篇。(这两个阶段的策略完全不同的) ...
2020-12-11 16:36:31
685
原创 设计模式之命令模式
命令模式是一种很巧妙很强大的设计模式,比如常见的操作系统里面的消息队列等消息发送机制都用到了命令模式,良好的命令模式设计主要解决以下两点,1,命令发起者和命令发送方式的耦合度(即命令发起者可以有不同的命令发送方式),2.命令发送方式与命令的耦合度(即每种命令发送方式可以发送任何类型的命令)。我这示例的命令发送方式用消息队列实现,这也是最常见的一种方式。
2016-02-23 18:45:18
711
原创 设计模式之适配器模式
上篇我们讲了代理模式,这篇我们来聊聊适配器模式,适配器模式也是种使用较频繁的设计模式,应用于以下场景,比如A之前访问B,但是有一天B升级了,提供的外部接口方法名变了,这时为了A任然能用旧接口名访问B,我们就给B添加一个包装类C,C对外提供的访问接口名和B的旧接口名一样,这样A就访问C,然后C再访问B。有点类似于代理模式都是增加中间层来解耦合,但是代理模式是为了让C和B的任何对外接口一致,实现A访问B相比A访问C感觉不到差异,而不是兼容旧接口。
2015-12-09 16:44:03
863
原创 设计模式之代理模式
上篇我们讲了组合模式,这篇咱们来聊聊代理模式,代理模式的应用场景很多,代理模式的本质就是将原对象隐藏起来,构造一个和原对象相同父类的代理对象,对外的功能接口也和原对象保持一致,外部程序只需要调用代理对象的接口即可,然后具体实现再由代理对象去调用原对象接口。这样就完全将原对象隐藏和保护起来了,当然,代理对象还可以针对不同权限的外部程序提供对原对象不同的访问权限。
2015-11-25 20:55:58
757
原创 设计模式之组合模式
组合模式是一种对象结构型模式,一般用于树型结构中,其本质是定义一个抽象组件类,该组件既可以代表叶子对象也可以代表容器对象(容器可以包含叶子和容器),使用时无需知道操作对象是叶子还是容器,实现对容器和叶子的无差别化操作。对子容器的节点操作时,本质上使用了递归遍历。
2015-11-04 17:30:46
698
原创 设计模式之观察者模式
上篇我们讲了策略模式,这篇我们再来聊聊观察者模式,观察者模式也是一种应用广泛的设计模式,比如一些树型结构的游戏引擎,父节点和子节点的联动等。观察者模式的本质就是建立目标对象和观察者对象之间一对多的依赖关系,当目标对象状态发生改变时,观察者对象的状态也自动随之改变。
2015-10-28 11:31:49
1605
原创 设计模式之策略模式
上篇我们讲了迭代器模式,这篇我们再来讲一下使用率很高的策略模式,策略模式的本质就是实现算法的复用,将环境调用中的算法抽象出来单独为类,环境调用就只调用算法的抽象类,要添加或修改算法时就只修改算法的具体类就可以了,不影响环境类,符合开闭原则,非常方便。
2015-10-27 10:05:56
699
原创 设计模式之迭代器模式
上篇我们讲了外观模式,这篇我们再来看看迭代器模式,这也是一种使用频率很高的模式。通常的数据存储聚合类中,既包括数据存储的功能又包括对这些数据遍历的功能,而要修改聚合类,既得修改数据存储又得修改遍历功能,非常繁琐,也不符合单一职责原则。迭代器模式的核心思想是将数据存储和数据遍历分开,让数据遍历的方法单独组成一个迭代器的类,基本架构:一个抽象聚合类(包括数据存储和抽象遍历类),一个具体聚合类(包括数据存储和具体遍历类),一个抽象遍历类,一个具体遍历类。这样当我们有新的产品需求如添加一个新的具体聚合类的时候,我们
2015-10-26 14:38:52
679
原创 设计模式之外观模式
由以上看出外观模式本质上是在外部调用和内部子系统直接增添了一个中间层Facade类,由该类来代为调用内部子系统方法,而外部调用不需要了解内部系统的细节。传统调用方式和外观模式调用方式就好比自助餐饭店和普通饭店点餐的区别,自助餐饭店要自己知道饭菜放在房间哪个位置,要吃什么菜都得自己去一个个拿。而普通饭店不需要知道饭菜放在哪里,要吃什么只需要通知服务员就可以了,然后服务员去拿。这个服务员角色就类似于外观模式中的Facade类。
2015-10-21 11:29:42
678
原创 设计模式之单例模式
在上面我们可以看到经典单例模式的构造过程:首先要该类不被其他外部调用实例化,就要将构造函数设为私有权限,然后又通过公共的静态方法来实例化这个类,返回实例化后的对象的指针,然后通过内部私有指针mInstance来保存这个返回的指针,这样我们就可以使用这个类了。但是怎么来保证这个实例的唯一性呢?我们在静态方法getInstance()中要先判断,如果mInstance是为NULL的(mInstance要初始化为NULL),那么我们才实例化这个类。
2015-10-20 18:01:17
615
原创 设计模式之抽象工厂模式
由以上可以看出抽象工厂模式和工厂方法模式最大的不同是在抽象工厂模式中,一个工厂里可以生产多个产品,而在工厂方法模式中一个工厂就只能生产一种产品。可能有些人觉得这抽象工厂模式和简单工厂模式不就差不多了吗? 我们再来看看抽象工厂模式和简单工厂模式的区别:首先简单工厂模式是没有多态工厂的实现的,也就是说简单工厂模式没有工厂基类。其次简单工厂模式的工厂里生产的产品可以是任意产品,没有产品族的概念。而抽象工厂模式里同一个工厂生产的产品是属于同一产品族的,一般来说这些产品的种类几乎是稳定不变的,所以不会频繁改变一个工厂
2015-10-20 09:58:03
624
原创 设计模式之工厂方法模式
上篇我们讲了简单工厂模式,也提到了简单工厂模式的缺点,这篇我们来讲一下工厂方法模式,而工厂方法模式在一定程度上避免了简单工厂模式的那些缺点,废话不多说,上代码咯。
2015-10-19 18:36:47
604
原创 设计模式之简单工厂模式
最近有点空闲,就总结一下编程中遇到的设计模式吧,也算是增强一下记性。首先我们说一下工厂模式,这个工厂模式呢,又分为简单工厂模式、工厂方法模式(多态工厂模式)、抽象工厂模式这三种,这三种我都会陆续讲到。
2015-10-19 18:09:22
608
转载 游戏中添加google内购
google官方教程:http://developer.android.com/training/in-app-billing/index.html这个教程主要写了四节:第一节:Preparing Your In-app Billing Application(准备你的内购应用)内容如下:1.下载例子程序,按照提示的做OK的,可以把项目trivial
2014-05-02 21:49:16
2870
2
转载 cocos2dx 嵌入Android webview
在2dx界面中嵌套加载显示一个webview,最简单的用法就是直接在一个WebView控件中显示,外加设置了一些简单的属性,可以自定义这个webview的大小。java代码如下:public class bxWebview extends Cocos2dxActivity { static WebView m_webView; static bxWebview majiang = n
2014-03-27 11:51:01
2091
原创 cocos2dx Android获取Mac地址
在cocos2dx开发中,我们想获得手机的Mac地址,而目前Android平台下只有java层代码能直接获取Mac地址,如果有朋友问如果在C++代码中要使用Mac地址该怎么办呢?很简单,又是强大的JNI机制,思路就是先在java层获取Mac地址的字符串,然后传到C++层。实现如下:一、java层的东东: public static String getMacID() {
2014-03-26 20:27:39
2917
原创 cocos2dx 监听Android返回键、菜单键等
cocos2dx游戏开发中,在Android平台下,监听Home键、返回键、Menu键的详细实现方法......
2014-02-26 20:32:38
3334
原创 cocos2dx Android植入友盟分享功能
cocos2dx游戏开发中植入一键分享功能,玩家可以把玩游戏的截图和玩游戏的心情发送到微博、微信、QQ空间等....测试通过....
2014-02-19 17:24:47
4076
原创 cocos2dx2.2移植到Android
原创作品,转载请注明:http://blog.youkuaiyun.com/ymook/article/details/18047575准备:1.vs20102.搭建好Android开发平台的eclipse3.下载Android NDK(我下的是android-ndk-r9)我的cocos2dx解压路径:D:\cocos2d-x-2.2\cocos2d-x-2.2NDK
2014-01-09 18:53:36
5118
4
原创 VMware vSphere5.0 HA高可用性原理
HA(hight availability)是ESXi服务器集群提供的功能,主要目的是当虚拟机运行所在的物理主机、虚拟机操作系统、虚拟机中的应用程序发生故障时,能保证虚拟机快速重启。对外提供的服务不中断,数据不丢失。故障层次:一、ESXi物理主机故障。二、虚拟机操作系统故障。三、应用程序故障。对于第一种故障的处理原理:在一个集群中启用了HA功能的ESXi物理主机,默认每隔5秒(可以
2013-08-23 11:45:37
2541
原创 Vmware vSphere 5.0 VMFS数据存储
ESXi主机能访问多种存储类型:本地SCSI存储、光纤通道存储、FCOE、iSCSI、NFS、DAS这些存储协议支持的vMware 功能如下:存储协议支持从SAN引导支持vMotion支持HA支持DRS支持裸设备映射光纤通道∨∨∨∨
2013-08-21 11:27:26
4437
原创 浅谈云计算之SAN扩展系统设计
设计背景:不管是公有云还是私有云,为了提供服务的持续性(Business Continuity,BC)和数据的灾难恢复(Disaster Recovery,DR)都不可能只有一个数据中心(Data Center ,DC)。问题 是采用多个DC站点后,每个站点DC的数据要同步,以及为终端用户传输数据提供负载均衡,这些跨城域或广域的DC间该怎样进行数据复制和组织呢?1.数据恢复衡量指标:恢
2013-08-20 15:51:48
1249
原创 磁盘系统管理
首先,一块物理磁盘被分为磁盘0,磁盘1,磁盘2....等很多区每个区有MBR与GPT磁盘两种分区形式。一、MBR分区与GPT分区MBR(Master Boot Record 主引导记录)磁盘是用到最多的传统磁盘形式,MBR磁盘分区表存储在磁盘的最前端,当计算机操作系统启动时主板上的BIOS会先读取磁盘前端的MBR,并将计算机的控制权交给MBR指向的操作系统启动程序,由此系统启动开始
2013-08-14 15:51:57
1412
原创 VMware vSphere 5.0 网络体系结构
一、物理网络物理网络是Esxi物理主机连接的基础,也是上层虚拟网络存在的基础。即通常的物理主机通过物理网卡连接到外部网络的层面。二、虚拟网络作用:为ESxi层之上的虚拟机之间的内部通信,以及每个虚拟机与外部的通信而逻辑模拟出来的网络。 逻辑层次:一个物理网卡模拟出一个虚拟交换机,而一个虚拟交换机有120个端口,虚拟机的虚拟网卡不是直接连接在虚拟交互机的端口上的。这之间有
2013-08-13 15:05:43
1598
原创 Windows Server08R2 中搭建域环境
总体分为两大步骤:一.搭建域控制器。二.将其他windows计算机加入域。一、搭建域控制器过程:1.虚拟化出一台干净的Server08R2系统2.修改该系统的ip地址为静态ip,网关即本网络网关不变。DNS为跟本机ip地址一样(这里搭建的DNS服务就在域控制器上)3.在服务器管理器->角色:添加Active Directory角色4.在服务器管理器->功能:添加
2013-08-07 18:30:00
1332
原创 VMware vSphere学习之架构
vSphere是VMware出品的,针对云计算虚拟化的整套解决方案的套件。该方案的架构由软件和硬件两方面组成。硬件方面:由服务器管理器、X86服务器集群、IP网络、存储网络、客户端共5大部分组成。服务器管理器:主要提供整体性能监控、访问控制和一些系统配置功能。X86服务器集群:主要是通过在服务器上安装ESXi系统对外提供虚拟化的计算能力,如CPU和内存等。IP网
2013-08-02 17:02:04
1744
转载 石砸天——长工的故事
以前,有个地主有很多地,找了很多长工干活,地主给长工们盖了一批团结楼住着,一天,地主的谋士对地主说:东家,长工们这几年手上有点钱了,他们住你的房子,每月交租子,不划算,反正他们永远住下去,你干脆把房子卖给他们起个名堂叫做——公房出售!告诉他们房子永远归他们了,可以把他们这几年攒的钱收回来,地主说:不错,那租金怎么办?谋士说:照收不误,起个日本名儿,叫物业费!地主很快实行了,赚了好多钱,长工们那个高
2013-07-15 16:04:09
829
转载 石砸天——寒门再难出贵子
这个时代“寒门再难出贵子”,也许不服,不甘。想改变好比石砸天。(1)~(5)第一次转帖,感觉很深刻,很... 现在越来越看清楚“性格决定命运”,性格这东西是熔透与骨髓的,性格的养成和学校教育没有多大关系,大多决定于家庭背景,和成长环境……从大学毕业出来的第一步往往起到至关作用的是家庭背景,也就是从起跑线普通家庭的孩子就输了一大截。 在一个物欲横流的时
2013-07-14 10:03:46
2146
原创 Jenkins的安装和使用
1.Jenkins 的安装非常简单,只需要从 Jenkins 的主页上下载最新的 jenkins.war 文件然后运行 java -jar jenkins.war。2.在浏览器地址栏中打开 http://localhost:8080 就可以看到 Jenkins 的页面。Jenkins的使用如下:1. 创建New job安装好jenkins并且登录上去后会看到屏幕
2013-07-12 15:21:07
1897
原创 SVN学习之-版本冲突解决
版本冲突原因:举个例子,如果张三和李四合作做同一个项目A,当前SVN服务器中最新版本是A.1,张三和李四都在A.1的基础上再进行开发。张三将当天做好的版本提交后,此时服务器中最新版本是A.2,这时李四又提交自己的版本上去,这时李四的版本是基于A.1改的,而服务器中此时的最新版本是A.2因此不能顺利提交,会产生版本冲突,系统不知道哪个版本才是最佳的。解决冲突:原理:提交产生冲突的用户手动修改
2013-07-12 15:04:02
1400
原创 SVN学习之-使用
SVN版本控制器的使用如下:一、 创建版本库。1.在主界面右键Repositories,再选择Create New RePository 或者如下选择新建、Repository.2.输入版本库的名称,将复选框的对勾打上,再OK。该创建的版本库的位置就是之前安装SVN服务器时设置的Repository路径下。 3.这时你选择刚创建的Rea
2013-07-12 14:26:49
1088
原创 SVN学习之服务器和Tortoise客户端搭建
以下是基于Windows的SVN服务器和Tortoise客户端的搭建过程:软件版本:SVN:VisualSVN-Server-2.5.10 Tortoise: TortoiseSVN-1.7.13.24257-x32-svn-1.7.10(32位机适用)注意:如果系统是64的,Tortoise就选X64的版本。先装服务器再装客户端:SVN服务器的安装如下:
2013-07-12 14:21:51
1654
原创 Inter VT技术(硬件虚拟化检测)
全称:硬件辅助虚拟化技术Inter VT技术的作用:如果CPU支持VT技术,并且又开启了该功能,那么在32位系统上就能安装64位的系统。反之,如果CPU不支持VT技术或者支持但没开启该功能,那么就不能在32位系统上安装64位的系统。 常用的检测本机是否支持VT技术的工具有securable,方便简单,在电脑上点击软件直接运行即可。1.如果检测结果是如图1-1或1
2013-07-12 13:21:18
3872
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人