`
happmaoo
  • 浏览: 4466070 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Struts的心酸往事

阅读更多
<iframe align="center" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog336280.html" frameborder="0" width="336" scrolling="no" height="280"></iframe>

2002年初,Java服务器端技术正处于塑型阶段,MVC作为一种架构模式,正逐渐开始在众多技术人员的大脑中蔓延。此时,Apache Struts在合适的时间出现,从而逐渐发展成为Java Web MVC框架事实上的标准。

关于Struts,还有点心酸往事……

时值Struts 0.9版本发布之时,我正忙于设计公司新一代产品平台框架,期间也在参考Struts的设计思想(是时Struts尚未流行,各个公司往往拥有自己的框架实现)。

与此同时,我邻位的一个新同事,23岁的印度小伙Pilesh,摩拳擦掌正准备大干一番,这个刚刚离开自己祖国的年轻人无疑充满了干劲,每到午餐时间都是以最快的速度冲到楼下,买一份印度餐,用油纸裹着端回工位(大致上是用米饭,拌上一些蔬菜和牛肉,最后浇上咖喱汁,然后倒在一张大号油纸上,再包起来,用细绳扎好作为外卖),一边用手捏着塞入嘴中,一边嘟嘟囔囔的用肘部移动鼠标,研究屏幕上花花绿绿的代码。

一天早上,我刚到公司,Pilesh立即凑过来,兴奋的对我说:

P:“Hi,Kevin,Do you know Struts?”
K:“Yup,a MVC framework,then?”
P:“I will use it in my project. How do you think about it?”
K:“e…,good,do you have some experience in Struts development?”
P:“No! But I will have!”

看到他身边字纸篓里的两团油纸,和屏幕上闪动的Struts源码,通宵熬夜之后,Pilesh显然已经被Struts的设计思想所深深吸引……

心酸的回忆也正由此开始。

随着新项目的开始,Pilesh似乎明显不如之前活跃,上班时我甚至发现自己工位上的字纸篓也塞满包裹外卖的油纸。Pilesh总是歉然一笑,指着自己那个已经被可乐瓶和油纸塞满的字纸篓耸耸肩。
身为一个IT技术人员,笔者也早已经将熬夜置之度外,遂惺惺相惜,一笑了之….

时间过去了一个多月,Pilesh还是像以前那样匆忙,样子有点憔悴。

终于有一天,Boss找到了我,

B:“How do you think about Pilesh?”
K:“Oh,good,a nice guy!”
B:“yup…but do you think we need him?”
K:“e….sorry, I can't understand….”
B:“Our Project had exceed the deadline for about 10 days,but Pilesh still can not give out even a demo”
K:“……”
B:“Sorry, I only wanna tell you ,he will be fired……”

两天之后,另外一个印度同事Pardeep接替了Pilesh的位置,以及他未能完成的项目……

P:“Hi,Kevin”
K:“yeah?”
P:“The project is based on the struts framework?”
K:“yup!”
P:“But I am not familiar with it, then…?”
K:“oh……then……”
K:“Forget it”

最后这句“Forget it”,无奈中包含着一点发泄的情绪。


急于在项目中引入自己并不非常熟悉的新技术。这是缺乏经验的程序员最容易犯下的、最致命、同时也可能是最无辜的错误。

Pilesh恰恰犯下了这个错误。他坚信引入Struts可以提高开发效率,减少开发时间,从而错误的估计了项目进度,殊不知任何技术对生产率的促进,都是在生产者充分掌握了这门技术的基础之上。

另外,过于争强好胜,羞于向别人请教。这个项目只是个微型项目。因而管理层并不是非常关注。每每在例会上稍加询问, Pilesh也只报喜不报忧,导致项目最终失控,由于这样一个小项目,却使得一个大客户对公司的满意度大幅下降,从而也导致后来管理层对他采取的措施较为激烈。而另一方面,公司在这个项目的项目管理和跟踪上也是一个失败的典型,几乎没有任何实质的管理措施。

之后,此事也常常被我用作警戒自己和团队成员的一个案例。

后来与Pilesh再会,是在我即将回国前夕。为了买一条印度纱丽作为纪念,我跑到一个印度人聚居区的杂货市场,正在闲逛之时,突然看到Pilesh,正在路边一家餐厅里熟练的翻烤着一片片薄饼,不错,肯定是他……
不知后来又发生了怎样的事情,让他如此落魄。
烟熏火燎的脸上,看不出一点程序员特有的沉默宁静的表情。

兔死狐悲,曾经朝夕相处的同事,沦落到街头烤饼,纵使看了蔡学庸的“程序员烤香鸡排”一文的苦笑自嘲,真实的事情发生在身边,也不免有点感触,而Struts由于与此事相关,也成为了灰色回忆中的一个部分。这也是后来我在自己负责的项目中,从未采用过Struts进行正式开发的主要原因。




分享到:
评论

相关推荐

    struts2.0整合Struts 1

    Struts 2整合Struts 1,允许开发者利用Struts 1已有的投资,同时享受Struts 2带来的优势,如增强的类型安全和更强大的拦截器机制。 在《Struts 2权威指南--基于WebWork核心的MVC开发》这本书中,作者李纲深入浅出地...

    struts2jar包

    Struts2是一个强大的Java EE应用程序框架,主要用于构建企业级的Web应用。它的核心是MVC(Model-View-Controller)设计模式,可以帮助开发者组织代码,提高开发效率,并且提供了丰富的特性来支持表单验证、国际化、...

    Struts2漏洞测试

    Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试...

    struts2-core.jar

    struts2-core-2.0.1.jar, struts2-core-2.0.11.1.jar, struts2-core-2.0.11.2.jar, struts2-core-2.0.11.jar, struts2-core-2.0.12.jar, struts2-core-2.0.14.jar, struts2-core-2.0.5.jar, struts2-core-2.0.6.jar,...

    Struts2视频教程

    ### Struts2核心知识点解析 #### 一、Struts2框架概述 - **定义与特点**:Struts2是一款基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,它继承了Struts1的优点,同时在设计上更加灵活、易用,...

    struts-config.xml struts标准配置文件 struts-config

    struts-config.xml struts标准配置文件 struts-config

    Struts2漏洞检查工具Struts2.2019.V2.3

    Struts2是一款非常流行的Java Web框架,用于构建企业级应用。然而,随着时间的推移,Struts2在安全方面暴露出了一些重要的漏洞,这给使用该框架的系统带来了潜在的安全风险。"Struts2漏洞检查工具Struts2.2019.V2.3...

    Struts升级到Struts2.3.35

    北京时间8月22日13时,Apache官方发布通告公布了Struts2中一个远程代码执行漏洞(cve-2018-11776)。该漏洞可能在两种情况下被触发,第一,当没有为底层xml配置中定义的结果设置namespace 值,并且其上层动作集配置...

    struts1和struts2的jar包

    Struts是Apache软件基金会下的一个开源项目,主要提供MVC(Model-View-Controller)设计模式的实现,用于简化Java Web应用的开发。Struts1和Struts2是两个不同的版本,它们各自拥有独特的特性和功能,但在Java Web...

    struts1.3.10 和 struts2.0.14 包

    Struts是Apache软件基金会下的一个开源项目,提供了一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架。这个压缩包包含了Struts 1.3.10和Struts 2.0.14两个版本,它们分别代表了Struts框架的发展...

    Struts2接口文档

    Struts2是一个强大的Java web应用程序开发框架,它基于Model-View-Controller(MVC)设计模式,旨在简化创建用户交互式、数据驱动的web应用的过程。这个“Struts2接口文档”是开发者的重要参考资料,提供了关于...

    struts2 总结工程大全

    struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全...

    struts1&struts2

    Struts1和Struts2是两个著名的MVC框架,它们都是Apache软件基金会的Apache Struts项目的一部分,用于构建基于Java的Web应用程序。然而,两者在设计和实现上有显著的差异。 1. **架构模式的区别** - **Struts1.x** ...

    struts-config详解

    Struts-config详解 Struts-config.xml 是Struts框架的核心配置文件,它描述了所有的Struts组件。在这个文件中,我们可以配置主要的组件及次要的组件。下面是struts-config.xml文件的主要元素: 一、struts-config....

    Struts2VulsTools-Struts2系列漏洞检查工具

    该工具的打开路径为:\Struts2VulsTools-2.3.20190927\Test\bin\Release\Text.exe 2019-09-25: 优化部分EXP在部分情况下被WAF拦截的问题,提高检测成功率,优化自定义上传路径exp,文件所在目录不存在时自动创建...

    Struts所需要的jar

    Struts是一个开源的Java Web应用程序框架,主要用于构建MVC(Model-View-Controller)模式的Web应用。在Java EE世界中,Struts扮演着至关重要的角色,它简化了开发过程,提高了代码的可维护性和可扩展性。SSH框架是...

    struts2项目开发

    Struts2 项目开发 Struts2 是一个基于 Java Web 的框架,广泛应用于 Web 应用程序的开发。下面将从 Struts2 项目开发的角度,详细介绍 Struts2 框架的应用、开发流程、技术架构、实践经验等方面的知识点。 项目...

    Struts2教学视频

    Struts2是一个强大的Java web开发框架,用于构建可维护、可扩展且结构良好的应用程序。它在MVC(Model-View-Controller)设计模式的基础上提供了一种实现方式,使得开发者能够更方便地处理用户请求,控制业务逻辑,...

    struts1.2驱动包

    Struts1.2驱动包是Java Web开发中一个重要的组件,它是Apache Struts框架的特定版本,用于支持基于Model-View-Controller (MVC)设计模式的应用程序开发。Struts1.2因其稳定性和广泛的功能集而在过去备受推崇,尤其在...

    在Eclipse中配置Struts2项目(html)手把手教会你 +struts2 标签库介绍(html) + STRUTS2学习文档.pdf + Struts2―表单验证validate(html) + struts2和struts的比较 + struts教程(html)

    在Eclipse中配置Struts2项目(html)手把手教会你 如何在Eclipse中配置Struts2。 struts2 标签库介绍(html)对Struts2的...struts2和struts的比较 让你更清楚的知道struts2和struts的不同之处。 struts教程(html)

Global site tag (gtag.js) - Google Analytics