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 ...
随机推荐
- ROM与RAM知识
“ROM”和“RAM”的意思: “ROM”:N年前代表一种只能写入和读取,而不能改写和擦除的设备,可以用光驱CD-ROM来说明这个道理.目前的“ROM”已经不是这个道理了,它的技术已经飞快的发展到现在 ...
- 什么是vue?
vue就是一个js库,并且无依赖别的js库,直接引入一个js文件就可以使用,跟jquery差不多.vue是法语中视图的意思,Vue.js是一个轻巧.高性能.可组件化的MVVM库,同时拥有非常容易上手的 ...
- Tesseract pytesseract的安装和使用
Tesseract是开源的OCR引擎,可以识别的图片里的文字,支持unicode(UTF-8)编码,100多种语言,需要下载相应语言的训练数据. 安装: 有两种方法,一种是通过编译源码,比较麻烦.我使 ...
- Protobuf学习 - 入门
古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 -- 苏轼·<晁错论> 从公司的项目源码中看到了这个东西,觉得挺好用的,写篇博客做下小总结.下面的操作以C++为编程语言,protoc的版 ...
- UI培训怎么学才高效
随着互联网科技的爆炸式发展,UI设计越来越受到我们的青睐,绝大部分企业已成立U设计部门来提高自身影响力,但现在许多从事UI设计的人,都是从零基础过度过来的,他们不乏大牛,在阿里巴巴,在腾讯等国内一流企 ...
- 3390: [Usaco2004 Dec]Bad Cowtractors牛的报复
3390: [Usaco2004 Dec]Bad Cowtractors牛的报复 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 69 Solved: ...
- ajax(省,市,县)三级联动
下面我们用Jquery,ajax,做一个省,市,县的三级联动: 下面是我做三级联动下拉的步骤以及逻辑 第一步:先做一个省市区表格 第二步:建个PHP页面显示用我是在<body>里放< ...
- OpenvSwitch Port Mirror in OpenStack Neutron
前言 最近使用搭建了一个基于VXLAN的OpenStack 环境,发现要去dump ovs interfaces的包其实还是蛮麻烦的, 经过多番努力,找到了如下的在openstack下网络环境的一些t ...
- 你真的会 snapshot 吗? - 每天5分钟玩转 OpenStack(163)
这是 OpenStack 实施经验分享系列的第 13 篇. instance snapshot 操作可用于备份或者将 instance 保存为新的 image.如果在生产系统中执行 snapshot ...
- Jaro-Winkler Distance
发现commons-lang 中有实现: StringUtils.class public static double getJaroWinklerDistance(final CharSequenc ...