Javashop开发规范目录1.命名规范31.1.包命名规范31.2.类名命名规范31.3.变量/属性命名规范31.4.方法命名规范41.4.1.Controller类命名规范41.4.2.业务类命名规范41.5.CSS命名规范51.5.1.文件名称规范51.5.2.样式命名规范51.6.Javascript命名规范51.6.1.文件名称规范51.6.2.变量、对象、函数、实例、类命名规范51.7.HTML命名规范51.7.1.文件名称规范51.7.2.HTML结构名称规范52.注释规范52.1.包名注释规范52.2.类注释62.3.属性注释62.4.方法外部注释62.5.方法内部注释72.6.CSS注释规范72.6.1.文件注释72.6.2.模块注释82.6.3.样式注释82.7.HTML注释规范82.8.Javascript注释规范92.8.1.文件注释92.9.Freemarker注释规范92.9.1.方法外部注释92.9.2.方法内部注释103.Svn目录规范103.1.目录结构104.数据库变更规范115.后台界面规范115.1.信息输入页(包括添加和修改)125.2.列表页125.2.1.列表及简单搜索125.2.2.高级搜索135.2.3.详细页中的列表136.商品价格规范136.1.freemarker136.2.javascript137.常用字典对照表147.1.常用值147.2.常用名称141.命名规范1.1.包命名规范1.小写字母2.以com.enation.javashop开头3.组件以com.enation.compoent开头1.2.类名命名规范一、通用规范1.只能以字母、数字命名2.不能出现下划线、中横线3.开头字母必须大写4.名称如果是词组,采用驼峰命名法如“我的优惠卷列表标签”:MyCouponListTag二、Controller类以Controller结尾,如:UserController三、APIControlle类业务名称+API+Controller四、标签类以Tag结尾,如BuyerOrderListTag五、业务类1.接口:以I开头,以Manager结尾,如:IUserManager2.实现类以Manager结尾,如:UserManager六、组件类以Component结尾,如:ShopEmailComponent七、插件类以Plugin结尾,如:SendRegMailPlugin1.3.变量/属性命名规范1.可由字母和数字、下划线组成2.首字母必须小写3.除bean依赖的属性外,必须全部小写1.4.方法命名规范1.4.1.Controller类命名规范A方法命名1.只能以字母、数字命名2.不能出现下划线、中横线3.开头字母必须小写4.名称如果是词组,采用驼峰命名法add到添加页edit到修改页saveAdd保存添加saveEdit保存修改delete删除list列表listJson列表的jsonB访问路径命名1.路径中方法名:基本原则为将驼峰命名改为以中横线连接,将驼峰的大写母小写,注意不能以下划线连接,如listJson,则访问路径为:list-json2.API路径规范:/api/应用名路径/业务名/方法名.do3.后台Controller访问路径:/应用名路径/admin/业务名/方法名.do1.4.2.业务类命名规范1.只能以字母、数字命名2.不能出现下划线、中横线3.开头字母必须小写4.名称如果是词组,采用驼峰命名法add添加edit修改delete删除list列表get读取详细1.5.CSS命名规范1.5.1.文件名称规范1.只能以字母、数字、中横线命名(不能出现下划线)2.字母全部小写1.5.2.样式命名规范1.只能以字母、数字、中横线命名(不能出现下划线)2.字母全部小写更多规则参考:《JavashopCSS框架规范》(待书写)1.6.Javascript命名规范1.6.1.文件名称规范1.只能以字母、数字、中横线命名(不能出现下划线)2.字母全部小写1.6.2.变量、对象、函数、实例、类命名规范1.以小写字母开头,驼峰式命名2.变量命名不要使用保留字3.不能出现下划线、中横线4.创建构造函数、类首字母必须大写5.私有变量命名需要以下划线”_”开头更多规则参考:《JavashopJavaScript框架规范》(待书写)1.7.HTML命名规范1.7.1.文件名称规范1.只能以字母、数字、中横线命名(不能出现下划线)2.字母全部小写1.7.2.HTML结构名称规范1.HTML中所有标签、类名、属性等等必须使用小写2.注释规范2.1.包名注释规范1.包中必须存在注释文件:package.html,用于负责2.package.html内容规范:htmlbodyp一句话简述。/pp详细描述。/pp产品模块名称和版本br/公司版权信息/p/body/html示例:2.2.类注释1.应放在package关键后,class或interface关键字之前2.应使用/**开头3.应包含以下说明项:功能描述,@author(作者),@version(版本号),@since(此功能开发时的产品版本号),开发时间2.3.属性注释1.应以/**开头2.应紧挨要注释属性的上方,并与代码的开头对齐2.4.方法外部注释1.应以/**开头2.应含有以下注释项:功能详细描述、输入参数、输出参数、返回值3.如果方法会抛出异常,必须通过@throws注释异常信息示例:/***检测某个产品是否是整箱*@paramproductid货品id*@returnisPack字段值*/publicintisPack(intproductid);2.5.方法内部注释1.应以//开头2.应紧挨要注释代码的上方,并与代码的开头对齐2.6.CSS注释规范2.6.1.文件注释1.位置:在文件头部最开始2.格式:以“/**”开头,必须有描述,必须有作者和时间:Createdby作者on日期,如:2.6.2.模块注释1.位置:某一模块样式的最上方2.格式:使用:/*============================================================================*/示例:2.6.3.样式注释1.位置:紧挨样式名字上方2.格式:以“/*-----”开头,以“-----*/”结尾示例:2.7.HTML注释规范1.较重要模块的开始和结束要标记开始和结束示例:2.8.Javascript注释规范2.8.1.文件注释1.应使用“/**”开头2.应包含以下说明项:功能描述,@author(作者),@version(版本号),@since(此功能开发时的产品版本号),开发时间示例:2.9.Freemarker注释规范1.位置:紧挨要注释代码的上方2.格式:#--注释内容--,禁止使用HTML注释2.9.1.方法外部注释1.应以/**开头2.应含有以下注释项:功能详细描述、输入参数(@param)、返回值(@return)2.9.2.方法内部注释1.应以//开头2.应紧挨要注释代码的上方,并与代码的开头对齐3.Svn目录规范3.1.目录结构1.两个主目录产品:/product项目:/project2.每个产品或项目结构规范+trunk/+branches/+dev_1.0+tags/+release_1.03.说明A.trunk:主开发分支:正在开发中的主分支B.branches:一些特殊开发需要的分支,和主分支并行开发用,命名规范为“dev_”开头,连接本分支有意义的单词或拼音,如“dev_tongji”C.tags:定版的,命名规则:“release_版本号”4.数据库变更规范一、数据库文件位置约定1.PDM:B2C:svn://newsvn.javamall.com.cn/product/javamall/trunk/docs/databaseB2B2C:svn://newsvn.javamall.com.cn/product/b2b2c/trunk/docs/database2.updatesql:B2C:svn://newsvn.javamall.com.cn/product/javamall/trunk/docs/database/VxxToVxx.sqlB2B2C:svn://newsvn.javamall.com.cn/product/b2b2c/trunk/docs/database/VxxToVxx.sql注意:A:目前b2b2c的PDM是包含了b2c的,也就是重复、冗余了b2c部分。所以如果你改了核心的表结构,如商品、订单、会员,要将两个pdm都改一下。B:对于b2c和b2b2c的数据库修改要分开记录。C:Update.sql的格式为:V版本号To版本号.sql二、变更规范1.数据库的结构变更必须同步相应的PDM2.数据库的结构变更必须生成相应的脚本并记录在update.sql5.后台界面规范本规范只规定界面最终效果,代码请参考《后台管理界面样式规范》(代写书)5.1.信息输入页(包括添加和修改)1.注意阴影部分2.代码及样式,可参考商品输入页、品牌输入页3.Input页面的保存或确定等按钮,按钮的外面需添加divclass为buttonWrap5.2.Tab页参考商品输入页5.3.列表页5.3.1.列表及简单搜索5.3.2.高级搜索5.3.3.详细页中的列表具体代码请参考品牌列表或订单列表6.商品价格规范注:价格正确格式是两位小数6.1.freemarker假设字段是数字类型就直接转换为货币示例:${goods.price?string.currency}假设字段是其他类型则先把它转换为数字再转成货币示例:${goods.price?number?string.currency}以上两个是带价钱符号的,例:¥12.12如需不要价钱符号的则用:数值型:${goods.price?string('0.00')}字符型:${goods.price?number?string('0.00')}6.2.javascript含有价钱符号的函数:price_format()参数1:价格数字型必填示例:price_format(12.56);返回值为:¥12.56不包含价钱符号的函数number_format()参数1:价格数字型必填参数2:小数长度必填示例:number_format(11,2);返回结果为:11.007.常用字典对照表7.1.常用值名称值说明返回结果0:失败1:成功适用于:1.客户端json返回值2.服务器端方法返回值3.数据库是否的标识值性别0:女1:男7.2.常用名称名称英文商品goods货品product规格spec订单order会员member积分point购物车cart结算checkout订单order品牌brand分类cat优惠劵coupon支付payment团购groupbuy虚拟virtual发票receipt属性prop参数param标签tag地区region