PHP童鞋改JAVA代码怎么处理
用线上升级平台代码练手,学习JAVA。飞哥建议我们自己从头再搭建一套,提高会大。我自己作为一个JAVA出身的人,用了几天时间学会PHP的经验来看。最好,先在原来代码基础上改些东西。熟悉了基本语法之后再来重新搭建一套。如果本来就是一头雾水,再加上全身心投入的时间不够充裕的话,可能会欲速而不达。
第一步,让原代码跑起来。这一步宗鉴已经运行成功了。其实JAVA就学会了五分之四了。因为不管PHP还是JAVA就是一个工具。我一个做JAVA的,做PHP的项目也不比JAVA慢。因为一个小型WEB项目架构就是:WEB容器,一个WEB框架,缓存,前端技术,底层数据库。JAVA还是PHP都只不过是框架的一部分,何况PHP的语法是一个大融合,比较流行的PHP框架也是基于MVC模型的,知识上完全没有隔阂。
下来的源码后台部分没有在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格式,利用数据库的特性,初始值是当前时间戳,在每次修改会随当前时间戳更新。这个不是一般的触发器,不会存在并发和性能问题。程序中更新基本无视这两个字段。
第二步,先从管理后台入手。因为管理后台有页面,容易一边改代码一边理解业务。管理后台没有什么性能要求,架构也是spring mvc经典架构,不需要再新搭建一套。业务了解之后,接口部分并发量高,到时候可以大家一起商量新搭建一套,以提高服务器的利用率,也许还能下线几台服务器。
管理后台,PHP的同学应该都能看懂。唯一一点就是路由规则的定义:在经典的web框架中,nginx这些反向代理一般只代理到目录或者域名,剩下的规则会在一个叫web.xml的文件中找到定义。这个有点类似于thinkphp中的index.php的作用,是一个总入口。对于Spring MVC来说,web.xml里会定义一个DispatcherServlet来处理这些路由规则。DispatcherServlet是一个JAVA类,具体做了什么可以看源码。或者百度一下SpringMVC的工作原理,里面全是在说DispatcherServlet这个类。
第三步,管理后台修改几个页面之后,剩下的问题已经不是JAVA的问题了。不管是改接口的架构还是别的,能做成什么样子,需要的是工程师的综合能力,和JAVA无关~~
PHP童鞋改JAVA代码怎么处理的更多相关文章
- java中CRUD(增删查改)底层代码的实现
java中CRUD(增删查改)底层代码的实现: package com.station.dao; import com.station.model.Product; import java.sql.* ...
- 转!!Java代码规范、格式化和checkstyle检查配置文档
为便于规范各位开发人员代码.提高代码质量,研发中心需要启动代码评审机制.为了加快代码评审的速度,减少不必要的时间,可以加入一些代码评审的静态检查工具,另外需要为研发中心配置统一的编码模板和代码格式化模 ...
- 不使用spring的情况下原生java代码两种方式操作mongodb数据库
由于更改了mongodb3.0数据库的密码,导致这几天storm组对数据进行处理的时候,一直在报mongodb数据库连接不上的异常. 主要原因实际上是和mongodb本身无关的,因为他们改的是配置 ...
- 敏捷开发中高质量 Java 代码开发实践
Java 项目开发过程中,由于开发人员的经验.代码风格各不相同,以及缺乏统一的标准和管理流程,往往导致整个项目的代码质量较差,难于维护,需要较大的测试投入 和周期等问题. 这些问题在一个项目组初建.需 ...
- Java Base64加密、解密原理Java代码
Java Base64加密.解密原理Java代码 转自:http://blog.csdn.net/songylwq/article/details/7578905 Base64是什么: Base64是 ...
- 使用mongo-java-driver3.0.2.jar和mongodb3.0在java代码中的用户验证4
以下是使用mongo-java-driver3.0.2.jar和mongodb3.0.4在java代码中的用户验证: ServerAddress sa = new ServerAddress(host ...
- Java代码规范、格式化和checkstyle检查配置文档
http://www.blogjava.net/amigoxie/archive/2014/05/31/414287.html 文件下载: http://files.cnblogs.com/files ...
- [改善Java代码]异步运算考虑使用Callable接口
多线程有两种实现方式: 一种是实现Runnable接口,另一种是继承Thread类,这两种方式都有缺点,run方法没有返回值,不能抛出异常(这两个缺点归根到底是Runable接口的缺陷,Thread也 ...
- 【Eclipse】修改java代码不强制重启
找到tomcat的server.xml文件,修改以下代码,重新发布重启.然后修改java代码就可以不用重启了. 将reloadable=“true”改成reloadable="false&q ...
随机推荐
- [原创.数据可视化系列之十三]idw反距离权重插值算法的javascript代码实现
图形渲染中,idw反距离权重插值算法是一个应用非常广泛的方法,但是js实现的比较少,目前实现一个: //idw算法 //输入[[x:0,y:0,v:0],[x:0,y:0,v:0],[x:0,y:0, ...
- javascript深入理解js闭包(转载)
一.变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域. 变量的作用域无非就是两种:全局变量和局部变量. Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量 ...
- 第九篇 C#实现螺旋矩阵
C#语言,二维数组的用法和C++.java不同 其它两种也写了,差别不大这里不上传了 using System; namespace _NetRectangle { internal class Pr ...
- Maven转换成Eclipse项目后的依赖库更新问题
使用Eclipse的Maven插件创建项目 如果你的Eclipse安装了Maven插件,创建Maven项目相当方便,创建后的项目如: 优势:项目引用的类库名称是"Maven Dependen ...
- Codeblocks快捷键
Codeblocks快捷键: Ctrl+Shift+Enter:复制控制台exe内容 Ctrl+Z:撤销 Ctrl+F:查找 Ctrl+R:查找替换功能 Ctrl+Shift+C:加注释 C ...
- nodejs学习第一天之模块
1.运行js文件 2.node 与 js 的区别 相同:数据类型,语法结构,对象 等基本一致 不同:在js中的顶层对象window 在node中没有在node中 顶层对象为global对象 其不对外 ...
- 1711: [Usaco2007 Open]Dingin吃饭
1711: [Usaco2007 Open]Dingin吃饭 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 560 Solved: 290[Submit ...
- Linux基础命令操作实例
1.开启Linux操作系统,要求以root用户登录GNOME图形界面,语言支持选择为汉语 2.使用快捷键切换到虚拟终端2,使用普通用户身份登录,查看系统提示符 使用快捷键Ctrl+Alt+F2切换到终 ...
- 关于Maven的安装及初步使用
关于Maven的初步使用 1. 下载: 进入http://maven.apache.org/download.cgi下载 Maven 3.3.1 2. 将压缩包解压到自己的硬盘中,最好放在某个盘 ...
- 列表总结Canvas和SVG的区别
参考链接: 菜鸟教程 HTML5 内联SVG 经典面试题(讨论canvas与svg的区别) Canvas | SVG ---|--- 通过 JavaScript 来绘制 2D 图形|是一种使用 XML ...