久病未能成医,然而却悟出了些许程序员与医生的道理。细想来,程序员和医生这个职业竟如此类似。html
上帝创造了人类,而人类又创造了程序。上帝所创造的人类并非天衣无缝的,他在每一个人的身上或多或少的留下了一些缺陷。这些缺陷就是疾病,有些人很不幸,一出生就有了,有些人很幸运,他健康的生活了好久才出现。然而不论是前者仍是后者,其降临到这个世间的时候就注定了要有这些缺陷。人们虽然很不理解为何要有这些缺陷,但不甘心被这些缺陷所支配。程序员
因而,医生这个职业诞生了,用以最大程度的解决这些缺陷带给人类的影响。浏览器
人类创造了程序。一样,程序也不是天衣无缝的,它也存在了各类各样的缺陷。这些缺陷就是bug。所不一样的是,bug是程序员创造的,程序也是程序员所创造的。你永远没法要求一个程序员创造出没有bug的程序,正如你没法要求上帝创造一个天衣无缝的人同样。上帝在创造了一我的以后,能够绝不负责任的当甩手掌柜,把烂摊子交给医生去处理,而程序员则不能,你在创造了一个程序的时候,就要对其进行负责到底,若是你不肯意,那么必然也会有另外一个苦逼的程序员要对其负责。测试
改bug就是治病!设计
求医问药的人,向医生哭诉着本身的症状,告诉医生本身的患病时间。而测试(客户或产品)也会拿着程序的症状和发生时间来给你提bug。有趣的是,程序员定位bug与医生诊断疾病的手法也极其类似。有经验的医生和有经验的程序员都会根据本身的经验来大致判断问题的所在。而后他们通常会采用排除法,经过一些检查来定位问题的具体位置。医生也许会让你作一些特定动做,去拍一些片子等,而程序员也会重现一下问题,打一些日志......3d
了解到以上问题,不管是对于病人仍是,一些使用程序的人很是重要,若是你想让医生(或程序员)快速的诊断出问题并解决。日志
于病人而言,在医生就诊的时候你须要提供几点必要的信息。htm
症状blog
患病时间get
过往病历
一样,对于使用程序的人,你也须要提供几点必要的信息。
这一点是最重要的,你须要详细的告诉程序员,程序的那个模块的那个页面或功能遇到了什么问题。
你须要尽量的详细的提供问题是怎样产生的,如使用哪一个浏览器,如何操做...,应该如何去重现它。
若是你不能重现问题的步骤,那么你必须提供问题发生的时间,以便于程序员回溯问题。
在苦逼的程序生涯中,我就经常遇到客户、产品或测试提改过来的不知所云的几句话,甚至几个字。
即便这个世界上有了医生和程序员,然而咱们仍然不得不面对一个残酷的现实——世上有治不了的病,也有改不了的bug。
也许上帝在创造人时,没法作到“尽善尽美”与“雨露均沾”。有的人也许获得的宠爱多一些,缺陷也相对少一些。有的人也许很不幸,上帝在创造它的时候刚好打了个盹儿。因而很不幸,这群人的缺陷就更多一些,有些更是疑难杂症!
面对这个现实,病人们不该去抱怨上帝的不公平,也不该责怪医生的无能。由于这根本没有什么卵用。而那个被你责怪的倒霉蛋医生可能也在抱怨:“人又不是我创造的,鬼知道上帝为何会搞出来这么多的疑难杂症”
程序一样也有解决不了的bug,也许是由于设计之初的不合理,也许是客观条件的不容许......总之,当程序产生的时候,bug也就随之产生了。也许这个bug并非某个程序员所创造的,但问题却要由他来解决。咱们不能抱怨程序员的无能,正如咱们不该该抱怨医生的无能同样。而程序员也不该该一味的埋怨当初的创造者,由于也许你所创造的程序,正有一个苦逼的程序员在熬夜改bug。
而相对于医生而言,程序员或许是幸运的,医生面对的是生命,程序员面对的只是程序。医生不能创造一我的,所以没法避免疾病的产生,也没法对人体有足够的了解而治愈疾病,而程序员极可能是程序的创造者,他能够尽量的在程序起始,进行详细的调研,采用优秀的设计以尽量的避免问题。又或是由于本身是程序的创造者,而更轻松的定位与解决问题。
不管是医生仍是程序员,不管是病人仍是客户。当问题产生以后,尽早尽快的解决才是最应该作的事,抱怨永远不是解决问题的办法。若是问题不能解决,咱们不只不能抱怨,还必须用愉悦心情让本身去接受它。由于,每时每刻咱们都是幸运的,由于任何灾难的前面都有可能再加一个“更”字!沮丧、忧郁、抱怨的情绪,只会让事情变得更糟糕!