博采众长,精于一技。Live for love, work for dream.

从项目交接看项目管理

    项目文档对于项目管理的作用已经不用再讲了,但文档的管理却又通常是项目管理中最容易忽略的内容。实际对于任何一个项目而言,文档一定要有的,但不一定要多,只要可以说明问题就行了。 

    最近正在交接一个项目,就以此项目为例,说一下我的体会。这个项目已经基本开发完成,并且已经上线运行,具备了一定的用户和数据。当时我接手这个项目时,此项目只有成果,没有过程。仅有几份接口说明。 

    对于这么一个项目来说,既没有需求说明,又没有项目文档。不过造成这样的结果也是有一定原因的。既成事实,那么我们也只能默默承受了。从接受该项目至今,花了足足两个多月的时间去探索原设计者的设计意图,并把我理解的东西整理出一份文档。

    可能是公司向来没有写文档的习惯,需求接到手只管开发,能实现功能就算完事。也正由于这样,导致了今天的恶果。看来,也是时候做出些改变了。否则,如此恶性循环下去,后果不堪设想。

    那么,应该做些什么呢?下面,提一提个人的建议。

    1.使用一些项目管理软件(如TracRedmine等)或者项目协作Wiki(如Twikidokuwiki)。

    2.撰写项目文档(内容至少包含:项目需求、数据库设计、程序实现、接口文档、注意事项等)。

    3.编写代码时,注释尽量详尽(一些特殊的地方要标明为什么要这样实现,Is Why Not How)。

PS.在撰写此文之前,我用 DokuWiki 打造了个人知识管理系统

BTW:顺道过一下猎头瘾,目前各大公司招人(PHP工程师),有意者请与我联系详谈。

互联网应用服务扩展的一点经验

概要
以案例分享的形式介绍FreeWheel在实践互联网应用系统最佳扩展原则过程中的一些具体技术实现与心得,包括异步、Cache、复制、报警 监控、日志处理与归档、数据仓库与查询优化、应用多阶段部署、回归测试与性能测试等话题。

个人简介
王迪,FreeWheel核心系统技术总监。毕业于清华大学计算机系软件与理论专业,自2007年创立起加入FreeWheel,全程参与MRM视频广告平台核 心系统的架构设计,并负责技术团队管理工作。拥有PMP证书,曾任国内某网络安全技术公司CTO。目前专注于高性能互联网服务系统的架构设计与优化,在网 络安全、互联网广告方面拥有浓厚兴趣。

关于会议
百度技术沙龙是由百度联合InfoQ中文站定期组织的一个线下技术交流活动,目的是让中高端技术人员有一 个相对自由的交流思想和交友的平台。

PPT演示

上一张PPT 下一张PPT

上一张PPT 下一张PPT



原文地址:
http://www.infoq.com/cn/presentations/wangdi-internet-service

高效率编辑器 VIM-操作篇,非常适合 VIM 新手

虽然从很久前就开始用 VIM 了,但一直都是半调吊子,翻来覆去只用自己会的命令。最近为了提高书写代码的效率,还有 coding 时候的乐趣,又重新钻研了一下 VIM,发现了一篇很好的 VIM 入门的文章,原文是英文版的,我觉得非常适合 VIM 使用入门,所以翻译了过来。这里是简单的介绍了 VIM 的操作方式,并没有说为什么要用 VIM,如果你想知道答案可以去 Google,VIM 被誉为编辑器之神。

这篇教程写了在不同工作模式下使用 VIM 的一些基本技巧——即插入模式(insert mode), 命令模式(command mode), 存取文件等。目的是帮助刚刚接触 VIM 的新手更加有效率的使用这个出色的编辑器。

说明:在这篇文章里面, 代表 Ctrl + X——就是按住 Ctrl 键然后再按 X。而且你可以在很多情况下使用 :help command 来获得大部分命令的帮助,这个是 VIM 的内部帮助文件命令。

继续阅读 »

关于URL_REWITE的一个奇怪问题

一直一来都想把万视网的链接静态化,这样有利于SEO。但是前前后后折腾了好几回都失败了,今天总算是勉强解决了。
以下为尝试的办法:
1.首先尝试的是.htaccess文件Rewrite,在本地Window测试一切安好,到了真实服务器就是不行。(服务器确定开启了mod_rewrite模块,要不然我的博客文章的URL也不会这么优美了,呵呵。)
2.既然硬的不行,那咱来软的。根据php的$_SERVER['PATH_INFO']来Rewrite,谁料,Apache就是不给你输出PATH_INFO。(在配置文件加了AcceptPathInfo On依旧无效,Apache你叫我咋说你好呢,尽管几次想把它换掉,装个Nginx,但是懒得去折腾就一直没换)
3.天无绝人之路,仔细看了看$_SERVER输出的东西,里面有个奇怪的值。

继续阅读 »

JavaScript之appendChild、insertBefore和insertAfter

这几天需要用到对HTML节点元素的删/插操作,由于用到insertBefore方法的时候遇到了一些麻烦,现在作为知识的整理,分别对appendChild、insertBefore和insertAfter做个总结
appendChild定义
appendChild(newChild: Node) : Node
Appends a node to the childNodes array for the node.
Supported: IE 5.0+, Mozilla 1.0+, Netscape 6.0+, Safari 1.0+, Opera 7.0+

添加一个节点到指定的节点的子节点数组中,读起来好象有点拗口,简单地说就是将元素添加到指定的节点中

appendChild用法
target.appendChild(newChild)
newChild作为target的子节点插入最后的一子节点之后

appendChild例子
var newElement = document.Document.createElement('label'); 
newElement.Element.setAttribute('value', 'Username:');
var usernameText = document.Document.getElementById('username'); 
usernameText.appendChild(newElement);

继续阅读 »

返回顶部