江湖的笔记

积累比获取更重要

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  6 随笔 :: 1 文章 :: 0 评论 :: 0 Trackbacks

2009年1月10日 #

    从事软件开发相关工作近八年,将自己形容成一名老兵。做开发几年,带团队几年。头几年编码量较大,后几年断断续续写点东西,大多时间以指导别人开发为主。究个人能力而言,不算特别出色的程序员。但因工作性质等原因,对软件系统产品整体的把握和产品设计工作还是有一些心得。这几年的工作,既有项目管理,也有架构设计与分析设计,还有产品设计。对软件开发的感觉相对比较宏观,但也还是有一些方面有较为深入的了解。
    今天谈谈软件开发方法,主要原因在于最近观察到新入行做外包开发的小伙子们,似乎都不太注重方法这类知识的积累。个人理解,软件开发是一门技术活,其直观特点应是一门偏工程类的工作。既然为一门工程,必然有方法可循。整个行业发展至今,各个细分领域都有不少经典的理论。如项目管理工程,架构方法,产品设计方法等等。这些理论都是在工程实现的过程中可以借鉴和使用的方法学知识,是提升工程效率和质量的武器装备。软件的实现过程,不仅仅是一个将计算机语言转换为信息系统的过程。它不仅包含了一类信息流,数据流的抽象和组织工作和方法。还是一个用信息科技解决现实需求的过程。
    在外包行业,代码的重复堆叠的时间远比创新的结构设计工作要多得多。有时候为了赶工,大量的拷贝和复制成为现实的选择。但随着从业年龄的增长,继续使用这类方法显然不合时宜。这既不利于提高工作效率,也不利于提高软件产品的质量。大量的编码实践是提高软件实现能力的不二选择,但没有软件开发方法的思考与积累,再多的量变也无法发生质变。软件产品千千万,但其组织结构与设计方法却是大同小异。更多的关注软件产品的设计方法而非语言实现形式,才能不断提高软件开发水平。
    一名资深的架构师设计或分析师编写代码的速度不一定比从业两三年的小伙子快,但其实现的软件产品质量绝对要比后者好得多!
posted @ 2016-06-02 00:23 江湖 阅读(148) | 评论 (0)编辑 收藏

ajax默认使用UTF-8来发送中文数据,因此在服务器端,需要通过类似new String(getBytes("iso-8859-1"),"utf-8")去转换。
或者在发送前,使用escape处理中文数据,再在服务器端进行unescape操作。
posted @ 2012-10-26 17:24 江湖 阅读(181) | 评论 (0)编辑 收藏

aix下websphere不能打印中文字符,这需要设置jvm参数 java -Duser.country=CN -Dfile.encoding=UTF-8 -Duser.language=zh -Dclient.encoding.override=UTF-8
修改System.print能正常打印中文,Servlet中解析中文字符用request.getParameter("field")就可以了

在windows下默认是以ISO-8859-1读入字符,所有需要用new String(request.getParameter("fields").getBytes("ISO-8859-1"))来处理中文

当然也可以在tomcat配置文件中修改编码,中文的处理实际上是控制字符的读入的编码和输出的编码的问题。
posted @ 2009-01-10 01:44 江湖 阅读(1390) | 评论 (0)编辑 收藏

自己用到的一个方法,贴上来便于记忆

 1    protected  void execBatch(String procDate) throws HsException{
 2        CallableStatement cstmt=null;
 3        String onlineDay=getSysParam("OCRM_ONLINE_DATE"); //系统上线日期
 4        if(procDate.compareTo(onlineDay)<0){
 5            throw new HsException("00001","批处理日期应该大于系统上线日期!");
 6        }

 7        try{
 8            String procName=getProcName();
 9            if(procDate.compareTo(getSysParam("OCRM_BATCH_DATE"))<=0) procName=procName.trim()+"_REDO";  //重跑批处理名称
10            cstmt=dataSource.getConnection().prepareCall("{ call "+procName+" (?,?,?) }");
11            cstmt.registerOutParameter(2, java.sql.Types.INTEGER);
12            cstmt.registerOutParameter(3, java.sql.Types.VARCHAR);
13            cstmt.setString(1,HsDate.dateTo8(procDate));
14            Progress p=Progress.newInstance();
15            p.start();
16            cstmt.execute();
17            p.setOff(true);  //退出
18            int ret=cstmt.getInt(2);
19            String reinfo=cstmt.getString(3);
20            if(ret!=0){
21                throw new HsException("00001","批处理执行失败!,"+reinfo);
22            }

23//            cstmt.close();
24        }
catch(Exception e){
25            throw new HsException(HsErrorMsg.ERR_DB_ERROR,e.toString());
26        }

27    }
    
这个函数一直到批处理结束后才会返回,因而执行时要放在线程里面。
posted @ 2009-01-10 01:31 江湖 阅读(331) | 评论 (0)编辑 收藏

    访问jdbc Template查询数据得到Map对象时,在tomcat下用key值不区别大小写,但是在wesphere下却只能使用大写,否则会出错,例如map.get("user_name")要换成map.get("USER_NAME"),记住了!!
posted @ 2009-01-10 01:26 江湖 阅读(415) | 评论 (0)编辑 收藏

     摘要: 最近项目需要用到上传文件,找了个fileupload组件,写了几个类,记录如下: 1.上传操作配置类  1public class UpConfig {  2    private long max_size=10*1024*1024;    ...  阅读全文
posted @ 2009-01-10 01:15 江湖 阅读(348) | 评论 (0)编辑 收藏