【转】三年后再反思我的" Java Web项目管理得失谈"
原文: http://blog.csdn.net/csfreebird/article/details/7561189
这篇文章介绍的经验心得不错,故转载之。
三年前,我写了 JavaWeb项目管理得失谈,文章地址:http://blog.csdn.net/sheismylife/article/details/4154325
这三年,自己经历了SOHO,北京互联网公司和现在的ESRI研发中心,技术能力又有了很大的提升,管理上也历练了不少。
重新阅读我过去的文章,又有了新的认识。
过去那篇文章总结了项目结果不如预期的几个主要原因:只挑选其中几个再说明。
1)程序员技术能力弱
问题出在公司层面,小的外包公司招不到优秀的程序员。如果人不行,无论多强的技术领导和流程都没用。
现在我招聘首要看人的智商,如果不聪明,坚决不会要。有那功夫为了一点技术细节解释半天还弄不明白,我不如自己做了。
招聘,说白了就是花钱雇佣聪明的脑袋。所以没有经济实力的小公司,我再也不会去那里带队伍了。自虐啊!
2)对JSF技术不熟悉
3)JSF框架有Bug,并且可用tag较少,不足以应付项目,还需要额外开发自定义tag
JSF1.x版本升级到JSF2.x后,我又深入运用了PrimeFaces。现在已经彻底废弃JSF,这是一个不中用的东西。为什么所有页面上的html标记,css和JavaScript都要通过后端的JSF对象来渲染,如今的web页面设计如此的复杂,这种工作根本就不应该用Java语言来表达。即便是PrimeFaces,也不过就是将很多javascript库包装一下,好了,你这么一封装,我要定制一下都要费老大力气,而且很多人都搞不定一些莫名其妙的bug.
如果你做web开发,无论是Java,C#,C++,PHP或者其他,掌握JavaScript和CSS都是必要的,通过JSF渲染只会把事情搞复杂,增加成本。而且运行起来慢的像老牛,Google也吃过这个亏,然后废弃不用了。
后端只要能够基本的渲染初始页面,就行了,别管不该自己管的事情。其他的后端应该提供REST API来处理Ajax请求。我现在用C++和Java做后端渲染,都感觉很好。因为页面上的事情,我切换到更合适的语言JavaScript和CSS上去了。
JSF还是比较适合日本人的企业级开发,那种应用是如果你用了彩色他都跟你急,都是最原始的html标记。外包公司比较合适。肯定不适合互联网企业。
6)管理人员对代码审查把关较弱
现在自己的眼界开阔多了。通过Scrum管理任务和进度,通过Review board管理代码评审,通过持续集成实现尽早集成和冒烟测试。通过自动测试来实现压力测试。产品的质量是通过严密的过程控制来保证的。有了过程控制,人就可以尽情的发挥自己的创造力。
不过这种玩法也只能在好公司来做,构建过程控制系统是需要成本的,而且要持续的演化,同时必须有很熟悉各种开源产品,能够将系统架构起来的高手。很多挣扎在温饱线上的公司难以做到这点。
【转】三年后再反思我的" Java Web项目管理得失谈"的更多相关文章
- java web Cookie浅谈
1.会话控制 > Http协议 Http协议两个缺陷: 1.HTTP协议是纯文本的 2.HTTP协议是无状态的 服务器不能简单的通过HTTP协议来区分多次请求是否发自同一个用户 虽然通过HTTP ...
- Java EE 学习(2):使用 IDEA 开发 最简java web
参考:http://www.cnblogs.com/carsonzhu/p/5468223.html 使用IntelliJ IDEA开发java web 前言:由于本人以前简略的学习过 java 语言 ...
- Java Web项目实战第1篇之环境搭建
写在前面的话 从今天开始一个Java Web实战项目,参考自 http://blog.csdn.net/eson_15/article/details/51277324 这个博客(非常感谢博主的分享精 ...
- 使用Intellij idea新建Java Web项目(servlet) 原理及初步使用
准备 JDK (配置JDK_HOME\bin 和 CLASSPATH) 注:JDK8下载已经需要注册了,请使用JDK11(现在是官方长期支持的版本) 对于我们新手来说,JD ...
- [经验] Java Web 项目怎么部署到 Linux 系统上
废话少说, 直奔主题 第一步: 将 web 项目打成 war 包 1: 打开项目的 pom.xml 文件 如果是迭代后的项目, 记得修改项目的版本号, 这里我的是第二版所有就把 1 改成了 2 2: ...
- Java Web项目在Mac系统上启动时提示nodename nor servname provided的解决办法
今天在Mac系统上启动Java Web项目的时候,提示了Java.net.UnknownHostException: yangxiaomindeMacBook-Pro.local nodename n ...
- Web/Java Web项目如何模块化?没有正文,别点
事情是这样的,两三年前做了几个Java Web项目,由于薪资原因,原主程都离开了. 由于公司不规范,也没有留下正规的开发文档,只有一个源程序在手里.后面的很多系统维护都很被动. 领导就觉得说,这样不好 ...
- 重拾Java Web应用的基础体系结构
目录 一.背景 二.Web应用 2.1 HTML 2.2 HTTP 2.3 URL 2.4 Servlet 2.4.1 编写第一个Servlet程序 2.5 JSP 2.6 容器 2.7 URL映射到 ...
- .net基础学java系列(三)徘徊反思
.net基础学java系列(三)徘徊反思 上一篇文章:.net基础学java系列(二)IDE 之 插件 这两天晚上看完了IDEA的教学视频:https://edu.51cto.com/course/1 ...
随机推荐
- 【转】iPhone获取状态栏和导航栏尺寸(宽度和高度)
原文网址:http://blog.csdn.net/chadeltu/article/details/42708605 iPhone开发当中,有时需要获取状态栏和导航栏高度.宽度信息,方便布局其他控件 ...
- codeforces round #424 div2
A 暴力查询,分三段查就可以了 #include<bits/stdc++.h> using namespace std; ; int n, pos; int a[N]; int main( ...
- android apk 防止反编译技术第二篇-运行时修改Dalvik指令
上一篇我们讲了apk防止反编译技术中的加壳技术,如果有不明白的可以查看我的上一篇博客http://my.oschina.net/u/2323218/blog/393372.接下来我们将介绍另一种防止a ...
- Java 8 实战 P3 Effective Java 8 programming
目录 Chapter 8. Refactoring, testing, and debugging Chapter 9. Default methods Chapter 10. Using Optio ...
- ROS-导航功能-Gazebo
前言:仿真的整体思路,先启动仿真环境,再启动导航功能. 前提:已下载并编译了相关功能包集,如还未下载,可通过git下载:https://github.com/huchunxu/ros_explorin ...
- 小白写的一个ASP.NET分页控件,仅供娱乐
无聊,第一次写博客,自己动手写了一个分页控件.由于我是新手,有很多地方写得不够好,希望各位大牛多多指正.哈哈哈 /// <summary> /// 分页控件 /// </summar ...
- 前端-Vue结构思维导图笔记
看不清的朋友右键保存或者新窗口打开哦!喜欢我可以关注我,还有更多前端思维导图笔记有vue结构分析,JS基础,JQ,JS高级,Angular,git等等
- 利用MediaSession发送信息到蓝牙音箱
1.利用MediaSession发送信息到蓝牙音箱,如:播放音乐时接收的歌曲信息,但是每一首歌连续播放时,再次发送的重复信息会被丢弃.则利用MediaSession发现信息时,要保证信息的不重复性. ...
- 查看 Android App 的 versionCode
有 App 源码时,可以直接查看 AndroidManifest.xml 文件. <manifest android:versionName="1.4" android:ve ...
- 【PostgreSQL-9.6.3】函数(1)--数值型函数
函数表示对输入参数返回一个特殊计算结果的值.PostgreSQL中的函数种类比较丰富,主要分为以下几类:数值型函数.字符型函数.日期和时间函数.条件判断函数.系统函数.加密函数以及其他函数.这篇文章只 ...