• 关于

    交互式计算机系统出问题什么情况

    的搜索结果

回答

如果能时光倒流,回到过去,作为一个开发人员,你可以告诉自己在职业生涯初期应该读一本, 你会选择哪本书呢。我希望这个书单列表内容丰富,可以涵盖很多东西。” 1、《代码大全》 史蒂夫·迈克康奈尔 推荐数:1684 “优秀的编程实践的百科全书,《代码大全》注重个人技术,其中所有东西加起来, 就是我们本能所说的“编写整洁的代码”。这本书有50页在谈论代码布局。” —— Joel Spolsky 对于新手来说,这本书中的观念有点高阶了。到你准备阅读此书时,你应该已经知道并实践过书中99%的观念。– esac Steve McConnell的原作《代码大全》(第1版)是公认的关于编程的最佳实践指南之一, 在过去的十多年间,本书一直在帮助开发人员编写更好的软件。 现在,作者将这本经典著作全新演绎,融入了最前沿的实践技术,加入了上百个崭新的代码示例, 充分展示了软件构建的艺术性和科学性。 McConnell汇集了来自研究机构、学术界以及业界日常实践的主要知识, 把最高效的技术和最重要的原理交织融会为这本既清晰又实用的指南。 无论您的经验水平如何,也不管您在怎样的开发环境中工作,也无论项目是大是小, 本书都将激发您的思维并帮助您构建高品质的代码。 《代码大全(第2版))》做了全面的更新,增加了很多与时俱进的内容,包括对新语言、新的开发过程与方法论的讨论等等。 2、《程序员修炼之道》 推荐数:1504 对于那些已经学习过编程机制的程序员来说,这是一本卓越的书。 或许他们还是在校生,但对要自己做什么,还感觉不是很安全。 就像草图和架构之间的差别。虽然你在学校课堂上学到的是画图,你也可以画的很漂亮, 但如果你觉得你不太知道从哪儿下手,如果某人要你独自画一个P2P的音乐交换网络图,那这本书就适合你了。—— Joel 《程序员修炼之道:从小工到专家》内容简介:《程序员修炼之道》由一系列独立的部分组成, 涵盖的主题从个人责任、职业发展,知道用于使代码保持灵活、并且易于改编和复用的各种架构技术, 利用许多富有娱乐性的奇闻轶事、有思想性的例子及有趣的类比, 全面阐释了软件开发的许多不同方面的最佳实践和重大陷阱。 无论你是初学者,是有经验的程序员,还是软件项目经理,《程序员修炼之道:从小工到专家》都适合你阅读。 3、《计算机程序的构造和解释》 推荐数:916 就个人而言,这本书目前为止对我影响醉倒的一本编程书。 《代码大全》、《重构》和《设计模式》这些经典书会教给你高效的工作习惯和交易细节。 其他像《人件集》、《计算机编程心理学》和《人月神话》这些书会深入软件开发的心理层面。 其他书籍则处理算法。这些书都有自己所属的位置。 然而《计算机程序的构造和解释》与这些不同。 这是一本会启发你的书,它会燃起你编写出色程序的热情; 它还将教会你认识并欣赏美; 它会让你有种敬畏,让你难以抑制地渴望学习更多的东西。 其他书或许会让你成为一位更出色的程序员,但此书将一定会让你成为一名程序员。 同时,你将会学到其他东西,函数式编程(第三章)、惰性计算、元编程、虚拟机、解释器和编译器。 一些人认为此书不适合新手。 个人认为,虽然我并不完全认同要有一些编程经验才能读此书,但我还是一定推荐给初学者。 毕竟这本书是写给著名的6.001,是麻省理工学院的入门编程课程。 此书或许需要多做努力(尤其你在做练习的时候,你也应当如此),但这个价是对得起这本书的。 4、《C程序设计语言》 推荐数:774 这本书简洁易读,会教给你三件事:C 编程语言;如何像程序员一样思考;底层计算模型。 (这对理解“底层”非常重要)—— Nathan 《C程序设计语言》(第2版新版)讲述深入浅出,配合典型例证,通俗易懂,实用性强, 适合作为大专院校计算机专业或非计算机专业的C语言教材,也可以作为从事计算机相关软硬件开发的技术人员的参考书。 《C程序设计语言》(第2版新版)原著即为C语言的设计者之一Dennis M.Ritchie和著名的计算机科学家Brian W.Kernighan合著的 一本介绍C语言的权威经典著作。 我们现在见到的大量论述C语言程序设计的教材和专著均以此书为蓝本。 原著第1版中介绍的C语言成为后来广泛使用的C语言版本——标准C的基础。 人们熟知的“hello,world”程序就是由本书首次引入的,现在,这一程序已经成为所有程序设计语言入门的第一课。 5、《算法导论》 推荐数:671 《代码大全》教你如何正确编程; 《人月神话》教你如何正确管理; 《设计模式》教你如何正确设计…… 在我看来,代码只是一个工具,并非精髓。 开发软件的主要部分是创建新算法或重新实现现有算法。 其他部分则像重新组装乐高砖块或创建“管理”层。 我依然梦想这样的工作,我的大部分时间(>50%)是在写算法,其他“管理”细节则留给其他人…… —— Ran Biron 经典的算法书,被亚马逊网,《程序员》等评选为2006年最受读者喜爱的十大IT图书之一。 算法领域的标准教材,全球多所知名大学选用 MIT名师联手铸就,被誉为“计算机算法的圣经” 编写上采用了“五个一”,即一章介绍一个算法、一种设计技术、一个应用领域和一个相关话题。 6、《重构:改善既有代码的设计》 推荐数:617 《重构:改善既有代码的设计》清晰地揭示了重构的过程,解释了重构的原理和最佳实践方式, 并给出了何时以及何地应该开始挖掘代码以求改善。 书中给出了70多个可行的重构,每个重构都介绍了一种经过验证的代码变换手法的动机和技术。 《重构:改善既有代码的设计》提出的重构准则将帮助你一次一小步地修改你的代码,从而减少了开发过程中的风险。 《重构:改善既有代码的设计》适合软件开发人员、项目管理人员等阅读, 也可作为高等院校计算机及相关专业师生的参考读物。 我想我不得不推荐《重构》:改进现有代码的设计。—— Martin 我必须承认,我最喜欢的编程语录是出自这本书:任何一个傻瓜都能写出计算机能理解的程序, 而优秀的程序员却能写出别人能读得懂的程序。—— Martin Fowler 7、《设计模式》 推荐数:617 自1995年出版以来,本书一直名列Amazon和各大书店销售榜前列。 近10年后,本书仍是Addison-Wesley公司2003年最畅销的图书之一。 中文版销售逾4万册。 就我而言,我认为四人帮编著的《设计模式》是一本极为有用的书。 虽然此书并不像其他建议一样有关“元”编程,但它强调封装诸如模式一类的优秀编程技术, 因而鼓励其他人提出新模式和反模式(antipatterns),并运用于编程对话中。—— Chris Jester-Young 8、《人月神话》 推荐数:588 在软件领域,很少能有像《人月神话》一样具有深远影响力并且畅销不衰的著作。 Brooks博士为人们管理复杂项目提供了最具洞察力的见解。 既有很多发人深省的观点,又有大量软件工程的实践。 本书内容来自Brooks博士在IBM公司System/360家族和OS/360中的项目管理经验。 该书英文原版一经面世,即引起业内人士的强烈反响,后又译为德、法、日、俄中等多种语言,全球销量数百万册。 确立了其在行业内的经典地位。 9、《计算机程序设计艺术》 推荐数:542 《计算机程序设计艺术》系列著作对计算机领域产生了深远的影响。 这一系列堪称一项浩大的工程,自1962年开始编写,计划出版7卷,目前已经出版了4卷。 《美国科学家》杂志曾将这套书与爱因斯坦的《相对论》等书并列称为20世纪最重要的12本物理学著作。 目前Knuth正将毕生精力投入到这部史诗性著作的撰写中。 这是高德纳倾注心血写的一本书。—— Peter Coulton 10、《编译原理》(龙书) 推荐数:462 我很奇怪,居然没人提到龙书。(或许已有推荐,我没有看到)。 我从没忘过此书的第一版封面。 此书让我知道了编译器是多么地神奇绝妙。- DB 11、《深入浅出设计模式》 推荐数:445 强大的写作阵容。 《Head First设计模式》(中文版) 作者Eric Freeman; ElElisabeth Freeman是作家、讲师和技术顾问。 Eric拥有耶鲁大学的计算机科学博士学位,E1isabath拥有耶鲁大学的计算机科学硕士学位。 Kathy Sierra(javaranch.com的创始人)FHBert Bates是畅销的HeadFirst系列书籍的创立者,也是Sun公司Java开发员认证考试的开发者。 本书的产品设计应用神经生物学、认知科学,以及学习理论,这使得这本书能够将这些知识深深地印在你的脑海里, 不容易被遗忘。 本书的编写方式采用引导式教学,不直接告诉你该怎么做,而是利用故事当作引子,带领读者思考并想办法解决问题。 解决问题的过程中又会产生一些新的问题,再继续思考、继续解决问题,这样可以加深体会。 作者以大量的生活化故事当背景,例如第1章是鸭子,第2章是气象站,第3章是咖啡店, 书中搭配大量的插图(几乎每一页都有图),所以阅读起来生动有趣,不会感觉到昏昏欲睡。 作者还利用歪歪斜斜的手写字体,增加“现场感”。 精心设计许多爆笑的对白,让学习过程不会太枯燥。 还有模式告白节目,将设计模式拟人化成节目来宾,畅谈其内在的一切。 每一章都有数目不等的测验题。 每章最后有一页要点整理,这也是精华所在,我都是利用这一页做复习。 我知道四人帮的《设计模式》是一本标准书,但倒不如先看看这部大部头,此书更为简易。 一旦你了解了解了基本原则,可以去看四人帮的那本圣经了。- Calanus 12、《哥德尔、艾舍尔、巴赫书:集异璧之大成》 推荐数:437 如果下昂真正深入阅读,我推荐道格拉斯·侯世达(Douglas Hofstadter)的《哥德尔、艾舍尔、巴赫书》。 他极为深入研究了程序员每日都要面对的问题:递归、验证、证明和布尔代数。 这是一本很出色的读物,难度不大,偶尔有挑战,一旦你要鏖战到底,将是非常值得的。 – Jonik 13、《代码整洁之道》 推荐数:329 细节之中自有天地,整洁成就卓越代码 尽管糟糕的代码也能运行,但如果代码不整洁,会使整个开发团队泥足深陷, 写得不好的代码每年都要耗费难以计数的时间和资源。 然而这种情况并非无法避免。 著名软件专家RoberfC.Marlin在《代码整洁之道》中为你呈现出了革命性的视野。 Martin携同ObjectMetltor公司的同事,从他们有关整洁代码的最佳敏捷实践中提炼出软件技艺的价值观, 以飨读者,让你成为更优秀的程序员——只要你着手研读《代码整洁之道》。 阅读《代码整洁之道》需要你做些什么呢。你将阅读代码——大量代码。 《代码整洁之道》促使你思考代码中何谓正确,何谓错误。 更重要的是,《代码整洁之道》将促使你重新评估自己的专业价值观,以及对自己技艺的承诺。 从《代码整洁之道》中可以学到: 好代码和糟糕的代码之间的区别; 如何编写好代码,如何将糟糕的代码转化为好代码; 如何创建好名称、好函数、好对象和好类; 如何格式化代码以实现其可读性的最大化; 如何在不妨碍代码逻辑的前提下充分实现错误处理; 如何进行单元测试和测试驱动开发。 虽然《代码整洁之道》和《代码大全》有很多共同之处,但它有更为简洁更为实际的清晰例子。 – Craig P. Motlin 14、《Effective C++》和《More Effective C++》 推荐数:297 在我职业生涯早期,Scott Meyer的《Effective C++》和后续的《More Effective C++》都对我的编程能力有着直接影响。 正如当时的一位朋友所说,这些书缩短你培养编程技能的过程,而其他人可能要花费数年。 去年对我影响最大的一本书是《大教堂与市集》,该书教会我很有关开源开发过程如何运作,和如何处理我代码中的Bug。 – John Channing 15、《编程珠玑》 推荐数:282 多年以来,当程序员们推选出最心爱的计算机图书时,《编程珠玑》总是位列前列。 正如自然界里珍珠出自细沙对牡蛎的磨砺,计算机科学大师Jon Bentley以其独有的洞察力和创造力, 从磨砺程序员的实际问题中凝结出一篇篇不朽的编程“珠玑”, 成为世界计算机界名刊《ACM通讯》历史上最受欢迎的专栏, 最终结集为两部不朽的计算机科学经典名著,影响和激励着一代又一代程序员和计算机科学工作者。 本书为第一卷,主要讨论计算机科学中最本质的问题:如何正确选择和高效地实现算法。 尽管我不得不羞愧地承认,书中一半的东西我都没有理解,但我真的推荐《编程珠玑》,书中有些令人惊奇的东西。 – Matt Warren 16、《修改代码的艺术》by Michael Feathers 本书是继《重构》和《重构与模式》之后探讨修改代码技术的又一里程碑式的著作, 而且从涵盖面和深度上都超过了前两部经典。 书中不仅讲述面向对象语言(Java、C#和C++)代码,也有专章讨论C这样的过程式语言。 作者将理解、测试和修改代码的原理、技术和最新工具(自动化重构工具、单元测试框架、仿对象、集成测试框架等), 与解依赖技术和大量开发和设计优秀代码的原则、最佳实践相结合,许多内容非常深入,而且常常发前人所未发。 书中处处体现出作者独到的洞察力,以及多年开发和指导软件项目所积累的丰富经验和深厚功力。 通过这部集大成之作,你不仅能掌握最顶尖的修改代码技术,还可以大大提高对代码和软件开发的领悟力。 我认为没有任何一本书能向这本书一样影响了我的编程观点。 它明确地告诉你如何处理其他人的代码,含蓄地教会你避免哪些(以及为什么要避免)。- Wolfbyte 同意。很多开发人员讨论用干净的石板来编写软件。 但我想几乎所有开发人员的某些时候是在吃其他开发人员的狗食。– Bernard Dy 17、《编码:隐匿在计算机软硬件背后的语言》 这是一本讲述计算机工作原理的书。 不过,你千万不要因为“工作原理”之类的字眼就武断地认为,它是晦涩而难懂的。 作者用丰富的想象和清晰的笔墨将看似繁杂的理论阐述得通俗易懂,你丝毫不会感到枯燥和生硬。 更重要的是,你会因此而获得对计算机工作原理较深刻的理解。 这种理解不是抽象层面上的,而是具有一定深度的,这种深度甚至不逊于“电气工程师”和“程序员”的理解。 不管你是计算机高手,还是对这个神奇的机器充满敬畏之心的菜鸟, 都不妨翻阅一下《编码:隐匿在计算机软硬件背后的语言》,读一读大师的经典作品,必然会有收获。 我推荐Charles Petzold的《编码》。 在这个充满工具和IDE的年代,很多复杂度已经从程序员那“抽取”走了,这本书一本开眼之作。 – hemil 18、《禅与摩托车维修艺术 / Zen and the Art of Motorcycle Maintenance》 对我影响最大的那本书是 Robert Pirsig 的《禅与摩托车维修艺术》。 不管你做什么事,总是要力求完美,彻底了解你手中的工具和任务,更为重要的是, 要有乐趣(因为如果你做事有乐趣,一切将自发引向更好的结果)。 – akr 19、《Peopleware / 人件集:人性化的软件开发》 Demarco 和 Lister 表明,软件开发中的首要问题是人,并非技术。 他们的答案并不简单,只是令人难以置信的成功。 第二版新增加了八章内容。 – Eduardo Molteni 20、《Coders at Work / 编程人生》 这是一本访谈笔录,记录了当今最具个人魅力的15位软件先驱的编程生涯。 包括DonaldKnuth、Jamie Zawinski、Joshua Bloch、Ken Thompson等在内的业界传奇人物,为我们讲述了 他们是怎么学习编程的,在编程过程中发现了什么以及他们对未来的看法, 并对诸如应该如何设计软件等长久以来一直困扰很多程序员的问题谈了自己的观点。 一本非常有影响力的书,可以从中学到一些业界顶级人士的经验,了解他们如何思考并工作。 – Jahanzeb Farooq 21、《Surely You’re Joking, Mr. Feynman! / 别闹了,费曼先生。》 虽然这本书可能有点偏题,但不管你信不信,这本书曾在计算机科学专业课程的阅读列表之上。 一个优秀的角色模型,一本有关好奇心的优秀书籍。 – mike511 22、《Effective Java 中文版》 此书第二版教你如何编写漂亮并高效的代码,虽然这是一本Java书,但其中有很多跨语言的理念。 – Marcio Aguiar 23、《Patterns of Enterprise Application Architecture / 企业应用架构模式》 很奇怪,还没人推荐 Martin Fowler 的《企业应用架构模式》- levi rosol 24、《The Little Schemer》和《The Seasoned Schemer》 nmiranda 这两本是LISP的英文书,尚无中文版。 美国东北大学网站上也有电子版。 25、《交互设计之路》英文名:《The Inmates Are Running The Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity》该书作者:Alan Cooper,人称Visual Basic之父,交互设计之父。 本书是基于众多商务案例,讲述如何创建更好的、高客户忠诚度的软件产品和基于软件的高科技产品的书。 本书列举了很多真实可信的实际例子,说明目前在软件产品和基于软件的高科技产品中,普遍存在着“难用”的问题。 作者认为,“难用”问题是由这些产品中存在着的高度“认知摩擦”引起的, 而产生这个问题的根源在于现今软件开发过程中欠缺了一个为用户利益着想的前期“交互设计”阶段。 “难用”的产品不仅损害了用户的利益,最终也将导致企业的失败。 本书通过一些生动的实例,让人信服地讲述了由作者倡导的“目标导向”交互设计方法在解决“难用”问题方面的有效性, 证实了只有改变现有观念,才能有效地在开发过程中引入交互设计,将产品的设计引向成功。 本书虽然是一本面向商务人员而编写的书,但也适合于所有参与软件产品和基于软件的高科技产品开发的专业人士, 以及关心软件行业和高科技行业现状与发展的人士阅读。 他还有另一本中文版著作:《About Face 3 交互设计精髓》 26、《Why’s (Poignant) Guide to Ruby 》 如果你不是程序员,阅读此书可能会很有趣,但如果你已经是个程序员,可能会有点乏味。 27、《Unix编程艺术》 It is useful regardless operating system you use. – J.F. Sebastian 不管你使用什么操作系统,这本书都很有用。 – J.F. Sebastian 28、《高效程序员的45个习惯:敏捷开发修炼之道》 45个习惯,分为7个方面:工作态度、学习、软件交付、反馈、编码、调试和协作。 每一个具体的习惯里,一开始提出一个谬论,然后展开分析,之后有正队性地提出正确的做法,并设身处地地讲出了正确做法给你个人的“切身感受”,最后列出几条注意事项,帮助你修正自己的做法(“平衡的艺术”)。 29、《测试驱动开发》 前面已经提到的很多书都启发了我,并影响了我,但这本书每位程序员都应该读。 它向我展示了单元测试和TDD的重要性,并让我很快上手。 – Curro 我不关心你的代码有多好或优雅。 如果你没有测试,你或许就如同没有编写代码。 这本书得到的推荐数应该更高些。 人们讨论编写用户喜欢的软件,或既设计出色并健壮的高效代码,但如果你的软件有一堆bug,谈论那些东西毫无意义。– Adam Gent 30、《点石成金:访客至上的网页设计秘笈》 可用性设计是Web设计中最重要也是难度最大的一项任务。 《点石成金-访客至上的网页设计秘笈(原书第二版)》作者根据多年从业的经验,剖析用户的心理, 在用户使用的模式、为扫描进行设计、导航设计、主页布局、可用性测试等方面提出了许多独特的观点, 并给出了大量简单、易行的可用性设计的建议。 本书短小精炼,语言轻松诙谐,书中穿插大量色彩丰富的屏幕截图、趣味丛生的卡通插图以及包含大量信息的图表, 使枯燥的设计原理变得平易近人。 本书适合从事Web设计和Web开发的技术人员阅读,特别适合为如何留住访问者而苦恼的网站/网页设计人员阅读。 这是一本关于Web设计原则而不是Web设计技术的书。 本书作者是Web设计专家,具有丰富的实践经验。 他用幽默的语言为你揭示Web设计中重要但却容易被忽视的问题,只需几个小时, 你便能对照书中讲授的设计原则找到网站设计的症结所在,令你的网站焕然一新。
青衫无名 2019-12-02 01:20:04 0 浏览量 回答数 0

回答

一、系统迁移捅了13亿用户的娄子 故事,是从一桩“离婚再嫁”的案子开始的。 离婚再嫁的主角,是英国银行TSB。 2015年,TSB银行结束了与劳埃德银行(Lloyds Bank)长达20年的“婚姻”,从他们合并的集团中拆分出来,并卖身给了新欢、西班牙公司萨瓦德尔(Sabadell)集团,收购价17亿英镑,按当时的汇率大概是158亿人民币。 然而,过去的20年,世界变了太多,银行业也进步了太多。20年的“婚姻”留给TSB银行的,还有和“前夫”剪不断理还乱的IT系统。 TSB银行540万客户的数十亿记录,都还留在“前夫”劳埃德银行的系统里,而且因为缘分已断,不能白嫖人家的系统,每年还要给前夫交1亿英镑(大约9.3亿人民币)的费用。 这就好像肉身虽然已经和“新欢”在一起,但支付宝和微信账号还是跟“前夫”共用一套,而且还要给“前夫”付账号租金,自然令人不爽。 于是,在筹备了许久之后,2018年,他们终于要行动了:把“前夫”IT系统里的客户信息记录,迁移到“新欢”专门为TSB银行准备的新系统里。 他们把迁移的日子,定在了4月22日星期日的晚上,先把银行的IT系统离线,迁移完之后再上线,恢复客户访问自己银行账户的权限。 为了这场迁移,他们已经投入了超过2500人年的人力成本,西班牙“新欢”集团的CEO在前一年的圣诞节就大声放话:这是全欧洲史无前例的大项目,我们投入了1000多名专业人才,将极大地促进我们在英国的增长。 不过,虽然大佬们在台上豪言壮语,实际上负责迁移的员工们心里却慌得一逼。这个迁移项目本来要筹备18个月,结果时间超了,预算也超了,事情难办的很。 Flag果然不能立太早,打脸的结果很快就来了。 迁移结束,客户的访问权限,他们以为万无一失,但就在20分钟后,收到了问题报告: 有的客户发现自己的钱不见了; 有的客户花了一点小钱,账户里却记录成了花费数千美元; 有的客户登录上去之后,发现不是自己的账户,而是看到了别人的银行账户。 13亿客户的账户记录都出了问题,于是,他们把TSB银行骂成狗,金融监管机构们则连夜找银行喝茶。 而此后的几个星期,银行都在拼命的恢复系统,但数以百万计的客户们已经人心惶惶,拼命的把自己存在TSB银行的钱取出来。 TSB银行,被自己捅的篓子扔进了地狱模式。 而问题的根源,在于测试。 英国金融监管机构金融行为监管局(FCA)首席执行官Andrew Bailey在事故几周后对外公开表示,造成系统混乱的很大原因在于缺少测试,而TSB银行请来救急的IBM专家也发现,TSB银行没有采用严格的上线标准。 而且由于地球上的金融体系都是相连的,事故所造成的错误被永久的保留在了金融体系里,不可逆转。 这起弥天大祸,也让TSB银行赔了很多钱。为了赔偿客户、解决系统出问题后浑水摸鱼的交易、找第三方帮忙总共花了3.302亿英镑,按当时汇率算大约28.4亿人民币。 而TSB的乙方、IT提供商Sabis也因为这起事故收到了1.53亿英镑(超过13亿人民币)的赔偿账单。 而受此影响,TSB银行当年亏损了1.054亿英镑(9.2亿人民币),CEO Paul Pester引咎辞职。 业绩这么差,银行的经营也难以为继,今年11月底TSB关闭了英国86个分行,至少400个工作岗位也因此消失。 二、银行系统很复杂 信息化时代,银行的IT系统也变得越来越复杂。 六十年前,人们只能选择在柜台存取现金,普通客户并没有机会直接接触计算机系统。当时,银行虽然也启用了巨型计算机,但它们只会在一天或一周交易结束的时候对纸质数据进行汇总。 也就是说,银行的IT系统仅由银行员工使用,银行与客户在柜台上的交互用的还是纸质工具。 这种情况在1967年发生了改变。 这一年,世界上第一台自动柜员机(ATM)在英国诞生,并被安装到伦敦北部的巴克莱银行Enfield分行。从此,银行和客户交互的方式发生重大变革。 ITRS Group首席执行官盖伊·沃伦(Guy Warren)解释说: 直到真正的ATM和在线银行业务出现,公众才可以直接访问银行的IT系统。 这还仅仅是个开始。 全球互联的时代,互联网和移动银行的发展进一步拉近了客户和银行IT系统之间的距离,而这样的系统,也越来越成为银行赖以运营的关键所在。 或许你会觉得,登个支付宝/微信,亮出付款码,让小钱钱在银行跟银行之间发生小小的流动,并没有什么难度。但事实上,每一次信息的加载和刷新背后,都发生了复杂的数据移动: 每一次动作可能关联到许多个单独的系统,所有这些系统都必须彼此交互,并与核心大型计算机连通。系统要现在后端复制数据,将现金从一个账户转移到另一个账户,保持同步更新。 而这样的运算量,还要乘以数十亿倍。 根据世界银行的数据,现在,全球至少有69%的成年人都拥有银行账户。人们每一天都在通过银行账户支付账单、贷款还款、订阅各种服务……并且,这些活动常常是跨行,甚至跨国进行的。 一家银行内部的多个IT系统(移动银行、ATM等),不仅需要彼此交互,甚至还必须跟其他国家的银行建立联系。比如我在国内办了一张visa信用卡,在美国也要能消费才行。 三、迁移问题很麻烦 TSB正是栽在了这样的高度复杂性上。 IBM在为TSB编写的报告中指出:新应用程序的组合,对先进微服务的应用和双活数据中心的使用,导致了TSB生产中的复合风险。 如何正确地处理银行IT系统迁移中出现的问题,对于任何一个银行来说,都是不小的挑战。 其中,大量的事前规划和测试工作是不可避免的。 像汇丰银行这样的跨国银行,具有高度复杂、相互关联的系统,这些系统会定期进行测试、迁移和更新。 即使在这方面如此经验丰富,汇丰银行的前IT主管兰开斯特仍坦承:诀窍就是让员工在这件事上付出更多的时间。 他还指出,TSB的IT系统迁移是一件很复杂的事: 我不确定他们是不是真的意识到了这件事的复杂程度。他们甚至没有完全想好要怎么去测试系统。 FCA首席执行官Andrew Bailey则表示: TSB的这一事故反映出他们缺少强大的回归测试。 注:回归测试是软件测试的一种,旨在检验软件原有功能在修改后是否保持完整 而最新的事故报告也引起了hacker news上网友们的热烈讨论。 有网友表示,如果TSB能选择小规模多次迁移,而不是在某一天进行大爆炸式迁移,那这种严重的事故可能就不会发生。 花几周/几个月的时间在生产过程中进行检查,以确保旧数据库和新数据库返回的结构相同。最终,将数据都转移到新数据库中,并在一段时间之后再关闭旧的数据库。这样做效果是比较好的。 而对测试不足导致了银行系统瘫痪的这一调查结论,有人吐槽说: 作为测试工程师,我一点也不意外。花费更多的时间、投入更多的人员来打造更好的测试架构,对于很多公司来说都是“可以节省的成本”。 经理们总是在设定的上线日期前问:“测试咋能花那么多时间?!”真要出事了他们又开始甩锅了。 也有网友严厉批评道:TSB的问题不应该说是测试不足,而是在多个层面上都测试不足,并且缺少可恢复的备份。 也有人指出,避免出错最简单的办法就是减少变化。 问题在于,无论是银行还是其他领域的公司,业务都是在不断进化的。 根据FCA发布的数据,从2017年到2018年,英国金融服务部门报告的技术中断增加了187%。 盖伊·沃伦就认为:系统停机不会消失。问题在于,可接受的度在哪里? 你怎么看呢?在评论区留下你的看法~
有只黑白猫 2020-01-20 11:22:13 0 浏览量 回答数 0

回答

工作流:   根据 WfMC 的定义,工作流(Workflow)就是自动运作的业务过程部分或整体,表现为参与者对文件、信息或任务按照规程采取行动,并令其在参与者之间传递。简单地说,工作流就是一系列相互衔接、自动进行的业务活动或任务。   工作流是针对工作中具有固定程序的常规活动而提出的一个概念。通过将工作活动分解成定义良好的任务、角色、规则和过程来进行执行和监控,达到提高生产组织水平和工作效率的目的。工作流技术为企业更好地实现经营目标提供了先进的手段。   1993年,国际工作流管理联盟(Workflow Management Coalition,WfMC)的成立标志着工作流技术开始进入相对成熟的阶段。为了实现不同工作流产品之间的互操作,WfMC在工作流管理系统的相关术语、体系结构及应用编程接口等方面制定了一系列标准。工作流管理联盟给出的工作流定义是:工作流是指整个或部分经营过程在计算机支持下的全自动或半自动化。在实际情况中可以更广泛地把凡是由计算机软件系统(工作流管理系统)控制其执行的过程都称为工作流。   一个工作流包括一组活动及它们的相互顺序关系,还包括过程及活动的启动和终止条件,以及对每个活动的描述。工作流管理系统指运行在一个或多个工作流引擎上用于定义、实现和管理工作流运行的一套软件系统,它与工作流执行者(人、应用)交互,推进工作流实例的执行,并监控工作流的运行状态。   一、工作流管理:   通常,工作流管理系统指运行在一个或多个称为工作流机的软件上的用于定义、实现和管理工作流运行的一套软件系统,它和工作流执行者(人、应用)交互,推进工作流实例的执行,并监控工作流的运行状态。在这里需要强调指出的是工作流管理系统不是企业的业务系统。在很大程度上,工作流管理系统为企业的业务系统运行提供一个软件支撑环境,非常类似于在单个计算机上的操作系统。只不过工作流管理系统支撑的范围比较大、环境比较复杂而已,所以也有人称工作流管理系统是业务操作系统(BOS - Business Operating System)。在工作流管理系统的支撑下,通过集成具体的业务应用软件和操作人员的界面操作,才能够良好地完成对企业经营过程运行的支持。所以,工作流管理系统在一个企业或部门的经营过程中的应用过程是一个业务应用软件系统的集成与实施过程。   二、工作流管理系统:   工作流管理系统可以用来定义与执行不同覆盖范围(单个工作者、部门、全企业、企业间)、不同时间跨度(分钟、小时、天、月)的经营过程。这完全取决于实际应用背景的需求。按照经营过程以及组成活动的复杂程度的不同,工作流管理系统可以采取许多种实施方式,在不同的实施方式中,所应用的信息技术、通信技术和支撑系统结构会有很大的差别。工作流管理系统的实际运行环境可以是在一个工作组内部或者在全企业的所有业务部门。   三、业务过程:   业务过程(business process)就是活动的集合,这些活动均关联于特定的托付事项(commitment),为过程的产出增值。相对于“工作流”,业务过程是一个更一般化的统称,而工作流这个词,则已经不能仅从字面含义或原理上去理解,它已经被赋予了更深一层的特定含义——专指基于信息技术规划、运作、管理的业务过程。   四、自动与协调:   “自动”(automate)是工作流的一个特征,但这主要是指它自动进行的特征,而不是说没有人的参与。工作流实际上是一个人-电脑协调的混合过程,在一个实际的工作流中,通常总有些步骤是人完成的。协调是工作流管理的一个目标或者特征,这包括了人与人、人与电脑,电脑(软件)之间等多种层面的含义。   五、监察与控制:   监察(Monitoring)与控制(Contorl)是工作流系统的重要功能与特征。这不仅包括对正在发生的业务过程(工作流),还包括它的定义或改变(比如BPR的过程)。这是工作流系统带给我们的明显好处之一。   六、标准化:   作流的概念被明确提出并得到重视的同时,人们就认识到了“标准化”在其中的重要性,有关工作流的标准开发和推广,基本是与“工作流”的开发和推广同步进行的。在这方面目前的权威性机构,是“工作流管理联盟”(Workflow Management Coalition, WfMC)。它成立于1993年8月,目前已拥有 130 余个成员,成员包括工作流产品的供应者、应用者,有关大学和研究机构和个人,是一个国际性的非赢利组织。在最近的投资成员(Funding members)清单中,可以看到诸如 Baan, HP, IBM, Microsoft, Oracle, Peplesoft, SAP AG, Xerox 等机构。   七、工作流与重规划:   从逻辑上,对工作流的关注和研究可以看作是对业务过程重规划(BPR)的一种深化。BPR的观点,要求我们将眼光投向实际业务进行的过程,但这个过程应当是什么样的,怎样分析、构造?工作流就是一个具体的、操作性的答案,它可以令我们从神秘的、难以预测和控制的“头脑风暴式”的“艺术的”业务过程创造,变成解析的、技术的、可控制和预测的工程化过程,如此,才真正体现出 re-engineering 中 engineering 的意义。   工作流与 BPR 的概念,已经被几乎所有的研究者联系在一起研究和应用。在这个领域有一个非常活跃的组织,即国际工作流与重规划协会( Workflow And Reengineering International Association, WARIA)。   八、工作流与企业工程:   无论从理论、方法上,还是对象、内容上,我们都有理由将“工作流”看作是企业工程的一部分。实际上,已有的关于工作流体系的描述,本身就是一个通用的业务模型框架。仅仅囿于工作流是不够的,必须对整个体系的目标及所有相关要素综合考虑——这正是企业工程。   九、工作流与IT应用体系:   与以往已经被采用的企业 IT 应用体系,例如 MRPII 或 ERP 相比,WFMS是一个相当重要的里程碑。(ERP的概念并不确定,我这里仅指其基本或较早期的含义而言)。从用户的角度,WFMS带来(或将要带来)的变化是极其强烈的,甚至可以形容为一种用户“梦想”的实现。   在一些老的“模块化”的产品中,系统的设计是通常是基于任务分割的,作业项目之间是分裂的。面向对象的技术,并不能直接解决这个的问题,相反,往往使系统变得更加混乱和琐碎。从操作上,典型地,我们必须不断地在层次结构的功能表(比如下拉菜单)或对象之间“进进退退”,或者在“神出鬼没”的对象以及相关菜单中捉迷藏。   工作流管理系统是一个真正的“人-机”系统,用户是系统中的基本角色,是直接的任务分派对象,他或她可以直接看到电脑针对自己列出的“任务清单”,跟踪每一项任务的状态,或继续一项任务,而不必从一个模块退出,进入另一个模块,搜索相应任务的线索。前者是面向功能或对象的,而后者是直接面向用户的。这样,用户的任务分派和任务的完成状态,可以被最大程度地电脑化和受到控制。   现在的典型工作流产品是客户-服务软件。而日益增长的重要途径是通过万维网界面,它可以令客户或远程的职员更好地参与。工作流的定义经常是借助于图形化工具,依照业务过程实例的情况定义相应工作的安排   OA(办公自动化): 引自肖淑男 2001-2-20   通常,OA 就是办公自动化,英文Office Automation的缩写。通过流程或特定环节与日常事务联系在一起,使公文在流转、审批、发布等方面提高效率,实现办公管理规范化和信息规范化,降低企业运行成本的一套系统的统称。   多年来,OA尚无一个确切的定义,人们对OA的看法和理解各有不同。笔者认为:OA本身就不是一个有确定界定的概念,它是一个过程、一种境界。它随技术的发展而发展,随人们办公方式和习惯以及管理思想的变化而变化。在技术发展过程中的每一个阶段,人们给OA赋予了不同的内容和新的想象,技术与管理的进步给OA打下了每一步发展的历史烙印。同时,不同行业、不同层次的人对OA的看法和理解也各有不同。也许正是OA这种变化和发展的特点使之成为30多年来常新不衰的话题。   现在有一种较普遍的偏见:认为OA仅仅是诸如公文流转、收发文管理、档案管理、会议安排、文献检索、电子表格、电子邮件等等这些非结构化数据的处理和交换过程,面向的用户群也只是机关办公室或企业的职能部门、文秘部门。其实,今天看来,OA应有更丰富的内容和层面,更广泛的用户群。以下是笔者对OA在功能上以及所涉及的技术范畴的肤浅理解,愿与同行商榷。   功能方面:广义面言,OA应该是一个企业除了生产控制之外的一切信息处理与管理的集合。它面向不同层次的使用者,便有不同的功能表现:   对于企业高层领导而言,OA是决策支持系统(DSS)。OA运用科学的数学模型,结合企业内部/外部的信息为条件,为企业领导提供决策参考和依据;   对于中层管理者而言:OA是信息管理系统(IMS),OA利用业务各环节提供的基础“数据”,提炼出有用的管理“信息”,把握业务进程,降低经营风险,提高经营效率;   对于普通员工而言:OA是事务/业务处理系统。OA为办公室人员提供良好的办公手段和环境,使之准确、高效,愉快地工作。   技术范畴:OA是计算机技术在办公业务中的合理应用。计算机技术是OA的前提。如果脱离计算机技术面阔谈OA,无异于痴人说梦。没有计算机技术,OA便成无源之水、无本之木。计算机对信息的存储与处理能力极大地改变了人们的办公方式,提高了工作效率。如:要建立决策支持系统,则需要数据仓库 、OLAP等技术;要建立信息管理系统,则要有数据库、程序设计语言等技术;要建立事务/业务处理系统,则离不开数据库、设计良好的人机界面和工作流控制、OLTP等技术。   OA是利用通信技术来实现人与机器、机器与机器及人与人的交流。通信技术是OA的基础。现代办公室不再是孤军奋战,而是一个团队的协同工作,团队中成员之间的协调、合作离不开通信技术;现代办公室也不再是闭门造车,企业需要与外界广泛的信息交流,这更离不开通信技术。没有通信技术的支持,OA便成空中楼阁。   OA是科学的管理思想在先进的技术手段下的物化。科学的管理思想是实现OA的核心。计算机技术和通信技术仅仅是为实现OA打下了基础,提供了可能。要真正实现OA,还需物化人类思维中科学管理的内容。正如仅有优质的画笔、画板、颜料而没有达.芬奇,就不会有蒙娜尼莎的微笑一样。不体现人类管理智慧,就不会有真正的OA,如果有,也只是技术的堆砌和摆设。   由此而知,OA是计算机技术、通信技术与科学的管理思想完美结合的一种境界和理想。我们一直在为实现OA而努力,但我们的成果仅仅是在某些环节、某些方面、部分地实现了OA的功能,与真正的OA尚有差距,差距的根本在于应用系统对管理思想的实现方面。 答案来源于网络
养狐狸的猫 2019-12-02 03:00:25 0 浏览量 回答数 0

回答

前言 这期我想写很久了,但是因为时间的原因一直拖到了现在,我以为一两天就写完了,结果从构思到整理资料,再到写出来用了差不多一周的时间吧。 你们也知道丙丙一直都是创作鬼才来的,所以我肯定不会一本正经的写,我想了好几个切入点,最后决定用一个完整的电商系统作为切入点,带着大家看看,我们需要学些啥,我甚至还收集配套视频和资料,暖男石锤啊,这期是呕心沥血之作,不要白嫖了。 正文 在写这个文章之前,我花了点时间,自己臆想了一个电商系统,基本上算是麻雀虽小五脏俱全,我今天就用它开刀,一步步剖析,我会讲一下我们可能会接触的技术栈可能不全,但是够用,最后给个学习路线。 Tip:请多欣赏一会,每个点看一下,看看什么地方是你接触过的,什么技术栈是你不太熟悉的,我觉得还算是比较全的,有什么建议也可以留言给我。 不知道大家都看了一下没,现在我们就要庖丁解牛了,我从上到下依次分析。 前端 你可能会会好奇,你不是讲后端学习路线嘛,为啥还有前端的部分,我只能告诉你,傻瓜,肤浅。 我们可不能闭门造车,谁告诉你后端就不学点前端了? 前端现在很多也了解后端的技术栈的,你想我们去一个网站,最先接触的,最先看到的是啥? 没错就是前端,在大学你要是找不到专门的前端同学,去做系统肯定也要自己顶一下前端的,那我觉得最基本的技术栈得熟悉和了解吧,丙丙现在也是偶尔会开发一下我们的管理系统主要是VUE和React。 在这里我列举了我目前觉得比较简单和我们后端可以了解的技术栈,都是比较基础的。 作为一名后端了解部分前端知识还是很有必要的,在以后开发的时候,公司有前端那能帮助你前后端联调更顺畅,如果没前端你自己也能顶一下简单的页面。 HTML、CSS、JS、Ajax我觉得是必须掌握的点,看着简单其实深究或者去操作的话还是有很多东西的,其他作为扩展有兴趣可以了解,反正入门简单,只是精通很难很难。 在这一层不光有这些还有Http协议和Servlet,request、response、cookie、session这些也会伴随你整个技术生涯,理解他们对后面的你肯定有不少好处。 Tip:我这里最后删除了JSP相关的技术,我个人觉得没必要学了,很多公司除了老项目之外,新项目都不会使用那些技术了。 前端在我看来比后端难,技术迭代比较快,知识好像也没特定的体系,所以面试大厂的前端很多朋友都说难,不是技术多难,而是知识多且复杂,找不到一个完整的体系,相比之下后端明朗很多,我后面就开始讲后端了。 网关层: 互联网发展到现在,涌现了很多互联网公司,技术更新迭代了很多个版本,从早期的单机时代,到现在超大规模的互联网时代,几亿人参与的春运,几千亿成交规模的双十一,无数互联网前辈的造就了现在互联网的辉煌。 微服务,分布式,负载均衡等我们经常提到的这些名词都是这些技术在场景背后支撑。 单机顶不住,我们就多找点服务器,但是怎么将流量均匀的打到这些服务器上呢? 负载均衡,LVS 我们机器都是IP访问的,那怎么通过我们申请的域名去请求到服务器呢? DNS 大家刷的抖音,B站,快手等等视频服务商,是怎么保证同时为全国的用户提供快速的体验? CDN 我们这么多系统和服务,还有这么多中间件的调度怎么去管理调度等等? zk 这么多的服务器,怎么对外统一访问呢,就可能需要知道反向代理的服务器。 Nginx 这一层做了反向负载、服务路由、服务治理、流量管理、安全隔离、服务容错等等都做了,大家公司的内外网隔离也是这一层做的。 我之前还接触过一些比较有意思的项目,所有对外的接口都是加密的,几十个服务会经过网关解密,找到真的路由再去请求。 这一层的知识点其实也不少,你往后面学会发现分布式事务,分布式锁,还有很多中间件都离不开zk这一层,我们继续往下看。 服务层: 这一层有点东西了,算是整个框架的核心,如果你跟我帅丙一样以后都是从事后端开发的话,我们基本上整个技术生涯,大部分时间都在跟这一层的技术栈打交道了,各种琳琅满目的中间件,计算机基础知识,Linux操作,算法数据结构,架构框架,研发工具等等。 我想在看这个文章的各位,计算机基础肯定都是学过的吧,如果大学的时候没好好学,我觉得还是有必要再看看的。 为什么我们网页能保证安全可靠的传输,你可能会了解到HTTP,TCP协议,什么三次握手,四次挥手。 还有进程、线程、协程,什么内存屏障,指令乱序,分支预测,CPU亲和性等等,在之后的编程生涯,如果你能掌握这些东西,会让你在遇到很多问题的时候瞬间get到点,而不是像个无头苍蝇一样乱撞(然而丙丙还做得不够)。 了解这些计算机知识后,你就需要接触编程语言了,大学的C语言基础会让你学什么语言入门都会快点,我选择了面向对象的JAVA,但是也不知道为啥现在还没对象。 JAVA的基础也一样重要,面向对象(包括类、对象、方法、继承、封装、抽象、 多态、消息解析等),常见API,数据结构,集合框架,设计模式(包括创建型、结构型、行为型),多线程和并发,I/O流,Stream,网络编程你都需要了解。 代码会写了,你就要开始学习一些能帮助你把系统变得更加规范的框架,SSM可以会让你的开发更加便捷,结构层次更加分明。 写代码的时候你会发现你大学用的Eclipse在公司看不到了,你跟大家一样去用了IDEA,第一天这是什么玩意,一周后,真香,但是这玩意收费有点贵,那免费的VSCode真的就是不错的选择了。 代码写的时候你会接触代码的仓库管理工具maven、Gradle,提交代码的时候会去写项目版本管理工具Git。 代码提交之后,发布之后你会发现很多东西需要自己去服务器亲自排查,那Linux的知识点就可以在里面灵活运用了,查看进程,查看文件,各种Vim操作等等。 系统的优化很多地方没优化的空间了,你可能会尝试从算法,或者优化数据结构去优化,你看到了HashMap的源码,想去了解红黑树,然后在算法网上看到了二叉树搜索树和各种常见的算法问题,刷多了,你也能总结出精华所在,什么贪心,分治,动态规划等。 这么多个服务,你发现HTTP请求已经开始有点不满足你的需求了,你想开发更便捷,像访问本地服务一样访问远程服务,所以我们去了解了Dubbo,Spring cloud。 了解Dubbo的过程中,你发现了RPC的精华所在,所以你去接触到了高性能的NIO框架,Netty。 代码写好了,服务也能通信了,但是你发现你的代码链路好长,都耦合在一起了,所以你接触了消息队列,这种异步的处理方式,真香。 他还可以帮你在突发流量的时候用队列做缓冲,但是你发现分布式的情况,事务就不好管理了,你就了解到了分布式事务,什么两段式,三段式,TCC,XA,阿里云的全局事务服务GTS等等。 分布式事务的时候你会想去了解RocketMQ,因为他自带了分布式事务的解决方案,大数据的场景你又看到了Kafka。 我上面提到过zk,像Dubbo、Kafka等中间件都是用它做注册中心的,所以很多技术栈最后都组成了一个知识体系,你先了解了体系中的每一员,你才能把它们联系起来。 服务的交互都从进程内通信变成了远程通信,所以性能必然会受到一些影响。 此外由于很多不确定性的因素,例如网络拥塞、Server 端服务器宕机、挖掘机铲断机房光纤等等,需要许多额外的功能和措施才能保证微服务流畅稳定的工作。 **Spring Cloud **中就有 Hystrix 熔断器、Ribbon客户端负载均衡器、Eureka注册中心等等都是用来解决这些问题的微服务组件。 你感觉学习得差不多了,你发现各大论坛博客出现了一些前沿技术,比如容器化,你可能就会去了解容器化的知识,像**Docker,Kubernetes(K8s)**等。 微服务之所以能够快速发展,很重要的一个原因就是:容器化技术的发展和容器管理系统的成熟。 这一层的东西呢其实远远不止这些的,我不过多赘述,写多了像个劝退师一样,但是大家也不用慌,大部分的技术都是慢慢接触了,工作中慢慢去了解,去深入的。 好啦我们继续沿着图往下看,那再往下是啥呢? 数据层: 数据库可能是整个系统中最值钱的部分了,在我码文字的前一天,刚好发生了微盟程序员删库跑路的操作,删库跑路其实是我们在网上最常用的笑话,没想到还是照进了现实。 这里也提一点点吧,36小时的故障,其实在互联网公司应该是个笑话了吧,权限控制没做好类似rm -rf 、fdisk、drop等等这样的高危命令是可以实时拦截掉的,备份,全量备份,增量备份,延迟备份,异地容灾全部都考虑一下应该也不至于这样,一家上市公司还是有点点不应该。 数据库基本的事务隔离级别,索引,SQL,主被同步,读写分离等都可能是你学的时候要了解到的。 上面我们提到了安全,不要把鸡蛋放一个篮子的道理大家应该都知道,那分库的意义就很明显了,然后你会发现时间久了表的数据大了,就会想到去接触分表,什么TDDL、Sharding-JDBC、DRDS这些插件都会接触到。 你发现流量大的时候,或者热点数据打到数据库还是有点顶不住,压力太大了,那非关系型数据库就进场了,Redis当然是首选,但是MongoDB、memcache也有各自的应用场景。 Redis使用后,真香,真快,但是你会开始担心最开始提到的安全问题,这玩意快是因为在内存中操作,那断点了数据丢了怎么办?你就开始阅读官方文档,了解RDB,AOF这些持久化机制,线上用的时候还会遇到缓存雪崩击穿、穿透等等问题。 单机不满足你就用了,他的集群模式,用了集群可能也担心集群的健康状态,所以就得去了解哨兵,他的主从同步,时间久了Key多了,就得了解内存淘汰机制…… 他的大容量存储有问题,你可能需要去了解Pika…. 其实远远没完,每个的点我都点到为止,但是其实要深究每个点都要学很久,我们接着往下看。 实时/离线/大数据 等你把几种关系型非关系型数据库的知识点,整理清楚后,你会发现数据还是大啊,而且数据的场景越来越多多样化了,那大数据的各种中间件你就得了解了。 你会发现很多场景,不需要实时的数据,比如你查你的支付宝去年的,上个月的账单,这些都是不会变化的数据,没必要实时,那你可能会接触像ODPS这样的中间件去做数据的离线分析。 然后你可能会接触Hadoop系列相关的东西,比如于Hadoop(HDFS)的一个数据仓库工具Hive,是建立在 Hadoop 文件系统之上的分布式面向列的数据库HBase 。 写多的场景,适合做一些简单查询,用他们又有点大材小用,那Cassandra就再合适不过了。 离线的数据分析没办法满足一些实时的常见,类似风控,那Flink你也得略知一二,他的窗口思想还是很有意思。 数据接触完了,计算引擎Spark你是不是也不能放过…… 搜索引擎: 传统关系型数据库和NoSQL非关系型数据都没办法解决一些问题,比如我们在百度,淘宝搜索东西的时候,往往都是几个关键字在一起一起搜索东西的,在数据库除非把几次的结果做交集,不然很难去实现。 那全文检索引擎就诞生了,解决了搜索的问题,你得思考怎么把数据库的东西实时同步到ES中去,那你可能会思考到logstash去定时跑脚本同步,又或者去接触伪装成一台MySQL从服务的Canal,他会去订阅MySQL主服务的binlog,然后自己解析了去操作Es中的数据。 这些都搞定了,那可视化的后台查询又怎么解决呢?Kibana,他他是一个可视化的平台,甚至对Es集群的健康管理都做了可视化,很多公司的日志查询系统都是用它做的。 学习路线 看了这么久你是不是发现,帅丙只是一直在介绍每个层级的技术栈,并没说到具体的一个路线,那是因为我想让大家先有个认知或者说是扫盲吧,我一样用脑图的方式汇总一下吧,如果图片被平台二压了。 资料/学习网站 Tip:本来这一栏有很多我准备的资料的,但是都是外链,或者不合适的分享方式,博客的运营小姐姐提醒了我,所以大家去公众号回复【路线】好了。 絮叨 如果你想去一家不错的公司,但是目前的硬实力又不到,我觉得还是有必要去努力一下的,技术能力的高低能决定你走多远,平台的高低,能决定你的高度。 如果你通过努力成功进入到了心仪的公司,一定不要懈怠放松,职场成长和新技术学习一样,不进则退。 丙丙发现在工作中发现我身边的人真的就是实力越强的越努力,最高级的自律,享受孤独(周末的歪哥)。 总结 我提到的技术栈你想全部了解,我觉得初步了解可能几个月就够了,这里的了解仅限于你知道它,知道他是干嘛的,知道怎么去使用它,并不是说深入了解他的底层原理,了解他的常见问题,熟悉问题的解决方案等等。 你想做到后者,基本上只能靠时间上的日积月累,或者不断的去尝试积累经验,也没什么速成的东西,欲速则不达大家也是知道的。 技术这条路,说实话很枯燥,很辛苦,但是待遇也会高于其他一些基础岗位。 所实话我大学学这个就是为了兴趣,我从小对电子,对计算机都比较热爱,但是现在打磨得,现在就是为了钱吧,是不是很现实?若家境殷实,谁愿颠沛流离。 但是至少丙丙因为做软件,改变了家庭的窘境,自己日子也向小康一步步迈过去。 说做程序员改变了我和我家人的一生可能夸张了,但是我总有一种下班辈子会因为我选择走这条路而改变的错觉。 我是敖丙,一个在互联网苟且偷生的工具人。 创作不易,本期硬核,不想被白嫖,各位的「三连」就是丙丙创作的最大动力,我们下次见! 本文 GitHub https://github.com/JavaFamily 已经收录,有大厂面试完整考点,欢迎Star。 该回答来自:敖丙
剑曼红尘 2020-03-06 11:35:37 0 浏览量 回答数 0

问题

【精品问答】python技术1000问(2)

为了方便python开发者快速找到相关技术问题和答案,开发者社区策划了python技术1000问内容,包含最基础的如何学python、实践中遇到的技术问题、python面试等维度内容。 我们会以每天至少50条的...
问问小秘 2019-12-01 22:03:02 3129 浏览量 回答数 1

问题

【精品问答】110+数据挖掘面试题集合

数据挖掘工程师面试宝典双手呈上,快来收藏吧! 1.异常值是指什么?请列举1种识别连续型变量异常值的方法? 2.什么是聚类分析? 3.聚类算法有哪几种?选择一种详细描述其计算原理和步骤。 4.根据要求写出SQL ...
珍宝珠 2019-12-01 21:56:45 2713 浏览量 回答数 3

云产品推荐

上海奇点人才服务相关的云产品 小程序定制 上海微企信息技术相关的云产品 国内短信套餐包 ECS云服务器安全配置相关的云产品 开发者问答 阿里云建站 自然场景识别相关的云产品 万网 小程序开发制作 视频内容分析 视频集锦 代理记账服务 阿里云AIoT