我就搞不明白开发java web的,你们是怎么解决重新编译一次花费几分钟,不重新编译就看不到修改效果的?

gaicitadie 发布于 2016/10/31 07:09
阅读 3K+
收藏 2
特别是传统的MVC网站开发,页面效果需要刷新才看得见,刷新又要重新编译重启服务,光等那几分钟我头都炸了。


难道在php开发中改改程序再刷刷页面,这样不是个好习惯吗?


暴露了,我是前后端都写的全栈打杂攻城狮,当然只写后台服务,java这种改一次编译一次没有缺点,但web开发有时候一天要改改刷刷几百次甚至几千次啊。
加载中
3
yak
yak

改改刷刷的结果导致老板没事就改页面,所以php的大部分时间都浪费在套模板上了,套了10年模板,回头一看,白茫茫大地一片真干净。因为人们都热衷做表面功夫,在同时选择一个复杂和简单的任务面前,大部分人愿意选择容易简单的工作而逃避复杂有难度的工作 (产品经理最好这口,这个好邀功)

而java需要编译的结果导致老板如果没事改页面,最后发现这个活需要时间,也就是对老板来说这是有cost的(机器编译的时间也是要算给程序员发工资的),所以被迫把精力放在更多的分析需求上面,因为较少次数地改需求比频繁改页面更加省成本,对老板来说,当然喜欢成本少的处理方式

yak
yak
回复 @eechen : 不是所有老板都象你一样脑残,也不是所有需求都是靠天天套模板能解决的,你看12306 就一直不换成php 脑残肯定想不通了
eechen
eechen
什么谬论,真是这样,老板直接要求换成PHP不就得了,哈哈哈。
2
oneryx
oneryx

改HTML,JSP之类是可以热部署不需要重启服务器的,可能是你的设置不对。

改Java类也有工具和方法可以支持热部署,不过好用的要钱(比如jrebel)。

好习惯是后台代码有足够的单元测试然后再到服务器上跑,这个时候基本上只需要修改前台代码。

改改刷刷确实不适合Java...

RickyLi
RickyLi
回复 @eechen : class文件的热加载早已实现,只是你不知道而已!
eechen
eechen
Java 类是通过 JVM 加载的,某个类的 class 文件在被 classloader 加载后,会生成对应的 Class 对象,之后就可以创建该类的实例。 默认的虚拟机行为只会在启动时加载类,如果后期有一个类需要更新的话,单纯替换编译的 class 文件,JVM 是不会更新正在运行的 class。
eechen
eechen
JRebel是一款商业付费的JVM插件,它再强,也绕不过JVM的限制,目前的 JVM 只能实现方法体的修改热部署,对于整个类的结构修改,仍然需要重启虚拟机,对类重新加载才能完成更新操作。
gaicitadie
gaicitadie
小项目、one man那种,前端、后端、测试都一个人完成的那种,改改刷刷是最有效率的方式啊
2
红薯的小黄瓜
红薯的小黄瓜
Java趁编译的时间可以倒杯咖啡,活动活动,php就得一直坐在那,直到腰间盘突出,猝死
0
灵溪小鱼
灵溪小鱼
然而java web比php值钱就因为他要编译
0
gaicitadie
gaicitadie

引用来自“灵溪小鱼”的评论

然而java web比php值钱就因为他要编译

现在我关注的重点不是它值钱不值钱,是怎样让java开发能像php那样方便,随时改随时刷,刚才想到可以让js、css这些静态文件走nginx,但是html模板还是得经过java web server

湖水没了
湖水没了
一套安装了这个cms的服务器 理论上最多可以创建 21亿个站点 也能解决java网站部署成本高的问题
湖水没了
湖水没了
看看这个产品应该会对你有帮助,你可以完全在线开发几个自主风格的站点 http://www.publiccms.com/ 开发语言是java 但是 也可以制作出类似 php风格的站点 比如 http://cms.publiccms.com/index.php
0
opal
opal

java 只是个工具,看你怎么用

我的java项目,开发起来和php一样,不用重新编译、重新启动什么的

gaicitadie
gaicitadie
麻烦告知是用的什么框架
0
IT小香猪
IT小香猪
开发调试的时候用weblogic吧,把汤姆家的猫关起来。
0
jeffsui
jeffsui
spring boot 
0
杨三更
杨三更
支持热更新的
返回顶部
顶部