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 ...
随机推荐
- 基于nginx+lua+redis高性能api应用实践
基于nginx+lua+redis高性能api应用实践 前言 比较传统的服务端程序(PHP.FAST CGI等),大多都是通过每产生一个请求,都会有一个进程与之相对应,请求处理完毕后相关进程自动释放. ...
- BZOJ 2142: 礼物
模非素数下的排列组合,简直凶残 调着调着就过了= = 都不知道怎么过的= = 直接上链接http://hi.baidu.com/aekdycoin/blog/item/147620832b567eb4 ...
- 细谈sass和less中的变量及其作用域
博客原文地址:Claiyre的个人博客 https://claiyre.github.io/ 博客园地址:http://www.cnblogs.com/nuannuan7362/ 如需转载,请在文章开 ...
- React Native填坑之旅 -- 使用iOS原生视图(高德地图)
在开发React Native的App的时候,你会遇到很多情况是原生的视图组件已经开发好了的.有的是系统的SDK提供的,有的是第三方试图组件,总之你的APP可以直接使用的原生视图是很多的.React ...
- Memcached【第二篇】高可用集群搭建
第一步:准备 1. 架构信息 利用 magent 搭建 memcached 集群,实现性能的高可用. IP Port 主从 192.168.6.129 11211 主节点 192.168.6.130 ...
- php回滚
$m=D('YourModel');//或者是M();$m2=D('YouModel2');$m->startTrans();//在第一个模型里启用就可以了,或者第二个也行$result=$m- ...
- apicloud中dialog使用方法
var dialog = new auiDialog(); function openDialog(type){ switch (type) { case "text": dial ...
- HTML5周记(一)
各位开发者朋友和技术大神大家好!博主刚开始学习html5 ,自本周开始会每周更新技术博客,与大家分享每周所学.鉴于博主水品有限,如发现有问题的地方欢迎大家指正,有更好的意见和建议可在评论下方发表,我会 ...
- 说说如何用js实现一个模板引擎
本文同步更新在: https://github.com/whxaxes/blog/issues/4 ,在 github 看文章显示效果会更好一些. 前言 不知不觉就很长时间没造过什么轮子了,以前一直想 ...
- 网络AFNetworking 3.1
下面的类已从AFNetworking 3.0中废弃: AFURLConnectionOperation AFHTTPRequestOperation AFHTTPRequestOperationMan ...