随笔分类 -  模式/架构/过程/方法

摘要:git是个分布式的版本管理工具,现在我们前端这边用它做版本管理。之前也看过一些相关资料,不过没有使用它管理过项目代码。如今,用它也有段时间了所以就写些东西,仅供参考。###快速上手工作经常用到的几个git命令:1. git clone 版本库地址 克隆远程版本库到本地2. git checkou... 阅读全文
posted @ 2015-04-09 11:33 rentj 阅读(927) 评论(0) 推荐(0)
摘要:应用了seajs的模块化js文件不能像普通js文件一样直接合并和压缩,具体可以看这里为什么 SeaJS 模块的合并这么麻烦。下面演示了如何使用VS2012一键发布应用了seajs的asp.net项目,需要用到的工具有nodejs、grunt、msbuild等。项目目录结构其中base.js是一个公用的JS库,pulg-a.js,pulg-b.js是基于base的公用插件。对于开发环境的项目,在浏览器中访问Index.html 会加载base.js、sea.js、 common.js、 plug-a.js、plug-b.js。对于发布后的项目,在浏览器中访问Index.html只会加载 seas 阅读全文
posted @ 2013-04-22 11:35 rentj 阅读(656) 评论(1) 推荐(0)
摘要:单例模式确保一个类在整个应用程序中只有一个是实例对象,在Javascript可以使用单例模式来管理命名空间;代码:function Namespace(name){ return window[name] || (window[name] = {}); }(function(){ var DOM = Namespace("DOM"); DOM.method = function(){ //..... };}())console.log(DOM.method()); 阅读全文
posted @ 2013-03-04 14:58 rentj 阅读(382) 评论(0) 推荐(0)
摘要:在面向对象的JavaScript开发中使用继承可以提高代码重用性,javascript有多重方式可以实现继承,考虑代码的可维护性在项目中应该保持代码风格的一致性,下面是JavaScript中继承的实现方式之一:辅助对象:var global = window;(function(ns,undefined){ //辅助对象: var Class = { extends: function(SubClass, SuperClass){ var F = function() {}; F.prototype = SuperClass.prototype; SubClas... 阅读全文
posted @ 2013-01-09 16:24 rentj 阅读(673) 评论(0) 推荐(0)
摘要:观察者模式也被称作发布/订阅模式,下面是JAVASCRIPT的一种实现方式var global = window;(function(ns, base){ //被观察的对象 function Observable(){ this.observers = {}; } Observable.prototype = { //subscribe bind: function(name, observer){ var observers = this.observers[name] || ( this.observers[name] = [] ); var isbind = ... 阅读全文
posted @ 2013-01-08 16:35 rentj 阅读(619) 评论(0) 推荐(0)
摘要:AMD是"Asynchronous Module Definition"的缩写,意思是"异步模块定义"。模块定义define(id?, dependencies?, factory);其中:id: 模块标识,可以省略。dependencies: 所依赖的模块,可以省略。factory: 模块的实现,或者一个JavaScript对象。代码示例1: 定义一个alpha模块,依赖require,exports,beta模块define("alpha", ["require", "exports", & 阅读全文
posted @ 2012-11-15 18:11 rentj 阅读(5651) 评论(3) 推荐(1)
摘要:项目中有多个前端人员协同开发时,你们团队如何分工如何协作的?以前一直使用VSS的"锁定-修改-解锁模型",后来发现svn的"拷贝-修改-合并"模型很不错,可以多人并行编辑同一个文件。具体到前端模块化开发可以多人同时签出同一个文件,然后并行开发不同模块,模块经测试通过后提交到版本库。提交时进行手动或自动的合并操作,下次修改前先从版本库获取最新内容,再做后续修改。HTML/CSS是可视话比较强的东西, 开发人员开发过程中只能看到自己开发的模块部分对于开发体验来说不太好。通过合并大家可以实时看到协作的成果,看到完整的部分。 比如有一个ps设计稿index.ht 阅读全文
posted @ 2012-05-30 12:39 rentj 阅读(1563) 评论(0) 推荐(0)
摘要:相对于实现需求来说代码的发布部署工作是一项重复的体力劳动,如:代码的压缩、资源URL的替换、资源文件在多台服务器上的同步工作、重启相应Windows服务。对于每次发布部署来说这都是一个固定的流程。显然我们对代码部署这种重复的体力劳动比较不感兴趣,对于实现新需求有更高的积极性。另外作为做程序员,我们这类典型的脑力劳动者除了实现工作中业务需求外,我们也应该要充分利用自身优势,尽可能的通过程序代码来自动化那些可有计算机完成的体力工作。 在这篇博客中介绍了我为改善工作中的代码部署流程,使用WSH、Javascript和Bat实现的一个自动化构建工具。WSH是windows宿主的脚本技术,宿主指的是脚. 阅读全文
posted @ 2011-05-27 22:57 rentj 阅读(1383) 评论(0) 推荐(0)
摘要:0 在解决方案添加2个项目测试项目和被测试的项目,分别在同一解决方案下的不同目录中1 在测试项目中添加对nunit.framework.dll的引用:2 在测试项目添加对被测试项目的引用3 在测试项目中添加测试类需要标记为[TestFixture] 测试方法标记为[Test]这样才能被NUNIT识别,如果我们想忽略某个测试可以使用ignore属性4 打开NUNIT.exe,选择"file"-"op... 阅读全文
posted @ 2009-08-08 14:08 rentj 阅读(279) 评论(0) 推荐(1)
摘要:假设有这样一个应用场景通过分页的方式显示文章列表需求:1 显示文章标题 作者 发布时间2 如果标题超过15个汉字则截断并显示...3 表如果是当前浏览的用户是作者本人还需要在后面显示编辑和删除按扭如博客园里的评论.现在的问题是在3层架构中我如何合理的分配他们职责呢?下面就这个问题做个分析在这篇文章中我刻意使他不会涉及到一些特定的web开发技术,所以不论是使用asp技术和还asp.net技术这篇文章... 阅读全文
posted @ 2009-02-08 10:11 rentj 阅读(5391) 评论(12) 推荐(0)
摘要:基本概念 算法:计算机处理问题的方法, 策略:策略即算法实现对象中行为的方式 Strategy模式的应用场景一般是: - 具有多种可能需要实现的算法 - 需要在程序中对算法进行动态切换 -对象的行为需要根据上下文动态的改变。可以考虑使用策略模式. 如:加密有一个加密算法,加密算法有很多种,比如MD5,DES等,我们的程序需要实现 这个功能,就是可以让用户选择不同的加密算法进行加密。 官方定义:St... 阅读全文
posted @ 2009-01-17 10:12 rentj 阅读(404) 评论(0) 推荐(0)