胡百敬ID:Byron_Hu
138772次访问,排名535好友0人,关注者22
資訊玩家
Byron_Hu的文章
原创 60 篇
翻译 2 篇
转载 0 篇
评论 123 篇
胡百敬的公告
新作《SQL Server 2005 Performance Tuning性能调校》将于2008年5月初在大陆上市。
最近评论
fftaks:Wow gold
jeal_zhang:SQL Server 2005 Performance Tuning性能调校

此书何时能在大陆买到???我等不及了!!!!
myshijieye:<p>  百度爱像什么?google爱像星期天的早晨,注册香港公司一首老歌这样唱道。

  情为何物?电工电气产品加工
高压成套电器
高压真空断路器
高低压成套开关柜
线切割加工<……
文章分类
    收藏
      相册
      存档
      软件项目交易
      订阅我的博客
      XML聚合  FeedSky
      订阅到鲜果
      订阅到Google
      订阅到抓虾
      订阅到BlogLines
      订阅到Yahoo
      订阅到GouGou
      订阅到飞鸽
      订阅到Rojo
      订阅到newsgator
      订阅到netvibes

      原创 怎么管收藏

      新一篇: SQL 2008 T-Prep 上课心得(三) | 旧一篇: SQL 2008 T-Prep 上课心得(二)

      在大型 ERP 项目开发时,有多个子团队,每个子团队有多位工程师。昨日和某个子团队的项目经理聊天时,我强调专人负责各层开发的重要,也就是 DBBusinessUI 各有不同工程师负责,横向分割工作,而不是一个工程师负责一个功能,DBBusiness UI 通通一个人包了,变成直向分割,其要点如下:
      • ·         每个工程师熟悉的技术不同,UI 需要 AjaxWebASP.NET,中间层熟 Web ServiceDomain Know HowDB 层熟 T-SQL 与数据库对象撰写。让每个人专精自己的技术,但不必学其他用不到的技术。
      • ·         一层由一个人或一群人负责,可避免重复开发。因为若我写 UIcall 我写的 Business service,再 call 自己写的预存程序,其间一定会藏有许多自己开发上便宜行事的作法,但不利于别人呼叫。因此两个人有功能近似的需求时,会自己写自己用的 Service Stored Procedure,而不去尝试重复使用别人已经开发的。因为找别人开发过的近似功能很麻烦,且若不合用,对方也不见得会帮我改。到最后,DB 内一大堆近似的预存程序、检视、函数,中间层服务有一大堆近似的类别、方法。若商业逻辑层或数据库层都是专人写,则该人可以防止重复开发。
      • ·         各团队模块间,其商业逻辑或开发技术的交流较为单纯,比较能有跨团队的横向沟通,而不会彼此功能抵触却不知道。
      • ·         每一层呼叫另一层时,就在建立标准与除错,因为某甲呼叫某乙写的服务时,就会要求标准化,并替商业逻辑除错,而非某乙任意写作。以后在模块间互相呼叫时才有可能。
      若个人开发各自功能,好像找一群人来建房子,甲负责厨房、乙负责浴室、丙负责客厅、丁负责卧室...结果每个人都砌了墙、开了门...但彼此的门对不太上,从客厅要进卧室时,一开门就撞墙了,因为两个门没有标准。我们应该要甲负责整地、乙负责砌砖、丙负责水电、丁负责装潢...等等。
      该项目经理反问,这样不好管,团队的默契也难以养成。以往哪项功能没写出来,盯那个人即可,现在某甲说某乙没写,某乙说某丙没写。我建议是应该形成团队压力,让大家知道团队进度是卡在哪层的服务,在等哪个人。
      而团队开发默契本来就是需要时间培养,分层负责开发初期的确较为混乱,不容易立刻让高手一下子就做好单支从头到尾可测试的功能,但长期而言,分工才能培养专精人才,有了合作默契与惯例后就不会混乱。
      项目经理也强调组织的配置是工程师 Pool,所以随时调配任一工程师可独立完成整个功能。我的建议是变成多个专业人才 Pool,就这个例子而言,是划分成 UIAP ServiceDB Pro 三个 Pool,若哪个子团队缺哪层的工程师,就由专业 Pool 调配。
      最后,他虽然没有接受我的建议,但有沟通总是好的。开发模式与文化的转变比导入新产品和技术还难。
       

      发表于 @ 2008年04月20日 11:11:00|评论(loading...)|编辑

      新一篇: SQL 2008 T-Prep 上课心得(三) | 旧一篇: SQL 2008 T-Prep 上课心得(二)

      评论

      #studyzy 发表于2008-04-21 01:18:18  IP: 218.246.210.*
      虽然你说的很有道理,而且我也想这么做,但是真正实施起来缺是很困难的,可能是我做的是项目而不是产品的原因吧。项目中要求的是进度,而且一般一个项目组建后才新组建一个项目团队,所以从时间上和前提条件上来说都不可能这么做。而且这种分层次的开发确实不容易将责任落实,而且也可能形成写中间层的人在加班加点,而写UI层的人在那儿干等着中间层提供接口的实现而无事可做的情况。
      我们的解决办法还是“直向分割”,每个人按功能模块安排任务,为了不出现你说的这种情况,我们必须要有一个良好的域模型和数据库模型并且每个成员都很熟悉这个模型。这样通过模型每个人就知道了自己这个模块和哪些模块存在关系,然后和该模块的负责人交流,从而减少重复开发。
      #echo19820811 发表于2008-04-21 17:33:27  IP: 221.239.94.*
      我觉得,不管是做项目还是产品,都要重视流程,沟通,协作.
      话虽如此说,但做起来的确很难.如何将这六个字贯彻到具体工作并且能在细微之处体现六个字的精髓,这才是我们要考虑的问题.
      国内的软件企业都在寻求解决办法,方法各异,比如借鉴大型软件企业管理经验,组织人员进行团队培训等等...但都没有明显解决问题,我个人认为原因在于,在借鉴当中总是用自己的短处去比较别人的长处,这样的话,无论什么样子的解决方案都不能运用到自己的工作当中去.
      只要将这六个字做到,无时无刻(但减少时间成本),细致到极致(充分考虑环境),认真做好本职工作(多考虑自己不要成为团队的负担),这样也许会有改善.----个人见解
      #liminbai 发表于2008-04-23 10:53:06  IP: 221.219.58.*
      我觉得这样不好,加重了沟通的障碍。如果各个子团队之间是横向沟通,那么纵向沟通就是一个子团队内部的沟通。如此细度划分,虽然在各个一个领域加强了。但是会出现上下不一致的现象,导致变更是个麻烦事。这就需要子项目经理全力协作自己团队的工作。而我个人认为的好做法是首先我们需要制定出web,service,db层的统一规范。这些规范是最高组织去制定,然后下达每个子团队。子团队如果人员比较多,可以再次划分小组。比如划分两个小组分为开发组和学习组。开发组需要1-2个高手+2-3个低手,这样高手先开发的用例即成为其他人的参考模型。基本上团队的70%的开发工作由他们来做。学习组可以由1个高手+3-4个最低手。他们只能开发剩余的30%,没办法开发出来的总是达不到你的要求只能这样了。如果都是高手那就加强沟通吧,不要让他们冒什么个人主义,有问题一起商量解决。
      #hsm824 发表于2008-04-23 15:44:32  IP: 125.77.9.*
      个人感觉这种理论基础蛮好的,但是实践起来难度确实相当大,一个子团队的内部沟通往往比子团队与子团队的外部沟通来得默契。而我所讲的理论好,就是觉得如果真是这样团队按层开发,更符合面向对象的封装性。只需call接口就可以了。对于一个长期合作的团队来讲,用这种理论来实践确实蛮好的。以上是个人的见解,呵呵,有机会我会尝试用种方法开发。
      #huang12918848 发表于2008-04-27 23:25:04  IP: 116.30.206.*
      我个人不太明白你们说的大道理,我想从我对DB的角度去说这个问题,你们说的是一个团队的问题。说白了就是一大堆杂乱的事务,你需要他们有序的工作起来。如果我管理这样一个大团队,我先不会,我知道他们是一个DB,需要从里面拿到我想要的东西。我们要学习让我们的团队像DB一样工作。而不是单的的拆分团队。我们要对这个DB提出几个要求:1、每个单位都能完成规定任务2、每个单位之间有紧密的协作3、每个单位要有足够的动力。
      #showwe 发表于2008-04-29 09:41:14  IP: 210.13.90.*
      哦,有道理,不过似乎缺些具体内容:)
      #hufei036 发表于2008-04-29 14:47:27  IP: 116.21.232.*
      楼主说的方法基本不可行,首先会出现一部分人忙一部分人无事可做,再者,对开发人员也不利,表面上是希望他们越来越专,但实际上 视野会变得很狭窄,适得其反
      #jacksu19 发表于2008-05-05 09:25:38  IP: 221.221.155.*
      呵呵,没有需求分析和系统设计,直接就分层了?
      以后怎么合啊。。。

      领导想得挺好,也都对,只是不全。所以,结局会很惨
      #phoenixymsoft 发表于2008-05-06 10:20:14  IP: 221.218.129.*
      我感觉这个问题在很多时候都很普遍.
      #maihairong 发表于2008-05-06 13:38:15  IP: 121.33.243.*
      先做好系统架构和需求分析就可以分组了.楼主的做法对架构师的要求好高.我们是可以分,但是我们又不可以让一部分人,甚至一大部分人没事可做,所以架构师就必须将整个项目划分的很好,设计的很合理,但是这种架构师在小项目中是不存在的.楼主的想法在大项目中可能可以实现.
      #liuxiaoman2 发表于2008-05-07 09:17:58  IP: 202.118.2.*
      我觉的三楼说得有道理,应该这样!
      #yangjian15 发表于2008-05-07 14:10:06  IP: 60.247.2.*
      我在不同的项目中分别使用过横向和纵向的分割。个人偏向纵向的分割,横向分割需要架构师将所有Business 和 UI 之间的接口在设计时规划好,并排好序,避免人等人的现象。小的项目没有架构师,大的项目架构师做不到这种程度。
      #hoocode2008 发表于2008-05-24 22:19:40  IP: 219.149.159.*
      向您推荐 skinfeature 界面换肤组件

      skinfeature 界面开发类库具有简单易用、嵌入系统方便、运行稳定、兼容性强等特点。提供了所有标准控件的Skin解决方案,可以完美地设计程序每部分的界面细节,完全做到了所见即所得的界面效果,满足了目前所有的Visual C++应用程序界面开发需求。
      本产品彻底改变了Visual C++开发界面难的问题,使用本产品可以对您已有的系统进行方便快捷的界面改造,也可以在系统开发的初期,极大地提高系统开发的进度,并得到满意的界面效果。
      http://www.skinfeature.com
      #hoocode2008 发表于2008-05-24 22:19:59  IP: 219.149.159.*
      向您推荐 skinfeature 界面换肤组件

      skinfeature 界面开发类库具有简单易用、嵌入系统方便、运行稳定、兼容性强等特点。提供了所有标准控件的Skin解决方案,可以完美地设计程序每部分的界面细节,完全做到了所见即所得的界面效果,满足了目前所有的Visual C++应用程序界面开发需求。
      本产品彻底改变了Visual C++开发界面难的问题,使用本产品可以对您已有的系统进行方便快捷的界面改造,也可以在系统开发的初期,极大地提高系统开发的进度,并得到满意的界面效果。
      http://www.skinfeature.com
      #myshijieye 发表于2008-05-27 09:00:26  IP: 125.120.5.*
      交通设施
      环氧地坪漆
      旅游规划
      #zhouxz1026 发表于2008-05-29 10:02:32  IP: 125.106.103.*
      不错!
      蜂胶
      蜂蜜
      #galen_martin 发表于2008-05-29 15:38:10  IP: 211.158.7.*
      要贯彻实施还是要看每个公司的规模结构,实际而定啊
      发表评论  


      当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
      Csdn Blog version 3.1a
      Copyright © 胡百敬