惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

AI
AI
TaoSecurity Blog
TaoSecurity Blog
H
Heimdal Security Blog
Help Net Security
Help Net Security
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Microsoft Azure Blog
Microsoft Azure Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Google DeepMind News
Google DeepMind News
爱范儿
爱范儿
The Cloudflare Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
人人都是产品经理
人人都是产品经理
大猫的无限游戏
大猫的无限游戏
N
News | PayPal Newsroom
V2EX - 技术
V2EX - 技术
博客园 - 【当耐特】
D
Darknet – Hacking Tools, Hacker News & Cyber Security
S
Secure Thoughts
C
CERT Recently Published Vulnerability Notes
罗磊的独立博客
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
P
Privacy & Cybersecurity Law Blog
有赞技术团队
有赞技术团队
S
Schneier on Security
S
SegmentFault 最新的问题
Google Online Security Blog
Google Online Security Blog
H
Hacker News: Front Page
The Last Watchdog
The Last Watchdog
Schneier on Security
Schneier on Security
PCI Perspectives
PCI Perspectives
IT之家
IT之家
Project Zero
Project Zero
博客园 - 司徒正美
P
Privacy International News Feed
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Jina AI
Jina AI
Security Latest
Security Latest
Hacker News - Newest:
Hacker News - Newest: "LLM"
腾讯CDC
C
CXSECURITY Database RSS Feed - CXSecurity.com
阮一峰的网络日志
阮一峰的网络日志
C
Check Point Blog
aimingoo的专栏
aimingoo的专栏
V
Vulnerabilities – Threatpost
W
WeLiveSecurity
NISL@THU
NISL@THU
Webroot Blog
Webroot Blog
N
Netflix TechBlog - Medium
L
Lohrmann on Cybersecurity

博客园 - 高天蒲

前端 mysql常见问题 互联网数据的挖掘和分析 针对wordpress的二次开发 datejs lib awk Optimal Logging python 复制文件 PHP笔记 grep 笔记 svn笔记 网页内容爬取:如何提取正文内容 Javascript 类、命名空间、代码组织 武士与黑客 ImageMagick Errors: Convert PDF to Images web.py学习随笔 HTML5 and CSS3 做前端的一些小工具 提高勾搭的成功几率(瞎写的,打扰了)
快速开发的要素
高天蒲 · 2011-10-21 · via 博客园 - 高天蒲

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,有的忙的要死,有的在等别的资源,耗费不起啊。

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