JavaScript的一些坑

发布时间 : 2016-06-07
发布 : 2016-06-07 浏览 :

JavaScript作为一门同时结合了函数式编程和面向对象编程的语言,使用起来非常的宽松灵活。但是由于其诞生之初仓促的设计(Javascript诞生记) 、设计之初并没有同时结合函数式编程和面向对象编程的先例、过早标准化等问题,导致使用过程中经常会遇到各种问题。本文总结一些问题,部分是可能语言上的缺陷,也有部分属于用法的问题。

CSS Modules 简单入门

发布时间 : 2016-05-26
发布 : 2016-05-26 浏览 :

CSS的选择器在全局范围都会生效,比如有时候会有A写了 btn 的class定义了一个默认显示蓝色按钮, B之后不小心也写了一个 btn 的class, 很不幸,A需要的按钮样式可能被B所写的样式覆盖! Bootstrap中的类似btn这种情况,在 btn 的class 通常定义的是所有按钮通用的样式,并且通过在定义 btn-successbtn-error 等样式通过选择器优先级来实现不同的样式。但是这种依旧相当于在全局中定义了样式, 无法避免将来有人不经意的又写了btn-success这样的class覆盖或者影响了之前的样式。

为了解决这问题,前端大牛们提出了种种的命名约定来避免命名冲突。 比如OOCSSSMACSSBEMSUIT等等。 以BEM为例,class的名字以block__element--modifier这种方式来命名,比如写个Menu, 那么Menu中的item处于active状态就要命名成 menu__item--active 这样的写法可能会解决问题,但是写起来总感觉有些反人类。所以有人说BEM很火,看着就想吐 . 并没有在项目中实践BEM这种命名方式,但是它来解决命名冲突的思路还是挺不错的,相当于通过模块命名前缀的方式避开在全局空间下命名,每个组件在它所属的命名空间下定义。

CentOS 7开放端口和关闭防火墙

发布时间 : 2015-12-29
发布 : 2015-12-29 浏览 :

想用CentOS + Vagrant搭建一个开发环境,搭建之后发现一直无法访问虚拟机中的服务,起初以为是Vagrant配置的问题,尝试修改配置,可是发现都不行,甚至连端口转发的方式都无法访问,于是猜测是因为CentOS7防火墙的关系,试了试打开端口和关闭防火墙,发现都可以访问到了。

Express配置HTTPS服务器

发布时间 : 2015-11-04
发布 : 2015-11-04 浏览 :

项目部署到生产环境下,出现了一个Bug,同样的代码在DEV环境下却是好的,怀疑是HTTPS导致的问题,所以在本地搭了一个HTTPS的服务器用来测试。

整个过程还是很简单的,简单记录一下。

为多个Git仓库配置SSH Key

发布时间 : 2015-07-15
发布 : 2015-07-15 浏览 :

在使用Git做版本控制的时候, 如果使用了远程仓库的话通常有两种连接方式,一种是HTTPS的,另一种是SSH的,
由于远程仓库需要一定的权限才能操作,所以需要认证。如果使用了HTTPS这种方式就需要每一次与远程仓库之间交互都需要输入用户名和密码,而SSH会使用SSH认证方式来连接,只要简单的配置一次即可,不需要每次都输入,所以通常都会选择使用SSH的方式。
使用SSH方式连接的话需要配置SSH Key和配置用户名和密码

Java设计模式修炼之道之单例模式

发布时间 : 2015-07-07
发布 : 2015-07-07 浏览 :

单例模式顾名思义就是要保证某个类只被实例化一次,该模式常常用于窗口管理器、文件系统等代表那些本质上唯一的系统组件。由于要保证该类只能被实例化一次,所以就要求是该类自己创建自己的实例,因为如果能够别的类有能力来创建该类的实例的话就不能保证只有一个实例。为了使外界能够使用这个唯一的实例,单例类必须向外界提供自己的实例。创建单例的方式有以下几种:

Ajax跨域问题解决方案

发布时间 : 2015-02-11
发布 : 2015-02-11 浏览 :

JavaScript出于同源策略Same-origin policy,对跨域问题作了限制,不同域的客户端脚本是不能发送请求其它域。同源策略是浏览器最核心也是最基本的安全功能,所有的浏览器(注意这里说的是浏览器,移动开发中的WebView并不是浏览器,所以是可以跨域的!)都已经实现了同源策略。但是项目中经常因为各种原因,可能会遇到跨域问题。