都是风景,幸会。

作为一个 Web 前端攻城狮,因工作需要搭建 php 环境,安装 php redis 扩展,因为不是专业搞 php 开发的,所以在安装的过程中各种坑,走了很长的弯路才绕回到正道上;

电脑是 iMac 一体机,因为不专业,所以 php 环境是用 mamp 搭建的;由于 mamp 默认安装的 php 不全,缺少一些 .h 的头文件,这会导致后面安装 redis 的问题,所以首先需要下载 php 源码进行编译;

••••••

起因:不小新把记录了公司服务器IP,账号,密码的文件提交到了 git

方法:

git reset --hard <commit_id>
git push origin HEAD --force

参数:
三个参数:--soft --mixed --hard,会对 working tree、index 和 HEAD 进行重置:

  1. git reset --mixed:此为默认方式,不带任何参数的 git reset;这种方式,它回退到某个版本,只保留源码,回退commit 和 index 信息;
  2. git reset --soft:回退到某个版本,只回退了 commit 的信息,不会恢复到 index file 一级;如果还要提交,直接 commit 即可;
  3. git reset --hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容;

HEAD 最近一个提交
HEAD^ 上一次
<commit_id> 每次 commit 的 SHA1 值,可以用 git log 看到,也可以在页面上 commit 标签页里找到;

下面以安装 Mac OS X El Capitan 10.11.6 系统来作为演示示例;

准备工作及大概流程

  1. 下载苹果官方 OS X 原版系统镜像;
  2. 准备一个 8G 或以上的 U 盘,并使用磁盘工具对 U 盘进行格式化;
  3. 输入终端命令开始制作系统启动盘;
  4. U 盘启动安装系统;
••••••

问题的提出

开发一个 Web 应用的时候我们一般都会简单地分为前端工程师和后端工程师(注:在一些比较复杂的系统中,前端可以细分为外观和逻辑,后端可以分为 CGI 和 Server)。前端工程师负责浏览器端用户交互界面和逻辑等,后端负责数据的处理和存储等。前后端的关系可以浅显地概括为:后端提供数据,前端负责显示数据。

在这种前后端的分工下,会经常有一些疑惑:既然前端数据是由后端提供,那么后端数据接口还没有完成,前端是否就无法进行编码?怎么样才能做到前后端独立开发?

••••••

平时喜欢做点小页面来玩玩,并且一直采用单页面应用(Single Page Application)的方式来进行开发。这种开发方式是在之前一年做的一个创业项目的经验和思考,一直想写篇博客来总结一下。

个人认为单页面应用的优势相当明显:

  1. 前后端职责分离,架构清晰:前端进行交互逻辑,后端负责数据处理。
  2. 前后端单独开发、单独测试。
  3. 良好的交互体验,前端进行的是局部渲染。避免了不必要的跳转和重复渲染。

当然,SPA也有它自身的缺点,例如不利于搜索引擎优化等等,这些问题也有其相应的解决方案。

下面要介绍的这种方式可以说是一种模式或者工作流,和前端使用什么框架无关,也和后端使用什么语言、数据库无关。不能说是
The Best Practice,我相信经过更多人的讨论和思考会有 A Better Practice。:)

••••••

git add -Agit add .git add -u 在功能上看似很相近,但还是存在一点差别的;
git add .:它会监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区,包括文件内容修改(modified)以及新文件(new),但不包括被删除的文件;
git add -ugit add --update 的缩写,它仅监控已经被 add 的文件(即 tracked file),它会将被修改的文件提交到暂存区,不会提交新文件(untracked file)。
git add -Agit add --all 的缩写,是上面两个功能的合集。

••••••

WebStorm for Windows 的 terminal 预设是使用 Windows 内建的 Command Prompt,但可惜内建的 Command Prompt 不强,而 Git Bash 是 Git for Windows 所提供的 git 文字界面,让我们可以直接对 git 下指令,并显示当前的 branch,重点是能在 Windows 使用 Bash,且整合进 WebStorm 的 terminal。

••••••

在移动端,使用滚动来处理业务逻辑的情况有很多,例如列表的滚动加载数据,下拉刷新等等都需要利用滚动的相关知识,但是滚动事件在不同的移动端机型却又有不同的表现,下面就来一一总结一下。

••••••

最新闲来无事,折腾了一下 Hexo 博客系统,它是 Node.js 写的,据说速度很快。它的所有操作都可以直接在命令行完成,修改也只需要修改配置文件就可以了,不用上后台各种点击,避免各种麻烦。

Hexo 博客系统架构

首先了解一下 Hexo 博客系统的架构,它是如何实现静态博客通过服务器访问的:

Hexo 博客系统架构

••••••