zoukankan      html  css  js  c++  java
  • [Chatter] 引用新技术的考虑

    新技术不是不能用,而是堆了新技术,接手的人就要学会这些。

    这边对于新技术的定义,是很广泛的定义为系统中没有使用过的技术。在系统一开始的时候,技术需求就是一片空白,后续设计的时候,每次加入的没有用过的技术,都需要去考虑是否有延续性、是否要定义为基础技术...等等考虑。大一点就像是要不要使用Design Patterns、DDD、TDD,或是MVVM要不要用、ASP.NET MVC不错要不要推。小一点的就像是版本控管要用哪种、版本分支、合并的策略是甚么。这些都是需要依照目前团队、未来目标等等方面去考虑。

    每个系统都有隐藏的项目天赋表,天赋就是系统里的技术,开发人员点满天赋才能吃透系统。
    --以开发人员的角度来说,自己天赋当然是越多越好,并且也比较有趣。
    --但开发管理的角度来说,项目天赋表越多,就代表替补人力需要更高的等级。
    这是设计上需要取舍的点,并且很难取到平衡......

    而如果单纯从系统设计的角度来看这个议题。我目前是试着采取,透过系统架构层级去切割不同等级的区块,并且为每个区块的关键技术建立可延伸的框架、样版,这样两种方式来处理。

    --例如说:将系统切割为N层,后三层需要多线程设计、前两层只需要单线程设计、额外一层需要Web开发。透过这样的方式,就可以概略的依照开发人员的技能等级来分配人力。

    --例如说:先前写过的 MVVM Plugin模式、Device Projection模式,就分别为表示层、通讯层定义了关键的样板技术。透过这样的方式,后续替补人力等级低的时候,就先照着样板直接开发系统,透过使用、学习样板慢慢提高技能等级,进而设计样版、设计系统。

    这是还在摸索中的做法,团队也都是不超过10人的小团队,一时还看不出大问题,等哪天爆炸了再看看怎么调整吧。Orz


  • 相关阅读:
    Logstash利用GeoIP库显示地图以及通过useragent显示浏览器(
    remote tomcat monitor---jmc--jvisualvm
    python AI(numpy,matplotlib)
    rpm package.http://rpmfind.net/
    cpuspeed和irqbalance服务器的两大性能杀手
    什么叫CallBack函数,怎么用回调函数?
    发送微博消息
    curl抓取信息
    JavaScript键盘事件全面控制代码
    js实现网页收藏功能,动态添加删除网址
  • 原文地址:https://www.cnblogs.com/clark159/p/3091962.html
Copyright © 2011-2022 走看看