java学习失败经历分享_学习失败

java学习失败经历分享

回到大学时,当我处理许多底层的问题解决方案和非常基本的库和结构时,我学会了注意可能出问题的地方。 很多。 通过普通套接字实现可靠的,防挂起的通信? 今天,我还记得它,一个“核心逻辑”的琐碎循环和围绕它的大量警卫。
现在我怀疑我不是唯一一个习惯了所有便利的高层抽象的人,以至于他开始忘记这种方法。 事实是,真正的软件要稍微复杂一点,事实上,我们的库可以为我们解决最底层的问题,但这并不意味着没有失败的理由。

软件

当我在阅读“发布!” 我是Michael T. Nygard撰写的,我一直在点头同意:到那儿去做,遭受了那件事。 我刚刚开始,但是已经显示了很多有趣的故障和错误处理示例。
迈克尔描述了航空公司软件的一次严重故障。 它经验丰富的设计师期望发生多种故障,并避免了许多明显的问题。 有一个很好的分层体系结构,在从客户端和终端到服务器再到数据库的每个级别上都具有适当的冗余。 一切都很好,但是在数据库的例行维护中,整个系统刚刚挂起。 它没有杀死任何人,但是航班延误和严重的财务损失也有影响。
根本原因被证明是与数据库通信的服务器上的一个吞咽异常,该异常是在重新映射数据库服务器的虚拟IP时由JDBC驱动程序抛出的。 如果您没有对这种情况进行适当的处​​理,则这种泄漏可能会锁定整个服务器,因为其所有线程都在等待连接或彼此等待。 由于服务器上或服务器上的任何地方都没有适当的超时,因此最终一切都挂起了。
现在很容易说:很明显,您不应该吞下例外,您该白痴,继续前进。 还是?
问题是,总是会发生意外或未正确处理的错误。 在硬件上。 或第三方组件。 或您的编程语言的核心库。 甚至您或您的同事也可能搞砸了而无法预测某些事情。 它。 只是。 发生。  

现实生活
 

让我们看一下现实生活中的两个例子。
每个人都会上车思考:我是一位了不起的驾驶员,发生了事故,但对我而言并非如此。 但是不知何故,我们对拥有安全气囊,精心设计的压皱区以及各种防止或减轻事故影响的自动系统表示感谢。
如果以相同的价格为您提供了两辆车,您会选择哪个? 一种是“即兴表演”风格的座椅,非常舒适的座椅,坐着的电视,明亮的粉红色轮子以及任何不必要的功能。 但是它会根据它的心情或月球周期而经常崩溃,如果撞上刺猬,肯定会杀死您。 另一个足够舒适,完全无聊,根本没有炫酷的功能可以炫耀。 但这将为您服务500,000公里,而不会发生任何故障,并且当您撞到树时可以挽救您的生命。 很明显吧?
另一个例子。 我的brother子恰好是一家大型电厂的建筑经理。 最近,他带我去旅行,并向我解释了其工作原理的一些基本知识,一件事情确实让我印象深刻。
该电站由十几个独立的发电单元组成,旨在承受各种故障。 给我留下深刻的印象,现在仍然是,在发电厂业务中,通常会这样说:如果这个区块变暗了,那么这种事情就会发生,那就是接管一切。 没什么大不了的。 让我们从一个角度来看。 该死的复杂工程可以像这样检测任何潜在的危险情况,报警,关闭并进行故障转移。 从诸如压力或温度变化之类的小而琐碎的事情到可能使整个事情崩溃的条件。 如此可靠,以至于人们谈论这种罕见和严峻的状况时,都以与“在下雨的情况下野餐将在约翰逊女士的家中”相同的语气说。  
再次软件
鲍勃叔叔在《灾难过后》一文中问:“您每天将自己的生命交到某位22岁左右的凌晨三点写的'if'陈述中,在伏特加和红牛上?”
我希望这是一个反问。
我们被迫集中精力尽可能快地添加闪亮的新功能。 这就是使我们的老板和老板大放异彩的原因,也是为公司带来钱财的原因。 但是不仅是它们,甚至我们(开发人员)自然也对所有这些功能感到最自豪,并发现它们是我们工作中最令人兴奋的部分。
请记住, 我们在这里为您服务 。 虽然抽出功能很有趣,但请记住,这些人只是依靠您。 即使您没有直接造成死亡或伤害,中断仍然会影响生命。 更像是汽车或电站设计师,您的位置实际上比他们更接近自己,而不是一个孤独的嬉皮士,后者为自己建造了一个不稳定的窝棚。
当中断发生并且还造成财务损失时,您将受到指责。 如果这种推理不起作用,请自己动手-立即注意,以免日后再痛苦,无论是凌晨3点时的常规恐慌电话还是老板大吼大叫。  
更多东西
迈克尔·T·尼加德(Michael T. Nygard)以非常有价值的建议结束了这个航空公司的榜样。 看起来似乎很明显,但是如果您意识到它并将它刻在脑海中,就会感觉不一样。 期望到处都有失败,并为此计划。 即使您的工具处理了一些故障,它们也无法为您做所有事情。 即使每件事至少有两个(没有单点故障),您仍然会遭受设计不佳的困扰。 偏执。 在与其他系统,甚至系统的不同组件的每个集成点上放置皱折区域,以防止裂纹扩展。 乐观的巨石很难失败。
需要更具体的东西吗? 继续阅读“发布!” ,其中包含许多出色而具体的示例。 它适合书而不是博客文章是有原因
参考:在我们的JCG合作伙伴 Konrad Garus的《 失败学习》中 ,写了Squirrel的博客。

翻译自: https://www.javacodegeeks.com/2012/07/learning-to-fail.html

java学习失败经历分享

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值