SVN 迁移到GIT

为改进开发流程,开发策略改为主干稳定策略,使用svn开发分支与测试分支必须不断切换,为改进切换问题研究git版本管理方法。

基本流程:

1.先用git svn命令把svn文件download到本地

2.git 推送到git版本服务器

1.物理环境
Git-server    Redhat    192.168.1.217
Svn-server    Redhat    192.168.1.200
继续阅读 »

如何用 Git 合并两个库(合并历史记录,解决冲突/改写路径)

本来已经不写文字博客了,一般心得都录成了视频(这在我看来是更好的方式),但是今天遇到一个关于 Git 的问题不太好重现也不便于录制视频,加上它本身很具有代表性也很有用,所以还是记录于此。

背景

一个中型规模项目,开始规划时就打算采用 C/S 架构,后端是单纯的 API 服务,前端在 Web 上搞一个 SPA,之后再搞其他端也就顺理成章了。只可以第一次弄没经验,有些细节最初没有考虑到。

创建项目的时候前后端真是完全分离的,分成了两个目录,创建了两个 repos。一开始只有一个人干的时候倒也没什么,开两个窗口切来切去也就罢了,后来一是部署起来麻烦,二来主要是其他开发者加入后,代码的版本管理、提交、合并、审核等等等等都变得越来越繁琐。
继续阅读 »

C++接口实现总结

网上的例子,稍微有点错误。我给更改一下,附件上有源码!如有错误,请指正。

总结一下C++实现接口的技巧。
面向对象的语言诸如JAVA提供了Interface来实现接口,但C++却没有这样一个东西,尽管C++ 通过纯虚基类实现接口,譬如COM的C++实现就是通过纯虚基类实现的(当然MFC的COM实现用了嵌套类),但我们更愿意看到一个诸如 Interface的东西。下面就介绍一种解决办法。
继续阅读 »

网络服务器开发热点分析与解决

一、概述

经过多年网络服务器开发实战,于此总结实践体会。本文讲解到异步连接、异步域名解析、热更新、过载保护、网络模型与架构设计及协程等,但不会涉及accept4、epoll等基本知识点。

二、可写事件

相信大多数初学者都会迷惑可写事件的作用,可能觉得可写事件没有什么意义。但在网络服务器中监听并处理可写事件必不可少,其作用在于判断连接是否可以发送数据,主要用于当网络原因暂时无法立即发送数据时监听。

当有数据需要发送到客户端时则直接发送。若没能立即完整发送,则先将其缓存到发送缓冲区,并监听其可写事件,当该连接可写时则再发送之且不再监听其可写事件(防止滥用可写事件)。

值得注意的是,对于指定网络连接需要先将发送缓冲区数据发送完成后才能发送新数据,此也可能比较容易忽略,至少本人当年被坑过。
继续阅读 »

C++“隐藏实现,开放接口”的实现方案

为什么要有接口?

接口就是一个程序与其它程序交流的窗口。就比如有一个电视机,我并不需要知道它是怎样工作的,我只要知道按电源键就可以开启电视,按节目加(+)减(-)可以切换电视频道就可以了。

Java程序员都知道Java中有interface可以实现对外的接口,但C++并没有接口这样的语法,那它要好怎样实现对外提供接口呢?我们可以通过纯虚函数定义一个抽象类,专门用来声明一个类的功能。
继续阅读 »

状态模式——水之三态

什么是状态?

状态即事物所处的某一种形态。状态模式是说一个对象在其内部状态发生改变时,其表现的行为和外在属性不一样,这个对象看上去就像是改变了它的类型一样。因此,状态模式又称为对象的行为模式。

如我们生活中经常见到的水,就有三种不同状态冰、水、水蒸汽,三种状态所表现的外在性质完全不一样:1.冰,质坚硬,无流动性,表面光滑;2.水,具有流动性;3.水蒸汽,肉眼看不见,却存在于空气中,质轻。这三种状态特性是不相差巨大?简直就不像是同一种物质的,但事实却是不管它是在什么状态,其特里组成都是一样的,都是水分子(H2O)。
1438488729414_414
继续阅读 »

编程思想之多线程与多进程——以操作系统的角度述说线程与进程

什么是线程

什么是线程?线程与进程与有什么关系?这是一个非常抽象的问题,也是一个特别广的话题,涉及到非常多的知识。我不能确保能把它讲的话,也不能确保讲的内容全部都正确。即使这样,我也希望尽可能地把他讲通俗一点,讲的明白一点,因为这是个一直困扰我很久的,扑朔迷离的知识领域,希望通过我的理解揭开它一层一层神秘的面纱。
继续阅读 »

CentOS下MySQL 5.7.9编译安装

MySQL 5.7 GA版本的发布,也就是说从现在开始5.7已经可以在生产环境中使用,有任何问题官方都将立刻修复。

MySQL 5.7主要特性:
更好的性能:对于多核CPU、固态硬盘、锁有着更好的优化,每秒100W QPS已不再是MySQL的追求,下个版本能否上200W QPS才是吾等用户更关心的
更好的InnoDB存储引擎
更为健壮的复制功能:复制带来了数据完全不丢失的方案,传统金融客户也可以选择使用MySQL数据库。此外,GTID在线平滑升级也变得可能
更好的优化器:优化器代码重构的意义将在这个版本及以后的版本中带来巨大的改进,Oracle官方正在解决MySQL之前最大的难题
原生JSON类型的支持
更好的地理信息服务支持:InnoDB原生支持地理位置类型,支持GeoJSON,GeoHash特性
新增sys库:以后这会是DBA访问最频繁的库
MySQL 5.7已经作为数据库可选项添加到《OneinStack》

继续阅读 »

MySQL大小写敏感

经常遇到的问题,一些不是特别重要但是又比较郁闷的事情。例如今天这个MySQL大小写敏感。
先上测试结果。

Linux环境下,不是windows平台下。区别很大。注意。

继续阅读 »

跟我一起学Vim补全神级插件–YouCompleteMe

最近重拾Vim,编译部署来补全插件YCM,这个插件的补全效果和在写C代码的时候的自动提示错误信息等还是十分棒的,写点心得下来,也算给自己做个备忘。
继续阅读 »