51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2938|回复: 1
打印 上一主题 下一主题

[转贴] 十年总结(14):从CS转向BS

[复制链接]
  • TA的每日心情
    擦汗
    2015-5-25 17:24
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]测试排长

    跳转到指定楼层
    1#
    发表于 2009-7-14 16:48:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    上一篇关于重构的总结,引来了很多讨论,基本上大家能够达成共识,
    1、重构是提高代码质量非常重要的手段之一
    2、重构要有所节制,过犹不及
    3、质量是一种意识

    ---

    以前可能没有详细说过,03-04年,我们用JAVA所做的项目都是基于C/S架构的,
    但04年第四季度,越来越多的新项目提出了B/S架构的要求,于是我们面临一次转型。

    这次转型,又带来一场冲突。
    原来早就说过,乐乐在04过后,就要移民澳洲了,所以他相当保守,
    提出将现有系统改造成一个Applet,他认为这样最稳妥,工作量最少。

    我一向比较激进,我觉得改造成Applet虽然时间短,但毕竟不是长久之计,
    所以我建议一次到位,按J2EE架构重新设计开发。
    但这样做,我们团队的人员储备不足,时间周期也会比较长,
    我自己不熟悉J2EE,因此短期内很难做出令人信服的估算,因此田田决定采用乐乐的方案。

    改造是很快完成了,但大家可以想象由完整的CS应用改造而来的Applet,在浏览器中运行是如何的慢。
    性能的问题乐乐三番五次解决不掉,而他离开公司的日期越来越近,我从内心深处也不太愿意接手他的代码,
    于是我再次建议另起炉灶,重新开发一套B/S系统。

    这样,在交了一个多月的学费后,我开始重点招聘B/S人员。
    由于受到04年自己所学的影响,我招聘的时候逢人必问懂不懂敏捷建模,
    虽然当时连知道这个概念的人都相当少,但竟然被我碰到一个,他对敏捷建模、测试驱动开发都很熟悉,
    而且对开源项目非常感兴趣(我们的产品中也用了大量开源的东西)。

    这个人在公司呆了不到两个月就走了,我总结应该是我在B/S方面太弱,而且公司没有更强的人,他可能觉得学不到东西,
    虽然干的时间不长,但他让我知道了Spring和Hibernate,也算是在B/S方面帮了我一把,我还是很感谢这个人。

    初接触Spring,感觉挺新奇的,很喜欢背后的IoC思想,
    还有Hibernate,也是其O/R Mapping的思想让我觉得受益匪浅,
    不过让我感到头疼的是配置,总总觉得本来一件简单的事情,到了框架里,要拆散了在好多个地方做配置,
    出了问题,总是不能一下子定位在哪里(受C/S开发的影响),一开始还经常有录入错误,搞得一个简单问题要DEBUG好半天。

    可能有人会说用工具来简化配置,但我有些古怪,就是一样东西如果没有足够的信心,而只是照某种步骤去做,
    心里就会患得患失,没有安全感。
    况且对于我们这个刚刚组建的,没有高手的B/S团队,还是应该简单一些好。
    于是,我决定放弃SSH架构,而直接采用Struts。


    这一段时间的确是很有压力的,毕竟是自己主张要重新开发的啊(其实不重新开发也没办法了),
    要边学习边工作,还要负责招聘。因为我也是刚接触B/S的,所以最开始的时候感觉比被面试的人还要紧张。

    Struts相比Spring简单太多了(现在的感受),不过我真正掌握(会合理的使用)也花了三个月的时间,
    一开始我看书,我承认我对中文图书有一种成见,因此没看出个所以然(只是会用了而已),
    就拿这本书来说:精通 Struts:基于 MVC 的 JavaWeb 设计与开发,
    应该是很经典的,可是如果顺序看这本书,2、3、4章让我十分恼火。
    第二章是一个例子,我什么都还不懂,就让我按部就班做一件事儿,我个人觉得没有任何价值,
    第三章与Struts基本不搭界,我感觉去掉这一章都没有任何感觉,
    第四章就开始详细介绍Struts的配置文件,让我彻底迷失了方向。
    老实说,这本书作为“参考”书是可以的,但我觉得并不适合作为入门的学习书,除非你准备往复看几遍来融汇贯通。

    真正让我心里有底的,还是在看了官方文档之后:http://struts.apache.org/1.3.10/userGuide/index.html
    我觉得通过这个文档,我很快就明白了FORM是如何被填充的,Action是如何跳转的,从页面提交、到后台方法执行、再到返回新页面,
    这个过程在脑海里很清晰,这样自然就很容易理解各项配置的作用,也很容易处理出现的问题。

    在以后的日子里,我又接触了一些开源项目的官方文档,比如JBPM,Ant等,我发现官方文档真的是了解一个系统的最佳资料,
    一般好一点的项目都会提供Tutorial或者 User Guide或者Reference,这基本上是必看的。

    就这样,在产品改版中,告别04年,进入05年,也是我在北京最郁闷的一年。

    ---

    现在很多人都是从SSH开始接触JAVA,J2SE的东西只是浅尝辄止,了解而已,
    我碰到不止一个同学,会做B/S应用,但不会用程序操作文件(当然,经过提示很快就会了)。
    我从C/S入手JAVA,至少有一点好,就是打下了比较扎实的基础,

    那么关于JAVA的学习路径问题,虽然现在是WEB为王,但不应该放松J2SE的学习,即便要用SSH,也要从基础开始:
    1、Thinking In Java,打下良好的J2SE基础
    2、sun官方的Java EE Tutorial,第15章之前重点看,15章之后有选择的看
    3、如果学Struts,就看Struts User Guide ,
    4、如果学Spring,就学Spring Reference Manual ,兼看Martin的经典文章:http://www.martinfowler.com/articles/injection.html
    5、要学hibernate,最好先看看O/R Mapping方面的知识,还有DAO设计模式,然后是Hiberante Reference Documentation。


    千万不要觉得英语无所谓,也不要因为怵头而回避英语,早一天克服困难,早一天受益。
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    该用户从未签到

    2#
    发表于 2009-7-15 10:43:37 | 只看该作者
    转贴还是原创? 如果是原创,那就太佩服楼主了。经历很精彩,文笔也不错。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-26 14:47 , Processed in 0.062800 second(s), 25 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表