• 网络开发新项目阶段总结
    时间:2011-12-24   作者:佚名   出处:互联网

    摘取人人网上某位高人的针对新项目做的总结,全文如下:

    上个月28号,我向某新项目技术邮件组发出有关该项目的第一封邮件,开始执行在该项目的角色。快一个月了,简单做个片面性的总结:

    一、关于技术

    1. 使用rose作为web框架、jade作为数据库访问框架、spring作为容器;
    2. 使用velocity作为视图技术,使用jQuery作为前端javascript框架;
    3. 使用tomcat作为web服务器,继续采用jdk6.0作为jdk的版本;
    4. 使用nginx作为tomcat反向代理;
    5. 使用redmine作为项目管理;
    6. 使用git作为源代码管理工具;
    7. 使用MySQL5.5为数据库服务器;
    8. 使用maven作为Java工程管理工具


    和人人不一样的地方:

    我们使用velocity而非jsp作为视图技术:一在于它的职责单一性、语法简单性,第二方面在于它和rose的良好集成。我们使用了layout技术,即在想要的地方(/views目录下)创建了layout.vm,layout就自动生效了。

    我们使用tomcat作为web服务器:今年是2011年了,那种曾经认为resin 好于 tomcat的年代已经早早过去!tomcat已经成为最受欢迎的web容器,resin代表落后和死亡。在版本方面,我们觉得6版本经历了长时间的检验,稳定性得到了保证,完全符合我们的期望!

    我们使用git作为源代码管理工具:选择 git 是本次选择最重要的选择。这个选择争议性是比较大的,虽然大家的表达是比较含蓄的。一开始几天我们的确还在使用Subversion来管理,12日的时侯我们果断进行迁移!现在我们在git环境下工作了10天了。

    关于选择git我想在多陈述几句:

    我认为我们开发团队到现在为止(也就使用10天)还不是所有人都把git完全用好,一部分人还是把 git 当 svn用:从“版本库”中“检出”下代码,改吧改吧,然后“提交”一部分。他们随时会将部分代码“提交”(因为别人正在依赖他的“部分”!);我们的团队的一部分人还是习惯通过Eclipse的git插件或windows下的小乌龟来工作。

    关于使用git,目前我们是这样实践的:

    1. 请使用命令行完成
    2. 请在Linux完成,实在不行装个window下的模拟
    3. 请了解这些storage:工作区、暂存区、版本库、上游库(远程库)
    4. 禁止git add -A 乱用
    5. 要求了解: git clone, git log -10,gitk, git status -sb, git clean -nd, git clean -fd, git rm, git add, git commit, git commit --amend, git pull, git fetch, git push, git branch, git merge, git checkout -b xxx, git   reset HEAD, git reset HEAD --hard,  git checkout -- <path>, git checkout HEAD <path>, git stash, git stash list, git stash pop, git diff / git diff --cached
    6. 不害怕冲突,转而欢迎冲突
    7. 在一个干净的工作区上的工作流程:
      1. git pull
      2. 查看git pull的输出,查看合并情况以及可能的冲突,如果有冲突一定要解决;
      3. mvn clean package:确定编译+测试通过;
      4. git add xxx, git commit, git push 解决冲突后把解决的结果提交,并推向上游(本步骤只在git pull 后手动调整了代码后才走)
      5. git checkout -b mytask
      6. git status -sb, git add
      7. mvn clean package, git commit 完成一次可以完整的更新后进行commit
      8. git checkout master
      9. git merge mytask
      10. git push 当决定要交付该工作的时侯,则push
      11. git branch -d mytask 该任务已经提交,此时可以删除该分支了


    二、关于质量管理

    我把质量管理分为:架构管理、代码管理、产品管理、进度管理

    架构管理(架构师):
    管控model设计、表设计、控制关键业务逻辑到技术策略的转化、识别技术风险;
    管控REST API设计
    review资深工程师的技术工作

    代码管理(资深工程师):
    管控工程在SCM中的结构、分层及其职责、编程规范和鞭挞
    管控公共基础设施
    指导代码编写

    产品管理(测试工程师):
    这个工作由测试工程师完成。
    在我的从业生涯中,从来都是最重视测试工程师(胜于对开发的重视)。
    每当一个项目由我主导,当我讨论需求、讨论各种方案的时侯,我身边必站有测试工程师(一般都是MM,哈哈)

    进度管理(项目经理):

    这个由项目经理来管控。其安排时间的使用,哪些任务重要,哪些任务优先,确定计划后不断check这个计划,辨识可能风险(要以事实为依据)并不断调整,想法设法寻找各种资源解决问题(倒计时是一个不错的工具)。

    我这样看待质量管理:质量管理应该时时刻刻、紧密伴随代码开发
    对我们这次新项目开发在这些质量管控方面,哪些做的好,哪些有待改进,在此公开场合不便分享,请原谅)
    至于Scrum,就像很多架构师已经不再拘泥于“设计模式”,我们并不拘泥于“Scrum”,心中无剑更胜剑
     

    三、关于团队

    我们做项目:

    一、      为了完成社会赋予企业的责任:具化公司使命生产产品
    二、      为了使自己有价值感:我们是有价值的,从而我们可以获取一分收益
    三、      为了使自己得到成长:通过实践,我们获得更多的见识和感悟
     
    以上是从个人的角度来理解个人的使命以及项目给个人带来的幸福和快乐。

     
    同时项目对个人也是有要求:
    1、         要严格执行各种规则、规范,执行相关的约束
    2、         要接受挑战(无论来自谁)
    3、         要积极地(不要懈怠)、严密地(不要漏洞百出)完成项目


    最后回到技术上,这次我们采用的是 “代码是所有人的” 的策略(效果还没有完全出来,还需要些时间)
    以上,冬至

    网友留言/评论

    我要留言/评论

    相关文章

    在windows查看端口占用情况方法介绍:通常,我们在启动应用的时候发现系统需要的端口被别的程序占用,如何知道谁占有了我们需要的端口,很多人都比较头疼,这时大家可能会到网站找个软件什么的,或则使用防火墙来查看使用的端口;其实没有这个必要,在windows中有个dos命令可以查看当前端口使用情况,下面就介绍一种非常简单的方法,希望对大家有用 。
    短网址算法PHP实例详细介绍:自从twitter推出短网址(shorturl),继之国内各大微博跟风,google公开goo.gl使用API,短网址之风愈演愈烈.不得不说这是一个新兴又一大热门web2.0服务.现整理一下,包括完整短网址网站,短网址算法原理,算法举例,以及优劣比较,同时还介绍几个phper个人实现的.
    MyEclipse快捷键使用详细介绍:Eclipse是一款非常受欢迎的java开发工具,使国内的用户越来越多,熟悉快捷键将会使你的编程工作得心应手,请看下面的分类详细介绍。
    免费的Android UI库及组件推荐:短短数年时间Android平台就已经形成了一个庞大而活跃的开发者社区。许多社区开发的项目业已进入成熟阶段,甚至可以用于商业的软件生产中,且不用担心质量问题。
    网站运营数据分析的指标和算法介绍:网站运营过程中针对网站的数据分析,已经成了每个网站策划和网站运营人员,每天的必备功课,通过这些数据指标可以帮助我们准确的抓住用户动向和网站的实际状况。其实根据网站类型的不同则分析所采用指标项也各有不同,可以有许多不同的指标来衡量。但是如何衡量网站运营的数据指标,哪些是网站运营的关键指标,是每个新人感到困惑。其实通常来说网站分析指标有内容指标和商业指标,内容指标指的是衡量访问者的活动的指标,商业指标是指衡量访问者活动转化为商业利润的指标。为了获得这些数据,我们可以使用51啦,GOOGLE分析工具来得到部分信息,但是为了更加精准的获得某些网站运营时的关键数据,则在网站策划和网站规划阶段时,需要充分将这部分内容考虑进去,对网站做些指标参数的设定,这样就可以降低网站的重复开发工作。
    20条编程经验:作者乔纳森·丹尼可(Jonathan Danylko)是一位自由职业的web架构师和程序员,编程经验已超过20年,涉足领域有电子商务、生物技术、房地产、医疗、保险和公用事业。正如乔纳森在文中所言,本文适合刚毕业的大学生和刚入门的程序员。如果你已是高级开发人员,或许你能在本文中看到自己的身影。
    Lazy Load, 延迟加载图片的 jQuery 插件:本文翻译自 Lazy Load Plugin for jQuery, 介绍一个 jQuery 插件, 它提供懒汉式加载页面图片的功能.
    被高估的云计算 - OOPSLA辩论:现在对云计算的炒作就如同上百人在电话会议中狂吼一样喧嚣。回顾20年来IT的演变,较为特别(其实也不那么特别)的一点就是每次新技术的诞生都发生了喧嚣的炒作。以4到5年为周期的技术更新意味着大量赚钱的良机。从最早的大型机到客户端-服务器、CASE工具、.COM、企业架构(如EJB和 DCOM)、SOA,以及发展到现在的云计算,IT一如既往地关注于如何想方设法赚钱。
    分享自己感触最深的几条设计哲学:今天读到一些UNIX下的编程哲学,对自己相当的有冲击力,把我觉得有用并且有道理的,自己组织了一下