切尔斯基

冰河洗剑,绝塞传烽,江山如画雪初晴

李光磊ID:chelsea
134586次访问,排名575好友0人,关注者6
chelsea的文章
原创 38 篇
翻译 2 篇
转载 0 篇
评论 123 篇
切尔斯基的公告
质疑暂停, 发些以前的外传
最近评论
Jack:比喻很恰当,呵呵.
suxiaoguai:敏捷有好处也有短板:
==================
如果结对的双方没有类似的知识结构,效率一定不会高。这种情况下双方之间更多的是思想上的摩擦和相互学习,不是合作解决实际问题。结对需要长时间的前期投入才能开始起作用。
==================
这是个问题,所以敏捷一定需要有公司支持这个土壤。
另外团队的文化非常重要,
hachenzhonghua:结伴比较难。
这个对企业整体文化、管理能力要求比较高。
心胸坦荡的人并不多。落井下石的人却总是不缺
iceheart:你跟某人适合xp跟另外一些人不见得适合,某个项目适合xp另外的项目不见得适合,某些环境适合xp另外的不见得适合。

脱离了具体情况的空谈都是没有意义的争论
Eric:敏捷开发,纯粹扯淡!
前期开发者,写代码,写的很爽很惬意,进度相当快。
如果前期开发者离去,或者转投别的任务。
后期开发者,和同期的开发同伴,对已有的代码,简直牛啃南瓜,开不了头。
========================
这是质量控制体系有问题,没有code review?没有QA?没有相应的文档?
如果把前期的开发分成几……
文章分类
    收藏
      相册
      切尔分站
      切尔斯基的工作(RSS)
      切尔斯基的工具(RSS)
      切尔斯基的杂记(RSS)
      亲密爱人
      丸子(RSS)
      文学艺术
      芳村窝蛋(RSS)
      存档
      订阅我的博客
      XML聚合  FeedSky

      原创 模块系统与非侵入性收藏

      新一篇: Modern C++ Design | 旧一篇: Exceptional C++

      基础复杂性是守恒的,需要解决的基本问题始终是需要解决的;最终的复杂性,却取决于基础复杂性彼此间的依赖,如果互相依赖,最终将得到指数级的复杂性,而如果彼此独立,最终只是若干基础复杂性简单的累加,因此,程序需要更好的的Design和Organize,主要任务就是“降低模块间的依赖至最小”,而对开发效率有重大影响的,主要是编译期依赖,为此,人们发明了若干技术来降低编译期依赖

      1,模块系统

      C++继承了C的include机制,缺少ABI,缺少模块系统,客户端代码依赖于对象的内存布局,任何对头文件(类定义)的修改都导致需要编译所有客户端;传统上只能如下解决:

      • 部分基于C++的平台提供了初步的模块系统来改善这个问题,如COM组件的dll;但依然基于内存模型,只能新增接口,不能修改原来的接口和删除原来的接口

      • 改良include:使用Pimpl惯用法;使用前置声明;剔除不必要的include;预编译等(后三项主要是为了编译速度)

      Java有一个ABI,基于ABI有一个模块系统,至少客户代码不再依赖于内存布局,而仅仅依赖于函数签名;类库作者可以较为放心的添加新功能,而不会影响那些不受控的遍及世界各地的客户代码

      但模块系统依然有一个不能解决的问题:编译时依然需要“引用”的类和接口的定义

      2,非侵入性

      编译时对“引用”的类和接口定义的依赖,我们称之为“侵入性”的;任何显式的“接口”、“基类”都是侵入性的,不可避免的带来编译期依赖;即使这些依赖很小,但依然有办法而且应该尽可能消除

      Java的法宝是反射,但效率低,并不具有类型安全性,因此,除非独立性和灵活性需求大于效率和类型安全需求的场合,一般不要使用反射;

      而在非侵入性问题上,C++有强大的语言机制--模板:类型安全并且效率无损;它不需要你做任何继承操作,只需要满足模板参数的概念约束,提供“语法兼容”的调用即可;注意是“语法兼容”即可,这意味着你的函数可以是“static”的,也可以是“virtual”的,也可以什么都不是,只要签名一致就可以; 比如在扩充STL时,你不需要include任何STL头文件

      当然模块系统和非侵入性在解决依赖问题上是正交的;作为降低编译期依赖的有效机制,以模板参数的概念约束形成的模块接口,应得到更多应用

      发表于 @ 2005年08月05日 10:05:00|评论(loading...)|编辑|收藏

      新一篇: Modern C++ Design | 旧一篇: Exceptional C++

      评论:没有评论。

      发表评论  


      登录
      Csdn Blog version 3.1a
      Copyright © 切尔斯基