【07】软件工程
文章平均质量分 66
_小青年儿_
优秀是一种习惯
展开
-
有利于版本管理的代码格式
版本管理(version controlling)是每个程序员的基本技能,C++ 程序员也不例外。版本管理的基本功能之一是追踪代码变化,让你能清楚地知道代码是如何一步步变成现在的这个样子,以及每次 check-in 都具体改动了哪些内部。无论是传统的集中式版本管理工具,如 Subversion,还是新型的分布式管理工具,如 Git/Hg,比较两个版本(revision)的差异都是其基本功能,即俗称“做一下 diff”。diff 的输出是个窥孔(peephole),它的上下文有限(diff –u 默认显示前后转载 2011-03-30 18:41:00 · 923 阅读 · 0 评论 -
软件测试
这个话题老生长谈了,单元测试代码的用途和重要性不言而喻,但是在日常工作中,程度员总有各式各样的理由来拒绝写单元测试代码。从上个项目的亲身经历看,程序员不乐意写单元测试代码的理由有如下几类:1、没时间。项目进度太紧张,项目计划里完全没有预留单元测试代码开发的时间;正常代码想搞完时间都很紧张,程序员巴不得把业务代码搞定之后休息、放松一下,单元测试代码再重要,但其开发工作也就自然放在一边了。原创 2013-08-10 22:07:48 · 1277 阅读 · 0 评论 -
Git
1.Git是神马?一个开源的分布式版本控制系统,可以有效的高速的控制管理各种从小到大的项目版本。他的作者就是大名鼎鼎的Linux系统创始人Linus。2.分布式又是神马?先看看集中式。简单说来,集中式就是把版本库集中放在某个中央服务器上(可以是局域网),然后每个人每次要使用时跟服务器进行通信,这样的缺点很明显,一旦服务器挂掉,就悲催了,不用干活了。原创 2013-09-30 18:41:56 · 926 阅读 · 0 评论 -
项目管理的6点经验学习
1. 项目组成立 成立项目组是项目能否成功的第一要素,没有项目组,项目管理就无从谈起。成立项目组一般包括以下几个方面:项目背景,目标,领导组,执行组,时间表等。项目组背景与目标比较容易确定,但是领导组与执行组的成立,就要考验项目组的智慧了。 第一, 项目领导组组长是谁,一般情况下,大项目,都会找一个职位高权力重的人担当组长,但是,这样的人一般事情比较多,外地出差时原创 2013-09-18 23:38:44 · 1015 阅读 · 1 评论 -
【sprint1】
周一要演示了,可是版本还有很多问题,终于没忍住加班亲自动手改起代码了基本问题都差不多了,希望周一演示顺利吧!Bless!ScrumMaster压力还是很大的不再是曾经的码农时代了时间都被打碎很难静下来安心钻研问题了每天都很忙但却并没有充实的感觉还有很多问题需要学习>任务分配团队成员忙的忙闲的闲,还没有总结出他们的特点,让合适的人做合适的工作>进度跟踪原创 2013-11-16 22:47:16 · 831 阅读 · 0 评论 -
【sprint2】
结束了整天忙的跟个什么似的没有自己完整的时间中断。。。中断。。。不停的压栈出栈真的挺累的原创 2013-12-11 22:06:44 · 860 阅读 · 0 评论 -
千行代码缺陷率
首先我们来看看,千行代码缺陷率是怎么定义的? 缺陷率 = 缺陷数量/ (代码行数/1000)然后看组织如何关心这个数字 越小越好那么结论是什么? 没有能力减少缺陷数量,就加大代码行数呗一些常见的招数 把 {单独占一行 把 }else { 写成 }原创 2014-04-01 23:07:49 · 5652 阅读 · 0 评论 -
痛定思痛
1做好离职面谈在查询4位提出辞职请求的员工工作绩效情况和工作能力评估结果的基础上,开展“一对一”面谈,了解其辞职原因,并告之其劳动合同内容以及辞职需承担的责任。对其中的高绩效者或高能力者,特别是技术总监、销售经理等职位工作人员则应尽力挽留,这样可以让辞职员工体会到企业对他们的重视,同时让其他员工能感受到企业对他们的尊重。当然,这样做的主要目的是留住辞职员工,即使无法留住,也要尽可能做到原创 2014-04-17 22:02:25 · 817 阅读 · 0 评论 -
【sprint4】
思想几点建议:原创 2014-04-05 09:12:29 · 1115 阅读 · 1 评论 -
基于 Jenkins 快速搭建持续集成环境
持续集成概述什么是持续集成随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题。尤其是近些年来,敏捷(Agile) 在软件工程领域越来越红火,如何能再不断变化的需求中快速适应和保证软件的质量也显得尤其的重要。持续集成正是针对这一类问题的一种软件开发实践。它倡导团队开发成员必须经常集成他们的工作,甚至每天都可能转载 2014-03-28 22:21:40 · 1471 阅读 · 0 评论 -
韩非子中的管理故事 -- 明辨人才
原文:太公望东封于齐,齐东海上有居士曰狂矞、华士昆弟二人者立议曰:“吾不臣天子,不友诸侯,耕作而食之,掘井而饮之,吾无求于人也。无上之名,无君之禄,不事仕而事力。“太公望至于营丘,使吏执而杀之,以为首诛。周公旦从鲁闻之,发急传而问之曰:“夫二子,贤者也。今日飨国而杀贤者,何也?“太公望曰:“是昆弟二人立议曰:'吾不臣天子,不友诸侯,耕作而食之,掘井而饮之,吾无求于人也。无上之名,无君之禄,原创 2014-08-07 23:03:53 · 1080 阅读 · 0 评论 -
Things Everyone Should Do: Code Review
在上一篇博客里我暗示自己将不在为Google工作。 我还没有决定好去哪儿-有几个非常不错的工作机会让我选择。鉴于这段时间内我不受雇于任何公司,我想我可以写点和专业相关的东西,这些东西很有趣,但是如果我还在职,可能会导致与同事/老板的关系紧张。Google是一个相当酷的公司。它们完成了一些非常让人吃惊的事情-包括外部用户可以看到的,也包括公司内的。有些关于公司内部的东西是非保密性的,但是在公原创 2014-08-07 22:02:09 · 755 阅读 · 0 评论 -
"这事与我无关"
场景再现 ========================事因 ⇔ {一个农庄主在他的粮仓里放了一只老鼠夹。}过程 ⇔ {老鼠发现了,跑去告诉母鸡}母鸡:这和我有什么关系,我很同情你。 {老鼠又跑去找肥猪} 肥猪:这是你的事,你自己小心哦。 {老鼠又跑去找大黄牛}大黄牛: 你见过老鼠夹能夹死一头牛的吗?祝你好运。结果 ⇔原创 2014-08-07 23:02:45 · 1138 阅读 · 0 评论 -
事物的本质,到底离我们有多远?
场景再现==========================={某企业,自主研制精密仪器实验室}Leader :{小李}怎么搞得,按照说明书操作,怎么还把仪器搞坏了?小李 :是我操作Miss。Leader :念你是初犯,这次就不追究了,总结教训不要再有下次了。同样错误如果犯两次,那就是你个人态度问题了。小李 :嗯,我知道了。 {小王插言说}原创 2014-08-07 23:07:26 · 865 阅读 · 0 评论 -
在项目中运用精益——Five Why
今天成功地运用了5个why对一个项目上的问题进行剖析,收获良多,在此分享给大家。 事情是这样的,该项目是个固定价格项目,处于收尾阶段,客户提出来了一些需求,我们(实施方)认为这些要求是不在最初项目范围中的,因而需要追加工时和费用;而客户(业主)却认为它们在最初的项目范围中。结果在争议中才发现,这个项目的项目范围,并不是界定得很清楚。 我们是这么运用5个why的原创 2014-08-08 21:27:24 · 1015 阅读 · 0 评论 -
不仅仅是估不准的问题
摘要:说起估算问题,我们第一反应往往是“估不准”!估得准又如何呢?如果估算结果是需要5个月才能完成,但合同要求3个月交货,你怎样办?所以其实我们还有一个“估得多”的问题,而在“估不准”和“估得多”这两个问题之前,还有“不敢估”的问题。估算问题很复杂,我们首先要做的是拆解这个问题,这样才能更好地找到合适的解决方法。我们从不同角色的视角来看看估算的问题:老板如何原创 2014-08-07 22:40:44 · 869 阅读 · 0 评论 -
Scrum Master要做些啥
SM是新的角色,很多时候定位不是那么清楚。The Scrum Master is primarily responsible for "How" - using Scrum the right way.先驱们关于SM的定义不外乎:Ken Schwaber's discovery: “A dead Scrum Master is a useless Scrum Master.”"原创 2013-08-10 22:09:24 · 1068 阅读 · 0 评论 -
敏捷宣言及其背后的12准则
我们通过身体力行和帮助他人来揭示更好的软件开发方式。经由这项工作,我们形成了如下价值观:◆个体与交互 重于 过程和工具◆可用的软件 重于 完备的文档◆客户协作 重于 合同谈判◆响应变化 重于 遵循计划在每对比对中,后者并非全无价值,但我们更看重前者。《敏捷宣言》背后的12准则我们遵循以下准则:1、我们的最高目标是,通过尽早和持原创 2013-07-19 22:03:11 · 924 阅读 · 0 评论 -
UML_时序图
作者:灵动生活 一、时序图简介(Brief introduction)二、时序图元素(Sequence Diagram Elements)角色(Actor)对象(Object)生命线(Lifeline)控制焦点(Focus of Control)消息(Message)自关联消息(Self-Message)Combined Fragments 三、时序图实例分析(Sequece Diagram Example Analysis)时序图场景时序图实例时序图实例分析 四、总结(Summary)一、原创 2011-04-22 15:49:00 · 1687 阅读 · 0 评论 -
UML_类图&时序图
<br />1 当一个操作有参数时,参数被放在操作的括号内;每个参数都使用这样的格式:“参数名:参数类型”。<br />图 3:Flight类操作参数,包括可选择的“in”标识。 <br />当文档化操作参数时,你可能使用一个可选择的指示器,以显示参数到操作的输入参数、或输出参数。这个可选择的指示器以“in”或“out”出现,如图3中的操作区域所示。一般来说,除非将使用一种早期的程序编程语言,如Fortran ,这些指示器可能会有所帮助,否则它们是不必要的。然而,在 C++和Java中,所有的参数是“in”原创 2011-04-22 15:53:00 · 2623 阅读 · 0 评论 -
UML类图
类之间的关系1. 种类: Generalization(泛化),Dependency(依赖关系)、Association(关联关系)、Aggregation(聚合关系)、Composition(合成关系)。2. 其中Aggregation(聚合关系)、Composition(合成关系)属于Association(关联关系),是特殊的Association关联关系。3. Genera原创 2011-12-16 15:16:19 · 845 阅读 · 0 评论 -
SVN使用
3.2.图标说明normal一个新checkout的工作副本使用绿色的对勾做重载。表示Subversion 状态正常。modified在你开始编辑一个文件后,状态就变成了已修改,而图标重载变成了红色感叹号。通过这种方式,你可以很容易地看出哪些文件从你上次更新工作副本后被修改过,需要被提交。conflicted如果在更新的过程中出现了冲突,图标会变成黄色感叹号。r原创 2011-07-22 14:32:12 · 1023 阅读 · 0 评论 -
使用句柄类封装继承体系
在DLL封装的时候,一般都会采用接口类(Interface Class),即纯虚类,达到接口与实现分离的目的。但采用接口类,只能通过返回指针或引用来间接使用被封装的类。相对于这一点,采用句柄类(Handle Class)是个不错的替代方案。句柄类除了名称外,在使用方式上基本同被封装的类无差别。句柄类易用性是建立在耗费一定运行效率的基础之上的(当然,接口类也会消耗一定的运行效率),因此它一般用在运行原创 2012-03-13 10:47:03 · 1076 阅读 · 0 评论 -
敏捷开发
敏捷开发模式是以人为核心,迭代,循序渐进的开发方法。 主要的开发方法: 1.极限编程(XP):降低需求变化的成本; 2.Scrum; 3.精益开发(Lean Development):不断完善开发过程; 4.动态系统开发方法(DSDM); 5.特征驱动开发(Feature Driver Development); 6.水晶开发(原创 2013-02-01 22:03:17 · 838 阅读 · 0 评论 -
程序员修炼之道
身为一名程序员,当一本叫做《程序员修炼之道》的书出现在面前,又怎能忍住不去看呢?于是,出现了下边的读书笔记。 该书确实博大精深,包含了很多内容,但很多都是点到为止。那种心中有剑的感觉,跃然纸上,或许高手都是如此吧。根据多年武侠观摩经验,一定要把不懂的记下来,以后肯定大有用处。那就记。 第一章:注重实效的哲学(A Pragmatic Philosophy) 说实话,第一遍看完这章,我只记原创 2013-03-04 21:36:06 · 728 阅读 · 0 评论 -
我的敏捷思想成长之旅
我的敏捷思想成长之旅 第一次认识敏捷,是通过Bob大叔的《敏捷软件开发》,这是敏捷方法的奠基之作。 认识Scrum,是通过Kent Beck的《Scrum敏捷项目管理》,第一次被Scrum打动。 真正吸引我深入的,则是两个Mike的著作。 也许是当时两本书同时在看的缘故,使得我对敏捷方法有了更深的领悟。 其一原创 2013-04-04 22:45:11 · 1002 阅读 · 0 评论 -
如何避免重构带来的危险
摘要:忍住你的欲望,不要试图重构你不理解的代码。多问问题,努力能清楚他们为什么要把程序写成这样。重构代码很危险,它会给测试工作增加巨大的负担。除非你的程序需要重构,一定不要轻易重构代码。我这里所说的并不是把一个for循环改成while循环,或把一个StringBuffer改成StringBuilder,我说的是大动作,例如重写一个方法,一个函数,甚至整个类或包。如果你缺乏对一个方法或一原创 2013-05-10 20:59:50 · 982 阅读 · 0 评论 -
重构代码的7个阶段
摘要:你是否曾去想重构一个很老的模块,但当你看到它时又在退缩,面对这种情况,真正的程序员会是不会认输的,他们会接受挑战认真分析,哪怕重写也在所不惜。文中分析了代码重构需经历的几个阶段。您是哪一阶段呢?导读:你曾去想重构一个很老的模块,但是你只看了一眼你就恶心极了。文档,奇怪的函数和类的命名,等等,整个模块就像一个带着脚镣的衣衫褴褛的人,虽然能走,但是其已经让人感到很不舒服。面对这种情况原创 2013-05-10 20:57:24 · 1087 阅读 · 0 评论 -
敏捷Scrum
什么是Scrum?Scrum是一个敏捷开发框架,是一个增量的、迭代的开发过程。在这个框架中,整个开发周期包括若干个小的跌代周期,每个小的的跌代周期称为一个Sprint,每个Sprint的建议长度2到4周。在Scrum中,使用产品Backlog来管理产品或项目的需求,产品backlog是一个按照商业价值排序的需求列表,列表条目的体现形式通常为用户故事。Scrum的开发团队总是先开发的是对客户原创 2013-07-06 21:30:56 · 1670 阅读 · 0 评论 -
敏捷开发之每日集成
先从每日构建说起:每日构建是什么?每日构建对应的英文是Daily Build,由于翻译和理解的问题,也有称之为“每日编译”由于一般的每日构建发生在晚上,发生在晚上的每日构建,也称为Nightly Build ,中文译为“夜晚构建”或者“晚间构建”,百度检索下,“夜晚构建”要远多于“晚间构建”来自 http://en.wikipedia.org/wiki/Dail原创 2013-07-12 21:38:20 · 1757 阅读 · 0 评论 -
敏捷开发的26条至理名言
摘要:敏捷开发真正的问题是什么?其实敏捷主要还是一种观念,一种意识,通过人来推动。本文总结了26条有关敏捷开发的关键原则,供读者参考借鉴。 我经常收集各种各样的至理名言,最近我重温敏捷开发;真正的问题是什么?下面是一份26条关键原则的清单,以指引敏捷软件开发团队。 1、完整地干完一件事后在开始另一件事:用厨房比喻来说就是:“先上这道菜,再开始做下一道”。软件开发的最大问题就原创 2013-07-16 22:05:41 · 954 阅读 · 0 评论 -
敏捷开发_WorkBalance
传统的开发团队通常按角色就行分工, 开发人员只管开发, 测试人员只管测试, 在自己的职责之外的事, 要么是看不见, 要么是觉得不是我的活,我不用去管,做好做坏和我没有关系。而敏捷软件开发恰恰相反, 更加强调“Whole Team”, 即整个团队对外做出承诺, 团队中的所有人对所有的开发,测试,文档等任务附有责任。如果不能按时交付高质量的软件, 就是整个团队的责任, 某一个Devel原创 2013-07-16 21:29:36 · 1183 阅读 · 0 评论 -
项目管理那些事儿
Part 01: 任务分解任务分解是成功项目管理的第一步。术语一般称为WBS。如何进行WBS分解:目标→任务→工作→活动WBS分解的原则:横向到边即百分百原则――指WBS分解不能出现漏项,也不能包含不在项目范围之内的任何产品或活动。纵向到底指WBS分解要足够细,以满足任务分配、检测及控制的目的。WBS分解的方法: 至上而下原创 2013-07-16 21:19:39 · 1088 阅读 · 0 评论 -
常用开源系统
ExtMail开源版http://www.extmail.org/ExtMail开源版原创 2014-08-17 11:51:51 · 886 阅读 · 0 评论