【转】三年后再反思我的" 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 ...
随机推荐
- Java中的锁概念
掌握Java中锁是Java多线程编程中绕不开的知识,只有知道理解Java各种锁才能在编码过程中灵活运用,写出更高效的多线程程序.而理解掌握锁的第一步,可从宏观上对比理解一下各种锁概念. 公平锁/非公平 ...
- 86. Ext文本输入框:Ext.form.TextField属性汇总
转自:https://blog.csdn.net/ryuudenne/article/details/8834650 Ext.form.TextField主要配置表: allowBlank ...
- Spark深入之RDD
目录 Part III. Low-Level APIs Resilient Distributed Datasets (RDDs) 1.介绍 2.RDD代码 3.KV RDD 4.RDD Join A ...
- PCB MS SQL 排序应用(row_number rank dense_rank NTILE PARTITION)
一.排序前,准备数据 --表变量 ),流程数 int) insert into @table union all union all union all union all --查看一下 select ...
- bzoj1030 文本生成器(AC自动机+dp)
1030: [JSOI2007]文本生成器 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 4777 Solved: 1986[Submit][Stat ...
- c#调用带有自定义表结构的存储过程
1.新建自定义表结构 CREATE TYPE [dbo].[HBForHBGHDR] AS TABLE( [序号] [int] NULL, [客户编号] [varchar](15) NULL ) GO ...
- (三)Appium-desktop 打包
appium-desktop经过二次开发后,需要打包为应用提供给其它同学使用.我们知道appium-desktop是使用electron来构建跨平台桌面应用程序.electron有electron-p ...
- (转)Win10 TensorFlow(gpu)安装详解
Win10 TensorFlow(gpu)安装详解 写在前面:TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理.Tensor(张量)意味着 ...
- shiro英语
Security Manager安全管理人员 Tutorial 辅导的 transient 短暂的 Cipher 密码 Memory 记忆 Access 访问Handy Hint 方便提示separa ...
- List 练习
(List)已知有一个Worker 类如下: public class Worker { private int age; private String name; private double sa ...