精华内容
下载资源
问答
  • 一分钟告诉你究竟DevOps是什么鬼?

    万次阅读 多人点赞 2015-12-07 10:56:23
    我们没法揣摩他们的想法,我们所能做的只是描述一下他们的表象。 清醒的像只游过水面的狐狸 警惕的像位战场上的将军 友善的像位招待客人的女主人 单纯的像块未经雕琢的木头 深邃的像一潭幽深洞

    历史回顾

    为了能够更好的理解什么是DevOps,我们很有必要对当时还只有程序员(此前还没有派生出开发者,前台工程师,后台工程师之类)这个称号存在的历史进行一下回顾。

    编程之道中所言:

    老一辈的程序员是神秘且深奥的。我们没法揣摩他们的想法,我们所能做的只是描述一下他们的表象。

    • 清醒的像一只游过水面的狐狸
    • 警惕的像一位战场上的将军
    • 友善的像一位招待客人的女主人
    • 单纯的像一块未经雕琢的木头
    • 深邃的像一潭幽深洞穴中漆黑的池水

    程序员开发了机器语言,机器语言又产生了汇编语言,汇编语言产生了编译器,如今的语言已经多不胜数。每一种语言都有其各自的谦卑用途。每一种语言都表达出软件的阴和阳。每一种语言都在此道之中有其一席之地。

    遥想当年,软件程序员的大部分办公司那时还被称作实验室,程序员那时还叫做科学家。为了开发出一套优秀的软件,程序员们必须深入了解他们需要的应用相关的所有问题。他们必须清楚知道这个软件应用在什么场合,这个软件是必须在什么系统上运行。本质上说,程序员对所要开发的软件的所有环节都有透彻的了解,从规格说明书编写、到软件开发、到测试、到部署、再到技术支持。

    过了不久,人类(客户)贪婪的特性就开始表现出来,他们开始不断的进行更多的索求。更快的速度,更多的功能,更多的用户,更多的所有所有。

    作为一类谦虚、谦卑、且平静的生物,我们的老一辈程序员们将很难在这种爆发性的过度的需求索取中幸存。最好的取胜办法就是往不同的方向进化成不同的新物种。很快,程序员这个称号就开始绝迹于江湖,而那些叫做开发者、软件工程师、网络管理员、数据库开发者、网页开发者、系统架构师、测试工程师等等更多的新物种就开始诞生。快速进化和快速适应外界的挑战成为了他们的DNA的一部分。这些新的种族可以在几个星期内就完成进化。网页开发者很快就能进化成后台开发者,前台开发者,PHP开发者,Ruby开发者,Angular开发者…多得让人侧目。

    很快他们就都忘却了他们都是起源于程序员这个共同的祖先的事实,忘却了曾经有过这么一个单纯且平静的,想要让这个世界变得更好的科学家。然后他们开始不断的剑拔弩张,都声称自己才是“程序员”的纯血统继承人。

    随着时间的转移,各门各派开始独占山头,很少进行交流互动,只有在迫不得已的时刻才会进行沟通。他们开始不再为同源的遥远的同宗兄弟们的成功而欢呼雀跃,甚至再也不会时把的遥寄张明信片进行嘘寒问暖。

    但是在深夜仰望星空的时候,他们还是会发现他们的心底深处的程序员基因还是会不停的闪烁着,期盼着这闪烁的火花能照亮整个银河系并带来和平。

    在这场自私且以自我为中心的欲征服世界的赛跑旅程里,程序员的子孙们早把他们真正的工作目标置之脑后-为客户解决问题。面对一拖再拖的项目交付日期,昂贵的开发代价,甚至最终失败的项目,客户们开始对这种情况深恶痛绝。

    偶尔,也会有一个闪亮的明星站出来,灵机一动的提供一种办法来尝试结束这种混乱并带来和平。所以瀑布开发流程就应运而生了。这是一个非常了不起的创意,因为它利用了不同团队的开发者们只在必须的时候才进行沟通的这个事实。当一个团队完成了他们的工作的时候,它就会和下游的团队进行交流并把任务进行往下传,如此一级接一级的传递下去,永不回首。

    这里写图片描述

    这种方式在一段时间内发挥了效用,但很快,一如既往,贪婪的人们(客户)又开始提出更多的诉求。他们希望能够更多地参加到整个软件的开发流程中来,不时的提出他们的建议,甚至在很晚的时候还提出改需求这种丧心病狂的事情来。

    结果就是如大家有目共睹的事实一样,软件项目非常容易失败这个说法已经作为一个行业标准被人们所接受。数据表明超过50%的项目最终都是以失败告终的。更可悲的是,在当时看来,人们对这种情况是束手无策。

    值得庆幸的是,每一个时代总会有那么几个思想开放的英雄如漆黑中的萤火虫般冒出来。他们知道这些不同团队的开发者们必须要找到一个可以协同工作、进行交流、并且能够弹性的向客户保证对方将会拿到最优的解决方案的方式。这种尝试最早可以追溯到1957年,伟大的约翰·冯·诺依曼和同行们的努力。但是我们最终却是等到2001年才收获到革命的果实,当时行业的十多个精英创造出了如今闻名世界的“敏捷宣言”。

    敏捷宣言基于以下十二条原则:

    • 我们的首要任务是通过尽早地、持续地交付可评价的软件来使客户满意。
    • 乐于接受需求变更,即使是在开发后期也应如此。敏捷过程能够驾驭变化,从而为客户赢得竞争优势。
    • 频繁交付可使用的软件,交付间隔越短越好,可以从几个星期到几个月。
    • 在整个项目开发期间,业务人员和开发人员必须朝夕工作在一起。
    • 围绕那些有推动力的人们来构建项目。给予他们所需的环境和支持,并且信任他们能够把工作完成好。
    • 与开发团队以及在开发团队内部最快速、有效的传递信息的方法就是,面对面的交谈。
    • 可使用的软件是进度的主要衡量指标。
    • 敏捷过程提倡可持续发展。出资人、开发人员以及使用者应该总是共同维持稳定的开发速度。
    • 为了增强敏捷能力,应持续关注技术上的杰出成果和良好的设计。
    • 简洁——最大化不必要工作量的艺术——是至关重要的。
    • 最好的架构、需求和设计都源自自我组织的团队。
    • 团队应该定期反思如何能变得更有战斗力,然后相应地转变并调整其行为。

    敏捷宣言是为银河系带来和平以及维护各自的平衡所迈出的很重要的第一步。在很长的时间里,相比此前基于流程和机械化的方式,这是第一次基于文化和“人性”来将不同的关键项目关系人连接在一起的方式。人们开始互相交流,进行基本的碰头会议,并开始不断的交流意见和看法。他们开始意识到他们是有着很多比想象中还多的共同点的,客户也开始成为他们之中的一员,而不再是像以往一样只是往项目砸钱然后开始求神拜佛祈求一切顺利如愿。

    尽管前面还是有不少的障碍需要克服,但是未来已经光明了许多。敏捷意味着开放和拥抱(需求)改变。但是,如果改变过多的话,人们就很难专注到最终的目标和交付上来。此时精益软件开发就开始破土而出了。

    因为对精益软件开发的着迷以及为了达成放逐和驱赶风险的目的,一些程序员的子孙们就开始探首窗外,开始向软件之外的行业进行取经。他们从一家主要的汽车生产商身上找到了救赎。丰田生产系统在精益上面的成就是不可思议的,同时它们的精益生产的经验也是很容易应用到软件开发上来的。

    精益有以下7个原则:

    • 杜绝浪费
    • 内建质量
    • 创建知识(放大学习)
    • 延迟决策(尽量延迟决定)
    • 快速交付
    • 尊重人员(团队授权)
    • 全局优化

    将这些放到敏捷上去的话,精益原则就能让人们在从精神上关注做正确的事情,同时还能够让整个开发流程拥有足够的弹性。

    一旦敏捷和精益软件开发被软件开发团队采纳,那么下一步就是把这一套原则应用到IT团队上来。把IT也纳入到整体战略上,然后我们就来到了DevOps跟前了!

    进入DevOps – 高速公路的三条车道

    老一派的软件开发团队成员会包含业务分析员,系统架构师,前端开发者,后端开发者,测试员,等等。优化如敏捷和精益原则等的软件开发流程的关注点就在这些地方。比如,软件一旦达到”可以生产“的程度,就会发到系统工程师、发布工程师、DBA、网络工程师,安全专家这些“运维人员”的手上。这里该如何将横在Dev(开发)和Ops(运维)之间的鸿沟给填平,这就是DevOps的主要关注点了。

    DevOps是在整个IT价值流中实施精益原则的结果。IT价值流将开发延伸至生产,将由程序员这个遥远的祖宗所繁衍的所有子孙给联合在一起。

    这是来自Gene Kim的对DevOps的最好的解析,如果你还没有看过他的《凤凰项目》这本书的话,我建议你真的该好好花时间看看。

    你不应该重新招聘DevOps工程师,且DevOps也不应该是一个IT的新部门。DevOps是一种文化,一种理念,且是和IT糅合成一整体的。世间没有任何工具可以把你的IT变成一个DevOps组织,也没有任何自动化方式可以指引你该如何为你的客户提供最大化的效益。

    DevOps通常作为下面这三个方式而为人所熟知,而在我眼里我是把它们看成是一条高速公路上的三条车道。你从第一条车道开始,然后加速进入到第二条车道,最终在第三车道上高速行驶。

    • 车道1 – 系统级别的整体效率考量是最主要的关注点,这超过对系统中任何一个单独个体元素的考虑
    • 车道2 – 确保能提供持续不断的反馈循环,且这些反馈不被忽视。
    • 车道3 – 持续的学习和吸取经验,不停的进步,快速的失败。

    车道1 – 获取速度

    要采纳DevOps的原则,理解整个运作系统的重要性并对工作事项进行合适的优先级排序是组织首先要学的事情。在整个价值流中不能允许任何人产生瓶颈并降低整个工作流程。

    确保工作流程的不可中断是身处流程中的所有成员的终极目标。无论一个成员或者团队的角色是什么,他们都必须力图对整个系统进行深入的理解。这种思维方式对质量会有着直接的影响,因为缺陷永远不会被下放到“下游“中,这样做的话将会导致瓶颈的产生。

    确保整个工作流程不会被瓶颈堵塞住还不够。一个高产的组织应该时常考虑该如何提升整个工作流程。有很多方法论可以做到这一点,你不妨去看下“约束理论”,“六西格玛”,精益,或者丰田生产系统。

    DevOps原则不关心你身处哪个团队,你是否是系统架构师,DBA,QA,或者是网络管理员。相同的规则覆盖所有的成员,每个成员都应该遵循两个简单的原则:

    保持系统运作流程不可中断
    随时提升和优化工作流程

    车道2 – 换挡加速

    不可中断的系统流程是定向的,且预期是从开发流向运维。在一个理想的世界中,这就意味着快速的开发出高质量的软件,部署,并为客户提供价值。

    但是,DevOps并非乌托邦式的理想国。如果单向的交付方式是可行的话,我们的瀑布模式早就能胜任了。评估可交付产品和整个流程中的交流对确保质量是至关重要的。这里首个必须实现的”面向上游”的交流通道是从Ops到Dev。

    我们独自意淫是件非常容易的事情,但是获取别人的反馈和提供反馈给别人才是探究事实真相的正确方法。下游的每一步(反馈)都必须紧跟着有一个上游的确定。

    你如何建立反馈循环机制并不重要。你可以邀请开发人员加入技术支持团队的会议,或者将网络管理员放到Sprint计划会议中去。一旦你的反馈机制就绪,反馈能够被接收并被处理,你就已经可以说是走到了DevOps高速车道上来了。

    车道3 – 飞速前进

    DevOps这条快速车道并不适合意志脆弱的人。为了进入这条车道,你的组织必须要足够的成熟。这里充满了冒险和对失败教训的学习,不断的尝试,并认同屡败屡战和不断的实践是走向成功这条康庄大道的前提条件。在这里你应该会经常听到”套路“这个词,这是有原因的。不断的训练和重复所以能培养出大师,是因为其让复杂的动作常规化。

    但是在你要将这些复杂的动作连接起来之前,你很有必要先去掌握好每一个单独步骤。

    “适合大师的动作并不适合新手,脱胎换骨之前你必须先要明白道的真谛。“

    DevOps的第三个方式/快速车道包括每天分配时间来持续的进行试验,时常的奖励敢于冒险的团队,并将缺陷特意引入到运作系统上来以增加系统的抗击打能力。

    为了确保你的组织能够消化好这些方法,你必须在每个团队之间建立好频繁的反馈循环,同时需要确保所有的瓶颈都能够及时的被清理掉,并确保整个系统的运作流程是不可中断的。

    实施好这些措施可以让你的组织时刻保持警惕,并能够快速且高效的应对挑战。

    概要 – DevOps清单

    下面是一张你可以用来检验你的组织对DevOps的应用情况的清单。当然你也可以在文章评论后面给出你的观点。

    • 开发团队和运维团队之间没有障碍。两者皆是DevOps统一流程的一部分。
    • 从一个团队流到另一个团队的工作都能够得到高质量的验证
    • 工作没有堆积,所有的瓶颈都已经被处理好。
    • 开发团队没有占用运维团队的时间,因为部署和维护都是处于同一个时间盒里面的。
    • 开发团队不会在周五下午5点后把代码交付进行部署,剩下运维团队周末加班加点来给他们擦屁股
    • 开发环境标准化,运维人员可以很容易將之扩展并进行部署
    • 开发团队可以找到合适的方式交付新版本,且运维团队可以轻易的进行部署。
    • 每个团队之间的通信线路都很明确
    • 所有的团队成员都有时间去为改善系统进行试验和实践
    • 常规性的引入(或者模拟)缺陷到系统中来并得到处理。每次学习到的经验都应该文档化下来并分享给相关人员。事故处理成为日常工作的一部分,且处理方式是已知的

    总结

    使用现代化的DevOps工具,如Chef、Docker、Ansible、Packer、Troposphere、Consul、Jenkins、SonarQube、AWS等,并不代表你就在正确的应用DevOps的原则。DevOps是一种思维方式。我们所有人都是该系统流程的一部分,我们一起分享共同的时光和交付价值。每个参加到这个软件交付流程上来的成员都能够加速或减缓整个系统的运作速度。系统出现的一个缺陷,以及错误配置的团队之间的“防火墙”,都可能会使得整个系统瘫痪,

    所有的人都是DevOps的一部分,一旦你的组织明白了这一点,能够帮你管理好这些的工具和技术栈就自然而然的会出现在你眼前了。

    注:更多文章请关注公众号:techgogogo或个人博客http://techgogogo.com。当然,也非常欢迎您直接微信(zhubaitian1)勾搭。本文由天地会珠海分舵编译自toptal。转载请自觉,是否投诉维权看心情。

    展开全文
  • 其实大多数人项目的时候都是这样的,不是每个项目都有什么难点,可是为什么一样的项目经验,别人就难点上就说出一二三来呢。 下面我们来说一下 项目的时候时刻保持着对难点的敏感程度,很多我们费尽周折解决...

    代码随想录刷题网站上线咯:programmercarl.com,200道力扣题目刷题顺序,详细题解,支持C++、Java、Python、Go、JS等多语言版本,一个你只要发现,就会收藏的硬核算法学习网站。

    大家好,我是程序员Carl,毕业先后在腾讯百度工作多年,看过很多社招和校招的简历,这篇文章我来总结一下程序员的简历应该怎么写,有哪些注意事项,还给出了我自己的简历模板,好了,我只能帮到这了。

    简历基调

    程序员的简历力求简洁明了,不用设计上过于复杂,如果放照片的话,除了照片 其他不用再有彩色的地方了。

    下面也提供了简历的模板

    校招生一页简历就够了,社招的话两页简历便可。

    有的校招生说自己的经历太多了,简历要写出两三页,看完之后基本不是内容太多了,就是太啰嗦了,例如校园活动一大堆
    既然是面试技术岗位,其他的就一笔带过就好。

    谨慎使用精通两字

    应届生或者刚毕业的程序员在写简历的时候 切记不要写精通某某语言,如果真的学的很好,推荐写熟悉

    但是有的同学可能仅仅使用一些语言例如go或者python写了一些小东西,或者了解一些语言的语法,就直接写上 熟悉C++、JAVA、GO、PYTHON ,这也是大忌,如果C++更了解的话,建议写 熟悉C++,了解JAVA、GO、PYTHON

    这里词语的强烈程度: 精通 > 熟悉(推荐使用)>掌握(推荐使用)> 了解(推荐使用)

    这里还有做好心理准备就是 一旦我们写了熟悉某某语言,这门语言就一定是面试中重点考察的一个点,例如写了熟悉C++, 那么继承、多态、封装、虚函数、C++11的一些特性、STL 就一定会被问道。

    所以简历上写着熟悉哪一门语言,在准备面试的时候重点准备,其他语言几乎可以不用怎么看,面试官在面试中通常只会考察一门编程语言。

    拿不准的绝对不要写在简历上

    不要为了简历上看上去很丰富,就写很多内容上去,内容越多,面试中考点就越多,简历中突出自己技能的几个点,而不是面面俱到。

    想想看 面试官一定是拿着你的简历开始问问题的,如果因为仅仅想展示自己多会一点点的东西就都写在简历上,等于给自己挖了一个巨坑。

    例如仅仅部署过nginx服务器,就在简历上写熟悉nginx,那面试官可能上来就围绕着nginx一波询问,同学们如果招架不住,然后说 我仅仅部署过,底层实现我都不了解。想想看那场面有多尴尬。

    同时尽量不要写代码行数10万+ 在简历上,这就过于提高了面试官的期望,首先就是代码行数10W+ ,无从考证。

    而且这无疑大大提高的面试官的期望和面试官问问题的范围,这相当于告诉面试官我写代码没问题,你就尽管问吧。

    然后简历上也没有重点的话,面试官就开始铺天盖地问起来,恐怕同学回答的效果也不会好。

    项目经验应该如何写

    项目经验中要突出自己的贡献,不要描述一遍项目就完事了,要突出自己的贡献,是添加了哪些功能,还是优化了那些性能指数,最后再说说受益怎么样,例如这个功能被多少人使用,例如性能提升了多少倍。

    其实很多同学的一个通病就是在面试中说不出自己项目的难点, 项目经历写了一大堆,各种框架数据库的使用都写上了,却答不出自己项目中的难点。

    有的同学心里会说,自己的项目没有什么难点,就是按照功能来做,遇到不会配置的不会调节的,就百度一下。

    其实大多数人做项目的时候都是这样的,不是每个项目都有什么难点,可是为什么一样的项目经验,别人就难点上就能说出一二三来呢。 下面我们来说一下

    做项目的时候时刻保持着对难点的敏感程度,很多我们费尽周折解决了一个问题,然后自己也不做记录,就忘掉了,此时如果及时将自己的思考过程记录下来,就是面试中的重要素材,养成这样的习惯非常重要

    很多同学埋怨自己的项目没难点,其实不然,找到项目中的一点,深挖下去就会遇到难点,解决它 就可以拿来在面试中来说,例如使用java完成的项目,在深挖一下 Java内存管理,看看是不是可以减少一些虚拟机上内存的压力。

    所以很多时候 不是自己的项目没有难点,而是自己准备的不充分

    项目经验是面试官一定会问的,那么不是每一个面试都是主动问项目中有哪些亮点或者难点,这时候就需要我们自己主动去说自己项目中的难点。

    在这里我们说一个面试中作为面试者如何变被动为主动的技巧,例如自己的项目是一套分布式系统,我们在介绍项目的时候主动说 项目中的难点就是分布式数据一致性的问题。

    此时就应该知道面试一官定会问 你是如何解决数据一致性的? 如果你对数据一致性协议的使用和原理 足够的了解,就可以和面试关侃侃而谈。

    我们在简历中突出项目的难点在与数据一致性,而我们之前就精心准备一致性协议,数据一致性相关的知识,就等着面试官来问,这样的简历才是好的简历,而不是简历上泛泛而谈什么都说,最后什么也不了解。

    面试一共就三十分钟或者一个小时,说两个两个项目中的难点,既凸显出自己技术上的深度,同时项目中的难点是最好被我们自己掌控的,因为这块是面试官必问的,就是我们可以变被动为主动的关键。

    真正好的简历是 当同学们把自己的简历递给面试官的时候,基本都知道面试官看着简历都会问什么问题,然后将面试官的引导到自己最熟悉的领域,这样同学们才会占有主动权。

    而不会让面试官问了很多自己不会的内容。而简历上写很多范范的内容,什么都写一点,这会放大面试官问问题的范围,而且稍稍往深一问,同学们就回答不上来的话,那这场面试可能机会就不大了,希望大家知道这么个道理。

    博客的重要性

    可以把自己的博客地址,Github地址,甚至微博(如果发了很多关于技术的内容)

    通过博客和github 面试官就可以快速判断同学们对技术的热情,以及学习的态度,可以让面试官快速的了解同学们的技术水平。

    如果有很多高质量博客和漂亮的github的话,及时面试现场发挥的不好,面试官通过博客也会知道这个这问同学基础还是很扎实,只是发挥的不好而已。可以看出记录和总结的重要性。

    写博客,不一定非要是技术大牛才写博客,大家都可以写博客来记录自己的收获,每一个知识点 大家都可以写一篇技术博客(自己刷过的题,自己准备面试时候的知识点等等)

    如果从来没有写过的话,我建议现在大家就去注册一个博客,CSDN或者博客园都是可以的。

    不是十分建议自己搭建博客网站,因为浏览量会特别的低,不容易曝光自己,提升自己的知名度。

    一些同学应该还没有github账户 ,或者已经有了,但github上空空如也什么也没有,那么没有github账户的大家现在就要去注册一个。

    大家对github不要畏惧,可以很容易找到一些小的项目来练手,传到自己的github上,一些同学可能苦于找不到合适的小项目,我这里给大家推荐一些适合练手的小项目:

    即使不做项目,在学习涉及模式的时候将自己的所学的设计模式整理出来,依然也是自己的github上的项目,例如:

    面试只有短短的30分钟或者一个小时,如何把自己掌握的技术更好的展现给面试官呢,博客、github都是很好的选择,如果把这些放在简历上,面试官一定会看的,这都是加分项。

    简历模板

    在这里插入图片描述
    想要获取简历模板word版本,可以关注【代码随想录】公众号,后台回复:【简历模板】,就可以获取该简历模板

    这里是简历模板中markdown的代码 Github地址

    大家可以fork到自己github仓库上,然后可以根据自己的情况自行修改。 (别忘了顺便给一个star,哈哈)

    简历的word版本,我也分享出来,点击这里下载

    总结

    好简历的敲门砖,同事也不要在简历上花费过多的精力,好的简历以及面试技巧都是锦上添花,真的求得心得的offer靠的还是真才实学, 希望通过这篇文章,大家可以在重审一遍自己的简历,发现哪里的不足,面试前多准备多练习。

    我已经陆续将我的题解按照由浅入深的刷题顺序编排起来,整理成册,这份刷题顺序和题解在公众号里已经陪伴了上万录友。

    PDF中不仅有刷题大纲、刷题顺序,还有详细图解,每一本PDF发布之后都广受好评,这也是Carl花费大量时间写题解的动力。

    PDF部分截图:

    pdf

    说了这么多还是眼见为实,下载地址,赶快去看一看,你会发现相见恨晚!

    如果感觉题解对你有帮助,不要吝啬给一个👍吧!

    展开全文
  • 一分钟弄懂什么是分布式和微服务

    万次阅读 多人点赞 2018-10-18 21:33:31
    这里不引用书本上的复杂概论了,简单来说微服务就是很小的服务,小到个服务只对应个单一的功能,只做一件事。这个服务可以单独部署运行,服务之间可以通过RPC来相互交互,每个微服务都是由独立的小团队开发,...

    简单的说,微服务是架构设计方式,分布式是系统部署方式,两者概念不同

    mark
    mark
    微服务是啥?

    这里不引用书本上的复杂概论了,简单来说微服务就是很小的服务,小到一个服务只对应一个单一的功能,只做一件事。这个服务可以单独部署运行,服务之间可以通过RPC来相互交互,每个微服务都是由独立的小团队开发,测试,部署,上线,负责它的整个生命周期。

    微服务架构又是啥?

    在做架构设计的时候,先做逻辑架构,再做物理架构,当你拿到需求后,估算过最大用户量和并发量后,计算单个应用服务器能否满足需求,如果用户量只有几百人的小应用,单体应用就能搞定,即所有应用部署在一个应用服务器里,如果是很大用户量,且某些功能会被频繁访问,或者某些功能计算量很大,建议将应用拆解为多个子系统,各自负责各自功能,这就是微服务架构。

    mark
    那么分布式又是啥?

    分布式服务顾名思义服务是分散部署在不同的机器上的,一个服务可能负责几个功能,是一种面向SOA架构的,服务之间也是通过rpc来交互或者是webservice来交互的。逻辑架构设计完后就该做物理架构设计,系统应用部署在超过一台服务器或虚拟机上,且各分开部署的部分彼此通过各种通讯协议交互信息,就可算作分布式部署,生产环境下的微服务肯定是分布式部署的,分布式部署的应用不一定是微服务架构的,比如集群部署,它是把相同应用复制到不同服务器上,但是逻辑功能上还是单体应用。

    微服务相比分布式服务来说,它的粒度更小,服务之间耦合度更低,由于每个微服务都由独立的小团队负责,因此它敏捷性更高,分布式服务最后都会向微服务架构演化,这是一种趋势, 不过服务微服务化后带来的挑战也是显而易见的,例如服务粒度小,数量大,后期运维将会很难

    展开全文
  • 一分钟详解「手眼标定」基本原理

    万次阅读 多人点赞 2019-03-06 10:16:14
    前言 机器人的视觉系统分为固定场景视觉系统和运动的「手-眼」视觉系统。摄像机与机器人的手部末端,构成手眼视觉系统。根据摄像机与机器人相互位置的不同,手眼视觉系统分为Eye-in-Hand系统和Eye-to-Hand系统。...

    原文首发于【3D视觉工坊】知识星球:传送门

    一 前言

    机器人的视觉系统分为固定场景视觉系统和运动的「手-眼」视觉系统。摄像机与机器人的手部末端,构成手眼视觉系统。根据摄像机与机器人相互位置的不同,手眼视觉系统分为Eye-in-Hand系统和Eye-to-Hand系统。Eye-in-Hand系统的摄像机安装在机器人手部末端(end-effector),在机器人工作过程中随机器人一起运动。Eye-to-Hand系统的摄像机安装在机器人本体外的固定位置,在机器人工作工程中不随机器人一起运动。

    Eye-in-Hand系统的在工业机器人中应用比较广泛,随着机械手逐渐接近目标,摄像机与目标的距离越来越小,被测物体位置参数的绝对误差会随之降低。在Eye-in-Hand系统中,采用基于图像的视觉控制、基于位置的视觉控制以及结合两者的混合视觉控制,可以快速有效地标定被测物体的坐标。

    手眼标定方法通常分为3类:标准手眼标定、基于旋转运动的手眼标定以及在线手眼标定。以上方法是将摄像机标定与手眼标定分开进行,也有的论文采用的是联合标定法。

    本文重点讲解Eye-in-Hand的一般方法,重在阐述其基本原理。

    二 Eye-in-Hand

    2.1 基础知识准备

    在研究相机标定时,已较为熟悉,在本公众号「3D视觉工坊」里已有几篇文章做过总结,如:
    a)

    展开全文
  • 入门学习Linux常用必会60个命令实例详解doc/txt

    千次下载 热门讨论 2011-06-09 00:08:45
    hda1中的“1”代表hda的第个硬盘分区 (partition),hda2代表hda的第二主分区,第个逻辑分区从hda5开始,依此类推。此外,可以直接检查 /var/log/messages文件,在该文件中可以找到计算机开机后系统已辨认出来的...
  • 一分钟对我们的重要意义

    千次阅读 热门讨论 2013-07-09 21:39:43
    一分钟能做什么?这样的问题,你不知道,就让我来告诉你吧.请看下面: 一分钟对有些成天东游西逛的人短,对有的人就不短了.一分钟对一位医生来说就可以救一个人的生命,对一位消防员说就可以扑灭一场大火.... 我们...
  • 浦发银行 信息科技岗 面经...1、即兴演讲(结构化面试 3面试官对6个学生):每人随机题,思考两分钟后,回答三分钟 今年即兴演讲环节已取消!!! 2、上机测试:三道编程题,较为基础,在线编译器只有C、C++和Ja...
  • 中信银行总行信息科技部今年在...、 校招时间线 网申(11月初截止)+ 行测 宣讲会+提前批面试 10月14日 笔试(11月7日) 邮件通知实习(11月28日),正式批的同学大概也是这两天发的面试通知。 实习(2019年12月...
  • 浦发银行 信息科技岗 大数据方向 面经

    万次阅读 多人点赞 2018-08-09 23:00:31
    、综合面 二、机试 三、专业面试 浦发面经 即兴演讲 上机测试 结构化面试 浦发银行大数据创新岗上海打卡 第部分 综合面试 第二部分 专业面试 第三部分 上机考试(只有开发和测试岗需要,别的岗可选) 浦发...
  • 华为社招面试(拿到offer)

    万次阅读 多人点赞 2018-06-22 20:03:07
    前段时间华为主动联系我要不要面试,抱着试一下的心态接受了面试邀请,最后顺利拿到了offer,不过最终由于方方面面的...2. 以及为什么使用redis缓存而不是其他的消息队列入kafka,以及项目的稳定性。 3. 问了j...
  • 精选面试自我介绍

    万次阅读 多人点赞 2018-09-05 12:44:47
    ) 各位考官好,今天能够站在这里参加面试,有机会向各位考官请教和学习,我感到非常的荣幸.希望通过这次面试能够把自己展示给大家,希望大家记住我.我叫....,今年..岁.汉族,法 学本科.我平时喜欢看书和上网浏览信息...
  • 前端学习路线

    万次阅读 多人点赞 2015-10-28 11:22:47
    JS可以跟着以下几张思维导图学习(听说是位名为“王子墨”的大师做的图):学习 Javascript 首先要知道这门语言可以做什么,不能做什么,擅长做什么,不擅长做什么! 1.JS变量 2.JS运算符 3.JS数组...
  • 我们经常遇到AS运行时非常卡的问题,查找了好多资料,...我们要的主要是修改红笔所示的内容:去掉注释,并在后面加上这么句: org.gradle.daemon=true 记得一定要加上这句。加完之后我们还得重新启动AS。 ...
  • var m = date.getMinutes().toString();//获得当前分钟数 console.log('提交外面的')...//开始缓存池中没有分钟数,当前分钟数肯定不等于缓存中的分钟数,当前可以执行 if (m != wx.getStorageSync('m')){ wx.setSt...
  • 作为片段教学其实很好理解,例如一节45分钟的课程,如果试讲10分钟,那么大概花4-5分钟的时间导入新课,接着讲解个比较基础的知识点,然后就结束了试讲。 2:考生将向考官展现自己的讲课能力,课堂组织能力,课程...
  • 一分钟了解FME

    万次阅读 2018-07-24 16:48:17
    FME是什么? 它是一套空间与非空间数据分析、处理、转换、共享的方案定制软件。     它有什么作用? 冲破数据使用与共享中的障碍,充分发挥数据的价值。  数据的价值在于信息是否自由提取和利用。同时日...
  • 微信小程序防止多次点击(一分钟内一次点击有效)微信小程序中针对一些操作要在一分钟内不操作两次,可用如下方案尝试解决。var m = date.getMinutes().toString();//获得当前分钟数 console.log('提交外面的') ...
  • 30分钟学会网站建设

    千人学习 2017-01-12 10:49:44
    初级学会搭建网站视频课程: 无论是新手站长准备创业,还是电子商务销售产品,我们都需要有个属于自己的网站平台。这套教程主要是为互联网新手提供建站技术指导,通过此课程网络小白也学会搭建网站。
  • 一分钟的自我介绍需要将自己最美好的一面,毫无保留地表现出来,要令对方留下深刻的印象。 自我认识 想一矢中的,首先必须知道你带给公司什么好处。当然不空口讲白话,必须有事实加以证明。 最理想就是...
  • 一分钟理解向后兼容

    千次阅读 2016-11-27 15:54:28
    只新增接口,对现有接口不能做任何修改 ,同时可感知到的 默认行为 都要保持不变。 这约束太强了吧,在软件只新增接口或功能同时,怎么也会对现有的接口做修改吧? 如果真的需要修改接口,也请不要修改原来的...
  • Scratch不是一门编码语言,它是款图形化编程启蒙工具,可以实现非常多的小游戏编程设计,比如:愤怒的小鸟、植物大战僵尸、街舞少年、飞扬的小鸟等,这些小游戏的设计在对孩子的逻辑培养上有很大的帮助哦!
  • 一分钟了解自动化测试

    万次阅读 多人点赞 2018-07-29 11:34:30
    ## 引子 ...本文共有2410字,阅读需要大约一分钟。 首先我们从招聘岗位需求说起。看近期的职业机会,提到“软件测试工程师”,基本上都有关于自动化测试的要求。例如: 了解 selenium、ap...
  • 其实主要原因就是电脑有集成显卡和独立显卡两个显卡,我们只使用独立显卡就行,这么对电脑几乎没什么影响。 普通用户的电脑文件后缀名默认是隐藏的。首先,我们就需要把文件后缀名显示出来,双击此电脑。进入资源...
  • 个架构师谈什么是架构以及怎么成为个架构师

    万次阅读 多人点赞 2015-02-24 20:05:45
    此篇源出自我在公司内部写的个PPT,它是用于在公司内部向广大技术人员普及用的个资料,而CSDN这边的编辑不支持图文混排的效果,因此一些章节我就直接截取自我的PPT里的内容了,这样可能对大家在阅读上会显
  • 一线工程师告诉你嵌入式真实现状与发展前景

    万次阅读 多人点赞 2018-10-02 18:49:59
    本人并不是年薪百万的技术大牛,但总算是名合格的嵌入式工程师,现在某企业担任嵌入式软件工程师开发职,以下观点可能会带有片面或者分析不全,但却是名一线企业嵌入式软件开发者真实感受和所得,希望帮助...
  • 【PAT】PAT那些破事

    千次阅读 多人点赞 2016-07-30 01:03:23
    了30题发现就这么过不总结似乎并没有什么卵用,于是开篇文章不定时总结一下自己跳过的坑,顺便看看帮后来人少爬几个坑。 仓库地址: https://github.com/nbShawnLu/PAT 关于爬过的坑: ...
  • 一分钟让你明白OKR考核

    万次阅读 2019-01-31 10:22:21
    一分钟让你明白OKR考核    HR·易 HR·易,是由一群热爱人力资源人士专心运营的HR社区,聚焦于HR的招聘、社交、资讯、工具与成长。HR,so easy! 一、什么是OKR体系? OKR体系的全称是Objectives & ...
  • 19跨考中科大计算机408经验贴

    万次阅读 多人点赞 2019-03-20 11:08:57
    本科双非,专业是信息与计算科学,跨考中科大计算机科学技术专业,408里只学了本数据结构,另外三本书自学,本科没项目,英语没什么基础,高中不学英语 考研成绩: 总分383,数124,政治69,英语73,408专业...
  • CAT分布式监控系统():CAT监控系统功能介绍 ... 2、CAT监控系统能做什么,能监控些什么。 下面有些截图是CAT 2.0版本的,但和3.0版本没什么区别的。 、简介 CAT(Central Application Tracki...
  • 90分钟可以做什么

    千次阅读 2010-06-22 09:04:00
    在90分钟的时间里,顽强的朝鲜人民与五星巴西战成2:1,让我们为巴西华丽足球快乐也让我们为朝鲜敢想敢拼而感动;... 90分钟什么事情都发生!给你90分钟,你做出什么?给大家show一下我90分钟做出来的东西。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 550,788
精华内容 220,315
关键字:

一分钟能做什么