狂奔 lion

自强不息

关于敏捷开发的疑问

学习了很多人捧为经典的ppp之后,我开始考虑在所参与的团队中采用敏捷开发的方式,除了结对编程,基本采用XP编程的方式。跌代计划,TDD,重构,积极沟通。然而在此过程中却遇到很多尴尬的问题,一个是团队中的人员经常流动,导致刚刚熟悉的开发环境,又要找新人代替;一个是团队中的成员水平参差不齐,难以达成一致的良好设计规范,也许又是不得不做一些硬性的规定。
这里最大的问题是:XP强调代码即设计,那就要求每个人都对代码的编写非常熟练,对团队中每个成员的编程水平要求很高,然而这和相对较少的项目经费,及短暂的项目周期难以协调。
更为可怕的是,项目中的人员职责不明,没有明确的负责人,而由没有软件开发和管理经验的人主导。

posted @ 2006-08-17 12:43 杨一 阅读(237) | 评论 (0)编辑 收藏

如何应用Hibernate在运行期获取属性的值

Hibernate根据配置文件从数据库中把关系型的数据以对象的形式挖掘出来,那么假如我有一个Table控件,可以放置展现任何的表结构,如何在运行期做到把数据载入呢?Hibernate已经把数据读成对象的形式,就注定没有JDBC一般灵活,为次可以通过编写如下的两个工具方法来实现:
import java.lang.reflect.Method;

/**
 * 获取指定bean的指定字段的值
 
*/
public class BeanUtils {
    
private BeanUtils(){}
    
    
/**
     * 根据beanName和列名字获取hql语句
     * 
@param beanName
     * 
@param columnNames
     * 
@return 以list形式返回数据的hql语句
     
*/
    
public static String getHql(String beanName, String[] columnNames){
        StringBuffer sb 
= new StringBuffer();
        sb.append(
"select new list(");
        StringBuffer columnString 
= new StringBuffer();
        
for(int i=0,len=columnNames.length;i<len;i++){
            columnString.append(
",");
            columnString.append(columnNames[i]);
        }
        sb.append(columnString.substring(
1));
        sb.append(
") from ");
        
if(Character.isUpperCase(beanName.charAt(0)))
            sb.append(beanName);
        
else
            sb.append(upperFirstChar(beanName));
        
return sb.toString();
    }
    
/**
     * 
@param bean 获取到的域对象
     * 
@param fieldName 欲获取值的字段名
     * 
@return 字段在当前bean封装下的值
     
*/
    
public static Object getFieldByName(Object bean, String fieldName){
        
try {
            Method m 
= bean.getClass().getMethod("get"+upperFirstChar(fieldName), null);
            
return m.invoke(bean, null);
        } 
catch (Exception e) {
            e.printStackTrace();
        }
        
return null;
    }
    
private static String upperFirstChar(String orig){
        
return Character.toUpperCase(orig.charAt(0)) + orig.substring(1);
    }
}
按照已经处理后,我们就可以既应用Hibernate对象访问的优点,又不损失字符串的灵活性,代码中应用了Hibernate的select特性及java的反射机制

posted @ 2006-08-04 13:39 杨一 阅读(486) | 评论 (0)编辑 收藏

Google建立与sourceforge, java.net匹敌的开源资源库

Google 为开源项目建立起了资源库. 这个google站点是google为推动开源发展做的又一努力!

Google在FAQ上说道, Google意识到对开源项目开发者而言,有多种的选择未尝不是一件好事。 这个开源资源库强调软件资源的储存,邮件列表讨论和bug追踪.

需要说明的是google资源对选择了具备一定的合适许可证的知名项目(比如sourceforge上的项目来提供下载)。站点采用SVN进行管理。

您对google的新举动有何高见呢?

posted @ 2006-08-03 15:05 杨一 阅读(600) | 评论 (1)编辑 收藏

Apache commons-Email中文问题的解决办法

Apache commons-email是对javamailAPI的一层封装,经封装后的发送邮件的代码变得极为简单,但这里有一个中文支持的小问题。
commons-email主要的封装类是Email类,这是一个抽象类,该框架给出了SimpleEmail的默认实现,但该实现并不支持中文,即使调用Email的setCharset也不起作用。
事实上,SimpleEmail调用了Email超类中的setContent方法来设置邮件内容(通过setMsg方法),而在设置内容时,又采用了默认的英文字符集,我们只要在代码中直接调用email类的setContent方法就可以支持中文了,但要注意setContent具备两个参数,第一个是内容对象,第二个则是内容类型,我们把第二个参数设置为:
SimpleEmail.TEXT_PLAIN + "; charset=utf-8", 即可。理由如下面源代码所示:
    public void setContent(Object aObject, String aContentType)
    {
          ......
            // set the charset if the input was properly formed
            String strMarker = "; charset=";
            int charsetPos = aContentType.toLowerCase().indexOf(strMarker);

            if (charsetPos != -1)
            {
                // find the next space (after the marker)
                charsetPos += strMarker.length();
                int intCharsetEnd =
                    aContentType.toLowerCase().indexOf(" ", charsetPos);

                if (intCharsetEnd != -1)
                {
                    this.charset =
                        aContentType.substring(charsetPos, intCharsetEnd);
                }
                else
                {
                    this.charset = aContentType.substring(charsetPos);
                }
            }
        }
    }
    即有一个文本解析的过程。

posted @ 2006-08-01 20:14 杨一 阅读(938) | 评论 (2)编辑 收藏

关于eclipse插件配置

    eclipse很麻烦的一点就是eclipse的频繁升级+IT技术人员追求最先进的技术+eclipse平台对插件不保证向下兼容,先在eclipse的官方网站http://www.eclipse.org提供了一个一站式服务的好办法,就是Callisto,这里面集成了图形设计器,WTP等大多数能想象到的功能,免去了我们诸多麻烦.3.2以后的eclipse必将更加美好!


posted @ 2006-07-11 20:00 杨一 阅读(410) | 评论 (2)编辑 收藏

仅列出标题
共6页: 上一页 1 2 3 4 5 6 
<2024年3月>
252627282912
3456789
10111213141516
17181920212223
24252627282930
31123456

导航

公告

本人在blogjava上发表的文章及随笔除特别声明外均为原创或翻译,作品受知识产权法保护并被授权遵从 知识分享协议:署名-非商业性使用-相同方式共享 欢迎转载,请在转载时注明作者姓名(杨一)及出处(www.blogjava.net/yangyi)
/////////////////////////////////////////
我的访问者

常用链接

留言簿(5)

随笔分类(55)

随笔档案(55)

相册

Java

其他技术

生活

最新随笔

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜

自强不息


用心 - 珍惜时间,勇于创造