paulwong

#

职场生涯 风云莫测 想要在职场获得成功必须遵守的二十个潜规则

职场生涯 风云莫测 想要在职场获得成功必须遵守的二十个潜规则

  引导语:有人的地方就有江湖,有人的地方就有战场;职场如战场,稍有不慎,就会误入歧途,掉进职业发展的陷阱。要想进军职场。要想在职场中有所作为,就要悟透这职场潜规则;只有悟透职场潜规则,做得到知已知彼,运筹帷幄,从而决胜职场。人在职场,身不由己,如何才能顺利地实现心中的梦想呢?职场深似海,掌握下面这些职场里的“潜规则”,职场路上你才会更轻松。
  
  规则一:入职时的工资高低不重要,只要你努力工作你会得到相应待遇的。
  
  我估计几乎找过工作的人都听过这句话,当我们确定被聘用跟公司谈工资时,他们都会说“如果以后你业绩突出、努力工作,你的报酬也会相应增加的”,特别是当第一次找工作的时候大多数人会相信这些话,但是千万别相信。
  刚入职时,你的工资就是你的全部(当然有一些岗位,比如销售或弹性工资的岗位除外,而且你入职以后大部分待遇都会跟着你的工资而浮动,工资调整也是按你目前的工资乘于一定的百分比,保险、公积金也跟工资有关系),当你的基本工资低的时候你今后的报酬增长空间也不大。所以,找工作时千万不要心软,多争取一些基本工资,因为这是你的所有。
  比如你入职时的基本工资为4000,第二年涨幅为20% (一般的企业极少数人能涨20%),那第二年工资为4800; 如果你的同事入职时基本工资为4500,第二年涨幅为10%(一般涨幅),那他第二年工资为4950。
  是不是看到差距了? 请记住,入职时工资就是你的全部,一定不能心软。

  规则二:人事部不是你的倾谈对象。
  
  很多员工找人事部经理谈话,而且人事部员工可能会定期找员工谈话,问员工在工作中有没有遇到什么问题? 有没有人事部需要帮员工解决的事情?
  但是请你记住, 公司人事部并不是你的倾谈对象,人事部的首要任务不是去帮助雇员,而是保护公司利益不受雇员损害,这才是最为重要的。可能很多人认为人事部门是自己的朋友,有时甚至连对公司、对老板的真实态度都会告知于人事部门。(如果你经常这样的话,我可以肯定的说,你会跌得很惨,而且不会有人告知你原因的。)
  无论人事部的人员表现得何等友好,你均要认清,你跟他们的谈话内容,他们必然会与决策部门分享这些信息,例如你的老板、经理、主管及首席执行官。人事部门的职责就是(有时也是合法的)告知公司决策部门你那些所谓的“ 秘密”。
  比如你不喜欢你目前的工作内容、或与老板的关系处理的不好,你千万不能找人事部抱怨,你应该直接跟你的老板沟通。可能当时谈话时人事部的员工会给予同情,说自己向自己的上司反映这个情况,但是大多数情况下人事部门会将你与他们的对话原封不动地转达给你的老板,而你的老板对此是绝对无法原谅的,出现问题首先不去找老板解决,而是直接找到人事部门,这样你的处境就很被动了,有可能被迫离开公司了。

  规则三:你的能力并不能确保你的安全。
  
  很多公司在招聘员工或对外宣传时说我们公司注重员工的能力,提倡员工能发挥自己的主观能动性(确实有一些公司是提倡创新的,但是极少数,大部分都只是打打口号而已)。
  对于刚入职的员工来说可能都会有一种心理,那就是向同事或领导展示你的才华、展示你的能力,但是请注意:公司或你的领导倒希望先看到你的忠诚,而不是显摆自己的能力。不管你的目的是什么,这个并不重要,如果你一贯展示你的能力,很有可能上司觉得你卖弄小聪明、是一个不值得信赖的人,或他会感受到威胁,如果他认为你在威胁他的位置,他才不管你有多聪明,他宁愿要一个愚笨但对自己忠诚的人。
  所以,当你刚入职或刚调到一个新部门的时候,千万不能先自作聪明,你首先要做的是熟悉环境熟悉上司同事的性格,即使你是一个专家也要先摆低姿态,当然必要的是关键时刻也需要显示自己的能力,让别人觉得你是深藏不露。
  韩国有一个俗语说“要想让婚姻生活幸福,就要当3年聋子,3年哑巴,3年盲人” ,因为以前在韩国婆婆对媳妇很是虐待,你必须是装聋作哑才能熬过去(当然现在已经不是这种情况了),我说这个的目的是新来乍到,你应该学会作哑装聋,刚开始多听、多学,听到闲言碎语要装聋。

  规则四:报销单是公司测试你的一个工具
  
  看到这个题目或许你会纳闷?报销单也能测试员工?是的,我们平时不以为常的报销单也是公司或领导测试你的一个工具。
  大部分公司都会有月底报销(餐费、交通费、电话费等)或出差报销吧?
  你让你的领导在你的报销单上签字的时候,他有没有说过什么?或他有没有做过什么表情? 请注意,其实大部分情况下领导们都会看你报销的金额,而且如果他们愿意的话财务部门可以随时提供每个人的报销明细。
  以前看过一些在公司里面贪小便宜的人,餐费、交通费里总是放着一些自己私人用的(而不是为了公司业务)费用,或许这些费用只有100元,但正是这些小钱会坏了你的前程。

  规则五:在工作场合中透露私事很危险。
  
  现在我们大部分人有太多时间跟同事一起过,我们跟同事在一起的时间有时甚至超过跟家人在一起的时间,这种情况使我们有时分不清公事和私事,有时候觉得跟同事的关系像亲人一样,跟同事分享自己的私事,孩子养育问题,个人健康问题,经济上遇到的一些困难等,但是请记住,职场就是职场,你这样做很危险。
  如果你自己身体不太好,不需要把自己的健康情况告诉同事或上司,因为对上司来说你不健康说明你不能百分之百投入或有可能影响工作,这样你的上司会不安,他甚至会提前想对策或再额外招人,这样的话到时候即使你的身体恢复了,你有可能会面临失去自己位置的尴尬局面。

  规则六;如果你与老板作对,必然会被逐出公司大门。
  
  在公司里有一个对你产生很大影响的人,如果没有他的支持你不能得到公司的认可,晋升也很难甚至有可能丢掉你的工作,他就是你的顶头上司。
  或许你的上司没有你聪明、没有你能干,你或许对他并不服气,但是请记住,他就像是一个守门人一样,你想绕开守门人,但最终的结果是你也失去了给你敞开的一扇机会门。或许你觉得如果你自己足够有能力,公司领导层会让你绕开你的上司直接让你晋升或给你另外的机会,但是不要做白日梦了,公司往往会站在你上司的角度想一个组织的稳定性,跟自己的上司斗99%受伤的都是你自己。或许你的上司能力没有你强,但是既然他能上升到那个位置就说明他必然有一些其他方面的能力,领导力或组织管理能力或对公司的忠诚;当上司和你产生冲突时公司会站在你上司这一边,请你记住这一点。

  规则七:按了发送键? 公司邮件很危险!

  如果我说你用公司邮箱收发的邮件都被你的上司所看到,你是不是觉得天要塌下来了?如果不是的话,那就说明你很光明正大。其实很多人都不知道公司或上司能看到你的邮件,而且公司也绝不会给员工发个警告,说要注意互相往来的E-mail,如果你用公司邮箱给朋友发私人邮件,或跟同事用邮件谈论上司或公司的政策,一定要睁大眼睛看一下:公司邮箱很危险。
  (1)你利用公司邮箱收发邮件时,你一定要想着有可能公司某人正在看这封邮件,因为真的有些公司会定期检查一下邮件内容(当然是不告知于员工的情况下),听说一些国际知名公司会定期查员工的邮件。
  (2) 邮件会永远留在公司服务器: 你或许不知道,就算有些邮件发完了你后悔了马上删除了,可能在你的邮箱里面是已经没有了,公司服务器永远记录这封邮件的。
  (3)按发送键的时候一定要三思:你或许通过邮件给人事部或你的上司提一些建议或者对公司制度做一些评论,一定要注意,这些邮件在一些重要时刻会成为呈堂证供,很多情况下往往对你不利。
  在公司里面经常收到一些群发的搞笑邮件,如果以前你给同事群发过这些邮件,我建议你以后不要再发了。因为你经常发这些会让别人觉得你整天没事做,所以才发这种邮件。或许收到这些邮件的他(或她)把这个邮件转发给一些领导了,或许他也是为了让领导搞笑、高兴,但是领导们可不会这么想,你在领导的眼里会变成整天无所事事的人的。
  
  规则八:我努力工作公司会给我加薪?No,你必须要求!

  对于工资,公司和员工之间永远都不能达到双赢,很多人对自己目前的工资并不满意。那么怎么办呢? 等着公司给你加薪?很多人认为如果我做好自己的事情,我出业绩了,公司肯定会给我加薪,是的,公司会给你加薪,但是,加薪的幅度肯定不能满足你的期望。
  看过很多案例,很多人都幻想“到时候”公司会给我加薪,或害怕自己提要求以后老板有什么想法所以不敢提出来,但是如果你不敢提出加薪,公司给你的可能就是一个平均值或略高于平均值的薪水,它不是你所期待的。
  当然你想要求加薪,首先你要弄清楚你的“价值”,而且必须是站在公司的角度想,如果公司认为你没有“加薪的价值”还提出要求,那你很有可能会被裁掉的。
  (1)证明你的“价值”:如果你在公司整天无所事事,那公司肯定不会给你加薪的,在要求之前你必须要证明你的“价值”,让你成为公司不可缺少的人才。
  (2)提要求:像前面所说的一样,公司每天都想着怎么削减成本,如果你不要求公司觉得这是一件好事情,除非你要求了,公司绝不会自愿给你涨很多工资的。不要想着哪天会出现奇迹,如果你觉得你有价值,就要求吧,如果上司认可你,他会倾听你的话语的,并且千万不能让你老板成为你的敌人,交流的最后一定要强调我还是尊重你的决定,因为有些时候由于客观的原因老板也有身不由己的时候。
  (3)不要威胁上司:如果你还想待在公司,在要求加薪时,千万不要威胁上司,比如不加薪就离开公司或跟上司说谎说已经拿了别的公司的OFFER等,你的立场必须是“我很喜欢这个公司还有目前的业务,但是我觉得目前的工资跟我实际做的工作有差距,我希望工资能体现我的价值”等,你威胁的结果很有可能是得打包走人。
  (4)不要抱怨:即使最后的结果不是很好,比如不给你加薪或加了很少一部分,通过主动出击你可能明白了自己的短处或老板对你的看法,也让老板明白了你不满足于现状。如果你没有打算离开这个公司,你就要现在开始弥补自己的短处或提高自己的业绩,下次再用更强烈的事实来证明,可能这次没有成功,但是你离下次成功就不远了 。

  规则九:加薪必须要求,那晋升呢? NO,千万要管好自己的嘴巴。

  既然说加薪必须要求,那晋升呢?这个千万不能要求,一旦你申请或要求晋升机会,它就会与你失之交臂,晋升不是要求的,而是上司通过认真考虑之后给予你的。
  上司还没有确信你能不能成为管理人员之前你先要求,这就像是你不从大门进,而是要跳过墙进到内部。因为如果上司还没有确信你是一个当领导的料,但你先提出来,他会觉得你还没有成熟或认为你比起公司的利益更在意自己的私利。
  领导们在决定晋升人选时除了业绩、工作能力之外,还会考察很多其他能力,比如领导能力,组织能力,对公司的忠诚度等,而且作为管理人员应该要沉得住气、该谦虚的时候需要谦虚,你事先提出来会破坏你的形象的。
  难道要坐等吗?当然不是,你可以主动负责一些重要的项目、要提出帮助其他部门面临的棘手的项目等,一定要抓住机会让上司看到你的能力,看到你的热情。

  规则十;如果遇到新上司要积极配合他。

  现在的公司经常会发生人事变动,一般来说遇到新上司属下的员工都会有一点被别人侵入的感觉,特别是当你和前任上司关系非常好的时候这种感觉更强烈。但是如果你想在公司继续混下去,你要尽快配合新上司,熟悉他的工作作风。
  很多时候新上司赴任以后下属员工都期望新来的上司适应部门原来的工作方式,但是这种事情不会发生的,大部分新上司都会对目前的工作方式进行变更,这种时候千万不要带头抵触或提意见,所谓新官上任三把火,这时候你要做的是积极配合他,如果别的员工有不满情绪,你应该要中间周旋一下,这样新上司会觉得你是站在他这一边的,这个第一印象特别重要。
  同时,新上司刚来时,你觉得新上司还不懂部门的情况,所以就出面给他一些忠告或建议,就算你是为了新上司好,千万不要提忠告或建议,这是一个禁忌。如果他主动问你,你可以说,但是,这种时候也尽量说事实,不要涉及到你个人的意见或负面的信息,你要让你的上司根据这些事实自己做出决定。况且新上司问你的意见或建议,是想测试你们的忠诚,想知道你们对公司或同事的真实想法,这很有可能是一个圈套。
  在这里你要记住一点的是,新上司来了熟悉业务的时候对你来说是一个很好的表现自己的机会,记住,少说,默默配合新上司的工作,他会把这些都会记在心里的。

  规则十一:想成为公司中最有价值的员工?那你就必须停止说“我做不了”而主动请缨。

  是不是人人都想成为公司的MVP? 那你必须要停止说“我做不了”而主动请缨,每次上司给你分配任务的时候你是不是说 “我没做过这个,我做不了这个”或“我现在没时间这个”。
  就算是你觉得这个任务对你来说有点难,你觉得你有可能完成不了, 这种时候很多人可能条件反射地说”这个我做不来”,千万不要这样说。其实领导给你分配这个任务, 他肯定是考虑过你的能力,而且可能这件事情即使没做好他也有后路的(一般领导不会给你安排很重要而且如果搞砸了没有后路的事情) 。这种时候即使你完成的不够好可能也不会损失什么, 这种时候你的态度应该是“这个我做起来有些难, 但是我会试试的”。然后就得通宵加班或使上你全身力气把问题给解决。
  如果你做的过程中发现按你现在的能力完成不了,你一定要在最后期限之前提交给领导(不要在最后一天提交完成度不高的答案, 领导最讨厌这种人),让他有更多时间来修改。如果你习惯性的说“我做不了”,过一段时间以后他会觉得“给你任务你肯定说做不了”,所以干脆不给你指派任务。
  如果你们部门里有所有人都不想做的项目或任务,如果你主动请缨接收这个“烫山芋”,那领导会对你刮目相看,给予你很好的评价的,当然这种烫山芋不需要太多,只要一个就可以。

  规则十二:想要脱颖而出?让领导感到150%满足感。

  在职场成功的一个秘诀, 不要只干领导让你做的事情,。如果你只是按照领导说的话100% 执行,那你永远也无法脱颖而出。在公司做领导给你分配的任务的时候,一定要多长一个心眼, 除了他布置的任务以外, 你可以提出你的建议或者是一些改善意见,而且完成度不能是100%, 而是要达到150%。
  “做女人要像希拉里一样”中希拉里用的战略中一个很重要的战略就是: ” 让雇佣我的人或者是接受我提供的服务的人感到200%的满足感”, 这样看希拉里的目标更高。
  很多人都觉得你只要做好领导分配的任务让你的领导满足100%, 做好自己分内的事情就可以了,但是如果这样做, 你在职场永远不能混好。

  规则十三;你们公司允许言论自由吗?职场没有言论自由!

  或许当你第一天上班的时候人事部的人会对你我们公司很自由,而且在很多时候开会的时候总经理会说“大家畅所欲言吧,我会尽力满足你们的要求、尽量解决你们所提的意见”,千万不要陷进这个陷阱。大多数时候公司是没有言论自由的,特别是当你对公司的政策,环境或制度说出了真实的想法,在公开场合上反对公司的政策制度,公司会视你为影响公司氛围的反动派,他们觉得你很危险所以通过一些方法让你打包走人的。
  我不知道真有开放的公司是不是有言论自由,但是我看到的版本是每当总经理跟员工面谈时都会让他们畅所欲言,但是等他们真正说出了真实想法,马上他就失去了公司的信任。
  还有一点,我经常看到一些人在电梯里跟同事或朋友说公司里面的事情,这个是一个很不专业的行为,因为不管你是在你办公室的电梯还是在客户公司电梯,跟你一起乘坐电梯的人有可能是你上司的朋友,重要的客户,你称赞公司可以,但是反对或不满的话语千万不要在电梯里面说,不然到时候你都不知道自己为什么死得这么快了。

  规则十四:你的办公桌专业化吗?

  现在大部分外企的办公桌都是一格一格的小格子,或许你认为办公桌是我私人的地方,我想放什么就放什么,但是请注意,办公桌也是体现你价值的地方,所以要让你的办公桌也变得专业化。
  那怎么样的办公桌才是专业化的呢?
  (1)不能太乱,我在公司里看到很多人的办公桌都是乱七八糟的,各种各样的文件摆在那里,太乱的话很容易给别人这个人工作没有条理的印象。
  (2)不能太整洁,如果你办公桌上什么都没有太整洁了,那别人会觉得你根本没事做。
  (3)不能有太多装饰品。现在80后追求个性,办公桌上面放着各种各样的东西,曾经我的同事中有一个人的办公桌可以看作是一个礼品店,各种各样的娃娃还有各种小东西,可能自己觉得这样很有创意,但是别人都在背后说她。
  (4)跟业务无关或跟你的调不符的书籍千万不要放在让人看到的地方。
  总的来说,我觉得白天你可以把你的文件或资料放在桌上,但是下班的时候一定要整理,那些重要的资料一定要放在抽屉里(最好是锁着),这样可以显示出你做事很专业。而且现实生活中有些上司习惯下班以后转一圈看看下属的办公桌,一是看看你的桌上有没有公司重要的资料敞开着,二是通过你办公桌上的东西看看你最近的动向(如果你桌上有“8个方法教你找好工作”之类的书,那你应该是有跳槽的打算了吧?)

  规则十五:业绩考核结果跟你的业绩不相符?业绩也需要进行宣传。

  大部分公司每年都会进行1到2次(或4次)的业绩考核,业绩考核结果会影响到你的奖金/晋升等,但是很多员工发现业绩考核结果跟自己想象的完全不一样,这是为什么呢?因为业绩考核中你主观性的判断根本不重要,重要的是你的上司怎么判断你的业绩。如果你做的工作是拿数据说话的,像销售等,可能还好一点,但是我们很多人做的工作可能没有具体的数据来支持,这种时候你平时也要对自己的业绩进行宣传了。
  很多人平时都不怎么跟上司沟通,但是一到年底对考核结果不满,就找上司透漏不满情绪,这种做法无法改变什么,你需要做的是:
  (1) 要跟上司做定期的沟通:跟自己的顶头上司定期沟通是很重要,因为通过这种沟通你可以让上司知道你正在做的工作,同时你也可以了解上司到底想什么,对你期待什么。按自己的标准来做事在公司里是站不住脚的,如果想要获得好的绩效评价,你必须要满足上司的期待和标准。
  (2)对自己的业绩进行宣传:大家肯定会问这个怎么宣传啊?上司不都在看着吗?但是很多时候你做的一些事情上司还真不知道,不管你多么努力工作,如果上司不知道的话就没用,所以必要的时候一定要把一些工作进展的情况CC给上司,或者是采取定期把自己正在做的工作列个目录,详细描述进行情况发给上司,上司在进行绩效考核的时候可以参照这些书面的东西。
  (3)即使上司给了你一个不好的评价,你不能透漏不满。因为上司这样做肯定是有他的理由的,而且他有权力给你不好的评价。你需要做的是让上司说出来他的意见,你要根据上司的意见来进行改正,因为你有义务迎合上司的工作方式、工作作风,谁让他是你的上司呢?


  规则十六:你是不是公司里的“好好人”?如果一味地讨好他人,你便会失去他人的尊重。

  每个公司都会有好好人,他们对于所有人都笑眯眯,对于所有人的要求都不会说“NO”。如果你是新进入公司的员工,可能刚开始要得到其他同事的信任,需要讨好别人,当然这个是需要的,但是请你不要搞混“摆正态度”和 “没有自己主见的好好人” ;如果你一味地讨好他人没有一点自己的主见,你会失去他人对你的尊重,在工作中别人也会把你看作是没有真学问的空瓶。
  这个说起来简单做起来难,有些时候是需要讨好人,但是面对重要的事情或重要的业务时,如果你认为你的想法是正确的,你应该坚持,不能一味同意别人的观点,要有自己的主见。
  有一个人,对于任何人拜托他的事情他都说好,结果到后来公司里的所有杂事都摊到他那里去了,他自己是为了这些琐事而整天忙碌,但是别人在后面则会笑话他。当时听的时候我想,他的同事们怎么这样啊?但是一想,估计这些事情都是他咎由自取的。对于不合适的工作或拜托,或对工作的正确的意见,如果你认为正确的话,你都应该要提出来,不能做个“好好人”,这两者的度怎么掌握,那还是看个人所处的环境或性格了。


  规则十七:不要隐藏自己的失误。

  我们在工作中难免会犯一些失误,所有人都有一种心理,那就是想在别人不知道的情况下隐藏自己的失误。但是有一点请注意,如果你所犯的失误涉及到你们部门或你的上司,你一定不能隐藏,因为很多时候隐藏自己的失误带来的是更大的失误,正所谓越遮越丑,就算你犯的是一个很低级的错误,你也要告知部门负责人或相关人员。
  我并不是说所有的失误都要公开,如果这个事情不涉及到别人,你自己一个人就解决的话你就不用公开。但是如果这个失误会波及到你的上司或组织,一定要提前告知他们,并想办法解决。所有人都会失误,如果你非常负责地处理你所犯的失误,它不会让你难堪,反而会给你加分的,因为领导们觉得你很诚实而且有责任心。但是请注意,事情过去以后同样的错误你不能再犯一次。


  规则十八:休了病假或产假吗?你需要注意了。

  病假和产假是一个很好的福利制度,最近发现公司里怀孕的人比较多,大多数人认为法定的“病假或产假”是严格受法律保护的权利,但是你一定要注意,这有可能会把你陷入两难境地。当然,当你休长期病假(法定的)或产假还有哺乳期间公司是不能解雇你,但是如果这段期间你处理不好的话,一旦过了这个时期你就会上“黑名单”上。
  因为公司的员工数基本上是固定的,一旦你休几个月的假,这段期间你的工作会分到别人的头上或公司要额外的招人,过了几个月以后当你回来很可能已经没有你的位置或让你做的工作了。
  
  那么怎么样才能防止这种情况呢?
  (1)假期期间,持续跟公司的联系,特别是跟你上司的联系:我知道对于刚生孩子休产假的人来说这个应该很难,因为有太多事情让你操心,但是我还是希望你能定期抽时间跟上司或同事联系,聊一下工作的事情,或有重要的项目时如果可以的话你也可以给一些建议,但是这些,必须要让你的上司。
  (2)一定要与时俱进,不能丢”业务感觉”。我们学外语的时候语感很重要,但是一旦你放了很久,你就没有语感了,这样你整个外语水平就会下降。工作也是一样的,你必须对你的业务保持那种“业务感觉”,如果可以的话在家里也看一下相关资料(当然是在你的身体允许的情况下),因为你一旦上班,公司或上司会有一段时间“观察”你,看你的工作能力或效率是不是跟以前一样。


  规则十九:劳动法并不能保护你。
 
  可能很多人会觉得现在随着法律的完善,特别是随着劳动合同法的修订等,劳动法会保护我们,但是不要对劳动法抱有幻想,它并不能保护我们。因为正所谓“上有政策下有对策”,公司的人事部或外部的人事机构会巧妙的绕过法律,保护公司的利益。
  举一个例子,从新劳动合同法第39条中明确规定劳动者有下列情形之一的,用人单位可以解除劳动合同,如“严重违反用人单位的规章制度的”,用人单位的规章制度很多样化,几乎你所想到的或没想到的都列了出来,到时候如果公司真的要辞掉你,很简单,在这么多条当中肯定适用于你的。
  而且一般公司想裁你会通过一些措施来让你“主动辞职”,比如上司经常给你分配你无法完成的任务,或上司对你的态度很冷淡让你无法忍受,你的办公桌移到非常不好的位置,给你一个很短的期限完成一个根本不可能完成的任务,给你很低的评价等,如果有这种征兆的话,你应该好好考虑自己的职业规划并做打算才行。

  规则二十:赢,才是硬道理。

  说了这么多,或许给一些即将进入社会或刚进入社会的师弟师妹们一种恐惧的心理,想着公司怎么都这样啊。或许这个不是适用于所有的公司,因为你会遇到好的公司,好的上司。
  但是不怕一万就怕万一,我希望大家都提前准备能保护自己的武器,可以绕过这些陷阱。如果你有才能,你必须要充分发挥出来并让别人知道,并让他们给你打开一扇机会之门。
  我们的人生就像是一场赌博,职场更是一场赌博,你可以选择你出的牌,从而决定自己的输赢。在职场无望的等待天上掉馅饼不是明智之举,你应该积极地占据主动位置,学会“赌博”,学会扭转局势,因为赢才是硬道理!

 ps:职场是残酷的,某些时候甚至是黑暗的,要想在其中生存发展,必须深刻地解读它的游戏规则。规则是一种制度,潜规则是一种游戏。遵守制度的人,只能被人领导。而读懂游戏规则的人才能活得自由自在,甚至能领导别人。职场是人生的演绎,所以无论你是职场新人,还是高层管理;无论你是外企白领,还是国企领导,都是职场这段人生的主角。有些规则,知道总比不知道好,因为这就是生活。我们无法以身试险,遍尝所有的潜规则。我们要做到的是快速成长。通过阅读他人的故事,结合自己的经历与再观察,让隐形的游戏规则了然于胸;然后,技巧性地去战斗、去奋斗、去成功。

posted @ 2010-12-02 01:12 paulwong 阅读(149) | 评论 (0)编辑 收藏

javascript图片浏览器的核心——图片预加载

网站开发时经常需要在某个页面需要实现对大量图片的浏览,如果考虑流量的话,大可以像pconline一样每个页面只显示一张图片,让用户每看一张图片就需要重新下载一下整个页面。不过,在web2.0时代,更多人愿意用javascript来实现一个图片浏览器,让用户无需等待过长的时间就能看到其他图片。

知道了一张图片的地址,需要把它在一个固定大小的html容器(可以是div等)里边显示出来,最重要的当然是需要知道这张即将显示的图片的宽和高,然后再结合容器的宽和高,按照一定的缩放比例使图片显示出来。因此,实现图片预加载就成为图片浏览器的核心功能了。

做过图片翻转效果的朋友其实都知道,要让图片轮换的时候不出现等待,最好是先让图片下载到本地,让浏览器缓存起来。这时,一般都会用到js里边的Image对象。一般的手段无非这样:

function preLoadImg(url) {
var img = new Image();
img.src 
= url;
}


通过调用preLoadImg函数,传入图片的url,就能使图片预先下载下来了。实际上,这里用到的预下载功能也和这基本一致。图片预下载下来后,通过 img的width和height属性,就能知道图片的宽和高了。但是需要考虑到,在做图片浏览器功能时,图片都是实时显示的。比如你点了显示的按钮,这个时候才会调用上边类似的代码来加载图片。因此,如果你直接用img.width的时候,图片还没有完全下载下来。因此,需要用一些异步的方法,等到图片下载完毕的时候才会再对img的width和height进行调用。 实现这样的异步方法实际上不难,图片的下载完毕事件也很简单,就是简单的onload事件。因此,我们可以写出下面的代码:


function loadImage(url, callback) {
var img = new Image();
img.src 
= url;

img.onload 
= function()//图片下载完毕时异步调用callback函数。
callback.call(img); // 将callback函数this指针切换为img。
}
;
}


好了,再来写一个测试用例。


function imgLoaded(){
alert(
this.width);
}


<input type="button" value="loadImage" onclick="loadImage('aaa.jpg',imgLoaded)"/>

在firefox中测试一下,发现不错,果然和预想的效果一样,在图片下载后,就会弹出图片的宽度来。无论点击多少次或者刷新结果都一样。

不过,做到这一步,先别高兴太早——还需要考虑一下浏览器的兼容性,于是,赶紧到ie里边测试一下。没错,同样弹出了图片的宽度。但是,再点击load的时候,情况就不一样了,什么反应都没有了。刷新一下,也同样如此。

经过对多个浏览器版本的测试,发现ie6、opera都会这样,而firefox和safari则表现正常。其实,原因也挺简单的,就是因为浏览器的缓存了。当图片加载过一次以后,如果再有对该图片的请求时,由于浏览器已经缓存住这张图片了,不会再发起一次新的请求,而是直接从缓存中加载过来。对于 firefox和safari,它们视图使这两种加载方式对用户透明,同样会引起图片的onload事件,而ie和opera则忽略了这种同一性,不会引起图片的onload事件,因此上边的代码在它们里边不能得以实现效果。

怎么办呢?最好的情况是Image可以有一个状态值表明它是否已经载入成功了。从缓存加载的时候,因为不需要等待,这个状态值就直接是表明已经下载了,而从http请求加载时,因为需要等待下载,这个值显示为未完成。这样的话,就可以搞定了。

经过一些分析,终于发现一个为各个浏览器所兼容的Image的属性——complete。所以,在图片onload事件之前先对这个值做一下判断即可。最后,代码变成如下的样子:


function loadImage(url, callback) {
var img = new Image(); //创建一个Image对象,实现图片的预下载
img.src = url;

if (img.complete) // 如果图片已经存在于浏览器缓存,直接调用回调函数
callback.call(img);
return// 直接返回,不用再处理onload事件
}


img.onload 
= function () //图片下载完毕时异步调用callback函数。
callback.call(img);//将回调函数的this替换为Image对象
}
;
}
;

经过这么一番折腾,总算是让各个浏览器都能满足我们的目标了。虽然代码很简单,但是却把图片浏览器中最核心的问题解决掉了,接下来你所要做的,仅仅是图片如何呈现的问题了。

posted @ 2010-11-13 17:24 paulwong 阅读(460) | 评论 (0)编辑 收藏

JBPM 4入门介绍

JBPM 4入门介绍:

http://www.blogjava.net/sxyx2008/archive/2010/09/28/333256.html


跟我学JBPM4之State、Decision 、Task活动


http://www.blogjava.net/sxyx2008/archive/2010/09/29/333385.html

posted @ 2010-09-29 23:09 paulwong 阅读(303) | 评论 (0)编辑 收藏

oracle数据库换系统后恢复以前oracle数据操作方法(转)

  就在昨天,帮别人站长开发的搜商网http://www.28844.com/说系统出问题了,然后数据库我最近帮忙在调整,由于数据没有备份,好在oracle装在E盘
机房的人给他重新装了系统,只能恢复以前oracle数据
 下面是步骤
一.先备份以前oracle数据,比如是在E:\oracle 将修改成E:\oracle_bak
然后开始安装oeacle,装完毕后,点击--开始---程序---Oracle - OraDb10g_home1---应用程序开发---SQL Plus
输入用户名:system、密码:www28844com、orcl,进入后输入:Connect sys/www28844com as sysdba;回车,
然后输入:shutdown immediate;关闭数据库。
二.复制E:\oracle_bak\product\10.2.0下flash_recovery_area、oradata所有文件覆盖 E:\oracle\product\10.2.0里面的flash_recovery_area、oradata。把E:\oracle_bak \product\10.2.0\admin\ordb下面的bdump、cdump、pfile、udump四个文件夹覆盖到E:\oracle \product\10.2.0\admin\ordb下面,把E:\oracle_bak\product\10.2.0\db_1\database 下面的initordb.ora、PWDordb.ora两个文件覆盖到E:\oracle\product\10.2.0\db_1\database 里。在把E:\oracle_bak\product\10.2.0\db_1\NETWORK\ADMIN\SAMPLE下的 LISTENER.ORA、SQLNET.ORA、TNSNAMES.ORA覆盖到E:\oracle\product\10.2.0\db_1 \NETWORK\ADMIN\SAMPLE里面。
第二步操作完然后在SQL Plus里输入:startup;
三. 以下操作的时候可能有会有忘记密码的,或者某种原因密码不对的,你可以在SQL Plus里修改,命令如下:alter user sys identified by www28844com;这样sys密码就改成www28844com了。
先删除原来的配置------首先打开Oracle中的SQL Plus工具,输入用户名和密码登录后,执行以下命令:
drop user sysman cascade;(这一个执行比较慢)
drop role MGMT_USER;
drop user MGMT_VIEW cascade;
drop public synonym MGMT_TARGET_BLACKOUTS;
drop public synonym SETEMVIEWUSERCONTEXT;
创建新的配置----一定要注意,下面的步骤不是在Oracle中的SQL Plus下命令,而是在本机DOS下
点击开始菜单-运行-cmd 进入命令行进行操作

C:\Documents and Settings\www28844com>emca -repos recreate
EMCA 开始于 2010-9-13 17:13:46
EM Configuration Assistant 10.2.0.1.0 正式版
版权所有 (c) 2003, 2005, Oracle。保留所有权利。
输入以下信息:
数据库 SID: orcl
监听程序端口号: 1521
SYS 用户的口令:
SYSMAN 用户的口令:
是否继续? [yes(Y)/no(N)]: y
2010-9-13 17:14:26 oracle.sysman.emcp.EMConfig perform
信息: 正在将此操作记录到 E:\oracle\product\10.2.0\db_1\cfgtoollogs\emca\orcl\emc
a_2010-9-13_05-13-45-下午.log。
2010-9-13 17:14:27 oracle.sysman.emcp.EMReposConfig dropRepository
信息: 正在删除 EM 资料档案库 (此操作可能需要一段时间)...
2010-9-13 17:14:38 oracle.sysman.emcp.EMReposConfig invoke
信息: 已成功删除资料档案库
2010-9-13 17:14:38 oracle.sysman.emcp.EMReposConfig createRepository
信息: 正在创建 EM 资料档案库 (此操作可能需要一段时间)...
2010-9-13 17:18:34 oracle.sysman.emcp.EMReposConfig invoke
信息: 已成功创建资料档案库
已成功完成 Enterprise Manager 的配置
EMCA 结束于 2010-1-28 17:18:34
C:\Documents and Settings\www28844com>emca -config dbcontrol db
EMCA 开始于 2010-9-13 17:20:29
EM Configuration Assistant 10.2.0.1.0 正式版
版权所有 (c) 2003, 2005, Oracle。保留所有权利。
输入以下信息:
数据库 SID: orcl
已为数据库 orcl 配置了 Database Control
您已选择配置 Database Control, 以便管理数据库 orcl
此操作将移去现有配置和默认设置, 并重新执行配置
是否继续? [yes(Y)/no(N)]: y
监听程序端口号: 1521
SYS 用户的口令:
DBSNMP 用户的口令:
用户名/口令无效。
DBSNMP 用户的口令:
SYSMAN 用户的口令:
用户名/口令无效。
SYSMAN 用户的口令:
通知的电子邮件地址 (可选):
通知的发件 (SMTP) 服务器 (可选):
-----------------------------------------------------------------
已指定以下设置
数据库 ORACLE_HOME ................ E:\oracle\product\10.2.0\db_1
数据库主机名 ................ yhg
监听程序端口号 ................ 1521
数据库 SID ................ orcl
通知的电子邮件地址 ...............
通知的发件 (SMTP) 服务器 ...............
-----------------------------------------------------------------
是否继续? [yes(Y)/no(N)]: y
2010-9-13 17:22:49 oracle.sysman.emcp.EMConfig perform
信息: 正在将此操作记录到 E:\oracle\product\10.2.0\db_1\cfgtoollogs\emca\orcl\emc
a_2010-9-13_05-20-29-下午.log。
2010-9-13 17:22:54 oracle.sysman.emcp.util.DBControlUtil stopOMS
信息: 正在停止 Database Control (此操作可能需要一段时间)...
2010-9-13 17:23:52 oracle.sysman.emcp.util.DBControlUtil startOMS
信息: 正在启动 Database Control (此操作可能需要一段时间)...
2010-9-13 17:24:43 oracle.sysman.emcp.EMDBPostConfig performConfiguration
信息: 已成功启动 Database Control
2010-9-13 17:24:43 oracle.sysman.emcp.EMDBPostConfig performConfiguration
警告: 无法创建 Database Control 快捷方式
2010-9-13 17:24:43 oracle.sysman.emcp.EMDBPostConfig performConfiguration

已成功完成 Enterprise Manager 的配置
EMCA 结束于 2010-9-13 17:24:43
C:\Documents and Settings\www28844com>


https://127.0.0.1:1158/em打开地址,可连接数据库实例,正常!
    写完了,大家有兴趣可以看看http://www.28844.com/ 搜索是用的lucene,  目前数据是在网上人肉,然后用程序抓取,针对的增加库里,目前搜索已经支持运算例如(1+1),还有IP
搜索,目前开发也只有我一个,也没什么前段,都是我和站长2个搞定,我主要技术,然后他就是一些想法。是在工作之外帮这个站长开发的,大家有什么好的点子,可以告诉我。我们可以一起把这个站做好一点。。

posted @ 2010-09-15 00:04 paulwong 阅读(390) | 评论 (0)编辑 收藏

如何將舊機器的資料轉移到新機器上(转)

當你買了新的iPhone,或是因為某些原因,你擁有了新的iPhone,而想將舊有iPhone/iPod Touch中的所有資料轉移過來,該怎麼做呢?

吉米現在來教你,其實非常的簡單



首先,先將舊的iPhone插上iTunes,然後在左側有寫著你iPhone名字的地方,按下滑鼠右鍵,然後按下「備份」,千萬記住,這個備份比「同步」還重要

同步不等於備份,記得喔

而若你怕忘記,你還可以先把iPhone的名字改成你自己記得的名字,例如「iPhone2G」

等他備份好之後

喔這裡在提醒一下

有那些東西會被備份下來

會被備份下來的有:

通訊錄、來電記錄、簡訊記錄、行事曆資料、AppStore下載或是購買軟體所產生的資料、用iPhone拍的照片,系統設定,這些會被記錄下來


有那些東西不會被備份下來:
iPod裡面的音樂檔案、影片檔案、電腦同步回iPhone裡面的照片、cydia安裝的軟體、cydia安裝的軟體所產生的資料...等

簡單的說,透過iTunes、原廠軟體所「產生」資料,都會被備份

而原本本來就應該存放在你電腦裡面的如「音樂檔案」「照片檔案」「App應用程式」這些都是等你重刷好之後,他會在幫你同步回去的

還有就是透過破解之後的第三方軟體、以及其軟體所產生的所有資料,都需要自己備份,例如使用Chronus軟體,將資料備份後,在透過ssh的方式將資料搬回電腦,等新的iPhone弄好之後,在透過同樣方式反向將資料扳回iPhone,在透過Chronus軟體在寫回去,搞死人了吧?

所以吉米說,若你不具備這些本事,不要玩優化,不要玩JB,不要玩破解


---------------------------------------------------
好了,備份完了,接著要拿出新的iPhone了

當然你先確保他已經是最新的軔體了,不然就是接上iTunes,用「回復」的方式來刷到最新的軔體,然後插入SIM卡讓他開通



開通之後,就會出現這個畫面啦,然後用下啦選單選擇你剛備份的那個記錄,然後就等他回復啦

他會先將資料回復回去

接著才是漫長的音樂、影片、照片、App的同步

就這樣就搞定啦!

posted @ 2010-06-24 11:22 paulwong 阅读(696) | 评论 (0)编辑 收藏

想升iOS4.0?请备份SHSH!史上最简单教程,越狱相关shsh备份提醒,小白必进学习AutoSHSH备份。

在众疯友等待4.0的心情可以理解。但是你可以忘记早起后刷牙中午休息时吃饭下午打球后乘凉晚上睡觉前洗脚,就是别忘了备份SHSH文件! 

      按照惯例,以及个人猜测,苹果极有可能在未来几天内封锁3.1.3的SHSH文件,到时候你又觉得4.0不好或者不能越狱的时候,到哪里去大热天裸求或者冰天雪地裸求恢复3.1.3的方法呢? 

   也许你已经在Cydia备份,看到Cydia顶部有“This device has SHSHs file for iphone OS..... ”,但是,你不觉得多一个本地备份自己会睡得更加踏实吗?

      无须再说,此时此刻备份SHSH没有错!


 

--------------------------------我真的是分割线-------------------------------------


此贴参考借鉴大哥RealTomandJerry精华贴:传送门http://bbs.weiphone.com/read-htm-tid-755384-page-1.html大哥的许多贴都有很大帮助,建议大家多看看。
其次:关于SHSH文件大小不同的解答,请移步freeos的解释:http://bbs.weiphone.com/read-htm-tid-768883.html


--------------------------------我真的是分割线-------------------------------------


一.使用方法:
①下载此软件:  AutoSHSH-3.1.3+3.2--RC2.rar (1187 K) 下载次数:36368  
②给你的touch,或者3GS,或者iPad关机。注意,不是锁屏,是持续按住关机键,等提示关机滑块出现再移动滑块的关机!
③完全关闭以后按住home键,就是设备正面唯一的那颗圆圆的按键不放,插上USB,没过几秒便会出现USB连接光盘的图像。

④解压并打开附件中的AutoSHSH软件
 


 














 




二.注意事项:
①本工具需要JAVA组件支持,无论你是什么系统,都需要事先安装JAVA套件,下载地址在这里:
jre-6u17-windows-i586-s.rar (14061 K) 下载次数:21152  
谢谢第三位加分童鞋提醒:如你的系统是Windows xp,需要自己安装Net.Framework。win7已经自带Net.Framework3.5,无需安装。
Net.Framework下载地址:
http://www.microsoft.com/downloads/details.aspx?FamilyID=333325fd-ae52-4e35-b531-508d977d32a6&DisplayLang=zh-cn[/url]
祝你成功!
有分加分,没分捧个人场~


--------------------------------我真的是分割线-------------------------------------

回第一个加分的童鞋
此工具其实就是集成了Umbrella的更方便的提取shsh的软件。之前版本和Umbrella没区别,而这一次RC2区别在于可以向Cydia发送提取shsh文件的请求。
简而言之,就是让Cydia也存入你的shsh文件,以后可以方便的更改74.208.10.249 gs.apple.com来恢复。而一般来说,我们要实现用Cydia备份shsh,前提必须越狱后才能装Cydia,才能点红心备份。此工具可以不越狱便让Cydia保存你的shsh,自然很好,所以才介绍给你们。。。

回复11楼:自然有用。当然,你也可以等spirit破解出来后装Cydia点红心备份,只是我担心还等不到你用Cydia点红心备份,3.1.3的shsh就被apple封了。那时候就晚了,以后系统即使破解,如果崩溃,也只有干着急。当然,你们用Umbrella备份shsh到本地也是可以的,可以用其中的Tinytss工具加载欺骗apple固件验证,只是我在试验的时候发现,插上网线,修改hosts文件127.0.0.1 gs.apple.com可以回复,拔了网线就不行。总而言之,多一个途径备份shsh,多一个位置存,自然有好处。
应20 楼要求,添加java软件。。
回复第四位加分童鞋(545333):
相当于不需要,只要到了光盘加USB那个界面,此工具会自动给你提取出ECID,就出现保存shsh文件的框框,你在文件名处随便填一个名称,选个地址,保存,然后它自动给你发送请求到Cydia,然后等一会就到你选中的本地保存位置了。



声明此贴特点:
①.此备份工具适用于备份所有系列以及所有系统的ipod touch,iphone,ipad。
②.此方法无论是否越狱都可以进行备份shsh。
③.如果看到备份出来的shsh文件是一个大小约63K,以shsh为后缀名的文件,说明你成功了。
④.此贴第一步进入光盘+USB的恢复模式与其他帖子持续按住Home键+关机键不同,只需关机状态下,按住Home键不放并连接USB,可以很快进入恢复模式。如需退出,长按关机键关机后再开机。
⑤.现在只能备份3.1.3的shsh文件,无论你的设备是什么版本的系统,如3.0,3.1.2系统等,都只能备份3.1.3的shsh。

posted @ 2010-06-22 10:07 paulwong 阅读(2753) | 评论 (0)编辑 收藏

借助Spring Module项目,如何配置声明式缓存功能实现

     摘要:  前言: 本文档将讲解一下,如何借助Spring Module项目,实现配置声明性缓存功能。 说明: 本档的配置经过本人测试,都能正确运行。 运行环境: Jdk5.0, Spring-2.5, Spring-modules-0.9, ehcache-1.6.0-beta4.jar 首先创建一个StudentService服务类,本文将对其所有的以get* 方式命令的方法,进...  阅读全文

posted @ 2010-04-23 09:47 paulwong 阅读(813) | 评论 (0)编辑 收藏

jQuery 表格工具集

 

本文搜集了大量 jQuery 表格插件,帮助 Web 设计者更好地驾御 HTML 表格,你可以对表格进行横向和竖向排序,设置固定表头,对表格进行搜索,对大表格进行分页,对表格进行滚动,拖放操作等等。这些插件很多都包含详细的教程。

jQuery 表格插件

Flexigrid – Web 2.0 Javscript Grid for jQuery - 可变列宽,自动适应表头宽度,可通过 Ajax 连接 XML 数据源,类似 Ext Grid,但基于 jQuery 因此更轻量小巧。

Chromatable JQuery Plugin - 固定表头,可滚动内容区,内容区滚动的时候表头位置保持不变。

Ingrid, the jQuery Datagrid - 在 HTML 表格上加入列宽调整,分页,排序,行列式样等功能(演示)。

JQTreeTable - 在表格中加入树形结构

Scrollable HTML table - 将普通 HTML 表格变为可滚动状态。将表头部分放入 THEAD 区,内容部分放入 TBODY 区,脚注部分放入 TFOOT 区域,引用 webtoolkit.scrollabletable.js 文件,然后在每个表格后面创建 ScrollableTable() 对象即可(演示)。

KeyTable - 象 Excel 那样,在单元格之间巡游,可以现场编辑。

graphTable - 借助 flot 将 HTML 表格中的内容变成图形(演示)。

DataTables - 非常强大的 jQuery 表格插件,可变宽页码浏览,现场过滤。多列排序,自动探测数据类型,智能列宽,可从几乎任何数据源获取数据。

jqGrid Plugin - 基于 Ajax 的 jQuery 表格插件,可以 Ajax 方式从服务器端获取数据填充进来(演示)。

Visualize: Accessible Charts & Graphs from Table Elements - 从 HTML 表格收集数据,并借助 HTML5 Canvas 对象转换为图表。

Grider - 一个简单的 jQuery 插件,可以对 HTML 表格进行计算,平均,累加,最大值,最小值等。

表格功能增强

Table Drag and Drop - 通过拖放,对表格中的数据重新排列,可以设置禁止拖放的行。

Table Pagination - 在表格下方自动生成分页导航。

tableRowCheckboxToggle - 可根据 class name 对表格的行自动 check on/off

BS Table Crosshair Plugin - 鼠标在表格上移动时,所经过的单元格自动交叉加亮

jqtable2csv - 将 HTML 表格转换为 SVG 字符串。

Colorize - 自动对表格间隔行使用不同背景颜色

jExpand - 一个非常轻量的 jQuery 插件,可以展开/关闭表格单元格,使表格可以容纳更多内容。

columnHover - 鼠标经过时,可以整列加亮,甚至支持 colspans 和 rowspans

HeatColor - 根据规则,或自动对表格中的值进行分析,对不同范围的值按不同颜色区分。

Fixed Header Table - 固定表头可滚动表格

表格搜索,筛选

tableFilter - 给表格添加简单的筛选功能。

uiTableFilter - 根据条件筛选(隐藏)表格行

Tablesorter 2.0 - 将普通的,拥有 THEAD 和 TBODY 标签的表格转换为可排序表格,可以分析多种数据,支持多列排序。

PicNet Table Filter - 实时的,Google 式筛选功能

jQuery tinysort - 排序

LiveFilter 1.1 - 非常轻量的表格筛选插件,部署非常简单。

jQtablesearch - 快速搜索,非常快

Quicksearch - 简单的搜索功能

jQuery 现场编辑

TableEditor – Flexible in place editing of TableSorter - 现场编辑表格内容,用户可以插入 Ajax 机制回存数据

jGridEditor - 现场编辑,可配置 Ajax 回存数据

本材料原始来源:Nope jQuery HTML Table Toolbox (原文作者:Paul Andrew)

中文编译来源:锐商企业CMS 网站内容管理系统 官方网站

posted @ 2010-04-16 11:14 paulwong 阅读(382) | 评论 (0)编辑 收藏

RUP

一 前言
軟件過程是指實施於軟件開發和維護中的階段、方法、技術、實踐及相關產物(計劃、文檔、模型、代碼、測試用例和手冊等)的集合。行之有效的軟件過程可以提高開發軟件組織的生產效率、提高軟件質量、降低成本並減少風險。

RUP具有較高認知度的原因之一恐怕是因為其提出者Rational軟件公司聚集了物件導向領域三位傑出專家Booch、Rumbaugh和 Jacobson,同時它又是物件導向開發的行業標準語言——標準建模語言(UML)的創立者。RUP是由Objectory過程演化而來。本文主要討論 RUP的主要內容和特點。

二 RUP的二維開發模型

RUP可以用二維坐標來描述。橫軸通過時間組織,是過程展開的生命週期特徵,體現開發過程的動態結構,用來描述它的術語主要包括週期 (Cycle)、階段(Phase)、迭代(Iteration)和里程碑(Milestone);縱軸以內容來組織為自然的邏輯活動,體現開發過程的靜態結構,用來描述它的術語主要包括活動(Activity)、產物(Artifact)、工作者(Worker)和工作流(Workflow)。

三 開發過程中的各個階段和里程碑

RUP中的軟件生命週期在時間上被分解為四個順序的階段,分別是:初始階段(Inception)、細化階段(Elaboration)、構建階段(Construction)和交付階段(Transition)。每個階段結束於一個主要的里程碑(Major Milestones);每個階段本質上是兩個里程碑之間的時間跨度。在每個階段的結尾執行一次評估以確定這個階段的目標是否已經滿足。如果評估結果令人滿意的話,可以允許項目進入下一個階段。

初始階段(Inception Phase)

初始階段的目標是為系統建立商業案例並確定項目的邊界。為了達到該目的必須識別所有與系統交互的外部實體,在較高層次上定義交互的特性。本階段具有非常重要的意義,在這個階段中所關注的是整個項目進行中的業務和需求方面的主要風險。對於建立在原有系統基礎上的開發項目來講,初始階段可能很短。

初始階段結束時是第一個重要的里程碑:生命週期目標(Lifecycle Objective)里程碑。生命週期目標里程碑評價項目基本的生存能力。

細化階段(Elaboration Phase)

細化階段的目標是分析問題領域,建立健全的體系結構基礎,編製項目計劃,淘汰項目中最高風險的元素。為了達到該目的,必須在理解整個系統的基礎上,對體系結構作出決策,包括其範圍、主要功能和諸如性能等非功能需求。同時為項目建立支持環境,包括創建開發案例,創建模板、準則並準備工具。

細化階段結束時第二個重要的里程碑:生命週期結構(Lifecycle Architecture)里程碑。生命週期結構里程碑為系統的結構建立了管理基準並使項目小組能夠在構建階段中進行衡量。此刻,要檢驗詳細的系統目標和範圍、結構的選擇以及主要風險的解決方案。

構建階段(Construction Phase)

在構建階段,所有剩餘的構件和應用程序功能被開發並集成為產品,所有的功能被詳細測試。從某種意義上說,構建階段是一個製造過程,其重點放在管理資源及控制運作以優化成本、進度和質量。

構建階段結束時是第三個重要的里程碑:初始功能(Initial Operational)里程碑。初始功能里程碑決定了產品是否可以在測試環境中進行部署。此刻,要確定軟件、環境、用戶是否可以開始系統的運作。此時的產品版本也常被稱為「beta」版。

交付階段(Transition Phase)

交付階段的重點是確保軟件對最終用戶是可用的。交付階段可以跨越幾次迭代,包括為發佈做準備的產品測試,基於用戶反饋的少量的調整。在生命週期的這一點上,用戶反饋應主要集中在產品調整,設置、安裝和可用性問題,所有主要的結構問題應該已經在項目生命週期的早期階段解決了。

在交付階段的終點是第四個里程碑:產品發佈(Product Release)里程碑。此時,要確定目標是否實現,是否應該開始另一個開發週期。在一些情況下這個里程碑可能與下一個週期的初始階段的結束重合。

四 RUP的核心工作流(Core Workflows)

RUP中有9個核心工作流,分為6個核心過程工作流(Core Process Workflows)和3個核心支持工作流(Core Supporting Workflows)。儘管6個核心過程工作流可能使人想起傳統瀑布模型中的幾個階段,但應注意迭代過程中的階段是完全不同的,這些工作流在整個生命週期中一次又一次被訪問。9個核心工作流在項目中輪流被使用,在每一次迭代中以不同的重點和強度重複。

商業建模(Business Modeling)

商業建模工作流描述了如何為新的目標組織開發一個構想,並基於這個構想在商業用例模型和商業對像模型中定義組織的過程,角色和責任。

需求(Requirements)

需求工作流的目標是描述系統應該做什麼,並使開發人員和用戶就這一描述達成共識。為了達到該目標,要對需要的功能和約束進行提取、組織、文檔化;最重要的是理解系統所解決問題的定義和範圍。

分析和設計(Analysis & Design)

分析和設計工作流將需求轉化成未來系統的設計,為系統開發一個健壯的結構並調整設計使其與實現環境相匹配,優化其性能。分析設計的結果是一個設計模型和一個可選的分析模型。設計模型是源代碼的抽像,由設計類和一些描述組成。設計類被組織成具有良好接口的設計包(Package)和設計子系統 (Subsystem),而描述則體現了類的對象如何協同工作實現用例的功能。

設計活動以體系結構設計為中心,體系結構由若干結構視圖來表達,結構視圖是整個設計的抽像和簡化,該視圖中省略了一些細節,使重要的特點體現得更加清晰。體系結構不僅僅是良好設計模型的承載媒介,而且在系統的開發中能提高被創建模型的質量。

實現(Implementation)

實現工作流的目的包括以層次化的子系統形式定義代碼的組織結構;以組件的形式(源文件、二進制文件、可執行文件)實現類和對像;將開發出的組件作為單元進行測試以及集成由單個開發者(或小組)所產生的結果,使其成為可執行的系統。

測試(Test)

測試工作流要驗證對像間的交互作用,驗證軟件中所有組件的正確集成,檢驗所有的需求已被正確的實現, 識別並確認缺陷在軟件部署之前被提出並處理。RUP提出了迭代的方法,意味著在整個項目中進行測試,從而儘可能早地發現缺陷,從根本上降低了修改缺陷的成本。測試類似於三維模型,分別從可靠性、功能性和系統性能來進行。

部署(Deployment)

部署工作流的目的是成功的生成版本並將軟件分發給最終用戶。部署工作流描述了那些與確保軟件產品對最終用戶具有可用性相關的活動,包括:軟件打包、生成軟件本身以外的產品、安裝軟件、為用戶提供幫助。在有些情況下,還可能包括計劃和進行beta測試版、移植現有的軟件和數據以及正式驗收。

配置和變更管理(Configuration & Change Management)

配置和變更管理工作流描繪了如何在多個成員組成的項目中控制大量的產物。配置和變更管理工作流提供了準則來管理演化系統中的多個變體,跟蹤軟件創建過程中的版本。工作流描述了如何管理並行開發、分佈式開發、如何自動化創建工程。同時也闡述了對產品修改原因、時間、人員保持審計記錄。

項目管理(Project Management)

軟件項目管理平衡各種可能產生衝突的目標,管理風險,克服各種約束併成功交付使用戶滿意的產品。其目標包括:為項目的管理提供框架,為計劃、人員配備、執行和監控項目提供實用的準則,為管理風險提供框架等。

環境(Environment)

環境工作流的目的是向軟件開發組織提供軟件開發環境,包括過程和工具。環境工作流集中於配置項目過程中所需要的活動,同樣也支持開發項目規範的活動,提供了逐步的指導手冊並介紹了如何在組織中實現過程。

五 RUP的迭代開發模式

RUP中的每個階段可以進一步分解為迭代。一個迭代是一個完整的開發循環,產生一個可執行的產品版本,是最終產品的一個子集,它增量式地發展,從一個迭代過程到另一個迭代過程到成為最終的系統。

傳統上的項目組織是順序通過每個工作流,每個工作流只有一次,也就是我們熟悉的瀑布生命週期。這樣做的結果是到實現末期產品完成並開始測試,在分析、設計和實現階段所遺留的隱藏問題會大量出現,項目可能要停止並開始一個漫長的錯誤修正週期。

一種更靈活,風險更小的方法是多次通過不同的開發工作流,這樣可以更好的理解需求,構造一個健壯的體系結構,並最終交付一系列逐步完成的版本。這叫做一個迭代生命週期。在工作流中的每一次順序的通過稱為一次迭代。軟件生命週期是迭代的連續,通過它,軟件是增量的開發。一次迭代包括了生成一個可執行版本的開發活動,還有使用這個版本所必需的其他輔助成分,如版本描述、用戶文檔等。因此一個開發迭代在某種意義上是在所有工作流中的一次完整的經過,這些工作流至少包括:需求工作流、分析和設計工作流、實現工作流、測試工作流。其本身就像一個小型的瀑布項目。

與傳統的瀑布模型相比較,迭代過程具有以下優點:

降低了在一個增量上的開支風險。如果開發人員重複某個迭代,那麼損失只是這一個開發有誤的迭代的花費。

降低了產品無法按照既定進度進入市場的風險。通過在開發早期就確定風險,可以儘早來解決而不至於在開發後期匆匆忙忙。

加快了整個開發工作的進度。因為開發人員清楚問題的焦點所在,他們的工作會更有效率。

由於用戶的需求並不能在一開始就作出完全的界定,它們通常是在後續階段中不斷細化的。因此,迭代過程這種模式使適應需求的變化會更容易些。

六 總結

RUP具有很多長處:提高了團隊生產力,在迭代的開發過程、需求管理、基於組件的體系結構、可視化軟件建模、驗證軟件質量及控制軟件變更等方面,針對所有關鍵的開發活動為每個開發成員提供了必要的準則、模板和工具指導,並確保全體成員共享相同的知識基礎。它建立了簡潔和清晰的過程結構,為開發過程提供較大的通用性。但同時它也存在一些不足: RUP只是一個開發過程,並沒有涵蓋軟件過程的全部內容,例如它缺少關於軟件運行和支持等方面的內容;此外,它沒有支持多項目的開發結構,這在一定程度上降低了在開發組織內大範圍實現重用的可能性。可以說RUP是一個非常好的開端,但並不完美。

posted @ 2010-03-26 10:29 paulwong 阅读(335) | 评论 (0)编辑 收藏

RUP overview

作者:李訓軍博士

隨著現代信息產業的蓬勃發展,軟件開發已經成為一項浩大繁複的工程。 就像是建造一座宏偉的宮殿, 從計劃、設計到施工, 每一個環節都必須嚴格把關, 稍有不慎, 整個工程就會失敗。 據統計, 僅在美國, 每年就有180,000個信息技術項目, 耗資大約$2500億美元, 其中25-30%的項目會流產。 由此可見, 由於管理不善和設計上的失誤所造成的損失是巨大的。現代軟件開發的管理和方法論顯得比以往任何時候都更為重要。

軟件開發的過程由方法論和工具構成(process = methodology + tools)。正如裝配電子設備一樣,僅有工具就可以勝任裝配任務。但為了減少失誤和提高效率,人們往往採用流水線作業,流水線作業便是一種應用於電子設備裝配中的方法論。目前,信息技術市場流行的方法論有RUP(Rational Unified Process), The Zachman Framework, XP (Extreme Programming)等。在這些方法論中,最流行的要數RUP。RUP是由Rational Software公司首創的。因它與當前流行的JAVA, J2EE技術和麵向對象的設計思想(OOAD)緊密的結合在一起,所以在大型的信息技術項目中得到了廣泛的應用。在這篇文章中,我們試圖對RUP的特點作一個初步的探討,並且討論它是如何貫穿在整個軟件開發的生命週期之中的。

RUP最重要的它有三大特點:1)軟件開發是一個疊代過程,2)軟件開發是由Use Case驅動的,3)軟件開發是以構架設計(Architectural Design)為中心的。

按照傳統的瀑布(Waterfall)開發模式,軟件開發大致經歷如下幾個步驟:商務需求分析(Business Requirement Analysis),系統分析(System Analysis),系統設計(System Design),開發實現(Implementation),測試(Test),發佈(Deployment),系統支持(Supporting)和系統變更管理(Change Management)。傳統的瀑布開發模式假定在進行新的開發過程時,上一個過程已經完成,而且不會回到上一個過程。初看起來,這似乎是一個非常合理,高效率的解決方案,但20多年的實踐證明,這個開發模式存在著很大的弊病,原因是軟件開發是一個非常複雜的工程,有諸多的因素影響工程的效率和成敗。軟件開發需要許多不同背景的個人和團隊參與。由於這些複雜性,在軟件開發的整個生命週期中每一個階段都有可能留下隱患和錯誤。如果等到系統已經開發實現完畢,在測試階段發現了重大問題,這時的返工將會造成人力、物力、財力及時間上的巨大浪費。鑑於以上的考慮,RUP強調軟件開發是一個疊代模型(Iterative Model),RUP定義了四個階段(Phase):開端(Inception),闡述 (Elaboration),建造(Construction),過渡(Transition)。其中每個階段都有可能經歷以上所提到的從商務需求分析開始的各個步驟,只是每個步驟的高峰期會發生在相應的階段。例如開發實現的高峰期是發生在建造階段。實際上這樣的一個開發方法論是一個二維模型。這種疊代模型的實現在很大程度上提供了及早發現隱患和錯誤的機會,因此被現代大型信息技術項目所採用。

RUP 的另一大特徵是Use Case 驅動。Use Case 是RUP方法論中一個非常重要的概念。簡單地說,一個 Use Case就是系統的一個功能。例如在一個基於電子商務的醫療系統中,病人可以坐在家裡通過網上瀏覽器與醫生約定看病的時間 (Make appointment),這樣,「Make appointment」就是系統的一個Use Case。在系統分析和系統設計中, Use Case被用來將一個複雜的龐大系統分割、定義成一個個小的單元,這個小的單元就是Use Case,然後以每個小的單元為對象進行開發。按照 RUP, Use Case貫穿整個軟件開發的生命週期。在商務需求分析中,客戶或用戶對Use Case進行描述,在系統分佈和系統設計過程中,設計師對Use Case進行分析,在開發實現過程中,開發編程人員對Use Case進行實現,在測試過程中,測試人員對Use Case進行檢驗。

RUP的第三大特徵是它強調軟件開發是以構架為中心的。構架設計(Architectural Design)是系統設計的一個重要組成部分。在構架設計過程中,設計師(Architect)必須完成對技術和運行平台的選取,整個項目的基礎框架(Framework)的設計,完成對公共組件的設計,如審計(Auditing)系統,日誌(Log)系統,錯誤處理(Exception Handling)系統,安全 (Security)系統等。設計師必須對系統的可擴展性(Extensibility),安全性(Security),可維護性 (Maintainability),可延拓性(Scalability),可重用性(Reusability)和運行速度(Performance)提出可行的解決方案。

在RUP方法論中,不同的角色可以從不同的側面來認識同一個項目。RUP定義了「4+1」個場景(View): Use Case場景(Use Case View),邏輯場景(Logic View),進程場景(process View),實現場景 (Implementation View)和發佈場景(Deployment View)。在Use Case場景中,客戶和商務分析員對 Use Case進行描述,在邏輯場景中,設計師對系統進行分析和設計,在進程場景中,設計師對系統可能出現的併發性,運行速度和分佈特性進行描述。實現場景則反映了程序開發員開發實現的過程。發佈場景是描述系統管理員和組裝人員實施系統發佈和管理的過程。值得強調的是,系統構架的設計是在邏輯場景中描述的。

RUP還定義了4個模型,即Use Case模型(Use Case Model),分析模型 (Analysis Model),設計模型(Design Model)和實現模型(Implementation Model)。Use Case模型包含Use Case Diagram和Use Case文檔。Use Case模型是其他三個模型的基礎,分析模型即是概念模型 (Conceptual Model),是系統分析所得到的結果,分析模型包含了類圖(Class Diagram),次序圖 (Sequence Diagram)以及活動圖(Activity Diagram)。設計模型則是構架設計和系統設計的結果。當設計模型完成後,開發編程人員便可以進行編程了。設計模型主要包含了類圖,次序圖和狀態圖(State Chart Diagrams)。分析模型和設計模型看起來有許多相似之處,但兩者的含義有本質的區別。分析模型強調的是問題的範圍,但並不給出解決問題的方案,分析模型並不涉及具體的技術和平台。例如它並不關心是否應用 EJB或一般的JAVA BEANS,系統是安裝在WebSphere或是在WebLogic。但是與之相反,設計模型要考慮這些細節,而且要提供解決這些問題的全部方案。當然設計模型是建立在分析模型之上的,分析模型中的一個類可直接映射成為設計模型中的類,但這種映射關係一般並不是一一對應的,最後一個模型是實現模型。實現模型包含構件圖(Component Diagram),從這個模型出發,開發編程人員可以產生骨架源程序 (Skeleton Source Code),也可以從源程序出發更新設計模型。

目前應用於系統分析和設計的工具主要有Rational Rose和Together Software Center (TogetherJ)。JAVA和J2EE的開發工具有IBM Websphere Application Developer(WSAD), Borland Jbuilde和WebGain VisualCafe. WSAD和WebSphere Application Server應用在一起,使得服務器端的排錯和系統的發布變得非常的容易。Jbuilder和VisualCafe一般與WebLogic Server緊密結合在一起。目前WebSphere Server和WebLogic Server佔據了Application Server市場的66%,其中 WebSphere Server佔據了37%,成為同類產品的No.1。在單位測試和集成測試中,廣泛應用的工具和框架有Junit, JunitPerf和Cactus.。

綜上所述,軟件開發的方法論已經成為現代軟件工程過程中不可缺少的一個重要部分。是目前在Java/J2EE和麵向對象的大型項目中廣泛被採用的一種方法論。他對整個軟件開發的生命週期提供了基礎框架和指導。RUP, UML/Rational Rose, Java/J2EE, WSAD, Websphere Application Server和Oracle這樣的技術、工具和平台的組合是目前許多公司、政府信息技術項目中採用的方案。因此,RUP的知識和經驗也是現在求職市場所需求的熱門技能。

posted @ 2010-03-25 18:17 paulwong 阅读(304) | 评论 (0)编辑 收藏

仅列出标题
共112页: First 上一页 96 97 98 99 100 101 102 103 104 下一页 Last