/LDMS

高校实验室设备管理系统。

Primary LanguageJavaApache License 2.0Apache-2.0

Laboratory-devices-management-system

项目简介

特色介绍

1、分模块构建项目,每个模块职责清晰,功能明确;

2、后台管理系统、前台展示系统、静态文件系统分开管理,降低系统的压力,提高系统的可靠性,轻松实现分布式部署;

3、项目主要实现了实验室设备的前台展示,后台管理,基本满足了实验室设备管理的需求;

4、整个项目给予SSM构建,是学习Java Web开发,SSM框架的良好范本。

如何贡献代码

1、请先fork本项目,在你自己的仓库里创建一个副本。

2、进入到你的workspace,执行以下命令下载项目,并且你需要给你的开发工具安装lombok插件,强烈建议使用idea作为你的开发工具。

git clone git@github.com:iCodingStar/Laboratory-devices-management-system

3、进入到clone好的everyone-java-ldms目录里,执行以下命令,将你的副本地址加入到你的远端仓库中。

git remote add remote [你fork的地址,比如:git@github.com:iCodingStar/Laboratory-devices-management-system]

4、进行你想要进行的任何代码修改。

5、提交之前,请先执行以下命令与主库的代码保持同步。在这个过程中,你可能需要处理冲突。(PS:该过程必须要经常做,时刻让本地的代码与主库代码保持一致,这样做有助于减少冲突。)

git pull origin master

6、当你处理完冲突,并在本地测试完毕以后,请执行以下命令先提交到自己fork的副本仓库。

git push remote master

7、在github上面创建一个Pull Request,将你的代码提交到主库。

8、重复4-7步即可持续贡献你的代码。

代码规范

请务必遵守规范进行编码,否则你提交的Pull Request将会被拒绝。

1、命名规范

Java类名、局域变量、类变量名、方法名:必须采用标准驼峰命名,类名首字母大写,其余首字母小写,禁止简写。示例:Connection【类名】,connection【变量名】,getConnection【方法名】

包名:由小写字母和点组成,禁止简写。示例:cn.cug.laboratory.controller

常量名:大写字母与下划线组成,禁止简写。示例:CONNECTION_TIMEOUT,DEFAULT_SIZE

数据库表名,字段名:小写字母加下划线组成。最多长度30个字母,允许适当使用简写。示例:user_ldms,comment_time

除java文件以外的任何文件,包括xml,jsp,properties等:由小写字母和横线组成。示例:user-profile.jsp,article-edit.jsp,application-context.xml,web-config.properties

2、Java文件规范

以下是一个Java文件示例,需要特别强调以下两点,你可以通过设置你的类模板来做到。

1、必须将Apache开源协议内容加入到文件首部。

2、必须写上@author和@since注释。

/*
 * Copyright 2002-2016 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package cn.codingstar.controller;

import lombok.Getter;
import lombok.Setter;

import java.util.Date;

/**
 * 该类代表一个bean对象.
 *
 * @author ShiXing
 * @since 1.0.0
 */

@Getter
@Setter
public class Bean {

    private String name;

    private Date data;

}

3、JSP文件规范

以下是一个JSP文件示例,需要特别强调以下两点,你可以通过设置你的类模板来做到。

1、必须将Apache开源协议内容加入到文件首部。

2、必须写上User和Time注释。

<%--

    Copyright 2002-2016 the original author or authors.

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
    
--%>
<%--
  User: ShiXing
  Time: 16/5/8 18:22
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
    <title>LDMS</title>

    <!-- Bootstrap -->
    <link href="${cacheUrl}/bootstrap/css/bootstrap.min.css" rel="stylesheet">

</head>
<body>
<h1>你好,世界!</h1>

<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="${cacheUrl}/jquery/jquery.min.js"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="${cacheUrl}/bootstrap/js/bootstrap.min.js"></script>
</body>
</html>

4、注释规范

类必须有注释

方法必须有注释

如果该类是一个数据库model,则每个字段必须有注释

以下为一个简单的示例。
/*
 * Copyright 2002-2016 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package cn.codingstar.controller;

/**
 * 该类封装了关于string操作的工具方法
 *
 * @author ShiXing
 * @since 1.0.0
 */
public interface StringUtils {

    /**
     * 判断一个字符串是否为空
     *
     * @param s 需要检查的字符串对象
     * @return 如果s为null或空字符串返回true,否则返回false.
     */
    static boolean isEmpty(String s) {
        return s == null || s.trim().length() == 0;
    }

}

提交代码需要注意的问题

  • 请严格按照以上代码规范检查自己提交的代码
  • 避免提交不该提交的代码,例如构建生成的文件。
  • 类当中切勿带有main函数,如果需要测试,放到test下使用junit进行测试
  • 一定类型的类放在一定的包下,具体的规则如下

数据库model:放在ldms-model下的cn.cug.laboratory.model.persistent包内

传给前端的值对象:放在ldms-model下的cn.cug.laboratory.model.dto包内

数据库的DAO类:放在ldms-dao下的cn.cug.laboratory.mapper包内

业务逻辑service:接口放在ldms-service下的cn.cug.laboratory.service包内,实现类放在cn.cug.laboratory.service.impl包内

工具类:放在ldms-common下的cn.cug.laboratory.common.utils包内

web框架通用的类:放在ldms-common的cn.cug.laboratory.common.web包内

ldms-{module}下的controller:放在ldms-{module}下的cn.cug.laboratory.{module}.controller包内,其中module为admin、api、cache、web其中一个