Archive for the ‘Develope’ Category

  上周正式开始使用scrum,初识scrum,有一些想法,特此记录!
  在引进scrum之前,我公司一直采用的是瀑布式的方式进行软件管理,其中涉及到太多的流程,比如:
    1.在开发软件之前需要做好所有的需求文档,否则不能进行开发(这需要太多的需求分析,而且时常难以把握真正的需求)
    2.所有的部门都是独立的,销售、开发、测试等都是独立分开的,所有的工作都是以销售为导向的,后端的开发人员难以参与到具体的需求调研中(这需要花费大量的人力)
    3.整个开发过程需要大量的文档来支撑,比如:需求文档,系统设计,概要设计,详细设计,单元测试(这通常要花费太多精力来编写文档)
  我们需要做出改变吗?Of course!
  敏捷倡导的是以人为本,拥抱变化!以人为本就是把人做为整个工作中的核心,强调人在软件开发工作中的价值;拥抱变化就是随时响应需求改变带来的变化。但是,这能解决好传统瀑布式的开发方式带来的诸多问题吗?我暂时现在还没有能力来回答这个问题。
  在上一周的scrum工作中,我们完成了product backlog、user story、sprint backlog的建立以及task的分配。整个过程我感觉确实和以往的开发方式挺不一样的,首先是文档的产入产出上,以往都是一纸文档,QA有测试文档,开发有需求文档,但是在敏捷过程中我们到任务的分配结束还没有产生任何文档;其次是参与人员的不同,以往我们只要开发人员知道具体要开发的内容,等开发好了之后为QA写好相应的test case。在采用敏捷时,需要所有利益相关的人(PO,SM,TM,QA)参与进来,并提意见。QA也有发言权,大家一起讨论出具体的task的具体优先级,开发之前所有参与人员都要对需求有所了解;再次,我们在讨论的过程中有很多的分歧,例如:如何来判断story?如何细分story?如何来评估优先级?如何估测sprint需要的时间(包括开发和测试的时间)?
  整个user story的开发流程:
  技术选型–>UI设计–>编码&测试–>code review–>DB review–>fix bug–>documented
  当以上步骤都完成之后才算一个user story的完成,这和传统的开发流程稍微有些不同,大体还是吻合的,最大的区别就是:
     1.开发和测试是同时进行的

    2.文档只需要最后完成之后的一个说明文档

    3.安排的时间较短,一般为2-4周

  虽然从表面上开来会提高效率,但是不知道在具体实施的过程中是不是会遇到很多不顺呢?

  在敏捷的同时,随之而来的就是CI,AUTO Building&Testing,VSTS,但是anyway,我们做这些无非是为了开发出有价值并且可以使用的软件。我相信接下来会有很多事情发生,让我拭目以待吧!

Advertisements

浅谈前端的架构与开发

Posted: 七月 20, 2011 in Develope
标签:

随着HTML5的逐渐成熟,以及CSS3的逐渐普及,各大厂商出人意外的统一要支持HTML5,这给奋斗在frontend developer带来了无限的曙光,给了我们大展拳脚的机会!
不知不觉我做前端的开发工作也差不多一年了,有很多东西我觉得是时候来总结一下了。
交互式架构篇

试想一下下面的工作场景:你需要构建一个资源网站,网站中必须要有搜索框架以及注册框架,你会怎么安排自己的工作以便将来的维护?是不是一溜烟的写个页面的雏形,然后一步一步添加所需要的其他功能?我不赞同这样的做法,因为这不利于公用以及页面组件的重用。我们需要:框架+模式+组件,个人愚见,当需要开发大规模的网站的时候,这样做事必不可少的!

框架:一个针对具体应用的结构,比如说:目录框架(taobao),搜索框架(google),注册框架(spinscape)等
模式:一个具体应用中具体的内部模块的设计模式,比如:注册模式可以是需要输入用户名、密码、。。然后是提交按钮,也可以是一个email加密码就构成了一个注册模式
组件:针对模式的代码实现

前端技术篇
HTML5
html5的出现改变整个flash独大的格局,不需要插件就可以实现flash高级效果,只是目前性能还不是很高。html5的应用主要带来了以下改变:
HTML5表单对象:

html5属性:

html5音频和视频编码:

html5的web应用程序:

web应用程序这部分有过以下研究,应用可能有以下方向:
canvas :游戏,动画,3D
drag&drop :文件上传到浏览器中只需要拖拖拽拽就OK了
websocket :大文件的传输,web即使通讯工具,游戏
webworker :大规模应用于数学计算,只需要一步进行的各种操作,值得注意的是,在IE中可以使用Google Gears达到同样的效果
windows hash:通过改变windows hash触发一些windows的一些操作,这个api对于IE8也是支持的
indexDB : 因为W3C组织已经废弃了websql相关标准的制作,可以预知将来所有的浏览器都将支持indexDB作为客户端的数据库
offline application:通过在html中定义manifest文件头来达到离线存贮的目的,这个应用在移动设备上将非常有用
history : ajax的应用使得浏览器的前进和后退按钮‘失效’了,为了弥补这个缺憾,可以使用history api
query selector:这个用来查找dom集合的api在现代浏览器中全部支持了,我们现在就可以使用querySelector和querySelectorAll

CSS3
css3属性:

css3选择器

CSS3应用
animation: 动画,结合preserve3D可以达到3D视角的效果
trasform : 旋转,倾斜,平移
transition : 动画过度效果相关
结合特有的css3事件 ,如 webkitTransitionStart,webkitTransitionEnd可以打造出非常炫的动画效果!

技巧篇:
Zencoding:可以用简单的代码达到相应的效果,包括html,css
Less:面向对象的css,可以用面向对象的方式写出css,然后编译出css代码
YUI Compresser、google closure compiler:压缩js和css代码,另外注意的是:在网速低和服务器不支持gzip压缩时,请使用这种packer进行压缩,更佳
minify:将多个css请求合并到一个url中请求
JSMake:这个是我的同事使用的工具,可以对js进行预处理:依赖,version替换
YSlow:网站性能检测

推荐资源:
Yahoo! Design Pattern Library(yahoo 模式库)
HTML5 ADVENTURE CALENDAR(24天学习)
HTML5 Doctor(compatable all browser html5 lib,just beta version)
互联网这点事
前端观察
设计达人
CSS3 animation event