用线上升级平台代码练手,学习JAVA。飞哥建议咱们本身从头再搭建一套,提升会大。我本身做为一个JAVA出身的人,用了几天时间学会PHP的经验来看。最好,先在原来代码基础上改些东西。熟悉了基本语法以后再来从新搭建一套。若是原本就是一头雾水,再加上全身心投入的时间不够充裕的话,可能会欲速而不达。
第一步,让原代码跑起来。这一步宗鉴已经运行成功了。其实JAVA就学会了五分之四了。由于无论PHP仍是JAVA就是一个工具。我一个作JAVA的,作PHP的项目也不比JAVA慢。由于一个小型WEB项目架构就是:WEB容器,一个WEB框架,缓存,前端技术,底层数据库。JAVA仍是PHP都只不过是框架的一部分,况且PHP的语法是一个大融合,比较流行的PHP框架也是基于MVC模型的,知识上彻底没有隔阂。php
下来的源码后台部分没有在pom.xml文件中规定java版本,须要本身手动把版本改为1.7以上,或者我已经修改提交了,从新更新一下便可。如今的java项目比较讲究依赖注入,控制反转。就是比较框架性的。好比这个maven工具,还有spring mvc。要了解他们作了什么不要先看代码,先看配置文件。文件才是核心,代码就是让文件生效的。前端
在语法上,以前公司也有作PHP的,一直不明白,他们的数据库表名字为何有个公共前缀,如今知道这是PHP里规范要配的。在JAVA里表名能够随便命名。在PHP里时间戳他们会用数字存储,由于确实在PHP的函数里处理数字的日期会比较方便。可是在JAVA里,咱们有Calendar,DateFormat这些专门处理日期的。通常会存成date,datetime,timestramp这些格式,以更好的利用mysql对日期的强大支持福利。其中timestramp在对日期的处理效率高,可是一张表仅容许一个timestramp。我在设计数据表的时候通常都会有一个建立时间,datetime格式,插入时将当前时间now()赋值进去,以后再也不更新。一个更新时间,timestramp格式,利用数据库的特性,初始值是当前时间戳,在每次修改会随当前时间戳更新。这个不是通常的触发器,不会存在并发和性能问题。程序中更新基本无视这两个字段。java
第二步,先从管理后台入手。由于管理后台有页面,容易一边改代码一边理解业务。管理后台没有什么性能要求,架构也是spring mvc经典架构,不须要再新搭建一套。业务了解以后,接口部分并发量高,到时候能够你们一块儿商量新搭建一套,以提升服务器的利用率,也许还能下线几台服务器。mysql
管理后台,PHP的同窗应该都能看懂。惟一一点就是路由规则的定义:在经典的web框架中,nginx这些反向代理通常只代理到目录或者域名,剩下的规则会在一个叫web.xml的文件中找到定义。这个有点相似于thinkphp中的index.php的做用,是一个总入口。对于Spring MVC来讲,web.xml里会定义一个DispatcherServlet来处理这些路由规则。DispatcherServlet是一个JAVA类,具体作了什么能够看源码。或者百度一下SpringMVC的工做原理,里面全是在说DispatcherServlet这个类。nginx
第三步,管理后台修改几个页面以后,剩下的问题已经不是JAVA的问题了。无论是改接口的架构仍是别的,能作成什么样子,须要的是工程师的综合能力,和JAVA无关~~web