===========================================
-
安装好JDK1.6以上的版本,设置好JAVA_HOME环境变量
-
下载activator-1.2.10, 解压,然后把路径添加到path环境变量,如D:\activator-1.2.10
-
安装好intellij IDEA , 安装好play2 和 scala 插件
-
到用户目录下,例如:C:\Users\Administrator.sbt, 下面去创建文件repositories,把下面的内容放到文件里
[repositories] local sunlights nexus:http://saturn:8081/nexus/content/groups/public/ typesafe-ivy-releases: http://repo.typesafe.com/typesafe/ releases/, [organization]/[module]/[revision]/[type]s/[artifact](-[classifier]).[ext] maven-central sonatype-snapshots: https://oss.sonatype.org/content/repositories/snapshots
-
安装好git
-
git clone git@EARTH:sunlights/financeplatform.git
-
导入项目到intellij IDEA.
====================================
common
: 实现了jpa entitiy model和一些基础的工具类customer
:account
:core
: 实现了安全,注册,短信,产品trade
:
core->customer->common core->account->common trade->core
========================================
- 把现在代码移动到finacePlatform
- 完善单元测试用例
- 为controller接口添加JavaDoc, 参考CustomerController里的方式
请安装IDEA的checkstyle, PMD, findBugs插件
我们现在用 GitLab 中得 Issues 做简单的 bug/defect/issue 追踪管理。 GitLab 的这个功能相比 bugzilla, mantis 或者 redmine 的 issue 管理要弱很多,但目前对我们还够用,所以在 issue 管理上,还是要做一些必要的流程要求:
- 一个 issue 创建以后,创建人(creator)应尽快 assign 给相关项目的 leader (目前 iOS app 的 leader 是承朝,后端和官网的 leader 是罗奎)
- 创建 issue 时,分配对应的 label (功能错误,功能缺失,等等);
- 项目 leader 应尽快将 issue 再分配给对应的工程师;
- 工程师修正了 issue 以后,添加 Fixed 标签,并且 re-assign 给项目 leader;
- 待新版本发布,项目 leader 将 Fixed 的 issue 重新分配给创建人 (creator);
- issue 的创建人重新测试以后,或者 Close 该 issue;或者没有测试通过,那么 re-open 并且 re-assign给项目 leader,同时去除 Fixed 标签;
有几个原则整个团队需要共同遵守:
- issue 撰写的方式: 要足够详细,能够根据描述重现;
- 谁创建,谁关闭;
- 先解决 issue,再做新功能;
-
在目录 .ivy2 下面创建 文件.credentials把下面的内容放进去
realm=Sonatype Nexus Repository Manager host=192.168.0.97 user=admin password=admin123
-
在需要publish的项目的build.sbt文件里添加下面的内容
credentials += Credentials(Path.userHome / ".ivy2" / ".credentials") publishTo <<= version { v: String => val nexus = "http://nexus.sunlights.me/nexus/" if (v.trim.endsWith("SNAPSHOT")) Some("snapshots" at nexus + "content/repositories/snapshots") else Some("releases" at nexus + "content/repositories/releases") }
-
运行activator publish, 如果是子项目,需要运行 activator, 然后运行 project <<子项目名>>, publish
-
import dependency to other project
-
add repositories to build.sbt
resolvers ++= Seq( "Sunlights 3rd party" at "http://nexus.sunlights.me/nexus/content/repositories/thirdparty", "Sunlights snapshots" at "http://nexus.sunlights.me/nexus/content/repositories/snapshots/", "Sunlights releases" at "http://nexus.sunlights.me/nexus/content/repositories/releases/", )
-
add dependency to build.sbt
libraryDependencies ++= Seq( "cs" % "cs_2.11" % "1.0-SNAPSHOT" )
-
1.在/common/conf/db/db.sql中增加数据库脚本语句
2.在http://earth/sunlights/documents /Version-1/设计文档/设计文档2.0/表设计/db/db.xlsx
中维护好单个数据库脚本,写好描述,和各个环境到是否执行的状态,详细的可以看下db.xlsx里到书写要求
方法优于属性
工厂方法优于构造函数
避免过多继承
避免由于优化或者复用代码影响API
面向接口编程
扩展参数应当是便利的
对组件进行合理定位,确定暴露多少接口
提供扩展点
有效的API评审
[swagger for play demo] (https://github.com/swagger-api/swagger-core/tree/master/samples/java-play2) [swagger Annotations] (https://github.com/swagger-api/swagger-core/wiki/Annotations)
启动好FP后,在浏览器上
- 如果是本地的话,打开http://localhost:9000/docs
- 如果是测试环境,打开https://api-2.sunlights.me/api/docs
- 如果是生产环境,打开https://api.sunlights.me/api/docs, 或者https://api-1.sunlights.me/swagger