`
Godlikeme
  • 浏览: 165446 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
项目中的一些问题, 系统考虑国际化版本, 采用resourceBundle加载资源文件, jstl <c:fmt message key=""/>,页面展示, 还包括对一些配置文件,代码中的字符串、异常处理啊这些,进行转义。 这些处理方式上到没有什么大问题,主要的问题出在由于最初对资源文件key,value没有一个整体的明确的定义,相应模块开发过程中自行定义了大量的key,value。 key的定义也没有一套规范,造成了key名字长度,大小写,格式的混乱。大量重复,不一致的类似命名存在。 而且修改起来也是很麻烦的事情,因为对key的引用是散乱在jsp,xml等文 ...
请大家不要忽略编码效率对生产效率的提高影响,有点心得,跟大家分享下。 细节决定成败-6sigma。 btw:请大家不要跟我讨论编码效率的重要性,我同意有很多事情更重要。      麻烦投入门贴的朋友给点建议,谢谢。 写程序 ...
最近在作项目中发现了一个问题,以前对update了解不深,特将此问题总结如下: 数据库db2v8,隔离级别cs 在测试update语句的时候发现: update A set a=1 where a=2; update A set a=1 where a in(select a from A where a=2); 单个session执行,两者的结果是一样的。 在并发情况下发现一些不同: 多做点数据保证真正并发,比如50w,无索引更新100条。 第一种情况: 1:update A set a=1 where a=2; 2:update A set a=3 where a=2; 先后以1, ...
项目缺人,项目经理肯定要争一争,不然苦了自己跟兄弟们,一个team怎么也要形成一个梯队,传帮带。都是新人,再多也没法整。 这些道理老板肯定明白,那就看你怎么动之以情,晓之以理了,呵呵。 老板考虑尽量控制成本,充分发挥新人成本优势。但肯定不希望项目做砸了,明确几个主要的潜在风险,适当的提出自己的想法,有理有据。 老板都想马儿跑,马儿又不吃草。
批处理是数据密集型逻辑。 基本步骤: 数据抓取, 数据组装, 数据处理, 保存数据 事务处理等复杂情况再补充
Test first: 先写好测试,再写代码写出来的代码较容易测试。 IOC: 消除依赖,降低模块相关性,消除主业务逻辑对具体业务逻辑的依赖,便于测试。 Mock Interface,DAO: 业务逻辑代码中dao相关部分设计成接口,使用mock进行测试,可以消除单元测试的数据库依赖,在一定程度上简化了单元测试的难度。 逻辑分离: 逻辑代码中主要几部分,数据准备,逻辑处理,后期数据存储。尽量把逻辑处理部分分离出来单独的方法,针对逻辑,而不是数据测试。
整个开发过程中,所有的coding工作在这个阶段根据需求进行验证。 痛苦哇,特别是别人的问题导致自己功能失效。
项目人员水平不等,分工协作。 主要的几个角色: 项目经理:负责项目的方方面面 技术主管:技术全面,负责整体技术框架,主要技术问题决策。 技术骨干:专攻具体技术,负责部分业务模块,带新人。 新手:一些,具体逻辑实现,胀活累活杂活。 项目中,总是能者多劳,得到的锻炼机会更多,提高就越快。 混了好多年依然技术一般,眼高手低的人也大有人在,也没办法委以重任。 虽然人员管理在近代企业管理越来越受到重视,但也仅此而已。人员的招聘,考核,培训各方面做的还很不够,能够形成有战斗力的团队,更多的要靠项目经理。 到一个好公司,不如找一个好项目,找一个好老大,真正能学到东西。
** * */ package study.puzzle.sample1; import java.util.*; import junit.framework.TestCase; /** * DOCUMENT ME! * * @author Godlikeme 2007-3-20 */ public class Algorithm1Test extends TestCase { public void testCompute() throws Exceptio ...
基于Spring框架开发过程中,会产生大量基于配置文件的注入依赖, 单元测试的过程中,由于不同的单元测试粒度,会造成大量测试依赖于同一批测试数据和测试配置文件,很容易就形成了一些基础测试类,提供基础的测试环境(测试数据和注入配置)。由此造成整个测试环境日趋混乱,生产配置和测试配置文件越来越多,其中的区别差异造成的问题难于解决,管理。
hibernate多个主键健值映射为联合主键,web Action处理中 从request中取出来多个键值是比较繁琐的事情, 有没有什么方式可以简化 处理这个问题。
刚开始基本上用到哪里读到哪里(深度搜索),把相关的也看看,不会太深入,慢慢熟悉的内容多了会整个穿起来看一遍(广度搜索),从整体上理解下。 每个开源项目建立一个学习工程,随时写一些测试代码,加深理解。 工具:eclipse,jar包加源代码。
软件设计主要考虑两方面复杂度问题:问题本身的复杂度,和解决问题方式(也可以归结为如何细分问题,考虑具体实现)的复杂度。在解决具体问题设计中会慢慢倾向于解决通用问题,实际上提高了解决问题方式的复杂度。
业务接口方法有业务含义,根业务紧耦合,需求变化(不一定是真的变了,可能是理解的问题)业务接口该变就要变,没什么说的。还有,不要尝试定义通用性(可扩展)业务接口,得不偿失。 业务接口只描述业务功能,不描述业务流程。业务流程中业务用业务接口来描述。具体开发实现的时候是用class还是interface,不能一概而论了,但我倾向于在原型设计的时候定出interface和流程的实现,每一个interface有一个最简单的实现类,保证流程能够跑得通,再由开发人员具体业务实现就相对清楚的。在并行开发的时候其他人“不需要”关心业务具体实现,做到“某种程度”的透明,如果团队比较大,就很必要了。 说到变更情况 ...
线程安全的重要思想就是,多线程并发不出问题。 什么时候多线程并发会出问题,存在临界资源,也就是有状态的公共资源。如果这些公共资源的访问是线程互斥的,就是线程安全的,如果不是,就是线程不安全的。 例如: Class A{ int temp; public void setTemp(int i){ temp =i; } public int getTemp(){ return temp; } temp还不算是类A的实例的有状态的公共资源,什么情况下是呢?如果多个线程访问一个类A的实例,所有类A内的存取temp的方法必须是synchronized才是线程安全的。 ...
Global site tag (gtag.js) - Google Analytics