漫谈网站开发规范

news/2024/5/9 15:48:23/文章来源:https://blog.csdn.net/iteye_15968/article/details/82075345

任何一个项目或者系统开发之前都需要定制一个开发约定和规则,这样有利于项目的整体风格统一、代码维护和扩展。由于Web项目开发的分散性、独立性、整合 的交互性等,所以定制一套完整的约定和规则显得尤为重要。本文档将定制一系列约定和规则,他们分别包括组件团队、文件夹命名规则、文件名命名规则、程序代 码编程风格、数据库设计约定。这些规则和约定需要与开发人员、设计人员和维护人员共同讨论定制,将来开发都将严格按规则或约定开发。每个团队开发都应有自 己的一套规范,一个优良可行的规范可以使我们工作得心应手事半功倍,这些规范都不是唯一的标准不存在对与错,也许有些地方与你当前使用的习惯相驳,很多地 方都有争议。比如很多人习惯设计数据库时采用自动增长字段,而有些人(像我这样的人)就坚决反对,各自都有比较充分的理由阐述自己的观点,所以只好根据具 体情况来采用相应的策略。

   非常明显在Web项目开发中有前后台开发之分,前台开发主要是指非程序编程部分,主要职责是网站AI设计、界面设计、动画设计等。而后台开发主要是编程 和网站运行平台搭建,其主要职责是设计网站数据库和网站功能模板的实现。下面的这些规范主要是从这2个方面来定制的,这些规范是我这几年学习工作中总结的 一点小经验,本文档比较适合中小型网站或者Web项目的开发规范。

  1.组建开发团队
  在接手项目后的第一件事是组建团队。根据项目的大小团队可以有几十人,也有可以是只有几个人的小团队,在团队划分中应该含有6个角色,这6个角色是必 须的,分别是项目经理,策划,美工,程序员,代码整合员,测试员。也许你的团队还没有6个人,没有关系一个人可以有多个角色,比如项目经理还可以有策划这 个角色,如程序员还可以含有代码整合和测试这2个角色,如果你的项目够大人数够多那就分为6个组,每个组分工再来细分。下面简单介绍一下这6个角色的具体 职责。

  项目经理,项目总体设计,开发进度的定制和监控,定制相应的开发规范,负责各个环节的评审工作,协调各个成员(小组)之间开发。策划,提供详细的策划 方案和需求分析。还包括后期网站推广方面的策划。美工,根据策划和需求设计网站AI,界面,Logo等。程序员,根据项目总体设计来设计数据库和功能模块 的实现。代码整合员,负责将程序员的代码和界面融合到一起,代码整合员可以制作网站的相关页面,测试员,负责测试程序。

2.开发工具
  Web开发工具主要分为3部分,第一部分是网站前台开发工具,第二部分是网站后台开发环境,第三部分是项目管理和辅助软件。下面分别简单介绍这三部分需要使用的软件。

  网站前台开发主要是指Web界面设计。包括网站整体框架建立、常用图片、Flash动画设计等等,主要使用的相关软件是:Adobe Illustrator 、Adodb Photoshop、Dreamweaver MX、Flash MX等。

  网站后台开发主要指网站动态程序开发、数据库建模,主要使用的相关软件是: PowerDesigner(数据库建模),PowerDesigner在数据库设计方面应用非常强大,用它可以快速创建数据库概念和物理模型,我最喜欢 的还是它生成数据库Report的功能太方便了,设计数据库强烈推荐用它。Rational Rose(程序建模),如果你的项目功能模块不是特别复杂那就剩了它吧,这样会节省一些时间和开发的复杂度,不过我个人认为不管是大项目还是小项目都应该 画画Rose图。

  网站项目管理主要指对开发进度和代码版本的控制。开发进度用Microsoft Project来制定,代码版本控制采用Visual SourceSafe,当然还有其他的选择比如CVS和Rational ClearCase。网站测试采用VS.net的附带工具Microsoft Application Center Test,它可以进行并行、负载测试等。程序文档编写采用Word,如果你非常怀旧用WPS也可以。

  3.网站开发流程
  在项目开始实施之前应该有一个工作步骤也就是工作流程,在项目开发中最需要时间的是总体设计和系统测试,而程序编写代码所占的时间并不多,但有的团队 就急于开发写代码,先把程序写出来再说,没有注重评审和测试这2个环节,结果造成返工,我在一家比较大的公司中都遇到多次这种情况。所以项目来了不要急于 开工写代码,应该一步一步慢慢来,只有走的慢才能走得稳走得远。图1的开发流程比较好地体现开发的整个环节。

图 1



  从图1可以看到2条主线,这2条主线分别是前台开发和后台开发。前后台开发在项目开发早期互相没有交叉,当然不是绝对没有,Web策划和需求分析都是 互相有关系的,一个是网站表现形式和风格的策划另一个是网站功能的策划,它们是衣服和躯干的关系。到了开发后期就需要把界面和功能模块结合起来形成一个统 一,也就即将发布的网站。

4.数据库开发
  数据文件命名采用系统名+_+文件类型,比如系统名为kupage,则数据库文件命名为kupage_database.mdf,有的数据库文件有多 个,比如SQL Server就有2个,一个是数据库文件,另一个是日志文件,那么他们的文件命名分别为 kupage_database.mdf,kupage_log.log。文件名全部采用小写。

  数据库表命名规范,表名长度不能超过30个字符,表名中含有单词全部采用单数形式,单词首写字母要大写,多个单词间不用任何连接符号。若库中有多个系 统,表名采用系统名称+单词或多个单词,系统名是开发系统的缩写,系统名称全部采用小写英文字符,如bbsTitle,bbsForumType。若库中 只含有一个系统,那么表名仅用一个单词或多个单词。单词选择能够概括表内容的一个或多个英文单词,如UserInfo,UserType。关连表命名规则 为Re_表A_表B,Re是Relative的缩写,如:Re_User_ArticleType, Re_User_FormType。

  数据库字段命名规范,数据库字段名全部采用小写英文单词,单词之间用”_”隔开,命名规则是表别名+单词, 如:user_name,user_pwd。表别名规则,如果表名是一个单词,别名就取单词的前4 个字母;如果表名是两个单词,就各取两个单词的前两个字母组成4 个字母长的别名;如果表的名字由3 个单词组成,你不妨从头两个单词中各取一个然后从最后一个单词中再取出两个字母,结果还是组成4 字母长的别名。

  视图名采用规则View_表A_表B_表C,View表示视图。这个视图由几个表产生就用”_”连接几个表的名,如果表过多可以将表名适当简化,但一定要列出所有表名。

  存储过程命名规则P_表名_存取过程名(缩写),比如P_User_Del,P_ArticleType_AddData。
  SQL语句编写规则,关键字必须大写,其他书写按上述命名规则,比如:
  SELECT user_id, user_name FROM User WHERE user_id = ‘tom’

  5.文件夹文件名命名规范
  文件夹命名一般采用英文,长度一般不超过20个字符,命名采用小写字母。除特殊情况才使用中文拼音,一些常见的文件夹命名如:images(存放图形 文件),flash(存放Flash文件),style(存放CSS文件),scripts(存放Javascript脚本),inc(存放 include文件),link(存放友情链接),media(存放多媒体文件)等。

  文件名称统一用小写的英文字母、数字和下划线的组合。命名原则的指导思想一是使得你自己和工作组的每一个成员能够方便的理解每一个文件的意义,二是当 我们在文件夹中使用“按名称排例”的命令时,同一种大类的文件能够排列在一起,以便我们查找、修改、替换、计算负载量等等操作 。

  1、图片的命名原则名称分为头尾两部分,用下划线隔开,头部分表示此图片的大类性质例如广告、标志、菜单、按钮等等。
  放置在页面顶部的广告、装饰图案等长方形的图片取名: banner
  标志性的图片取名为: logo
  在页面上位置不固定并且带有链接的小图片我们取名为 button
  在页面上某一个位置连续出现,性质相同的链接栏目的图片我们取名: menu
  装饰用的照片我们取名: pic
  不带链接表示标题的图片我们取名: title
  下面是几个范例: banner_sohu.gif 、banner_sina.gif、 menu_aboutus.gif 、menu_job.gif、 title_news.gif、 logo_police.gif、 logo_national.gif 、pic_people.jpg 。

  2、动态语言文件命名规则性质_描述,描述可以有多个单词,用”_”隔开,性质一般是该页面得概要。
  范例:register_form.asp,register_post.asp,topic_lock.asp

6.程序代码编程规范
一个良好的程序编码风格有利于系统的维护,代码也易于阅读查错。在此只讨论ASP的编程风格和约定。在ASP中所有变量是弱变量,无需定义就可以直接使 用,而且代码不区分大小写。但其他语言一般这些都要定义的,为了养成良好的编程习惯,编写代码务必按照一下规则。

  1、每个变量名必须定义,在ASP文件的最开始添加语句<%Option Explicit%>,强制定制每个变量。

  2、出于易读和一致性的目的,在代码中使用以下变量命名约定:

子类型

前缀

示例

Boolean

bln

blnFound

Byte

byt

bytRasterData

Date (Time)

dtm

dtmStart

Double

dbl

dblTolerance

Error

err

errOrderNum

Integer

int

intQuantity

Long

lng

lngDistance

Object

obj

objCurrent

Single

sng

sngAverage

String

str

strFirstName



  3、程序代码需要有缩进,缩进采用键盘Tab键,不采用空格键。并且”=”或者链接字符串时需要左右空一格,如下:
  <%
  strMessage = “你好”
  strMessage = strMessage & “你坏”
  %>
  4、函数过程编写的约定。函数或者过程命名采用动作+名词,每个函数需要给出相应的注释,函数功能,传入变量,以及作者和修改相关信息。如下面函数:
  <%
  '[功能] 返回一个参数的值
  '[参数] strParameterName 参数名称
  '[作者] icefire 2002/8/20 am
  Function GetParameterValue(strParameterName)
   Dim objRS, strSQL, strParameterValue
   strSQL = "SELECT ParameterValue FROM damsParameters WHERE ParameterName = '" &    strParameterName & "'"
   .
   .
   .
  GetParameterValue = strParameterValue
  Set objRS = Nothing
  End Function

  5、ASP内置对象区分大小写。如下代码片断
  strUserName = Request.Form(“UserName”)
  Set conn = Server.CreateObject("ADODB.Connection")

  6、数据库连接一个库只能有一个数据库连接文件,创建数据库对象得原则是尽可能晚地打开数据库,尽可能早地关闭数据库。创建数据库对象调用统一地创建函数。如下:
  Sub OpenConn(ByRef conn)
   Dim strDBPath, strDBConnection

   strDBPath = Server.MapPath("database/tax.mdb")
   strDBConnnection = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & strDBPath
   Set conn = Server.CreateObject("ADODB.Connection")
   conn.Open strDBConnnection
  End Sub

  7、当一个对象不在使用时要释放对象资源,比如objFSO,objRS对象等。采用统一函数调用。函数如下:
  Sub CloseObj(ByRef obj)
   If IsObject(obj) Then
    obj.Close
    Set obj = nothing
   End If
  End Sub

  8、时间全部以字符串的形式保存到数据库中,这样做能够是日期在不同的数据库中都能良好地保存,也方便数据库地迁移。时间用14位字符串保存,日期用8位字符串保存。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_717552.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL百万级高并发网站实战攻略

为什么80%的码农都做不了架构师&#xff1f;>>> 在一开始接触PHP接触MYSQL的时候就听不少人说&#xff1a;“MySQL就跑跑一天几十万IP的小站还可以&#xff0c;要是几百万IP就不行了”&#xff0c;原话不记得了&#xff0c;大体就是这个意思。一直也没有好的机会去…

Nginx配置HTTPS证书网站

前提&#xff1a; 1、主机需要先安装openssl 2、编译安装nginx时&#xff0c;要加上--with-http_ssl_module 这个ssl模块 现在开始配置&#xff1a;&#xff08;我当时配置时&#xff0c;主机已安装了openssl&#xff0c;但编译时没有加载http_ssl_module模块&#xff0c;所以…

全球顶尖的移动交互设计网站集萃 转

2019独角兽企业重金招聘Python工程师标准>>> Android App Patterns http://www.android-app-patterns.com/category/grid Androidux http://androidux.com/ Uxarchive http://www.uxarchive.com/ Lovely UI http://www.lovelyui.com/ Mobile Patterns h…

PHP使用Apache 中的ab 测试网站的压力性能

打开Apache服务器的安装路径(我用的是 WampServer)在bin目录中有一个ab.exe的可执行程序它就是要介绍的压力测试工具。 在Windows系统的命令行下进入ab.exe程序所在目录执行ab.exe程序。注意直接双击无法正确运行。<喎"http://www.2cto.com/kf/ware/vc/" target&q…

网站建设过程中容易被忽略的元素

网站从建设到真正运营&#xff0c;会忽略很多元素。其实一个网站能否达到预期的效果&#xff0c;网站建设与网站优化做好的同时&#xff0c;很关键一点&#xff0c;客户自身的问题。比如我们帮企业建设网站&#xff0c;网站提供的主要服务还是掌握在客户手上。下面福建SEO谈谈网…

Android上PhoneGap打包本地网站和在线网站

谢谢刚子提供这么个社区交流平台&#xff0c;特别感谢刚子提供上传权限&#xff0c; 哈哈&#xff0c;今天也发一个简单的Demo上来上来&#xff0c;给社区贡献一点绵薄之力。最近一直关注移动web开发&#xff0c;更多看的是web开发的程序的效果&#xff0c;还没有深入的去编程或…

利用HTTP Cache来优化网站

原文地址&#xff1a; http://www.cnblogs.com/cocowool/archive/2011/08/22/2149929.html 对于网站来说&#xff0c;速度是第一位的。用户总是讨厌等待&#xff0c;面对加载的Video和页面&#xff0c;是非常糟糕的用户体验。所以如何利用Cache来优化网站&#xff0c;值得深入研…

本土视频网站盈利艰难,海外会是新掘金场吗?

6月22日&#xff0c;爱奇艺会员数量突破1亿人&#xff0c;标志着中国本土视频网站之间的竞争进一步加剧。毕竟随着互联网人口红利消失&#xff0c;未来会员增速将会放慢&#xff0c;在多元化收入难以撑起视频网站成本前&#xff0c;会员制收入将是最重要的营收之一&#xff0c;…

网站漏洞检测之WordPress 5.0.0 修复方案

2019独角兽企业重金招聘Python工程师标准>>> 2019年正月刚开始&#xff0c;WordPress最新版本存在远程代码注入获取SHELL漏洞&#xff0c;该网站漏洞影响的版本是wordpress5.0.0&#xff0c;漏洞的产生是因为image模块导致的&#xff0c;因为代码里可以进行获取目录…

关于大型网站技术演进的思考(六)--存储的瓶颈(6)

2019独角兽企业重金招聘Python工程师标准>>> 在讲数据库水平拆分时候&#xff0c;我列出了水平拆分数据库需要解决的两个难题&#xff0c;它们分别是主键的设计问题和单表查询的问题&#xff0c;主键问题前文已经做了比较详细的讲述了&#xff0c;但是第二个问题我没…

keepalived+LVS实现网站负载均衡和HA

如上图所示&#xff0c;102和103是内网nginx服务器&#xff0c;100和101是边界LB&#xff0c;clinet是1&#xff0c;这个实验是为了实现在LB上虚拟出一个VIP&#xff0c;client通过访问该VIP&#xff0c;来动态负载到两台内网nginx服务器上面来。流量的来回&#xff0c;都需要经…

大型网站的HTTPS实践一:HTTPS协议和原理一

1 前言百度已经于近日上线了全站 HTTPS 的安全搜索&#xff0c;默认会将 HTTP 请求跳转成 HTTPS。本文重点介绍 HTTPS 协议, 并简单介绍部署全站 HTTPS 的意义。2 HTTPS 协议概述HTTPS 可以认为是 HTTP TLS。HTTP 协议大家耳熟能详了&#xff0c;目前大部分 WEB 应用和网站都是…

在github搭建个人网站

2019独角兽企业重金招聘Python工程师标准>>> 在github搭建个人网站 标签&#xff1a;github [TOC] 先搜篇中文博客了解下流程&#xff0c;再根据下面的官方文档按顺序看一遍就差不多了。 这里不得不吐槽windows太垃圾了&#xff0c;linux下三行指令解决的问题&#…

揭秘SEO快排原理

很多的SEOer每天绝大部分的时间都耗在撰写原创文章/伪原创文章以及发布软文外链&#xff0c;更换行业不相关的友链&#xff0c;年复一年&#xff0c;日复一日&#xff0c;关键词的排名依旧排在100名开外-20名以内&#xff0c;心里很是着急。看看同行竞争对手的网站&#xff0c;…

某搜索网站HR校园招聘被怼引争议,为啥危机偏爱30+人士?

豆瓣上有个热帖&#xff0c;网友去参加校园招聘会&#xff0c;某搜索网站HR表示&#xff0c;他们公司平均年龄都很年轻、很阳光&#xff0c;于是有人怼了句“那你们公司年龄大的都去哪里了&#xff1f;”&#xff0c;HR直接懵了。 是啊&#xff01;年纪大的去哪里了&#xff1f…

如何将自己的网站分享到QQ空间,微信,微博等等。

2019独角兽企业重金招聘Python工程师标准>>> 逛一些网站的时候经常会看到右侧挂个分享栏&#xff0c;让用户把自己的站分享到qq空间&#xff0c;微信等等&#xff0c;所以自己也研究了下&#xff0c;把他加到了自己的网站上&#xff0c;喜欢的可以先看看效果&#x…

草根站长这一年用血的教训换来的SEO终极算法

导读&#xff1a;标题言过其实&#xff0c;但是草根站长都有自己真实的故事。我2015年6月1日买的空间和域名&#xff0c;到现在的2016年6月1日正好1年。这篇文章主要讲我这个草根站长这一年用来血的教训换来的SEO终极算法。血的教训1、学习了半个多月网络营销&#xff0c;弃学了…

全球银行网站成黑客主攻目标 阿里云提供安全防御应急方案

2019独角兽企业重金招聘Python工程师标准>>> 近日&#xff0c;阿里云监控发现&#xff0c;匿名者&#xff08;Anonymous&#xff09;组织成员正在发起针对全球中央银行网站的攻击行动&#xff0c;截止目前&#xff0c;国内有超过2家以上的重要网站被攻击&#xff0c…

SpringCloud GateWay 相关图形,文档、网站

一 业务&#xff1a;多个微服务的应用可能部署在不同机房&#xff0c;不同地区&#xff0c;不同域名下。 二 需求&#xff1a;统一入口、路由、权限认证...... 三 解决方案&#xff1a; 1 集群与架构&#xff08;11&#xff09; &#xff08;1&#xff09;逻辑 &#xff0…

Docker相关图形,网站、文档

一 引擎 引擎&#xff08;Engine&#xff09;是电子平台上开发程序或系统的核心组件。 一般而言&#xff0c;引擎是一个程序或一套系统的支持部分。 常见的程序引擎有游戏引擎、搜索引擎、杀毒引擎等。 游戏引擎&#xff1a;就是“用于控制所有游戏功能的主程序“。搜索引擎&a…