文章列表
yangchunwen 于 1年前发表 4584 0 2
要做什么 假设你有一个博客,有一台网站服务器(或者很多台作负载均衡的服务器),当你的博客要升级时,你可能要在你自己的电脑上写好代码(可能包括本地调试好),然后提交到git(或svn),然后在每个服务器中checkout一份代码并重启服务器应用…… 这里要介绍的是一种直接在本地提交代码,即可自动完成服务器部署的方法。 怎么做 假设你有网站主机(后面统称线上机): user:user host:1.2.3.4password:passwd 并且确保你的本地开发机器(后面统称开发机)与线上机均已安装好 Git [http://git-scm.com/downloads] (不是Github) 1. 线上机增加三个文件夹: mkdir ~/git-directory.git mkdir ~/deploy-directory-1mkdir ~/deploy-directory-2 其中git-directory.git作为代码仓库,即开发机的代码统一提交到这里存放. deploy-directory-1和deploy-directory-2是开发机上的部署目录,比如测试目录和正式线上内容目录
1年前
工具建设
刘恒兵 ,永远不要怀疑一个人的潜力! 于 1年前发表 1529 0 1
LEGO组件平台开发(一) @( lego平台 [http://lego.imweb.io] ) 为什么要做组件平台 为什么要组件,这个问题在很多场合都被人提起,这里不做过多赘述,其解决的本质问题: * 复用:减少产品、设计(UI)、开发、测试、部署(大型应用)的重复工作量,提升开发效率 * 统一:同一个平台统一产品特性保持高度统一和一致,能做到同步修改。 然后,在任何产品的上线过程中,谁都不愿意重复早轮子,都希望能通过一些规范和标准统一起来,后续就完全按照这个标准执行,并能否把历史上实现过的沉淀出来的直接使用,不需要重复劳动。 这里就提到的重要的点:1、沉淀;2、标准。如何沉淀?沉淀的标准是?在哪里沉淀?该不该使用?如何使用?新加入的小伙伴如何知道? 同时,我们还需要解决每个组件之间的依赖(即模块依赖),就需要一个平台来帮我们做这样的事情,维护组件,而且能做到工具化,和构建体系打通,使用者能快速方便地相信和使用组件。这里就提到一个重要的问题:工具、维护 从组件的维护发展历史来看有以下一些方式: *
1年前
工具建设
李冬冬 于 1年前发表 1480 0 0
一,理解 GIT 1,分布式版本控制 Git 版本控制系统的设计思想是"去中心化"。传统的 CVS 、SVN 等工具采用的是 C/S 架构,只有一个中心代码仓库,位于服务器端。而一旦由于服务器系统宕机、网络不通等各种原因造成中心仓库不可用,整个 CVS 、SVN 系统的代码检入与检出就瘫痪了。 [http://7tszky.com1.z0.glb.clouddn.com/FvaTKc-s_SauD_pgoLefbtnlfVah] 为了摆脱对中心仓库的依赖,Git 的初始设计目标之一就是分布式控制管理。即每个成员本地都是一个完整的版本库,都可以看成是中心仓库。Git 分布式的设计理念有助于减少对中心仓库的依赖,从而有效降低中心仓库的负载,改善代码提交的灵活性。 [http://7tszky.com1.z0.glb.clouddn.com/FkQPSCpBqOtuxOzWjeB7oumM8xJr] 2,离线操作 由于整个仓库都在本地,很多操作可以在不需要联网的时候进行。比如代码提交到仓库、创建合并分支、打 tag
1年前
工具建设
袁飞翔 于 1年前发表 1110 1 0
直出要做什么 在服务端为Qjs填充默认的值,例如 输入: <divq-text="name"></div> {"name": "Qjs"} 直出: <divq-text="name">Qjs</div> 原理 编译阶段处理directives, 输出阶段处理filters对数据取值渲染模板获取到html 编译: <divq-text="name">Qjs</div><divq-class="red: isRed"></div> 处理directives编译成underscore模板: <divq-text="name"><%=name %></div><divq-class="red: isRed"class="<% if (isRed) { %>red<% } %>"></div> 输出: 处理filters, 使用模板函数对数据做渲染 实现 编译阶段虚拟dom的大框架: 编译过程基本都在 cheerio 建立的虚拟dom上操作, 因此解析Qjs语法等都可以直接复用Qjs的, 只需重写一套directives q-text var $ = require('cheerio');
1年前
工具建设
莫卓颖 于 1年前发表 1246 0 0
背景: 最近一段时候由于需要搭建后台测试系统,因此需要在centos系统下搭建mysql、apache、fastcgi、svn,由于网上的教程比较零散并且很多都过时,因此重新梳理整理如下 MYSQL 1.安装 yum install mysql mysql-server mysql-devel 2. 数据库配置文件 /etc/my.cnf 3. 启动MYSQL service mysqld start 4. 开机自启动 chkconfig --add mysqld 5. 设置登录密码 mysqladmin -u用户名字 password密码 6. 登录MYSQL mysql -u用户名字 -p密码 7. 忘记密码 service mysqld stop mysqld_safe --user=root --skip-grant-tables mysql -u root use mysql
1年前
工具建设
helondeng 于 1年前发表 1660 0 0
目前业务正在逐步迁移到fis3和lego,有许多和业务相关的fis插件需要处理。 FIS 编译流程 fis-compile-flow [https://cloud.githubusercontent.com/assets/3880323/10098419/c00bd326-63b3-11e5-9c15-b9bbf3eb27a0.png] 官方的这张图,对fis的构建流程讲述的很清楚了,主要包括单文件编译和打包,业务中的插件也主要是这两种,至于是pre还是post,差别不是特别大。主要记住一点区别: 单文件编译阶段,无法获取文件之间的关联信息;打包阶段,能够拿到项目的所有文件 ICONFONT 实例 本文以fis接入iconfont插件为例,讲述iconfont接入方案,iconfont大致的流程: 1. 同步svg,将项目用到的svg,通过 iconfont平台 [http://iconfont.imweb.io] 同步到项目目录 2. 编译svg,生成字体文件 3. 接入字体相关的css问题 4. html引入css文件 单文件编译处理ICONFONT 大体的逻辑是:
1年前
工具建设
江源 ,非常让人头疼…… 于 1年前发表 4202 3 0
上手 mac 之前,我调查了好久, mac 比起 windows 到底有什么优势?我想说的是,调查并没有什么软用,只有上手一台体验才有意义。 这会是一个系列,作为我折腾 mac 的知识备忘,同时也给想买却犹豫不决的同学吃一个定心丸,买,没错。 mac 相比 windows 有一个大优势,那就是美。在开发者眼中,这体现在开发工具的主题搭配上,废话不多说,上图。 * Terminal[http://7tszky.com1.z0.glb.clouddn.com/Fsx0rHmQpDQ-qcyRTtMiunmx7SDV] * iTerm2 和 terminal 一样。[http://7tszky.com1.z0.glb.clouddn.com/Fjtb-cLILNUujjIMwN3QxKzAPUNh] * idea > webstorm[http://7tszky.com1.z0.glb.clouddn.com/Fnvs_Mk0egVQQhi9vpP1K1OiLTMw]
1年前
工具建设
yangchunwen 于 1年前发表 12184 12 3
首先要解释一下为什么叫浏览器自动化测试,因为本文只关注发布后页面功能的自动化测试,也就是UI层面的自动化。 浏览器测试有别于js代码的单元测试,后者一般是发布前的代码功能逻辑测试,在这方面已经有很多比较成熟的方案,如 jasmine [http://jasmine.github.io/2.3/introduction.html] mocha [https://github.com/mochajs/mocha] Qunit [http://qunitjs.com/] ... 为什么要做自动化 个人认为自动化测试的主要出发点有两点: * 减少重复的工作。让机器自动帮我们完成需要的交互操作,验证我们的页面功能。 * 自动监控。通过自动回归我们的页面功能,可以在功能出错的时候提供报警,为我们手动排除问题提供参考。 开胃菜
1年前
工具建设
黎清龙 于 1年前发表 1921 4 2
SUBLIME 插件基础知识介绍 下面通过一个sublime插件【CSScomb】介绍一下sublime插件的基础知识 1 SUBLIME插件的安装 1.1 使用PACKAGE CONTROL安装 如果是Package Control的插件,可以通过Package Control来安装插件 首先通过 官方文档 [https://packagecontrol.io/installation] 安装Package Control 通过【Ctrl + Shift + p】或者【Tools】–>【Command Palette…】打开命令面板,然后输入【pi】即可看到安装命令: [http://7tszky.com1.z0.glb.clouddn.com/Ft6bknZ31hd9brBbervlGWyiprRv] 选择【Package Control: Install Package】命令,然后输入要安装的包名即可: [http://7tszky.com1.z0.glb.clouddn.com/FrJgH1S8yYo5VDHvb3sx99QDFQ9C] 1.2 源码安装
1年前
工具建设
杨文坚 ,首席吹牛工程师 于 2年前发表 1777 9 2
紧接上文: http://imweb.io/topic/55abbc5a6ee095884b704c2e [http://imweb.io/topic/55abbc5a6ee095884b704c2e] 组件嵌套 当组件可以嵌套,组件件可以拆成较小的颗粒,使得复用性大大提升。 下面我们是一个 codeclick 组件,其用途是高亮展示代码片段,点击代码弹出dialog,也就是说我们准备嵌套上面做出来的 third-code 和 dialog 组件: 定义 * CSS文件: /** 可以给组件定义一些特殊样式,但为了简单我们什么也不做 **/ * 模版文件: <div <third-code q-ref="code" <content</content </third-code <dialog q-ref="dialog" <header欢迎使用Ques</header <article你点击了代码</article </dialog </div * Javascript文件:
2年前
工具建设
杨文坚 ,首席吹牛工程师 于 2年前发表 3083 2 3
Ques是一套组件化系统,解决如何定义、嵌套、扩展、使用组件。 项目地址: https://github.com/miniflycn/Ques [https://github.com/miniflycn/Ques] 传统开发模式的痛点 * 无法方便的引用一个组件,需要分别引用其 Javascript 、 Template 、 CSS 文件 * 我们期望能以 MV* 的方式去写代码,结果发现只有 Javascript 是 MV* * UI库打包成一坨(类似 Bootstrap ),但是实际上UI库伴随产品迭代在反复变更,每次打开网站,用户依然反复下载UI库 * CSS 没有命名空间导致两个组件容易冲突 * 组件无法嵌套或者无法扩展,所以实际上组件根本无法复用 * 组件无法复制后可用,在组件无法嵌套或无法扩展的情况下,连定制一个组件都困难连连 * 每次性能优化都将代码弄的很恶心,不好维护 * 可能没法支持IE6,例如React、Vuejs、Polymer这些方案IE6肯定不支持 UI组件
2年前
工具建设