??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲国产精品无码久久九九大片,亚洲AV网站在线观看,亚洲精品久久无码http://www.tkk7.com/matuobasyouca/category/51266.html敏捷、分布式、ALMq程自动化、企业应用架?/description>zh-cnTue, 22 May 2012 02:32:08 GMTTue, 22 May 2012 02:32:08 GMT60我们的用户体验真的这么差Q?/title><link>http://www.tkk7.com/matuobasyouca/archive/2012/05/22/378752.html</link><dc:creator>一酌散千忧</dc:creator><author>一酌散千忧</author><pubDate>Mon, 21 May 2012 21:02:00 GMT</pubDate><guid>http://www.tkk7.com/matuobasyouca/archive/2012/05/22/378752.html</guid><wfw:comment>http://www.tkk7.com/matuobasyouca/comments/378752.html</wfw:comment><comments>http://www.tkk7.com/matuobasyouca/archive/2012/05/22/378752.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/matuobasyouca/comments/commentRss/378752.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/matuobasyouca/services/trackbacks/378752.html</trackback:ping><description><![CDATA[<p><span style="font-family:宋体;Times New Roman";Times New Roman"">公司里有同事时常抱怨,目的用户体验太差,常常挨领导的骂。大安认ؓ是在用户体验的设计方面,公司人员的能力和l验都不_L。发牢骚的时候也会说Q如果公司能够请得v“淘宝”?/span>UI<span style="font-family:宋体;Times New Roman";Times New Roman"">设计师,׃的系l肯定会更上一层楼。我之前也一直认为如此,x们的设计是媄响项目体验的重要原因。最q被领导调动d助一个项目,产生了一些不一L体会?/span></p> <p><span style="font-family:宋体;Times New Roman";Times New Roman"">目背景Q一个新的品,型目Q纯开发h?/span>3-4<span style="font-family:宋体;Times New Roman";Times New Roman"">人,</span>2<span style="font-family:宋体;Times New Roman";Times New Roman"">名熟l开发h员,</span>1<span style="font-family:宋体;Times New Roman";Times New Roman"">名新手,偶尔会有协助人员。没有技术经理,目l理w负多个目Q对目q度兛_不Q部门经理会协助q行工作和进度管理。可以看到管理还是比较؜乱?/span></p> <p><span style="font-family:宋体;Times New Roman";Times New Roman"">׃目q度太慢Q领D求从我这边调一个熟lh员协助开发。我也基本了解他们的目状况Qؓ了不让我的hq去抓瞎Q我和他一起去了解目情况?/span></p> <p><span style="font-family:宋体;Times New Roman";Times New Roman"">目状况比较p糕Q介入项目时已经开发了一D|_保留的文档只有两份,一副数据库说明Q一份非常粗略的需求说明,而且q与开发进度不同步Q就是没有维护?/span></p> <p><span style="font-family:宋体;Times New Roman";Times New Roman"">我了解了一下项目目前的隑ֺQ开发h员和我反映一个是人员熟练E度的问题,二是需求变更的问题。我整体了解了一下项目目前的需求和设计Q以及进度。就挑了一个模块询问他们的变更情况Q这个模块是一个关键词匚w功能。结果是领导看了他们的页面之后,嫌信息量太少Q就要求提供一些更l化的数据展C。开发h员问我有什么意见,我就单讲了一下页面大概怎么构徏。其中有一个点Q是用于变更数据范围Q即查询的表变更Q我一开始觉得用下拉框可以,产生了一些意见。有人徏议分Z同子模块Q或?/span>tab<span style="font-family:宋体;Times New Roman";Times New Roman"">,或者分为多块ƈ列展C。我想了惻Iq他们讲了我认为几U方案的优点~点及适用范围?/span></p> <p> </p> <p style="margin-left:18.0pt;text-indent:-18.0pt;">1.<span style="font-family: 'Times New Roman'; font-size: 7pt; line-height: normal; ">       </span><span style="font-family:宋体;Times New Roman";Times New Roman"">多块q行展示Q?/span></p> <p style="margin-left:21.0pt"><span style="font-family:宋体;Times New Roman";Times New Roman"">多个不同范围的数据在同一面中分Z同区域以相同形式展示。原因是׃多块数据之间有一定的兌因果关系Q或值得Ҏ。适用范围Q如购物|站中的多个物品比较?/span></p> <p style="margin-left:18.0pt;text-indent:-18.0pt;">2.<span style="font-family: 'Times New Roman'; font-size: 7pt; line-height: normal; ">       </span>Tab<span style="font-family:宋体;Times New Roman";Times New Roman"">:</span></p> <p style="margin-left:21.0pt"><span style="font-family:宋体;Times New Roman";Times New Roman"">同一个页面的多个</span>tab<span style="font-family:宋体;Times New Roman";Times New Roman"">,表示多个</span>tab<span style="font-family:宋体;Times New Roman";Times New Roman"">中的数据可能在一定的领域概念之下有一定的兌Q但兌度不强。因?/span>tab<span style="font-family:宋体;Times New Roman";Times New Roman"">|重要的是一个同步工作的状态,?/span>A tab<span style="font-family:宋体;Times New Roman";Times New Roman"">|看一定信息,会打开</span>B tab<span style="font-family:宋体;Times New Roman";Times New Roman"">|看其他信息,中途还会切?/span>A tab<span style="font-family:宋体;Times New Roman";Times New Roman"">c适用范围Q如邮箱中,收g和草稿?/span></p> <p style="margin-left:18.0pt;text-indent:-18.0pt;">3.<span style="font-family: 'Times New Roman'; font-size: 7pt; line-height: normal; ">       </span><span style="font-family:宋体;Times New Roman";Times New Roman"">下拉?/span></p> <p style="margin-left:21.0pt"><span style="font-family:宋体;Times New Roman";Times New Roman"">下拉框作为查询条件的一部分Q常用于有着常规或固定的可选择内容中(如性别Q月份)Q更多是以过滤的形态出玎ͼ即下拉框更适合针对某表的某个字D过滤,如果针对的是数据范围或是对用户需要直观了解的重要业务条g则不太合适。适用范围Q如在考试成W中用下拉框qo“男女”?#8220;及格不及?#8221;?/span></p> <p style="margin-left:18.0pt;text-indent:-18.0pt;">4.<span style="font-family: 'Times New Roman'; font-size: 7pt; line-height: normal; ">       </span><span style="font-family:宋体;Times New Roman";Times New Roman"">单选框</span></p> <p style="margin-left:21.0pt"><span style="font-family:宋体;Times New Roman";Times New Roman"">单选框与下拉框的作用范围相|但是不同之处在于被选项全部展示Q目的在于能够让用户清楚的了解当前数据显C的实际范围或条Ӟ以及备选的其他范围或条件。更适用于选项与实际业务及当前展示数据关系重要Q不同选项可能会引发用L不同行ؓ。适用范围Q如银行pȝ昄了当前用户下l定多个帐号Ӟ使用单选框?/span></p> <p style="margin-left:21.0pt"> </p> <p><span style="font-family:宋体;Times New Roman";Times New Roman"">l过上述讨论Q我们仔l分析了q个模块中用L实际需求,以及可能后箋操作Q最l选择的单选框的方案?/span></p> <p><span style="font-family:宋体;Times New Roman";Times New Roman"">目前q没有后l,但是我想我们Z用户真是需求的挖掘和后l操作的认真分析Q会让我们在与领D行需求讨论的时候有更加充分合理的依据?/span></p> <p><span style="font-family:宋体;Times New Roman";Times New Roman"">回来之后我又看了看淘宝的搜烦面Q比如就搜烦“鞋子”来讲Q将品牌q栏讄为单选和下拉是完全不同的效果,而确定方案的理由则是对于用户的需求和实际行ؓ的深入研I。这个应该是需求分析和调研的结果。将搜烦条g?/span>tag<span style="font-family:宋体;Times New Roman";Times New Roman"">的Ş式标注于面上,q且可以直接点击</span>X<span style="font-family:宋体;Times New Roman";Times New Roman"">按钮q行删除Q我觉得更加可以們֐为用户体验。满_ƈ充分考虑了用户实际需求的是好的需求分析,能够化ƈ引导用户行ؓ的是好的用户体验?/span></p> <p><span style="font-family:宋体;Times New Roman";Times New Roman"">当我们面临的pȝ感觉非常隄的时候,往往q时候ƈ非是用户体验差,我们应该讨的是我们对用户需求有没有好好挖掘Q做出来的是不是用户惌、用戯用的pȝ?/span></p><img src ="http://www.tkk7.com/matuobasyouca/aggbug/378752.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/matuobasyouca/" target="_blank">一酌散千忧</a> 2012-05-22 05:02 <a href="http://www.tkk7.com/matuobasyouca/archive/2012/05/22/378752.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Zookeeper的学习ȝhttp://www.tkk7.com/matuobasyouca/archive/2012/05/15/378164.html一酌散千忧一酌散千忧Tue, 15 May 2012 03:02:00 GMThttp://www.tkk7.com/matuobasyouca/archive/2012/05/15/378164.htmlhttp://www.tkk7.com/matuobasyouca/comments/378164.htmlhttp://www.tkk7.com/matuobasyouca/archive/2012/05/15/378164.html#Feedback0http://www.tkk7.com/matuobasyouca/comments/commentRss/378164.htmlhttp://www.tkk7.com/matuobasyouca/services/trackbacks/378164.html

Zookeeper的核心概念:

ZNode

Znode是核心l构QZookeeper服务中是由大量的Znode构成。Znode一般是由客L建立和修改,作ؓ信息或标志的载体Q甚xw就是标志?/span>

Znode可以讄为持久(PERSISTENTQ或临时QEPHEMERALQ,区别在于临时的节点若断开q接后就自动删除。徏立节Ҏ可选择是否使用序列号命名(SEQUENTIALQ,若启用则会自动在节点名后加入唯一序列~号?/span>

Session

作ؓ客户端和Zookeeper服务之间交互的凭证?/span>

Watch

当客L对节点信息进行查询操作之后,可以选择是否讄一个Watch。其作用是当本ơ查询的数据在服务器端发生变化之后,会对讄Watch的客L发送通知。一ơ发送之后,将删除该WatchQ以后的变更或不再设|Watch则不会通知?/span>

ACLs

节点的权限限制用ACLQ如增删Ҏ操作?/span>

Zookeeper的服务器安装Q?/span>

1?/span>下蝲对应版本Ltar.gz文g

2?/span>使用 tar xzvf zookeeper-3.4.2.tar.gz -C ./ 解压

3?/span>讄Q将conf/zoo.example.cfg复制到conf/zoo.cfg或者手动徏立一个新的?/span>

4?/span>启动Zookeeper服务Qbin/zkServer.sh start

5?/span>启动客户端连接:bin/zkCli.sh -server 127.0.0.1:2181Q此处在本机Q且使用了默认端口,且在Java环境中)

6?/span>使用命oQls、get、set{?/span>

7?/span>关闭Zookeeper服务Qbin/zkServer.sh stop

Zookeeper代码~写Q?/span>

代码~写部分比较单,因ؓ暴露的接口很,主要复杂在于目如何使用节点以及节点信息?/span>

启动Zookeeper服务之后Q客L代码q行节点的增删,Watch的设|,内容的改查等?/span>

此处查看官方的《Programming with ZooKeeper - A basic tutorial》部分,当中举了两个例子来模拟分布式pȝ的应用?/span>

代码基本没有问题Q唯一需要注意的是Q若之间按照原版q行调试Ӟ有可能在调用

 Stat s = zk.exists(root, false);

q句代码时会出现一个异常,当中包括“KeeperErrorCode = ConnectionLoss for”?/span>

q个问题引v的原因可以看一下代?/span>

                System.out.println("Starting ZK:");
                zk 
= new ZooKeeper(address, 3000this);
                mutex 
= new Integer(-1);
                System.out.println(
"Finished starting ZK: " + zk);

最后一行有打印出Zookeeper目前的信息,若未修改的原代码Q此处的State应当是CONECTING。连接中的时候去验证是否存在节点会报错。解决的Ҏ也很单,是{到Zookeeper客户端以及完全连接上服务器,State为CONECTED之后再进行其他操作。给Z码示例:

// 使用了倒数计数Q只需要计C?/span>
private CountDownLatch connectedSignal = new CountDownLatch(1); 
SyncPrimitive(String address) {
    
if(zk == null){
        
try {
            System.out.println(
"Starting ZK:");
            zk 
= new ZooKeeper(address, 3000this);
            mutex 
= new Integer(-1);
            connectedSignal.await(); 
// {待q接完成
            System.out.println("Finished starting ZK: " + zk);
        } 
catch (IOException e) {
            System.out.println(e.toString());
            zk 
= null;
        } 
catch (InterruptedException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    
//else mutex = new Integer(-1);
}
synchronized public void process(WatchedEvent event) {
    
// 此处讄在Watch中会在状态变化后触发事g
    if (event.getState() == KeeperState.SyncConnected) {
        connectedSignal.countDown();
// 倒数-1
    }
    
        
synchronized (mutex) {
            
//System.out.println("Process: " + event.getType());
            mutex.notify();
        }
}

q样可以正运行代码了?/span>

Zookeeper的应用场景及方式Q?/span>

此处是ؓ引用Q原地址为(http://rdc.taobao.com/team/jm/archives/1232 Q?/span>

ZooKeeper是一个高可用的分布式数据理与系l协调框架。基于对Paxos法的实玎ͼ使该框架保证了分布式环境中数据的Z致性,也正是基于这LҎ,使得zookeeper能够应用于很多场景。网上对zk的用场景也有不介l,本文结合作者n边的目例子Q系l的对zk的用场景进行归cMl?nbsp;值得注意的是Qzkq不是生来就些场景设计,都是后来众多开发者根据框架的Ҏ,摸烦出来的典型用方法。因此,也非常欢q你分n你在ZK使用上的奇技淫y?/span>

场景cd

典型场景描述QZKҎ,使用ҎQ?/span>

应用中的具体使用

数据发布与订?/span>

发布与订阅即所谓的配置理Q顾名思义是数据发布到zk节点上,供订阅者动态获取数据,实现配置信息的集中式理和动态更新。例如全局的配|信息,地址列表{就非常适合使用?/span>

1. 索引信息和集中机器节点状态存攑֜zk的一些指定节点,供各个客L订阅使用?. pȝ日志Q经q处理后的)存储Q这些日志通常2-3天后被清除?nbsp;

3. 应用中用到的一些配|信息集中管理,在应用启动的时候主动来获取一ơ,q且在节点上注册一个WatcherQ以后每ơ配|有更新Q实旉知到应用,获取最新配|信息?/span>

4. 业务逻辑中需要用到的一些全局变量Q比如一些消息中间g的消息队列通常有个offsetQ这个offset存放在zk上,q样集群中每个发送者都能知道当前的发送进度?/span>

5. pȝ中有些信息需要动态获取,q且q会存在人工手动M改这个信息。以前通常是暴露出接口Q例如JMX接口Q有了zk后,只要这些信息存攑ֈzk节点上即可?/span>

Name Service

q个主要是作为分布式命名服务Q通过调用zk的create node apiQ能够很Ҏ创徏一个全局唯一的pathQ这个path可以作Z个名U?/span>

 

分布通知/协调

ZooKeeper中特有watcher注册与异步通知机制Q能够很好的实现分布式环境下不同pȝ之间的通知与协调,实现Ҏ据变更的实时处理。用方法通常是不同系l都对ZK上同一个znodeq行注册Q监听znode的变化(包括znode本n内容及子节点的)Q其中一个系lupdate了znodeQ那么另一个系l能够收到通知Qƈ作出相应处理?/span>

1. 另一U心x机Ӟ系l和被检系l之间ƈ不直接关联v来,而是通过zk上某个节点关联,大大减少pȝ耦合?. 另一U系l调度模式:某系l有控制台和推送系l两部分l成Q控制台的职责是控制推送系l进行相应的推送工作。管理h员在控制C的一些操作,实际上是修改了ZK上某些节点的状态,而zk把q些变化通知l他们注册Watcher的客LQ即推送系l,于是Q作出相应的推送Q务?nbsp;

3. 另一U工作汇报模式:一些类gd分发pȝQ子d启动后,到zk来注册一个时节点,q且定时自qq度q行汇报Q将q度写回q个临时节点Q,q样d理者就能够实时知道dq度?/span>

MQ用zookeeper来进行分布式通知和协调能够大大降低系l之间的耦合?/span>

分布式锁

分布式锁Q这个主要得益于ZooKeeper为我们保证了数据的强一致性,即用户只要完全相信每时每刻,zk集群中Q意节点(一个zk serverQ上的相同znode的数据是一定是相同的。锁服务可以分ؓ两类Q?/span>一个是保持独占Q另一个是控制时序?/span> 

所谓保持独占,是所有试图来获取q个锁的客户端,最l只有一个可以成功获得这把锁。通常的做法是把zk上的一个znode看作是一把锁Q通过create znode的方式来实现。所有客L都去创徏 /distribute_lock 节点Q最l成功创建的那个客户端也x有了q把锁?/span>

控制时序Q就是所有视图来获取q个锁的客户端,最l都是会被安排执行,只是有个全局时序了。做法和上面基本cMQ只是这?nbsp;/distribute_lock 已经预先存在Q客L在它下面创徏临时有序节点Q这个可以通过节点的属性控ӞCreateMode.EPHEMERAL_SEQUENTIAL来指定)。Zk的父节点Q?distribute_lockQ维持一份sequence,保证子节点创建的时序性,从而也形成了每个客L的全局时序?/span>

 

集群理

1. 集群机器监控Q这通常用于那种寚w中机器状态,机器在线率有较高要求的场景,能够快速对集群中机器变化作出响应。这L场景中,往往有一个监控系l,实时集机器是否存zR过ȝ做法通常是:监控pȝ通过某种手段Q比如pingQ定时检每个机器,或者每个机器自己定时向监控pȝ汇报“我还zȝ”?nbsp;q种做法可行Q但是存在两个比较明昄问题Q?. 集群中机器有变动的时候,牵连修改的东西比较多?. 有一定的延时?nbsp;

利用ZooKeeper有两个特性,可以实时另一U集机器存zL监控系l:a. 客户端在节点 x 上注册一个WatcherQ那么如?nbsp;x 的子节点变化了,会通知该客L。b. 创徏EPHEMERALcd的节点,一旦客L和服务器的会话结束或q期Q那么该节点׃消失?/span>

例如Q监控系l在 /clusterServers 节点上注册一个WatcherQ以后每动态加机器Q那么就往 /clusterServers 下创Z?nbsp;EPHEMERALcd的节点:/clusterServers/{hostname}. q样Q监控系l就能够实时知道机器的增减情况,至于后箋处理是监控pȝ的业务了?/span>
2. Master选D则是zookeeper中最为经典的使用场景了?/span>

在分布式环境中,相同的业务应用分布在不同的机器上Q有些业务逻辑Q例如一些耗时的计,|络I/O处理Q,往往只需要让整个集群中的某一台机器进行执行,其余机器可以׃nq个l果Q这样可以大大减重复劳动,提高性能Q于是这个master选D便是q种场景下的到的主要问题?/span>

利用ZooKeeper的强一致性,能够保证在分布式高ƈ发情况下节点创徏的全局唯一性,卻I同时有多个客Lh创徏 /currentMaster 节点Q最l一定只有一个客Lh能够创徏成功?/span>

利用q个Ҏ,p很轻易的在分布式环境中进行集选取了?/span>

另外Q这U场景演化一下,是动态Master选D。这p用到 EPHEMERAL_SEQUENTIALcd节点的特性了?/span>

上文中提刎ͼ所有客L创徏hQ最l只有一个能够创建成功。在q里E微变化下,是允许所有请求都能够创徏成功Q但是得有个创徏序Q于是所有的h最l在ZK上创建结果的一U可能情冉|q样Q?nbsp;/currentMaster/{sessionId}-1 , /currentMaster/{sessionId}-2 , /currentMaster/{sessionId}-3 ….. 每次选取序列h的那个机器作ؓMasterQ如果这个机器挂了,׃他创建的节点会马上小Ӟ那么之后最的那个机器是Master了?/span>

1. 在搜索系l中Q如果集中每个机器都生成一份全量烦引,不仅耗时Q而且不能保证彼此之间索引数据一致。因此让集群中的Master来进行全量烦引的生成Q然后同步到集群中其它机器?. 另外QMaster选D的容灾措施是Q可以随时进行手动指定masterQ就是说应用在zk在无法获取master信息Ӟ可以通过比如http方式Q向一个地方获取master?/span>

分布式队?/span>

队列斚wQ我目前感觉有两U,一U是常规的先q先出队列,另一U是要等到队列成员聚齐之后的才统一按序执行。对于第二种先进先出队列Q和分布式锁服务中的控制时序场景基本原理一_q里不再赘述?nbsp;

W二U队列其实是在FIFO队列的基上作了一个增强。通常可以?nbsp;/queue q个znode下预先徏立一?queue/num 节点Qƈ且赋gؓnQ或者直接给/queue赋值nQ,表示队列大小Q之后每ơ有队列成员加入后,判断下是否已经到达队列大小Q决定是否可以开始执行了。这U用法的典型场景是,分布式环境中Q一个大dTask AQ需要在很多子Q务完成(或条件就l)情况下才能进行。这个时候,凡是其中一个子d完成Q就l)Q那么就?nbsp;/taskList 下徏立自q临时时序节点QCreateMode.EPHEMERAL_SEQUENTIALQ,?nbsp;/taskList 发现自己下面的子节点满指定个数Q就可以q行下一步按序进行处理了?/span>

 



一酌散千忧 2012-05-15 11:02 发表评论
]]>
maven自动化测试环境搭?/title><link>http://www.tkk7.com/matuobasyouca/archive/2012/04/05/373359.html</link><dc:creator>一酌散千忧</dc:creator><author>一酌散千忧</author><pubDate>Thu, 05 Apr 2012 03:26:00 GMT</pubDate><guid>http://www.tkk7.com/matuobasyouca/archive/2012/04/05/373359.html</guid><wfw:comment>http://www.tkk7.com/matuobasyouca/comments/373359.html</wfw:comment><comments>http://www.tkk7.com/matuobasyouca/archive/2012/04/05/373359.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/matuobasyouca/comments/commentRss/373359.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/matuobasyouca/services/trackbacks/373359.html</trackback:ping><description><![CDATA[<p><span style="font-family: 宋体; ">环境背景Q?/span></p> <p><span style="font-family:宋体;Times New Roman";Times New Roman"">我作为项目经理和技术架构管理h员负责公怸条生产线。讨Z后,首席架构师希望我们能够实?/span>TDD<span style="font-family:宋体;Times New Roman";Times New Roman"">。在实施</span>TDD<span style="font-family:宋体;Times New Roman";Times New Roman"">的过E中Q设计实施过E的整体思\是Q单元测试用例文?/span> - <span style="font-family:宋体;Times New Roman";Times New Roman"">实施单元试</span> - <span style="font-family:宋体;Times New Roman";Times New Roman"">实施业务代码</span> – <span style="font-family:宋体;Times New Roman";Times New Roman"">修改业务代码逻辑。实施h员需要参与每个环节,按照规范~写单元试用例文档。单元测试我们按照模块(模块与h员基本没有重合)划分包(</span>suite<span style="font-family:宋体;Times New Roman";Times New Roman"">Q,保证实施h不会产生q扰。。技术架构决定采用:</span>maven<span style="font-family:宋体;Times New Roman";Times New Roman"">Q?/span>junit<span style="font-family:宋体;Times New Roman";Times New Roman"">Q?/span>svn<span style="font-family: 宋体;Times New Roman";Times New Roman"">?/span></p> <p> </p> <p><span style="font-family:宋体;Times New Roman";Times New Roman"">技术背景:</span></p> <p><span style="font-family:宋体;Times New Roman";Times New Roman"">技术架构设计上Q我们封装了</span>dao<span style="font-family:宋体;Times New Roman";Times New Roman"">层的实现Q所以实施h员基本无需涉及</span>dao<span style="font-family:宋体;Times New Roman";Times New Roman"">层的开发。服务层我们采用?/span>JAX-RS<span style="font-family:宋体;Times New Roman";Times New Roman"">的服务规范,对外开发服务接口?/span></p> <p><span style="font-family:宋体;Times New Roman";Times New Roman"">在测试覆盖率斚wQ我们基本不要求?/span>dao<span style="font-family:宋体;Times New Roman";Times New Roman"">层的单元试Q但要求在服务层的单元测试达?/span>100%<span style="font-family:宋体;Times New Roman";Times New Roman"">。由于服务层?/span>Restful WS<span style="font-family:宋体;Times New Roman";Times New Roman"">的模式,所以我们采用了模拟</span>HTTP<span style="font-family:宋体;Times New Roman";Times New Roman"">h的方式在试服务层?/span></p> <p><span style="font-family:宋体;Times New Roman";Times New Roman"">׃需要模?/span>HTTP<span style="font-family:宋体;Times New Roman";Times New Roman"">的请求,所以我们在单元试中采用了</span>jetty<span style="font-family:宋体;Times New Roman";Times New Roman"">作ؓ内嵌服务器,单元试开始时同一启动Q完成后关闭?/span></p> <p> </p> <p><span style="font-family:宋体;Times New Roman";Times New Roman"">实施q程Q?/span></p> <p><span style="font-family:宋体;Times New Roman";Times New Roman"">开发过E中Q实际实施的时候发C个问题,对于试数据的管理问题。即试当中需要一定的数据环境来验证业务逻辑。这个数据环境如何徏立?</span></p> <p> </p> <p><span style="font-family:宋体;Times New Roman";Times New Roman"">Ҏ一Q?/span>dbunit<span style="font-family:宋体;Times New Roman";Times New Roman"">?/span>hsqldb<span style="font-family:宋体;Times New Roman";Times New Roman"">。在试启动旉建数据环境?/span></p> <p><span style="font-family:宋体;Times New Roman";Times New Roman"">否决Q原因:</span></p> <p>1.<span style="font-family:宋体;Times New Roman";Times New Roman"">与实际运行环境差异较大?/span></p> <p>2.<span style="font-family:宋体;Times New Roman";Times New Roman"">反复重徏数据环境Q效率上有缺失?/span></p> <p>3.<span style="font-family:宋体;Times New Roman";Times New Roman"">技术架构增加,学习和维护曲U较大?/span></p> <p> </p> <p><span style="font-family:宋体;Times New Roman";Times New Roman"">讨论后决定?/span></p> <p><span style="font-family:宋体;Times New Roman";Times New Roman"">Ҏ二,独立Z套测试数据库Q完整数据环境。考虑到增删改与查询的冲突Q制定默认规则,?/span>id<span style="font-family:宋体;Times New Roman";Times New Roman"">?/span>20<span style="font-family:宋体;Times New Roman";Times New Roman"">之内的不允许q行M改动。以量隔离增删改的影响?/span></p> <p> </p> <p><span style="font-family:宋体;Times New Roman";Times New Roman"">针对Ҏ二,有一个较大的问题Q如何在开发过E中自由的切换数据库配置呢?׃我们q是用了</span>Hudson<span style="font-family:宋体;Times New Roman";Times New Roman"">作ؓ</span>CI<span style="font-family:宋体;Times New Roman";Times New Roman"">服务器,q要考虑到打包的q程。整体考虑之后Q有两个步骤需要注意:</span></p> <p style="margin-left:21.0pt;text-indent:-21.0pt;">一?span style="font-family:宋体;Times New Roman";Times New Roman"">开发过E。开发过E中Q我们将配置直接指向试数据库?/span></p> <p style="margin-left:21.0pt;text-indent:-21.0pt;">二?span style="font-family:宋体;Times New Roman";Times New Roman"">打包q程。用了</span>maven<span style="font-family:宋体;Times New Roman";Times New Roman"">Q存在单元测试配|与最l品配|的冲突?/span></p> <p><span style="font-family:宋体;Times New Roman";Times New Roman"">所以最l问题的焦点集中在打包过E的</span>maven<span style="font-family:宋体;Times New Roman";Times New Roman"">配置Ҏ?/span></p> <p> </p> <p><span style="font-family:宋体;Times New Roman";Times New Roman"">搜烦之后比较好的资料?/span></p> <p>MAVEN:<span style="font-family:宋体;Times New Roman";Times New Roman"">如何为开发和生环境建立不同的配|文?/span> --<span style="font-family:宋体;Times New Roman";Times New Roman"">我的z方?/span></p> <p><span style="font-family:宋体;Times New Roman";Times New Roman"">Q?/span><a href="http://www.tkk7.com/scud/archive/2010/10/27/336326.html">http://www.tkk7.com/scud/archive/2010/10/27/336326.html</a><span style="font-family:宋体;Times New Roman";Times New Roman"">Q?/span></p> <p><span style="font-family:宋体;Times New Roman";Times New Roman"">q篇博客是介l在</span>maven <span style="font-family:宋体;Times New Roman";Times New Roman"">中?/span>mvn package -P test <span style="font-family:宋体;Times New Roman";Times New Roman"">q样的自定义</span>profile<span style="font-family:宋体;Times New Roman";Times New Roman"">来实现的。这h可行的,但是?/span>Hudson<span style="font-family:宋体;Times New Roman";Times New Roman"">中无法实C条命令切换两套配|?/span></p> <p><span style="font-family:宋体;Times New Roman";Times New Roman"">于是l箋LQ最l在</span>maven<span style="font-family:宋体;Times New Roman";Times New Roman"">的官方网站找到?/span>Building For Different Environments with Maven 2<span style="font-family:宋体;Times New Roman";Times New Roman"">》(</span><a >http://maven.apache.org/guides/mini/guide-building-for-different-environments.html</a><span style="font-family:宋体;Times New Roman";Times New Roman"">Q看完文章之后发玎ͼ实际</span>maven<span style="font-family:宋体;Times New Roman";Times New Roman"">提供了一个非常好的插?/span>maven-antrun-plugin<span style="font-family:宋体;Times New Roman";Times New Roman"">Q以实现某些</span>ant<span style="font-family:宋体;Times New Roman";Times New Roman"">的功能。此处还需要了解的知识是</span>maven<span style="font-family:宋体;Times New Roman";Times New Roman"">的构建生命周期标准(</span>http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html<span style="font-family:宋体;Times New Roman";Times New Roman"">Q。基于上qC个知识点Q我们制定出如下ҎQ?strong>在项目中建立试配置目录及品配|目录,?/strong></span><strong>maven</strong><strong><span style="font-family:宋体;Times New Roman";Times New Roman"">?/span>package</strong><strong><span style="font-family:宋体;Times New Roman";Times New Roman"">阶段开始前Q都使用试配置Q运行集成测试,完成?/span>package</strong><strong><span style="font-family:宋体;Times New Roman";Times New Roman"">阶段前将产品配置覆盖x包文件夹内,然后q行打包</span></strong><span style="font-family:宋体;Times New Roman";Times New Roman"">。思\是q样Q下面脓?/span>pom<span style="font-family:宋体;Times New Roman";Times New Roman"">文g的关键部分?/span></p> <p> </p> <p> </p> <p>POM.xml</p> <p><!—profile <span style="font-family:宋体;Times New Roman";Times New Roman"">节点定义覆盖文g的方式内?/span> --></p> <p>       <profiles></p> <p>              <profile></p> <p>                     <id>product</id></p> <p>                     <build></p> <p>                            <plugins></p> <p>                                   <plugin></p> <p>                                          <artifactId>maven-antrun-plugin</artifactId></p> <p>                                          <executions></p> <p>                                                 <execution></p> <p>                                                        <id>pre_product</id></p> <p>                                                        <phase>prepare-package</phase></p> <p>                                                        <goals></p> <p>                                                               <goal>run</goal></p> <p>                                                        </goals></p> <p>                                                        <configuration></p> <p><!—<span style="font-family:宋体;Times New Roman";Times New Roman"">此处?/span>ant<span style="font-family:宋体;Times New Roman";Times New Roman"">的Q务相?/span> --></p> <p>                                                               <tasks></p> <p>                                                                      <delete file="${project.build.outputDirectory}/spring/dataSourceContext.xml" /></p> <p>                                                                      <delete file="${project.build.outputDirectory}/log4j.properties" /></p> <p>                                                                      <copy file="src/product/assembly/log4j.properties" tofile="${project.build.outputDirectory}/log4j.properties" /></p> <p>                                                                      <copy file="src/product/assembly/spring/dataSourceContext.xml" tofile="${project.build.outputDirectory}/spring/dataSourceContext.xml" /></p> <p>                                                               </tasks></p> <p>                                                        </configuration></p> <p>                                                 </execution></p> <p>                                          </executions></p> <p>                                   </plugin></p> <p>                            </plugins></p> <p>                     </build></p> <p>              </profile></p> <p>       </profiles></p> <p> </p> <p><!—<span style="font-family:宋体;Times New Roman";Times New Roman"">构徏q程</span> --></p> <p>       <build></p> <p style="text-indent:21.0pt"><!—<span style="font-family:宋体;Times New Roman";Times New Roman"">指定资源目录</span> --></p> <p>              <resources></p> <p>                     <resource></p> <p>                            <directory>src/test/resources</directory></p> <p>                            <includes></p> <p>                                   <include>**/*</include></p> <p>                            </includes></p> <p>                     </resource></p> <p>                     <resource></p> <p>                            <directory>src/test/assembly</directory></p> <p>                            <includes></p> <p>                                   <include>**/*</include></p> <p>                            </includes></p> <p>                     </resource></p> <p>              </resources></p> <p> </p> <p>              <finalName>po</finalName></p> <p> </p> <p style="margin-left:21.0pt;text-indent:21.0pt"><!—<span style="font-family:宋体;Times New Roman";Times New Roman"">指定集成试配置</span> --></p> <p>              <plugins></p> <p>                     <plugin></p> <p>                            <groupId>org.apache.maven.plugins</groupId></p> <p>                            <artifactId>maven-surefire-plugin</artifactId></p> <p>                            <version>2.4.3</version></p> <p>                            <configuration></p> <p>                                   <junitArtifactName>junit:junit</junitArtifactName></p> <p>                                   <forkMode>once</forkMode></p> <p>                            </configuration></p> <p>                            <executions></p> <p>                                   <execution></p> <p>                                          <id>default-test</id></p> <p>                                          <phase>integration-test</phase></p> <p>                                          <goals></p> <p>                                                 <goal>test</goal></p> <p>                                          </goals></p> <p>                                          <configuration></p> <p>                                                 <skip>false</skip></p> <p>                                                 <includes></p> <p>                                                        <include>**/*TestSuitex.java</include></p> <p>                                                 </includes></p> <p>                                          </configuration></p> <p>                                   </execution></p> <p>                            </executions></p> <p>                     </plugin></p> <p>              </plugins></p> <p>       </build></p><img src ="http://www.tkk7.com/matuobasyouca/aggbug/373359.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/matuobasyouca/" target="_blank">一酌散千忧</a> 2012-04-05 11:26 <a href="http://www.tkk7.com/matuobasyouca/archive/2012/04/05/373359.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>企业技术体pL构徏?/title><link>http://www.tkk7.com/matuobasyouca/archive/2012/03/29/372996.html</link><dc:creator>一酌散千忧</dc:creator><author>一酌散千忧</author><pubDate>Thu, 29 Mar 2012 08:27:00 GMT</pubDate><guid>http://www.tkk7.com/matuobasyouca/archive/2012/03/29/372996.html</guid><wfw:comment>http://www.tkk7.com/matuobasyouca/comments/372996.html</wfw:comment><comments>http://www.tkk7.com/matuobasyouca/archive/2012/03/29/372996.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/matuobasyouca/comments/commentRss/372996.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/matuobasyouca/services/trackbacks/372996.html</trackback:ping><description><![CDATA[<div style="text-align: center;"></div> <p align="left" style="text-align:left;text-indent:24.0pt;"><span style="font-size: 12.0pt;font-family:宋体;Times New Roman";Times New Roman";">软g企业的技术体pL构包括对软g产品本n及生产过E、Y件生产环境及生者的理和支持,此架构应当基于下列五基之上Q?/span></p> <p align="left" style="margin-left:42.0pt;text-align:left; text-indent:-21.0pt;"><span style="font-size:12.0pt;font-family:Wingdings;">l</span> <span style="font-size:12.0pt;font-family:宋体;">开发技术架?/span></p> <p align="left" style="margin-left:42.0pt;text-align:left; text-indent:-21.0pt;"><span style="font-size:12.0pt;font-family:Wingdings;">l</span> <span style="font-size:12.0pt;font-family:宋体;">开发环境架?/span></p> <p align="left" style="margin-left:42.0pt;text-align:left; text-indent:-21.0pt;"><span style="font-size:12.0pt;font-family:Wingdings;">l</span> <span style="font-size:12.0pt;font-family:宋体;">q程理架构</span></p> <p align="left" style="margin-left:42.0pt;text-align:left; text-indent:-21.0pt;"><span style="font-size:12.0pt;font-family:Wingdings;">l</span> <span style="font-size:12.0pt;font-family:宋体;">企业产品架构</span></p> <p align="left" style="margin-left:42.0pt;text-align:left; text-indent:-21.0pt;"><span style="font-size:12.0pt;font-family:Wingdings;">l</span> <span style="font-size:12.0pt;font-family:宋体;">企业Zg架构</span></p> <p align="left" style="text-align:left;text-indent:24.0pt;"><span style="font-size: 12.0pt;font-family:宋体;Times New Roman";Times New Roman";">下面详细介绍各项架构的内容及特点?/span></p> <p align="left" style="text-align:left;text-indent:24.0pt;"> </p> <p align="left" style="text-align:left;"> </p> <p align="left" style="text-align:left;"><strong><span style="font-size:14.0pt;font-family: 宋体;Times New Roman";Times New Roman";">开发技术架?/span></strong><strong></strong></p> <p align="left" style="text-align:left;text-indent:24.0pt;"><span style="font-size: 12.0pt;font-family:宋体;">开发技术架构作Z个Y件企业的基石Q包括可复用的架构组件、公用的基础代码库等。开发技术框架应当在一个良好的q程理之下Q严格的质量理与实用性检查,q且鼓励普通技术h员的参与?/span></p> <p align="left" style="text-align:left;text-indent:24.0pt;"><span style="font-size:12.0pt;font-family:宋体;">1.</span><span style="font-size:12.0pt;font-family:宋体;">建立技术架构仓库标准体pMl护模式。徏议用MAVEN作ؓ所有开发技术(包括架构预研与实际项目开发)的基目理工具Q实施严格的质量理和持l集成?/span></p> <p align="left" style="text-align:left;text-indent:24.0pt;"><span style="font-size:12.0pt;font-family:宋体;">2.</span><span style="font-size:12.0pt;font-family:宋体;">选拔l徏高素质的架构师队伍,q且鼓励技术h员参与到技术架构仓库的构徏和维护?/span></p> <p align="left" style="text-align:left;text-indent:24.0pt;"><span style="font-size:12.0pt;font-family:宋体;">3.</span><span style="font-size:12.0pt;font-family:宋体;">加强技术架构实用性与适用性的查与攚w?/span></p> <p align="left" style="text-align:left;text-indent:24.0pt;"><span style="font-size:12.0pt;font-family:宋体;">4.</span><span style="font-size:12.0pt;font-family:宋体;">架构q营模式的考察Q技术架构的改进与预研。技术架构的预研模式比较复杂Q多个部门中多个目可能都会要求q行多个同类框架的考察、比较、环境搭建等工作Q若集中在独立架构组可能压力较大。可以考虑架构l内部划分ؓ多个技术领域,如企业基应用架构、消息中间g、动态化lg、分布式集群{。以技术部门的实施领域作ؓ导向Q进行技术架构的预研?/span></p> <p align="left" style="text-align:left;text-indent:24.0pt;"><span style="font-size:12.0pt;font-family:宋体;">5.</span><span style="font-size:12.0pt;font-family:宋体;">开攄识系l的构徏Q内部wikiQ个人博客,视频分nQ?/span></p> <p align="left" style="text-align:left;text-indent:24.0pt;"><span style="font-size: 12.0pt;font-family:宋体;">Ҏ企业行业背景Q需要关注的技术领域包括:企业应用、ESB/SOA、大型分布式架构Q在U?ȝQ,自然语言处理?/span></p> <p align="left" style="text-align:left;text-indent:24.0pt;"> </p> <p align="left" style="text-align:left;"><strong><span style="font-size:14.0pt;font-family: 宋体;Times New Roman";Times New Roman";">开发环境架?/span></strong><strong></strong></p> <p align="left" style="text-align:left;text-indent:24.0pt;"><span style="font-size: 12.0pt;font-family:宋体;">包含IDEQ编译环境,q程支持Q通讯支持与其他大量功能性支持YӞq可以根据不同的工作角色制定不同的环境,以便排除q扰Q更加快速有效的q入工作状态?/span></p> <p align="left" style="text-align:left;text-indent:24.0pt;"><span style="font-size: 12.0pt;font-family:宋体;">目的关键问题是沟通,个性化的工具妨?#8212;—而不是促q沟通。开发和l护公共的通用~程/目理工具有很多的好处?/span></p> <p align="left" style="text-align:left;text-indent:24.0pt;"><span style="font-size:12.0pt;font-family:宋体;">1.</span><span style="font-size:12.0pt;font-family:宋体;">建立h鲜明特色与强大实用性的自有开发环境,展示一个Y仉头企业在企业技术沉淀中的深厚功力和规范性?/span></p> <p align="left" style="text-align:left;text-indent:24.0pt;"><span style="font-size:12.0pt;font-family:宋体;">2.</span><span style="font-size:12.0pt;font-family:宋体;">建立行政程以规范和U束开发环境管理?/span></p> <p align="left" style="text-align:left;text-indent:24.0pt;"><span style="font-size:12.0pt;font-family:宋体;">3.</span><span style="font-size:12.0pt;font-family:宋体;">划分相关职能以保持对开发环境的l护</span></p> <p align="left" style="text-align:left;text-indent:24.0pt;"><span style="font-size:12.0pt;font-family:宋体;">4.</span><span style="font-size:12.0pt;font-family:宋体;">建立多种培训机制以促q新员工能够q速投入工作。如固定新员工开发环境熟悉培训机Ӟ建立企业讲解&培训视频库,组内互?amp;沟通?/span></p> <p align="left" style="text-align:left;text-indent:24.0pt;"> </p> <p align="left" style="text-align:left;"><strong><span style="font-size:14.0pt;font-family: 宋体;Times New Roman";Times New Roman";">q程理架构</span></strong><strong></strong></p> <p align="left" style="text-align:left;text-indent:24.0pt;"><span style="font-size:12.0pt;font-family:宋体;">1.</span><span style="font-size:12.0pt;font-family:宋体;">q程Ҏ</span></p> <p align="left" style="text-align:left;text-indent:24.0pt;"><span style="font-size: 12.0pt;font-family:宋体;">对多家企业Y件生命周期中使用的过E方法进行调查了解到Q大部分优秀的Y件企业对于过E方法十分重视,且存在针对不同项目合理运用不同的q程Ҏ。项目经理对于过E方法的理解与运用常常关pd目的成败?/span></p> <p align="left" style="text-align:left;text-indent:24.0pt;"><span style="font-size: 12.0pt;font-family:宋体;">目前核心的管理模?q程Ҏ主要分ؓ三大c:CMMIQRUPQ敏捗?/span></p> <p align="left" style="text-align:left;text-indent:24.0pt;"><span style="font-size:12.0pt;font-family:宋体;">CMMI</span><span style="font-size:12.0pt;font-family:宋体;">作ؓ软g质量体系的标准,软g企业必须具备的资质,h文档齐全Q流E规范等优势Q对于大型核心项目有较大优势Q其劣势在于灉|度不I无法很好的满x益变化的需求?/span></p> <p align="left" style="text-align:left;text-indent:24.0pt;"><span style="font-size:12.0pt;font-family:宋体;">RUP</span><span style="font-size:12.0pt;font-family:宋体;">由Rational公司Q被IBM收购Q目前是IBM 软g集团旗下之第五大软g品牌Q提出,采用q代开发模式,四个阶段Q九大核心工作流Q明的角色划分与文档规划,可裁剪配|的开发过E。目前被大量的Y件厂商作为最核心的过E方法用?/span></p> <p align="left" style="text-align:left;text-indent:24.0pt;"><span style="font-size: 12.0pt;font-family:宋体;">敏捷QAgileQؓ了满队伍小型化和需求快速变化而生的目前最行的过E方法。XPQExtreme ProgrammingQ通过单的四个核心价|沟通(CommunicationQ、简单(SimplicityQ、反馈(FeedbackQ和勇气QCourageQ)与十二条最佛_践从研发的角度提Z最单直接的开发方式。XP的Ş态特D,从编E的角度描述Ҏ与原则,加入了SCRUM之后Q加Z从行政体制方面的支持Q从而Ş成了完整的敏捷开发的q程Ҏ体系?/span></p> <p align="left" style="text-align:left;text-indent:24.0pt;"> </p> <p align="left" style="text-align:left;text-indent:24.0pt;"><span style="font-size: 12.0pt;font-family:宋体;">q程Ҏ一定不是万金aQ针对不同的企业特点Q甚至不同项目,都有必要对过E方法进行合理的裁剪与整合。对于目前公司的情况Q大型核心项目可以用CMMIQ这些往往军_了企业的战略方向Q稳健的q程Ҏ最为合适。大部分中小型项目均可采?RUP+敏捷 的过E方法,即遵守RUP的核心阶D和工作,但是q代周期和开发的基本原则Ҏ敏捷Qƈ挑战整合部分敏捷Ҏ中的最佛_c这L{略用于面对市场需求的快速变化,同时也能很好的保障企业在软g生中的产品价g存和技术经验积累?/span></p> <p align="left" style="text-align:left;text-indent:24.0pt;"> </p> <p align="left" style="text-align:left;text-indent:24.0pt;"><span style="font-size:12.0pt;font-family:宋体;">2.</span><span style="font-size:12.0pt;font-family:宋体;">q程Ҏ自动化支?/span></p> <p align="left" style="text-align:left;text-indent:24.0pt;"><span style="font-size: 12.0pt;font-family:宋体;">针对不同的过E方法,往往有若q的软g产品用以快速自动化的实施。如实施CMMI时所使用到的DEVSUITE产品。完整体pȝ支持产品往往在应用于某套固定Ҏ有着良好的效果,但容易存在流E生,无法与开发环境更好结合Ş成了信息孤岛Q改q困隄~点。一套优U的过E方法支持YӞ需要和开发环境(如IDE{)良好l合Qƈ且易于调整以应对q程Ҏ的变化,同时没有复杂冗余的过多细节流E以便容易被开发h员学习和掌握?/span></p> <p align="left" style="text-align:left;text-indent:24.0pt;"><span style="font-size: 12.0pt;font-family:宋体;">产品涉及斚wQ项目计划、项目需求管理、Y仉|管理、自动集成、自动品发布、代码审核、代码质量管理等?/span></p> <p align="left" style="text-align:left;text-indent:24.0pt;"> </p> <p align="left" style="text-align:left;text-indent:24.0pt;"> </p> <p align="left" style="text-align:left;"><strong><span style="font-size:14.0pt;font-family: 宋体;Times New Roman";Times New Roman";">企业产品架构</span></strong><strong></strong></p> <p align="left" style="text-align:left;text-indent:24.0pt;"><span style="font-size:12.0pt;font-family:宋体;">1.</span><span style="font-size:12.0pt;font-family:宋体;">产品/产品需求流E补充,产品立项时的立项报告中应当包含市场、竞争对手、对手品、风险等分析?/span></p> <p align="left" style="text-align:left;text-indent:24.0pt;"><span style="font-size:12.0pt;font-family:宋体;">2.</span><span style="font-size:12.0pt;font-family:宋体;">领域模型与概念,在特定的行业中可以即使关注领域专家的动态,以便构徏正确的领域模型,定产品的发展方向和形态的正确性?/span></p> <p align="left" style="text-align:left;text-indent:24.0pt;"><span style="font-size:12.0pt;font-family:宋体;">3.</span><span style="font-size:12.0pt;font-family:宋体;">对于特定产品的领域概念及相关技术发展需要深入了解,如舆情分析系l,需要进行了一定的市场调查Q跟q了当前领域专家的报告,参考国内外多项相关目的设计理念和原则。对于目前市场状c未来的方向、目前的技术实力等要有比较清晰的概?/span></p> <p align="left" style="text-align:left;text-indent:24.0pt;"><span style="font-size:12.0pt;font-family:宋体;">4.</span><span style="font-size:12.0pt;font-family:宋体;">坚持以市Zؓ导向的原则,在商务部门与研发部门之间搭徏U极的沟通桥梁,研发部门的计划根据实际市场需求进行调整。品的发布配合市场的要求,辑ֈ利益最大化?/span></p> <p align="left" style="text-align:left;text-indent:24.0pt;"> </p> <p align="left" style="text-align:left;text-indent:24.0pt;"> </p> <p align="left" style="text-align:left;"><strong><span style="font-size:14.0pt;font-family: 宋体;Times New Roman";Times New Roman";">企业Zg架构</span></strong><strong></strong></p> <p align="left" style="text-align:left;text-indent:24.0pt;"><span style="font-size: 12.0pt;font-family:宋体;">企业自n环境除了常见的YӞSoftwareQ,gQHardwareQ以为,q应当加入hӞPeoplewareQ。之前的U种Q如q程Ҏ、技术架构积累、知识分享等均是Z整个企业构建成Z部精密的机器Q无论缺什么重要零件均可以快速修复,但是人员失所造成的损失是巨大的。目前公司有着良好的Yg环境Q技术部门作为发动机Q若在针Ҏ术性员工有特别的规划和兛_Q必然能够增强在整个市场中的竞争力,对企业自w的发展也是有良好的推进作用?/span></p> <p align="left" style="text-align:left;text-indent:24.0pt;"><span style="font-size: 12.0pt;font-family:宋体;">公司可以按照职位和员工自w的情况规划发展路线Q明技术目标。开发进化角色基本按照Y考标准,E序?高E序?软g设计?pȝ分析?pȝ架构师,E序?高E序?目l理?/span></p> <p align="left" style="text-align:left;text-indent:24.0pt;"><span style="font-size: 12.0pt;font-family:宋体;">在技术部门内部,可以定期l织交流心得、新技术等。(在SCRUM中实际上有一些比较好的行政手D可以借鉴参考)</span></p> <p align="left" style="text-align:left;text-indent:24.0pt;"><span style="font-size: 12.0pt;font-family:宋体;">׃软g技术部门的Ҏ性,一些应用于生U的行政制度可能能够讨论出更好的实施ҎQ避免员工单斚w的错误认识引发消极的工作态度?/span></p> <p align="left" style="text-align:left;text-indent:24.0pt;"><span style="font-size: 12.0pt;font-family:宋体;">׃有一定经验,而且公司技术架构徏讄需要,能够很好的协助企业进行技术架构全斚w的介l和培训。而且我自w也很希望参与到企业文化的徏讑ַ作中去,鼓励技术h员之间的技术交与沟通?/span></p> <p> </p><img src ="http://www.tkk7.com/matuobasyouca/aggbug/372996.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/matuobasyouca/" target="_blank">一酌散千忧</a> 2012-03-29 16:27 <a href="http://www.tkk7.com/matuobasyouca/archive/2012/03/29/372996.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://www.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> վ֩ģ壺 <a href="http://bx85.com" target="_blank">ٶ100%ڵѹۿ</a>| <a href="http://zgnyxx.com" target="_blank">޼У԰ɫ</a>| <a href="http://aaa99999.com" target="_blank">߾ƷAAVV</a>| <a href="http://www66913.com" target="_blank">վ߹ۿ</a>| <a href="http://k5nn.com" target="_blank">һɫƬ</a>| <a href="http://902578.com" target="_blank">Ļwww˳</a>| <a href="http://bjhuicui.com" target="_blank">޾Ʒþþþ </a>| <a href="http://www-xg5777.com" target="_blank">ҹƵ</a>| <a href="http://jnyygs.com" target="_blank">޵һ㽶_a</a>| <a href="http://sdzntg.com" target="_blank">Ƶ߹ۿ </a>| <a href="http://yu388.com" target="_blank">պ޶</a>| <a href="http://88109a.com" target="_blank">þƷƵ</a>| <a href="http://www2019rz.com" target="_blank">޾ƷۺϾþ</a>| <a href="http://tj-zhongfa.com" target="_blank">õɫƵȫ</a>| <a href="http://kypbuy.com" target="_blank">޹þþþƷ </a>| <a href="http://www132126.com" target="_blank">һ</a>| <a href="http://hndsfwl.com" target="_blank">޾ƷþþӰԺӰƬ</a>| <a href="http://wwwy66y6.com" target="_blank">ŮƵվ</a>| <a href="http://aizaicc.com" target="_blank">޾ƷŮþþ</a>| <a href="http://a8g8.com" target="_blank">þù߳׽ѹۿ </a>| <a href="http://by8847.com" target="_blank">޹˾þۺ3d</a>| <a href="http://516kd.com" target="_blank">һëƬȫѲ</a>| <a href="http://0330196.com" target="_blank">ɫ|</a>| <a href="http://bet06966.com" target="_blank">׾Ʒһ</a>| <a href="http://www-79983.com" target="_blank">ؼëƬߴȫѲ</a>| <a href="http://k4h3.com" target="_blank">Ůһ</a>| <a href="http://szyxfhm.com" target="_blank">99þþùƷţţĴ </a>| <a href="http://my533.com" target="_blank">ëƬ18ŮëƬƵδ</a>| <a href="http://928288.com" target="_blank">AVһ</a>| <a href="http://7299jj.com" target="_blank">ŷպþþƷ</a>| <a href="http://13813855.com" target="_blank">aaƵ</a>| <a href="http://333uy.com" target="_blank">ó˾þAvѸ </a>| <a href="http://baocaoluoli.com" target="_blank">쿴</a>| <a href="http://8654123.com" target="_blank">޳aëƬ</a>| <a href="http://yulongfilm.com" target="_blank">ݺady޾Ʒ</a>| <a href="http://ryhjled.com" target="_blank">VAĻһ</a>| <a href="http://664403.com" target="_blank">Ƭ91Ʒѹۿ</a>| <a href="http://8dfk.com" target="_blank">޹AVվ</a>| <a href="http://jiujiujingpin.com" target="_blank">ɫͼС˵ר</a>| <a href="http://sdhuamo.com" target="_blank">һֻ </a>| <a href="http://289qq.com" target="_blank">պAVһ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>