1、1WEB 开发流程及规范Web 开发的分散性和交互性,决定了 Web 开发必须遵从一定的开发规范和技术约定。 只有每个开发人员都按照一个共同的规范去设计、沟通、开发、测试、部署,才能保证整个开发团队协调一致的工作,从而提高开发工作效率,提升工程项目质量。 一、 项目的角色划分如果不包括前、后期的市场推广和产品销售人员,开发团队一般可以划分为项目负责人、程序员、美工三个角色。项目负责人在我们中国习惯称为“项目经理“ ,负责项目的人事协调、时间进度等安排,以及处理一些与项目相关的其它事宜。程序员主要负责项目的需求分析、策划、设计、代码编写、网站整合、测试、部署等环节的工作。美工负责网站的界面设计、
2、版面规划,把握网站的整体风格。如果项目比较大,可以按照三种角色把人员进行分组。角色划分是 Web 项目技术分散性甚至地理分散性特点的客观要求,分工的结果还可以明确工作责任,最终保证了项目的质量。分工带来的负效应就是增加了团队沟通、协调的成本,给项目带来一定的风险。所以项目经理的协调能力显得十分重要,程序开发人员和美工在项目开发的初期和后期,都必须有充分的交流,共同完成项目的规划和测试、验收! 二、 开发工具的选取 不象 C/S 结构程序开发,可以一门语言从头到尾,你用 Delphi,就是 Delphi 程序员,你用VC ,你就是 VC 程序员。B/S 结构的 Web 开发工作,工具的选择是一件
3、痛苦的事情。从Windows 到 Linux,从 IIS 到 Apache,从 J2EE 到 .NET,从 COM 到.NET 到 EJB 组件还有 Asp、A、Jsp、Php、Perl、Javascript、Vbscript Wwwcom 美工也轻松不了多少,什么“网页三剑客“ “新网页三剑客“、 FrontPage、Photoshop、CorelDraw谁都说自己是最强大的! 我们的经验是,选用工具时最好是统一的,比如美工统一用 DreamwaverMX 制作网页,程序员全部用文本编辑器书写代码。统一工具的好处是可以保持同一个项目文档的一致性,便于开发人员的交流和文档的保存。但是也不必刻意
4、强求一致,比如美工可以使用任何自己熟悉的图形处理软件,只要最后能生成浏览器支持的图片就可以了。正是 Web 开发工具的多样性,才成就了今天互联网多姿多彩的局面。只要程序员的纯 Html 和 Javascript 代码的功夫足够过硬,就能胜任最后的网站整合工作。 三、 项目开发流程如果项目真正谈下来了,就需要正式确定前阶段的需求分析,该补充的步骤必须补上。然后进行详细的总体设计,其实也基本是前阶段工作的重复和完善。产生各栏目文件夹的结构图(一些公共文件夹如 images、scripts、 styles 等需要固定存放,共同调用) 。然后由美工根据内容表现的需要,设计静态网页和其它动态页面界面框架
5、,该切分的图片要根据尺寸切割开来。给需要程序动态实现的页面预留页面空间。制定字体、字号、超级链接等 CSS 样式等。 2在美工设计页面的同时,程序员着手开发后台程序代码,做一些必要的测试。美工界面完成后,由程序员添加程序代码,整合网站。由项目组共同联调测试,发现 bug,完善一些具体的细节。制作帮助文档、用户操作手册。向用户交付必要的产品设计文档。然后进行网站部署、客户培训。 根据专家观察,这样的理论和现象都是值得各位站长深思的,所以希望大家多做研究学习,争取总结出更多更好的经验! 最后进入网站维护阶段。这一阶段也可以不包括在该项目中,而作为公司的服务内容。以上的每一部都会产生一些阶段性成果,
6、项目经理需要及时进行监督、审核,发现问题及时纠正。 为了控制项目的进度,应当实施填写“项目进度表“ 制度,即每天填写工作日志,记录当天的工作细目和工作量,以及需要解决和已经解决的问题。四、 一些技术规则1, 数据库命名约定(参考了 “匈牙利命名法“) 数据库(Database):格式 db_ desc 表(Table):格式 tab_desc。表名长度不能超过 30 个字符,单词首写字母大写,多个单词间不用连接符号。字段(Field or Column):格式 f_type_desc。f :表明这是一个字段名称;type:可选,表明字段类型,字符型为 c,整型为 i,逻辑型为 b,货币类型为
7、m,浮点型为 f,日期型为 d,时间型为 t,二进制为 bl。如果类型为字符型,可以省略。desc:对字段属性的有意义的描述,可以用英语单词、单词缩写、汉语拼音、字段实际含义的拼音缩写等,单词之间可以用单词首字母大写软分割(推荐) ,也可以用“_“隔开。 举例:根据专家观察,这样的理论和现象都是值得各位站长深思的,所以希望大家多做研究学习,争取总结出更多更好的经验! f_name (姓名) f_c_ UserInfo 或 f_c_ User_Info f_xm (姓名) f_grp_id (组标识) 索引(Index):格式 idx_desc。 视图(View):格式 View_表 A_表 B
8、_表 C.,其中 View 表示“视图“ 。这个视图由几个表产生就用连字符“_“连接几个表的名,如果表过多可以将表名适当简化。 存储过程:格式 sp_表名_存取过程名(缩写) ,比如 sp_User_Delete。触发器(Trigger):格式 trg_diu_desc。trg 代表触发器;d,i,u 表明触发器类型(Delete,Insert,Update)定义,书写顺序为 d、i 、u;desc 是表的名称,表明触发器所在的表。数据库设备(Database Device):格式 dev_desc。 约束(Constraint):格式 cns_desc。2, SQL 语句书写规范 3SQL
9、语句中,SQL 关键字全部大写,其它的遵照“数据库命名约定“ 。例如: SELECT * FROM tabNewsInfo WHERE f_UserName= ORDER BY f_i_autoid 3, 文件夹命名约定 公共文件夹: /images 公共图片 /styles 样式表 /scripts 脚本 /ftps 下载 /doc 网站相关素材、文档 /readme.txt 网站说明文档 /helps.htm 网站帮助文档 /mylogs.txt 网站维护记录其它栏目的命名,可以用拼音首字母简称,也可以用英文单词。全部文件夹的含义在readme.txt 文件中说明。4,对象及变量命名约定:
10、每个变量名必须先定义,再使用。 中.国.站长站 . 在 ASP 文件的最开头添加语句可以强制变量定义。代码块必须采用缩进格式。每个函数前必须标明函数的功能、输入参数、返回值的相关信息。 . 变量类型 缩写前缀 String str 或 s Integer Int Date Dt Object obj 或 o Boolean bol 或 b Byte Byt Double Dbl Error Err Long Lng Single Sng 5,图形对象约定 中国.站.长站 . 图片的格式:最后生成 jpg, gif,png,swf 格式的图形文件。 . 图片的字节大小:最大不能超过 30k。 .
11、com 。 图片的尺寸:根据需要确定,最好使用小图片,大的图片必须切割成小图片使用。 . 图片的留白:图片的边界不能留白,图片只包含有效的色彩元素。 6,媒体对象约定流媒体的格式: asf,wmv,wma,rm,不建议使用 avi 格式的动画文件。 7,页面布局的基本约定 中文段落必须有 2 个汉字的缩进。字间距采用默认大小。行间距为 16pt20pt。文字布局必须留有“天“ 地“左“右“,不能把版面占满。页面布局必须保持色彩平衡。注意上下、左右的呼应。注意页面的整体协调。提倡画面和文字的融合,而不是画面和文字的明显分离。要按照设计广告的要求来设计网页页面 ,特别是一些产品展示性的页面。 五、
12、 一些经验和教训1,能用静态网页表现的内容,尽量不用程序代码动态实现。 2,设计阶段,必须和用户进行充分的交流,完全、准确的了解用户的需求。既不能歪曲用户的意思,也不能一味迎合用户的非正当需求,也不能对自己没有把握的技术甚至不可能实现的技术夸下海口。需求分析是一个沟通、交流、引导、教育、斗争、妥协的过程。需求分析结果要有文字资料存档。 。 3,技术参数必须了解准确。 . 比如用户的软件平台是 linux 系列,那你的系统就要考虑用 Java 或者 Php 加 MySQL 开发了,这时候你的 ASP.NET 技术就用不上了。4,最好让用户对已经确定的需求内容签字,盖章。45,任何交流,必须有书面
13、记录。对一些喜欢“健忘 “-实际上是懒惰的开发人员,要求他必须每天花 10 分钟写工作日志。6,每个项目的有关文档,全部、统一集中归档。 . web 开发流程思考开发需要考虑三面人的人员:设计师,程序员,客户,项目经理。 web 开发需要考虑三面人的人员:设计师,程序员,客户,项目经理。A、设计师负责平面效果设计B、程序员负责系统开发C、客户提出需求验收系统D、项目经理负责统筹全局这里就不谈需求分析细节,和与客户谈判的细节了,假定需求已经确定。web 标准是结构和表现相分离的,所以设计师和程序员在项目经理需求确定之后,可以并行开发,打破了以往的,平面效果确定系统才能开发的低效率开发流程。什么样
14、的系统都可以拥有 MVC 式系统的开发效率。下面是一个流程图5需求确定,系统规划完成之后:程序员确定 xhtml 和 UI 设计是同步进行的当 xhtml 结构确定之后:CSS 的制作和程序的开发同步进行CSS 和程序开发完成之后:CSS 和 xhtml 进行连接,制作完成至于表现层,可以放在 xhtml 结构开发之后进行,也可以在程序开发阶段完成,比如AJAX,这是程序员的工作,程序接口他们控制好就行。当然这只是一个思考,之间的衔接过程出现的问题可能很多,如果要推广还需要长时间的磨合。在整个开发过程中,每个人都必须对标准有一定的了解,结构的合理性取决于项目经理和程序员,艺术效果取决于 ui
15、设计师,浏览器兼容性取决于 CSS 制作者,设计师也需要对 CSS 有一定的了解,DOM 不能破坏 CSS 的结构。 本篇文章来源于:开发学院 http:/ 原文链接:http:/ 什么事都要做好准备 注意什么事一定要做好准备列条目注意人少沟通和人多共同的代价是不同注意一次做的非常好是不肯能的,只能慢慢的向上添加Web 开发的一般流程一 需求分析 二 分析 设计1 架构分析 设计2 业务逻辑分析3 业务逻辑设计4 界面设计三 开发环境的搭建四 开发 测试 开发 测试6螺旋式递增 /瀑布式开发 现在软件开发一般用螺旋式递增但是不同的项目用不同的方式 如不对一般用瀑布式的开发模式 出此之外,一般用
16、螺旋式开发模式当然,有时用两者开发模式开发相结合的方式五 文档的编写一般不同的人写不同的文档文档的编写一般穿插在软件开发的过程中具体的分析一 需求分析的确定通过各种手段确定系统功能与性能功能:购物,注册,浏览,搜索性能:可同时支持 n 个并发的访问,并且响应时间不小于 m 秒注意东西上了数量后,必须考虑性能的问题(这地方是架构师考虑最重要的地方)手段:头脑风暴(brain storm) 不能抬杠会议(最重要的:找最合适的人)询问原型 界面原型 业务原型注意本阶段十分重要 (下笔前沿,离题万里)Web 项目中,通常界面原型会在这个阶段进行当确定下模块后,可以买模块(即省利,有省钱) 这就是外包
17、尤其是网络产品,网络只有第一,没有第二骑着驴找马可以,但不要虐待驴架构的分析和设计逻辑架构(分层的好处:某一层发生变化时,不会影响其他功能 便于以后重用 坏处:开发周期长,开发的效率低,开发的费用高)三层架构(浏览器 javabean 数据库)N 层架构Mvc 模型Model1 Mode2物理架构Web 服务器的分布数据库库服务器的分布注意大规模爆发时发生的情况负载均衡分布式的事务内容分发7分布式的安全技术上的解决方案(根据现有人员的水品)Java /.netOpen source 产品/商业产品业务逻辑分析根据需求分析业务逻辑那些人使用本系统他们会使用系统做什么他们通常使用本系统的步骤是什么
18、会有哪些明显的类来支撑本系统运行会用那些不同的提示反馈给用户(从客户的角度分析)本阶段会和业务逻辑密切相关,通常在确定业务逻辑是就要确定相关的分析业务逻辑设计根据需求分析来确定具体的累确定类的属性确定类的接口(方法)确定类之间的关系确定用户操作流程在设计上的反应进行数据库的设计不同项目不尽相同,最重要的是字段的设置注意先设计类和对象,然后在设局数据库界面设计设计系统的界面风格(不同的行业有不同的风格)颜色 style设计系统的具体“模拟”界面能够从头走尾方便进行需求确定方便 jsp 程序员的开发开发环境的搭建(程序员必须用的工具,上网查 )开发工具的搭建配置管理工具(cus)测试工具的确定(单
19、元测试工具)文件服务器/配置服务器的确定(黑客测试工具 bug 跟踪的工具)对新人的培训(读那片文档,做哪些具体的事情,让他了解你们的工程)开发 测试 开发 测试按照设计进行开发8迅速开发原型(快速开发)进行迭代(螺旋式的递增)开发提早进行测试单元测试黑盒测试性能测试易用性的测试文档的编纂在程序开发的过程中不断的进行编纂以网上商城为例进行软件设计(必须从用户的角度考虑需求,而且要确定谁在使用在系统)普通用户:浏览商品搜索商品系统下订单注册成为系统会员会员用户:浏览和检索商品下订单浏览自己下过的订单管理自己的信息修改自己的密码修改送货地址修改联系方式会员可以分级别(设定会员的一个好处就是固定客源
20、*注意这一点非常重要*)1 不同级别享受不同等级的待遇2 通过购物金额确定级别管理员通过后台进行会员管理1 会员浏览2 会员历史订单的浏览3 会员的删除4 指定会员级别管理通过订单后进行产品的分类管理1 浏览 添加 删除 修改管理员通过后台进行后台的产品的管理1 新增产品2 产品上架3 产品下架4 产品销量的浏览5 产品搜索96 产品删除7 产品的修改管理员通过后台订单的管理订单的查询修改订单的状态订单的搜索订单提醒(像 qq 一样的提醒)架构的分析逻辑架构Jsp+java+bean 的开发模式Jsp 负责表现Jababean 负责业务逻辑Database 负责持久保持数据物理架构Web 服务
21、器一台配置Database 服务器一台技术解决方案Webserver-tomcat6.0Database sqlserver 2000业务逻辑分析(看需求过程中的名词,类和属性)关系的思考可以想想类中属性的关系会员类包装系统会员预订单的关系 一对多的关系管理员类(上网查权限等级的设置)包装管理员(上下柜管理员,订单管理员等等)(可设置等级,来确定管理权限)产品类包装产品类与订单类有一对多的关系类别类包装产品信息树状结构与产品一对多的关系订单类包装订单与产品是多对多关系与产品是多对多关系购物车类包装购物车的信息与产品是一对多的关系10业务逻辑设计(方法 要考虑东西 )分析一个类所具有的类属性和方
22、法考虑的可能不全,所以要用螺旋递增的方式开发,缺少的东西慢慢向上增加手段:?包装会员类管理员的类产品类Getcategon 买了多少个呀类别类Salesorder & saletem11订单Salesltem 订单中产品及数量Getsalesltems 订单项Salesorder & saletem购物车类购物车中的购物项数据库的设计分析出类后映射到表上是就可以了会员设计库12产品表外键 categoryId 类别类订单类设置订单的状态 设置为 Int 性 0 1 2订单中的产品13卖出的产品是哪个订单的注意添加其他功能的时候一定要设制其他的表单根据表设置 sql 语句,把 sql 语句写在一
23、个专门的文件里面。和项目文档保存在一起页面的设置有一套静态的页面注意一些热门信息自服务(想用户的修改功能)后台14注意后台在一个单独的文件下面Cvs 软件配置管理系统开发注意优先级的等级那个模块最重要那个那个先写,那个模块是基础,则先写那个模块注意这是必须的,而且一定要分出模块的等级来,写一套完整的流程图出来如先写用户,在写分类,然后写购物,最后订单的处理,再写其他的功能开发安排有谁用那些资源,在多长时间内完成那块,这是非常重要的V 代表版本的含义文档的编纂(上网查工具,自动生成的工具)15文档始终穿插在软件开发中有时还必须有其他文档(有利于将产品推销出去必须的,而且是很好的手段)与对方比较等
24、等在开发前必须设计出首页注意在整个界面里面包含哪些界面,每个界面叫什么名字,注意名字必须确定,必须有一个命名机制注意团队必须统一命名方式16销售心必须细懂技术(上网查)客户买了我的系统到底是用了干什么,怎么做替客户做下一步的工作琢磨别人是思想有内涵的忽悠人选择商品 浏览商品 搜索商品 商品的合理分类 留言 管理员 添加删除商品 客服系统 服务系统 付费系统(注册 银行系统的连接) 在线留言 社区交流 收藏夹(看中的产品暂时收藏,想和其他商品相比较 用 cookie 做) 使用帮助相同产品的比较 广告系统 团购(一般留联系方式 私聊)产品的上架下架 买了多少次 订单数 决策支撑系统(什么东西买的最多 数据挖掘 啤酒和纸尿布的故事) 商城的系统还是商城的平台