C++11 Lambda表达式

今天学习了C++11引入的Lambda表达式,Lambda在使用上有很多的方便之处。我们可以将之用于函数的回调,操作的封装的等地方。如果我们有Objective-c的经验的话,其实我可以将Lambda表达式和Block进行对比学习,两者有很多的相似之处。 优势 根据对Lambda的了解,发现其用途和函数指针有太多的相似之处,甚至可以理解为功能重叠。那么为什么在C++11中还要引入Lambda表达式呢? 1. 函数指针是类型不安全的 C语言的函数指针就是一个地址变量,在赋值和调用的时候没有任何类型检查。任何一种函数指针都可以转型为其他类型的函数指针, 当转型回来时,与原函数指针相同。必须由开发者自己保证正确的类型。函数指针无法提前在编译器给出错误提示。 2. bind能保证类型安全...
点我阅读更多...

Apache vhost

刚开始开发web的时候,我总是将项目直接部署至Apache的DocumentRoot目录,这样我只需要将自己的域名指到localhost即可。但是随着项目开发的进行,我需要同时开发前端和后台时,一个致命的问题就暴露了出来,我需要在每次切换项目的时候,替换DocumentRoot下部署的文件,这样反而让我的开发效率降低了不少。于是乎,最终选择了Apache的vhost方式 打开Apache对vhost的支持 编辑Apache配置文件,在macos上的默认路径为 sudo vim /etc/apache2/httpd.conf 找到下面这行代码,将前边的注释去掉 498 # Virtual hosts 499 Include /private/etc/apache2/extra/h...
点我阅读更多...

MySQL对char和varchar长度的解释

这篇文章纯属实践检验型的,没有技术分析的成分。这段时间在建表的时候,对字符串存取时设置预置大小时产生了一些小得疑问,所以就自己检验了下。要是平时不太注意的同学也可以参考下。 实验 首先我们建立一个数据表 CREATE TABLE `test` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(5) NOT NULL DEFAULT '', `ic_number` varchar(18) NOT NULL DEFAULT '', `bank_card` varchar(30) DEFAULT NULL, PRIMARY KEY (`id`), KEY `name_number` (`...
点我阅读更多...

Git实现代码自动部署

这段时间自己一直投身于Web的前后台开发,每每碰到需要部署到测试服务器或是线上服务器时,都是手工进行合并。但是这样会无形中增加我们部署的风险。而我们确实也由于这样的手动部署导致了不少线上问题。今天这里为大家推荐一个方法,就是利用push代码的时机对代码进行自动部署,这样我们每次只要有提交代码就会部署到测试服务器或者线上,方便快捷,降低出错率。 确定自动部署的时机 我们的代码采用的是Git Flow的形式,介于我们在本地开发测试,只有预发布状态才会进行线上部署,所以我们的时机就选择当master代码接收到push动作时触发。Git本身给我们提供了很多hook脚本来帮助我们在git的各个阶段做一些自定义的工作,由于我们是为了捕捉Git的push操作,所以git hook当然是我们的不二...
点我阅读更多...

Git-Flow浅析

参与过项目开发的同学们对Git应该都不会陌生,Git作为一个强大的版本控制工具,从诞生起就一直在帮助开发人员更好的协同工作,改善开发效率。还记得大概两年前的样子,公司项目代码提出往Git上迁移的时候,有同学反映这不是杀鸡用牛刀么!但是事实证明,用牛刀杀鸡绝对很过瘾。正如题目所言,这篇文章我们着重说明下Git Flow的流程和使用 问题的提出 在说明Git Flow之前我们先来回顾下在没有使用Git Flow时我们面临的问题,这里我大概总结下我在项目中碰到的部分 开发分支不明确,很多开发者直接在master上进行开发,这样直接丧失了Git的权限管理功能 开发人员随意拉分支,导致Git仓库无限混乱 开发分支、发布分支经常是一个,不利于项目代码的良性发展 各个分支的修改不...
点我阅读更多...

升级Mac系统后gem安装软件找不到解决方案

刚刚升级了苹果的新系统OS X EI Capitan,却是引入了很多方便的特性。但是当我运行我的Pod的时候,出现了如下状况 pod update 输出 command not found: pod 找不到命令?难道是我升级了系统后gem安装的软件被修改或是删除了?于是我键入了如下命令 #现实gem本地的安装包 gem list 结果如下 cocoapods (0.39.0, 0.38.2, 0.36.3, 0.34.2) cocoapods-core (0.39.0, 0.38.2, 0.36.3, 0.34.2) cocoapods-downloader (0.9.3, 0.9.0, 0.7.2) cocoapods-plugins (...
点我阅读更多...

PhpStorm自动部署配置

前段时间做了下PHP的学习,关于PHP的语法部分其实和C++有很多相似的地方,相信大家只要看文档就不会有太大的问题。开始的时候,我总是借用PhpStorm的部署操作,但是总发现会有些不足,最后发现了我们其实可以在文件修改时自动将改动同步至服务器后,才完成了真正的自动部署。这里我简单的记录下配置过程,便于大家参考,也便于自己在忘了的时候可以有目的的查阅 配置apache 我们的服务器代码使用apache完成部署的,所以第一步,我们首先得先配置Apache的documentRoot目录,也就是我们的服务器根目录,这里以mac系统为例 配置apache的DocumentRoot目录 apache的DocumentRoot是我们服务器的根目录,只有将代码部署到该目录才能使站点正常运行,这里...
点我阅读更多...