zoukankan      html  css  js  c++  java
  • 快速开发的要素

    1. 好的编程语言

    动态语言或者说可以把函数当成对象的语言,比如js,python(ruby,lisp应该也是,但我没有学习过), 一定程度上都会加速开发,通常情况下动态语言一句话搞定的事情,放在c#这样的语言可能需要一大堆的反射语句才能完成。

    RoR的成功导致很多其他语言的模仿,比如groovy,然而java这种语言真的适合做类似RoR框架吗? 也可以这么问,为什么RoR的创造者为什么选择Ruby,而不是java, C#, php等? 

    2. 框架的成熟程度

    时间久的,文档多,遇到的问题从网上搜索到的可能也大。

    我一直做.net, 后来为了在SAE上写个小程序,需要玩php, 再后来我决定选基于python的webpy框架作为今后的web开发语言,在遇到问题搜索时,两者对比很明显,php遇到的问题可以说都能找到很好的解决方案,而Webpy现成的答案比较少,通常都需要从各个相关的文章中琢磨出解决问题的方法。

    3. 开源社区是否成熟

    常用的功能是否都能在开源社区里找到相对完美、简单的解决方案

    如果一个团队的人全部都是只接触过.net的开发人员,他们通常解决问题的思路比较窄,例如有些问题可能用memcached, hadoop可以轻松解决,然而团队里没人会linux,即使有人愿意尝试去学习开源类库,但可能因为最终部署原因而放弃。

    4. 开发者对这门语言,以及开源方案的熟悉程度。

    不熟悉就意味着需要查文档,转型的人也是。这个不解释了!软件开发中提倡“重复是可耻的!”,但如果一个新的语言你从来都没做过,第一次做的过程肯定遇到很多问题,这个肯定会遇到很多的问题。

    5. 自动化脚本

    项目初始代码自动生成,自动化测试、自动部署等等,linux的shell脚本真的是挺强大的,尤其是管道的应用。

    6. 精英小团队

    流水线上熟练工人和不熟练工人的效率差别不会太大,而信息产业绝对不是这样,高手的经验都是拒绝了一次次的重复后提炼出来好多能更加快速、自动化的方案的,因此在软件、互联网这块的技术领域,2个人差别大于几十倍的可能也是完全有的。

    另一点,精英之间心领神会,很多时候不用通过太多的沟通也完全能够理解彼此的意思。

    7. 决策者是否接受小版本、快迭代的做法

    是一味的要求加入功能,知道这些功能全部做完之后才能上线,还是遵循一个固定的发布周期,例如2周发布一次,这2周内能做多少是多少?

    我一直认为敏捷神马的,加起来的总时间可能比传统开发的还要多,但之所以采用敏捷,主要是保证不会出现东西做出来了,结果不是客户想要的!

    8. 好的团队leader

    主要发挥资源协调作用,产品原型-设计-html-架构设计-编码-测试-部署-运维-反馈-再改进等等

    如果没有好的资源协调,很容易卡可block,有的忙的要死,有的在等别的资源,耗费不起啊。

    因此,我不赞成黑客与画家中说的那样,自从用了某种比较酷的开发语言后,一切都快了。

  • 相关阅读:
    OpenCV2.4.4 图像旋转和缩放
    Python+OpenCV:图片无损旋转90°且无黑边的处理方法
    python 怎样去除图片中的多余物体
    goland 无法解析符号
    go mod init 报错
    比较有用的
    Gorm 学习笔记
    Gorm 更新 0 值
    Java Lambda 表达式,Java Lambda 函数接口
    Java 单例模式,Java Singleton单例模式
  • 原文地址:https://www.cnblogs.com/gaotianpu/p/2220631.html
Copyright © 2011-2022 走看看