我和Java这些年的故事(五)
时光荏苒,我来到了IBM。和慕名已久的WebSphere Application Server(WAS)打起了交道。
之前我搞过Weblogic,对应用服务器的特性有了一定的了解。但WAS无疑更为庞大,复杂。那个年代,WAS在银行、大的企业如华为用友都有一定的应用。
能和如此神圣的中间件打交道,我倍感荣幸。进入WAS部门后,开始接触web service,那时web service和SOA正大行其道。EJB虽然风头已过,但也还是J2EE服务器不可或缺的主体。
我的主要工作是做集成测试,俗称SVT, 还有FVT,在IBM这样的名称多得让人眼花缭乱,以至于新手进去的第一门功课是熟悉各种称谓。测试的目的是找bug,比的是谁发现的bug最多,最有价值,而不是比谁完成得快。人家一个case跑两个月,你跑两周就完事,但你并不会受到称赞,反而会被老外chanllenge。这个道理我后来才明白,因此也对测试工作多了一份了解和敬畏。
那时管理源代码用的是CMVC,一个内部的工具,IBM的clearcase太重,内部貌似用的不多,git还没有流行呢。在CMVC上,我浏览了不少老外写的代码,代码逻辑很清晰,注释详尽,命名合理,唯一就是行数太多,有的达到上万行。我想,这大概是一个个补丁堆叠出来的吧,因为一个文件常常是经历了多个开发者,几年的历史,要重构,时间不允许,代价太大。
业余我也搞搞小工具开发,把java包装成exe,还做了一个内部的知识库系统,没做好,原因是自研,而不是直接采用开源产品。
ERWW和e-trade是两个经典的J2EE应用,代码写得是比较优美的。
也经常去客户那里宣讲web service和WAS使用,当然,最令人头疼的是客户生产系统上遇到的各种疑难杂症,如内存泄露,事务问题。刚开始,我对OOM工具使用还不太熟练,也遇到一些尴尬的时候。
同事鹏涛开发了一个JVM问题诊断工具,我也不甘其后,开发了一个wsadmin图形化工具,用来方便得管理多个was环境,便在其上执行wsadmin脚本。可惜没有推广使用起来。
当时觉得IBM的工作环境、氛围是很不错的,谁料到外面的世界正在悄然变化呢?以阿里为代表的一些国内公司正在迅速崛起。甚至今日头条、饿了么、美团也开始崭露头角,而我浑然不知。
我和Java这些年的故事(五)的更多相关文章
- 20145205 《Java程序设计》实验报告五:Java网络编程及安全
20145205 <Java程序设计>实验报告五:Java网络编程及安全 实验要求 1.掌握Socket程序的编写: 2.掌握密码技术的使用: 3.客户端中输入明文,利用DES算法加密,D ...
- JAVA GC之标记 第五节
JAVA GC之标记 第五节 OK,我们继续昨天最后留下的问题,什么是标记?怎么标记? 第一个问题相信大家都知道,标记就是对一些已死的对象打上记号,方便垃圾收集器的清理. 至于怎么标记,一般有两种方 ...
- Java反射的小故事
Java反射的小故事: 首先定义一个Java类 package com.xiaoysec.test; public class Person { private String name; privat ...
- java之jvm学习笔记五(实践写自己的类装载器)
java之jvm学习笔记五(实践写自己的类装载器) 课程源码:http://download.csdn.net/detail/yfqnihao/4866501 前面第三和第四节我们一直在强调一句话,类 ...
- JAVA之旅(十五)——多线程的生产者和消费者,停止线程,守护线程,线程的优先级,setPriority设置优先级,yield临时停止
JAVA之旅(十五)--多线程的生产者和消费者,停止线程,守护线程,线程的优先级,setPriority设置优先级,yield临时停止 我们接着多线程讲 一.生产者和消费者 什么是生产者和消费者?我们 ...
- “全栈2019”Java多线程第三十五章:如何获取线程被等待的时间?
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...
- Java反射机制demo(五)—获得并调用一个类中的方法
Java反射机制demo(五)—获得并调用一个类中的方法 这个demo在使用反射机制操作属性之前,主要原因是因为在.class文件字节码中,方法排在属性的前面. 1,获得一个类中的方法 先看一下方法和 ...
- 20145221 《Java程序设计》实验报告五:网络编程及安全
20145221 <Java程序设计>实验报告五:网络编程及安全 实验要求 掌握Socket程序的编写 运行TCP代码包,结对进行,一人服务器,一人客户端 掌握密码技术的使用 利用加解密代 ...
- Java 设计模式系列(十五)观察者模式(Observer)
Java 设计模式系列(十五)观察者模式(Observer) Java 设计模式系列目录(https://www.cnblogs.com/binarylei/p/10198698.html) Java ...
- Java 设计模式系列(十五)迭代器模式(Iterator)
Java 设计模式系列(十五)迭代器模式(Iterator) 迭代器模式又叫游标(Cursor)模式,是对象的行为模式.迭代子模式可以顺序地访问一个聚集中的元素而不必暴露聚集的内部表象(interna ...
随机推荐
- lg8935 [JRKSJ R7] 茎 题解
由于标签内包含背包和树形dp,所以考虑用背包dp和树形dp求解. 考虑每次合并2个连通块(一个包含根节点),设\(f_{i,j}\)表示\(i\)子树内,操作\(j\)次的方案数(未合并连通块),设\ ...
- c++练习272题:金币
*272题 原题传送门:http://oj.tfls.net/p/272 题解:(遍历,60分) #include<bits/stdc++.h>using namespace std;lo ...
- API 文档
API 文档 Java类的组织形式 使用API查找方法: 包 -> 类 -> 方法 直接检索:Math
- python获取上周的起始日期
import datetime def get_date_of_last_week(form='%Y-%m-%d'): """ 获取上周开始结束日期 :param for ...
- EF Core级联保存时DbUpdateConcurrencyException报错异常
出现改报错异常的原因是,EF Core不支持级联更新时添加新的子项!!! 如果主体子项添加一个新内容,EF Core则认为这个内容原本已经存在了(实际是你新增的),只不过并发冲突中被其他进程删除掉了, ...
- java 内存锁
import lombok.extern.slf4j.Slf4j;import java.util.Map;import java.util.concurrent.ConcurrentHashMap; ...
- PDF.JS 预览pdf文件,中文不显示问题
pdf.js 下载路径 http://mozilla.github.io/pdf.js/ pdf.js的使用不多说,网上都有 讲一下,.NET CORE MVC的使用遇到的问题 1. 将下载文件解压放 ...
- 解决GitHub下载速度慢下载失败的问题
最近在GitHub上拉取代码时,每次git clone都是文件下载完了发现连接就断掉了,或者下载压缩包显示网络连接错误的情况.下面介绍找到的解决方法: 1.打开码云(当然不是福报)https://gi ...
- unity 扇形范围检测目标
第一种 代码方法 传入目标点测试即可 private float ScopeDistance = 2f;//扇形距离 private float ScopeJiaodu = 120;//扇形的角度 / ...
- 【SSO单点系列】(3):CAS4.0 之自定义返回登出页面
一.登出实现返回自定义页面 服务端修改 cas-servlet.xml <bean id="logoutAction" class="org.jasig.cas.w ...