原文: 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项目管理得失谈"的更多相关文章

  1. java web Cookie浅谈

    1.会话控制 > Http协议 Http协议两个缺陷: 1.HTTP协议是纯文本的 2.HTTP协议是无状态的 服务器不能简单的通过HTTP协议来区分多次请求是否发自同一个用户 虽然通过HTTP ...

  2. Java EE 学习(2):使用 IDEA 开发 最简java web

    参考:http://www.cnblogs.com/carsonzhu/p/5468223.html 使用IntelliJ IDEA开发java web 前言:由于本人以前简略的学习过 java 语言 ...

  3. Java Web项目实战第1篇之环境搭建

    写在前面的话 从今天开始一个Java Web实战项目,参考自 http://blog.csdn.net/eson_15/article/details/51277324 这个博客(非常感谢博主的分享精 ...

  4. 使用Intellij idea新建Java Web项目(servlet) 原理及初步使用

    准备 JDK       (配置JDK_HOME\bin   和 CLASSPATH)   注:JDK8下载已经需要注册了,请使用JDK11(现在是官方长期支持的版本)     对于我们新手来说,JD ...

  5. [经验] Java Web 项目怎么部署到 Linux 系统上

    废话少说, 直奔主题 第一步: 将 web 项目打成 war 包 1: 打开项目的 pom.xml 文件 如果是迭代后的项目, 记得修改项目的版本号, 这里我的是第二版所有就把 1 改成了 2 2: ...

  6. Java Web项目在Mac系统上启动时提示nodename nor servname provided的解决办法

    今天在Mac系统上启动Java Web项目的时候,提示了Java.net.UnknownHostException: yangxiaomindeMacBook-Pro.local nodename n ...

  7. Web/Java Web项目如何模块化?没有正文,别点

    事情是这样的,两三年前做了几个Java Web项目,由于薪资原因,原主程都离开了. 由于公司不规范,也没有留下正规的开发文档,只有一个源程序在手里.后面的很多系统维护都很被动. 领导就觉得说,这样不好 ...

  8. 重拾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映射到 ...

  9. .net基础学java系列(三)徘徊反思

    .net基础学java系列(三)徘徊反思 上一篇文章:.net基础学java系列(二)IDE 之 插件 这两天晚上看完了IDEA的教学视频:https://edu.51cto.com/course/1 ...

随机推荐

  1. 83.个人信息维护页面 Extjs 页面

    1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8" ...

  2. 希尔shell排序——java实现

    希尔排序是对插入排序的优化,将插入排序的交换步长由1增加到h. 希尔排序的思想是使数组中任意间隔为h的元素有序.步长调幅为h = 3*h + 1, 也就是1,4,13,40,121,364, 1003 ...

  3. aspectc中this可以获取的东西

    this->kind  操作类型 this->targetName 被调用函数名称 this->funcName 调用函数名称 this->argsCount 参数个数 thi ...

  4. PCB LDI文件 自动化输出(改造)实现思路

    由于工厂采用Liunxs系统输出LDI文件,由于我们数据库是用的Windows Server,编程语言是.net 无法与Liunxs系统进行有效对接, 所以造成才会造成LDI 资料输效率极低,人员工作 ...

  5. C/C++中的绝对值函数

    --------开始-------- 对于不同类型的数据对应的绝对值函数也不相同,在c和c++中分别在头文件math.h 和 cmath 中. int : x = abs( n ) double : ...

  6. springboot创建项目

    Springboot作为轻量级快速开发受到无数java人的青睐,Spring Boot是为了简化Spring应用的创建.运行.调试.部署等而出现的,使用它可以做到专注于Spring应用的开发,而无需过 ...

  7. 字符串转为JSON对象

    经常写字符串转为JSON对象,但是每次没有说一次就成功的,老是搞错属于哪个包的方法,遂记录一下 JSONObject.parseObject(str);这个方法需要导入包 com.alibaba.fa ...

  8. T - Amusing Joke(map)

    Problem description So, the New Year holidays are over. Santa Claus and his colleagues can take a re ...

  9. C - Crazy Town

    Problem description Crazy Town is a plane on which there are n infinite line roads. Each road is def ...

  10. 5.12redis

    Window配置Redis环境和简单使用 一.关于Redis Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理.它支持字符串.哈希表.列表.集合.有序 ...