存档七月 2017

使用win10的Hyper-V安装centOS 7

  1. 打开系统的Hyper-V
    进入控制面板,添加/删除程序中,找到打开/关闭windows功能,勾选.freamwork 3.5 及Hyper-V,确定后,系统会自动安装。
  2. 在系统菜单中找到Hyper-V,并打开

  3. 创建虚拟机,根据提示,进行(傻瓜式)添加虚拟机,注意一点,在本人尝试中,选择第一代和第二代的时候,我首先选择了第二代,以为第二代要比第一代TBU(高大上)一些,但是谁知,第二代在加载系统.iso文件的时候,根本没办法读取,进步了安装过程,只能……重来,选择了第一代。

  4. 到centOS官网上下载相应的系统,本人选择的是centOS minimal 7.X版本的,因为这个要比完整版小很多,相当于windows中的纯净版。

  5. 下载完成后,在添加的虚拟机中添加光盘驱动器,然后选择对应的系统.iso文件,点击开机,即可进入到安装系统界面,然后就是下一步->又一个傻瓜式的过程,不过要注意几点,就是在选择安装地方的时候,要记得去点击一下,然后选择你添加的虚拟磁盘,这样才能进入安装,否则无法进行安装。在安装过程中,要注意看某些选项中有红点点,然后就对应点击进去设置一下……

  6. 当系统安装成功后,就可以进入到系统了。然后就开始进行网络的配置。
    网络的配置需要先在虚拟机配置界面添加一个虚拟交换机,在虚拟机管理界面中,找到虚拟交换机管理器,点击,然后对应添加一个,连接类型选择外部网络,然后选择你物理机的网卡,然后确定即可。然后到添加的虚拟机中,进行对应的网络设置,设置 -> 网络适配器 -> 选择你添加的虚拟网络适配器,这时候,你的物理机可能无法进行连接外网了,然后到网络配置中,对应修改两个网卡的ip配置即可。
    然后就是centOS系统的网络配置,设置一个固定IP地址,然后,你可以选择性关闭防火墙,要不然,会出现很多问题……不想去纠结防火墙怎么设置就直接关闭!

  7. 至此,就可以通过物理机,使用ssh方式连接虚拟机centOS了。


下面是一些应用的设置

  1. centos minimal vim配色
    首先进行vim的安装
    [code lang=”bash”]
    yum -y install vim-enhanced
    [/code]
    安装完成后,可以在
    [code lang=”bash”]
    /usr/share/vim/vim72/colors
    [/code]
    下查看当前的配色方案有哪些。
    切换到 ~ 目录下,添加 .vimrc 文件,里面对应添加
    [code lang=”bash”]
    colorscheme darkblue
    [/code]
    其中,darkblue为配色方案,可以根据自己喜好和colors下的文件名选择。

打开 /etc/bashrc 文件,并在其中添加
[code lang=”bash”]
alias vi=’vim'(给vim起个别名叫vi…)
[/code]
然后运行
[code lang=”bash”]
source/etc/bashrc
[/code]

即可完成使用vi test.js 或者 vim test.js 都可以,并且有语法高亮显示的vim了。

What is fuck RESTful

人人都在说RESTful,那到底什么是RESTful呢?RESTful是一种架构,一种http的架构。

  1. 使用客户/服务器模型。客户和服务器之间通过一个统一的接口来互相通讯。
  2. 层次化的系统。在一个REST系统中,客户端并不会固定地与一个服务器打交道。
  3. 无状态。在一个REST系统中,服务端并不会保存有关客户的任何状态。也就是说,客户端自身负责用户状态的维持,并在每次发送请求时都需要提供足够的信息。
  4. 可缓存。REST系统需要能够恰当地缓存请求,以尽量减少服务端和客户端之间的信息传输,以提高性能。
  5. 统一的接口。一个REST系统需要使用一个统一的接口来完成子系统之间以及服务与用户之间的交互。这使得REST系统中的各个子系统可以独自完成演化。

如果一个系统满足了上面所列出的五条约束,那么该系统就被称为是RESTful的。

详情,可阅读这哥的博客:Amber-Garden

论注释的重要性

好的注释,不仅能够让你的代码可读性更高,而且还能让你减少很多的工作量,比如能够根据注释,快速生成API文档。以下就是使用JSDoc快速生成API的方法。

首先安装JSDoc,安装命令如下:
npm install jsdoc –g

安装完成后,使用jsdoc –v 如果出现以下内容,说明安装成功

接下来,进入到项目目录下面,如果你的源代码放在根目录的src/目录下,那再根目录下新建conf.json文件,做为JSDoc的配置文件,并向里面添加以下内容:
[code lang=”js”]
{
“tags”: {
“allowUnknownTags”: true,
“dictionaries”: [“jsdoc”,”closure”]
},
“source”: {
“includePattern”: “.+\\.js(doc)?$”,
“excludePattern”: “(^|\\/|\\\\)_”
},
“plugins”: [],
“templates”: {
“cleverLinks”: false,
“monospaceLinks”: false
}
}
[/code]

用命令行打开根目录,使用以下命令即可生成API文档:
jsdoc src –r –c conf.json –d api

如果生成的API文档没有你代码里面相应的注释内容,说明注释内容不符合规范,具体规范可查阅JSDoc的API文档,http://www.css88.com/doc/jsdoc/
以下为vue的基本注释规范:

执行 jsdoc src –r –c conf.json –d api 即可生成对应的API文档,效果如下:

到此,你该知道良好的注释,是有多么的有用了吧?

git 常用命令

日常使用

[code lang=”bash”]

#查看当前仓库状态
$ git status

#添加所有修改的文件 || 添加指定文件或目录 到本地仓库队列中
$ git add . || git add filePath

#提交add完成的文件到本地仓库
$ git commit -m “这里是提交注释”

#再次查看当前啥情况
$ git status

#拉取远程仓库到本地仓库进行合并操作,
#此处如果远程仓库的有其他人修改并提交过相同的文件,则会出现冲突,
#git会自动进行合并操作,如果不能自动合并,则要进行手动合并,
#对相关文件进行合并后,再次返回第一条命令,如此反复
$ git pull || git pull origin master

#提交本地仓库到远程仓库
$ git push || git push origin master

[/code]

进阶使用

[code lang=”bash”]
git checkout . #本地所有修改的。没有的提交的,都返回到原来的状态
git stash #把所有没有提交的修改暂存到stash里面。可用git stash pop回复。
git reset –hard HASH #返回到某个节点,不保留修改。
git reset –soft HASH #返回到某个节点。保留修改
git clean -df #返回到某个节点
git clean 参数
    -n 显示 将要 删除的 文件 和 目录
    -f 删除 文件
    -df 删除 文件 和 目录
[/code]
也可以使用:
git checkout . && git clean -xdf
来进行全部恢复

git分支创建与切换

[code lang=text]
$ git checkout -b dev
Switched to a new branch ‘dev’
[/code]

创建并切换到dev分支
相当于

[code lang=text]
$ git branch dev
$ git checkout dev
Switched to branch ‘dev’
[/code]

查看当前所在分支

[code lang=text]
$ git branch
* dev
master
[/code]

‘*’表示的就是当前所在分支

查看远程分支
$ git branch -a

【当合并代码出现冲突,出现rebase的时候…】
查看丢失的commit记录
git reflog

通过丢失的commit新建一个branch分支
git checkout -b dev 5aw24s2

切换到主分支
git branch master

合并分支
git merge dev

删除dev分支
git branch -d dev

查看文件修改记录
$ git log 文件路径
查看某次提交所修改的内容
$ git show hashID
或者
$ git show hashID 文件路径

虚拟dom的运用

  • 最近的开发中,遇到一个很头疼的事情,使用HTML5的canvas画布绘图的时候,画布要加载的数据很多,要进行不同画布之间进行切换时候,每一次切换,都要进行重新调用加载的方法,因为数据量大的问题,导致加载速度很慢。对于这个问题,进行了以下方面思考:

  1. 对多画面的加载,进行分布式加载。就是把以上要加载的东西,进行每一个小块的加载,然后利用js的回调机制,让画布列表先加载起来,然后在根据对应的画布,进行画布的数据加载。这个方法能够解决很大一部分的问题,其实总的加载时间是差不多的,但是把画布先加载起来,或者先把主要的东西加载给用户看,让用户觉得已经加载完了,但是其实并没有,剩下的是在回调中进行着,然后当用户反映过来时,已经悄悄的加载完成了。这个方法也有一个问题,就是当一个画布中的数据量很大,那它加载的时间还是会很慢。特别是多画面进行快速切换的时候,每一个切换要等待3-5秒左右,这个让用户体验度大打折扣。

  2. 然后就想到了一种加载一次,就能够一直使用的方法,不需要再进行反复加载。实现的大概思路是这样的:先把要添加的画布都初始化出来,但是不放到页面中,先保存至内存当中,把对应的数据进行load进去,当要显示对应画面的时候,就把对应的画面取出来,然后放到指定的div当中去。这样实现的好处是,不需要每次要显示的时候都要去调用load方法,然后需要进行对应画布的数据修改的时候,可以在看不到的时候就进行修改,因为把所有的数据都保存在内存当中,修改起来是很快的。当然,这也存在一个问题,就是当画面很多的时候,浏览器占用的内存就会很大,而且一直保持着那么大(当然,也有一定好处,就是不会而外增加)。