精华内容
下载资源
问答
  •  随着规模集成电路的不断发展,很多单片机都有内置A/D模块,因此,单片机的A/D转换可以用内置A/D模块也可以用外置A/D电路完成,现谈谈单片机A/D转换的工作原理及优缺点,并分析提高A/D转换精度的方法。...
  • AJAX 是一种用于创建快速动态网页的技术。通过后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。接下来通过本文给大家讲解ajax的工作原理及优缺点,感兴趣的朋友一起看看吧
  • 同时,对采高支架生产过程中的适应性,以及采煤工艺优化前后的优缺点进行了分析对比;论证了进回风两巷沿顶板布置的回采工作面、端头的支护方式及回采工艺对工作面提高单产的重要作用。15404工作面采煤工艺优化成功...
  •  随着规模集成电路的不断发展,很多单片机都有内置A/D模块,因此,单片机的A/D转换可以用内置A/D模块也可以用外置A/D电路完成,现谈谈单片机A/D转换的工作原理及优缺点,并分析提高A/D转换精度的方法。...
  • 看外包公司的性质,有的是外包人力,有的是承接外包项目自己公司做,有的是承接项目外包公司做,也有的公司上面这几项同时做,同时也可能开发自己的产品。对用人单位来讲,短期看我喜欢外包人力,因为能解决公司...
    看外包公司的性质,有的是外包人力,有的是承接外包项目在自己公司做,有的是承接项目在外包公司做,也有的公司上面这几项同时做,同时也可能开发自己的产品。
    

    对用人单位来讲,短期看我喜欢外包人力,因为能解决公司人力紧缺的问题,同时外包人员和项目组成员配合更紧密,对项目出活有好处。我自己的亲身体会是,外包公司派过来的人一般要比自己的员工更努力,不挑活,他们希望通过好好表现,将来可以留在外派公司里。

    长期来看,我更希望有值得信任的外包公司按项目来承接外包,对于非核心业务,不影响公司长期收益的项目我倾向于外包。因为通过外包可以用有限的开发人员(做设计)完成更多的项目,同时解放了开发人员,不必从底层简单代码写起,工作更有挑战性。

    对于用人单位,使用外包最大的好处是节省成本和按需配置人员,坏处就是项目执行风险,如果找错了外包公司,沟通成本也是相当大的,最要命的是最后做出来的东西不是你想要的,所以培养外包公司和公司一起成长也是重要的。

    从上面的描述,其实也不难得出在外包公司工作的弊端:你会从底层简单代码写起,而且可能一直都是那样的代码,技术上不容易提升。因为是外派人力,所以你在外派公司不容易有归属感,有些信息由于保密的原因不会对你开放,外派公司的福利你没有份,如果和你一起外派的人多,那么还好些,否则你会觉着比较孤单,需要自己去适应。也不是没有可能留在外派公司的,但需要你更努力,工作更出色,做到核心的模块,就有机会。外包公司一般和外派公司有协议不能挖人过来。你长期被派过来工作,和外包公司的关系很松散,同样没有归属感。当这个项目完成时,有可能重新回到外包公司的“人员池”里,又开始被带着面试,不能自主的感觉也是满难受的。

    如果是在外包公司承接项目,那就会好很多了,和一般的公司情形差不多,只不过你要考量公司的实力,竞争优势是什么,有没有规范的外包项目管理平台,面对的客户是什么层次的,项目交付客户是否满意,有没有纠纷等等。

    软件外包公司分为人力外包和项目外包,人力外包简单来讲就是把单个人派到客户公司完成一个职位的工作,项目外包就是客户把整个软件开发的项目外包给外包公司,有时候在外包公司内部做,有的时候是整个Team在客户公司工作。
    是否选择外包公司的工作?有几点需要关注:
    1. 外包公司的背景,是欧美 是国内上市公司 还是小外包公司;建议选择大型公司,一般做的比较专业,客户质量高,一般为500强,能学到比较多的东西;
    2. 该职务隶属的项目情况,服务的客户是什么,做具体什么软件开发的项目,项目现在进行到什么阶段,项目是否稳定;
    3. 问清楚HR此职位属于人力外包还是项目外包,人力外包一般是到客户方工作,有双层report关系,一个是客户方的主管,一个是外包公司的客户经理;能接触到客户方的优秀的员工,管理沟通方式。项目外包分为在客户方和外包公司,在客户方的话,就是整个team都是外包公司的人为客户做项目,report对象就是外包公司的主管;在外包公司内部,就更简单啦。做客户的项目拿自己的工资。
    4. 关于薪资福利:外包公司不一定工资比客户公司正式员工低。但是,大部分薪资水平不是非常高,这是真的。薪资一般与个人能力相关的。外包公司也不敢招个清华交大的学生做外派职位的,因为留不住人。外包公司一般是接受大专学历的。对于大学学校一般,进入不了大型公司的同学进入外包公司曲线救国也是一条路。至于薪资,都是可以和HR好好谈的,注意谈判技巧。至于五险一金,并不是每个公司的社保和公积金都是按最低基数来交,有些小外包公司可能会这么做。我们公司HR一般会和候选人协商,你期望的交金基数。因为现在大家都知道,养老保险交了感觉都是亏了的。按最低的基数交金,每个月到手的薪资会高,按较高的基数交金,到手的钱就少了。这个是需要候选人去主动衡量评估的。个人觉得,刚开始工作,到手钱多一点会比较好。
    展开全文
  • 主要介绍了Ajax工作原理及优缺点实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 本研究旨在确定最受航空公司飞行员认可并典型飞行员工作日中得到最充分使用的性格优势。 该研究还旨在确定哪些优势与飞行员的生活和工作满意度最相关,并且最能预测特定的工作绩效。 以色列航空公司的飞行员(N =...
  •  本文介绍了各自的功能及其优缺点,特别是满足摄像手机市场要求方面。对大多数摄像手机设计来说,成像传感器的部分具体要求包括:  * PC电路板上的空间异常宝贵,因此首选体积非常小的器件 * 需要非常低的功耗...
  • GPS RTK技术工程竣工测量工作中的优缺点与应用.pdf
  • HR:说说你最大的优缺点?

    千次阅读 2019-06-25 17:31:00
    3、如果公司录用你,你会在公司工作多久? 回答技巧:这道题不要正面回答,结合对方公司,表示会长时间做下去 不要直接回答会呆多久,或者呆半年这种正面回答:来公司之前,我已经大致了解过公司以及公司的项目,...

    点击上方“朱小厮的博客”,选择“设为星标

    做积极的人,而不是积极废人


    640?wx_fmt=jpeg


    首先这个问题是一个骨灰级问题,面试必问,很有必要认真探讨一下这个问题的答案。个人觉得可以从三方面来考虑回答(寻找新平台提升自己和表现出忠诚度和责任感)

    1、在寻找新机会或新的平台

    首先,切记不要诋毁你的老东家。你应该把你的离职原因集中表述在“寻找新机会或新的平台”以及尝试在新的岗位上提升自己。

    当然,这样的回答对于一般职位的应聘者来说不会造成减分,但却不足以成为加分项。并且这个回答的最大问题是会引发如下问题的连锁反应:那么你走之后原来的同事们怎么办?你在新的岗位上会不会因为短期的能力难以提升就拍拍屁股走人呢?要知道,相比于能力,有些公司更看重的是忠诚度以及责任感。

    2、如何体现你的忠诚度

    如果你轻描淡写地就离开了之前的团队,那么面试官会觉得你在新公司也可能会轻易走人。所以,在体现忠诚度的时候,你可以试着谈谈你离开上一家公司时有多么痛苦依依不舍(即使并没有),聊聊如果有办法使你能在原来的岗位上持续得到提升或者如果不是因为股东之间的权利斗争(可适当显得痛心疾首些),你肯定不会离开。

    3、如何体现你的责任感

    首先,你从上家公司离职时已经为继任者做了充分的交接。你需要清楚地表明:你在上家公司也很认真尽职,并且同事之间一直保持互助互利的工作氛围。也许你可以说说你也想过要早些辞职,但是考虑某个未完成的重要项目、或是继任者短期内还不能胜任角色所以晚了一些。

    其次,就是你很期望承担新的职责,适当的通过向你的面试官(不仅是HR)提问表现出来对面试官的兴趣、对他们技能的认可以及共鸣。例如,“那么,你是如何做到现任职位的?”或:“如果我有幸担任这个职位,你会给我哪些建议?”我们大多数人总是更容易答应自己认识和喜爱的人所提出的要求,反之,我们也会因为别人提出了自己感兴趣的问题而喜欢上这个人。通过这些问题不仅传递一些良好的信号,同时,如果对方的回答可能会与你的背景(比如校友或老乡等)、经历、目标有相似之处,这时你就有机会表达共鸣感,也更加理解新的工作中你们共同面临的挑战。寻求建议、承认自己职责内内不知道的事物反而会令你显得既热忱又能干。

    当然下方我又整理总结其他一些面试题,希望能帮助找工作的朋友!

    2、你最大的优缺点?

    回答技巧:缺点别直接暴露自己真的缺点,当然缺点我知道有些人可能会想过一句话,(我最大的缺点就是对细节的过分追求),对于有这种想法的,我只能默念呵呵哒,优点的话可以按实际说,但不要过分夸大

    回答:优点就可以提关于技术与学习能力,以及沟通能力方面.缺点可以稍微思考一下,可能我管理的能力还需要进一步加强,关于python技术还有进一步上升的空间,人工智能,数据挖掘这个方向拓展

    3、如果公司录用你,你会在公司工作多久?

    回答技巧:这道题不要正面回答,结合对方公司,表示会长时间做下去 不要直接回答会呆多久,或者呆半年这种正面回答:来公司之前,我已经大致了解过公司以及公司的项目,现在在这里面试,对公司又有了进一步的了解,公司就是符合我个人期望,项目我也很感兴趣.我希望有荣幸加入公司,在技术方面得到新启发和沉淀,我会长时间做下去

    4、对加班怎么看?

    回答技巧:体现你是否工作经验时候,回答要有技巧。不用特意去问加班费

    回答:刚进公司,需要对环境、业务、代码短期内提高熟悉度,会选择适量加班,公司和项目需要加班时,会和大家一起拼命,这是保证项目进度和质量的自我要求。平时都能高效完成任务,一般不需要加班。加班费这一块比较难说,基本上国内的公司都没有按劳动法规定的给予加班报酬,但是会有相应的调休制度和餐补、车补等。一般这个不需要问。

    5、希望得到怎么样的工作环境?

    回答技巧:结合对方公司情况来说

    回答:工作环境分两种,一种就是外在环境和人文环境.外在环境我并不是特别在意.差不多就可以了.关键在于这个人文环境,一个积极,用心做事,互帮互助的团队,是我心目中团队.我来贵公司面试前,查过公司的资料,初步了解过,贵公司就是我渴望加入的团队.

    6、希望去怎么样的公司?

    回答技巧:结合对方公司情况来说

    回答:福利好,工作轻松的公司当然是我心中第一首选.但是现实还是有些差距,现在对我做了这么多年工作经验来讲,一般有两个选择,一种是有钱途,另一种是有前途.个人来讲我是会选择有前途, 我来贵公司面试前,查过公司的资料,初步了解过,贵公司就是我渴望加入的团队.

    7、你工作中遇到哪些bug,怎么解决的?

    回答技巧:聊一些印象深刻,或者可以把这道题转化成你遇到什么困难

    回答:

    1、刚入行的时候,对业务不太熟悉,加上给的业务文档不清晰,导致加班很多。或者第一次代码合并,python版本更新带来问题等等 2、项目中第一次做登录模块/支付模块,不太熟悉,吃了很多苦头 3、平时敲代码中积累的bug

    8、喜欢看什么书或者电影?

    回答技巧:这道题就是交互的题目,可以跟面试官互动?

    回答:

    1、python相关技术型, 2、一些比较有深度一点书, 3、如果你不爱看书,你可以回答说,平时看书比较少,主要会看技术大神博客 4、可以问一下面试官喜欢看什么书和电影,制造话题

    9、最近有没有结婚的打算?

    回答技巧:如实回答即可,主要考虑你的稳定性,不要回答回老家结婚就好。

    10、和同事或经理起冲突怎么办?

    答题技巧:首先不要正面回答这个问题,说你之前公司没有发生这个情况,之后再正面回答.

    回答:首先要说你之前工作没有跟同事或经理起冲突,表明你是一个很好沟通,很好相处的人.然后再正面回答他的问题,假设真正在这个场景下,如果冲突来自于工作,非常好解决,大家都有共同目的,就是把工作搞好,既然目标一致,冲突的根源就没有了.根源没有,在处理上大家各退一步,大家都是同事没有什么大不了

    11、你觉得未来五年,哪些技术将成为热点?我们改如何去适应?

    回答技巧:人工智能,顺便可以拓展我们所学的人工智能,人工智能基础是python,又可以引导回python基础相关

    12、三到五年的规划?

    回答技巧:可以回答五年太长,未来充满变化,计划赶不上变化,我说说我近两年的计划,我们作为技术人员,最好的说法就是:自己比较喜欢专研技术,这两年想好好沉淀技术.想一直在技术这条路上 走下去,学习前端、后台的技术成为一名全栈式开发工程师或者往层研究,或者在沉淀自己的技术同时也加强自己的管理能力,让自己成为一个有竞争力的人

    13、上家公司的人员组成?

    回答技巧:

    一个正规的技术团队:技术总监,项目经理,产品经理,UI,测试,前端,后台,安卓,iOS,运维

    创业小公司:老板,项目经理,iOS,安卓,后台,前端各1人

    中小型外包:iOS5人,安卓5人,后台10人,UI5人,前端10人,测试等分成很多项目组每个组都有组长,一个项目经理带几个组

    回答:我上家公司技术团队有15人左右,1个iOS,2安卓,3个后台,3个前端,2UI,2个测试,一个项目经理和一个产品经理。我刚进去的时候,负责一个稳定成型的项目的维护和迭代.后面熟悉业务之后,参与XX新项目开发.新项目稳定后,负责版本迭代工作,以及公司业务需求进行数据爬虫

    14、项目经理给了一个超出你能力的需求,你怎么办?

    回答技巧:结合实际来讲,请别说每次给我超出自己能力需求我都实现

    回答:其实我之前的工作中的确有过几次,有一次项目经理分配我一个功能模块,我看到原型图和需求文档,大概有10个界面,业务逻辑有些复杂.但是项目经理给的周期只有一周时间我当时估算一下时间有些短,当时我拿到之后,我根据每个小功能模块实现时间来估算全部的时间,写在纸上,找了项目经理,,根据我列出来的时间聊一下具体情况.项目经理和我商量后,采取了我的意见,周期延长,我个人觉得,如果需求周期这个估算如有问题,应该要及时提出来,如果时间过去一大半再提出延长周期,这样很不好

    15、你和别人比,你觉得他们强的地方在哪里?

    回答技巧:这道题不要正面回答,可以转化概念,转化成自己的优点。

    不要一上来就说,比别人强,通过贬低别人来衬托自己.最好说说自己长处,把这道题变成说自己的优点.可以这样回答:每个人的优缺点不一,但是别人厉害的地方我都会学习,取长补短.毕竟每个人的优势不一样.我的优点在于我的沟通和学习能力.我刚刚工作的时候,其实还是比较腼腆,但是几年的公司,让我的沟通和学习能力大幅增长,刚进公司的时候,基本不敢跟同事说话,有时候跟经理说话很紧张,后面我成为部门活动组织者和公司年度优秀员工。

    16、你对自己评价如何?

    尽量打高分一点,并主动说出打这个的理由.可以这样回答:对于今天的面试,如果满分是十分的话,我会给自己7~8分之间.为什么呢,首先在技术回答,我回答比较流畅,也是我比较熟悉的部分,基本表达出我之前工作累计的东西.,另外在表达上我的表达还是完整和清晰,整个人比较轻松,另外有点不足就是,我之前会的还有一些方面还没有来得及跟面试官探讨,希望有机会加入公司,日后探讨。

    17、你还有什么问题要问?

    回答技巧:这一道90%会问的问题.千万别说没有问题.也不要问福利之类,福利放在谈薪资的时候去问.可以问公司的一些项目情况,晋升制度,员工职业规划,培训机制,或者面试个人表现。

    18、你能为我们公司带来什么?

    回答技巧:这道题也是比较尖锐的问题,如果一下子不知道如何回答.这道题可以转化成自己的优点

    这些优点都是对公司有利的,可以这样回答:我从事python这么长时间,我相信我的技术和丰富的项目经验可以胜任我们公司的工作,高效的完成公司任务,公司对我已经进行过技术面试,对我技术有一定了解.通过和你聊天,相信你对我沟通和表达能力也有初步了解.另外我个人性格比较开朗,爱好很多.可以快速融入公司中.可以积极提升部门的工作氛围如果有机会,我可以做一些自己工作经验分享

    19、能不能接受出差?有没有打算做项目经理?

    回答技巧:这道题就是考验你职业规划和稳定性

    出差问题肯定回答可以,问一下出差情况.项目经理问题如实回答,如果有,答出为什么,如果没有,就简单说一说自己的职业规划.可以这样回答:对于出差,我是能接受,但是不知道公司出差频率怎么样,大概去哪些城市.项目经理这个我是想过了,这是我职业规划中的,我做这一行业3年了,有很丰富的项目经验和技术,对整个项目流程也非常了解.但是缺少一些管理经验和能力.之后我完成本职工作之外,私下自己也会锻炼一下自己的管理能力

    20、如果你刚入职,将会如何开展工作?

    回答技巧:变相考你工作经验,就是回答日常工作流程

    1、接手新项目,刚接手的新项目,那肯定还在需求阶段。产品(或者给你需求的上司)要和你说明白需求。正规的公司会召开“需求评审会议”,参会人员,有开发,设计或美工,产品等,目标就是给你说清楚我的需求是什么,我要开发一款怎样的产品?不那么正规的,可能就是口头跟你说一下需求,给你一些文档。最终的目的还是要告诉你我要开发什么产品,具体的功能都有哪些。

    2、接手旧项目。刚进来,也要看需求啊,旧项目你会多一样东西:代码。程序设计、开发进度规划阶段。

    这时候需求已经了解清楚了。新项目你要做程序设计,做开发规划(UML等做初步的程序设计,程序设计好了,每个功能点需要花的大概时间也确定了,这时候就有开发规划了,说白了就是给自己的上班时间和开发内容排个时表)。

    旧项目你需要一点时间看代码(因个人能力而定一般都是几天到一周内),然后写下一个功能的程序设计和排班规划。

    1、刚上班,第一件事:从代码仓库更新下自己的代码,有冲突马上解决。2、搞敏捷开发的团队,可能有每日小例会。说的就是昨天的问题,和今天的计划。简单说一下,不要针对bug或者问题一直讨论,比如我发现前端好像有问题。开会时说一下,下来再和前端哥们沟通调试。3、根据设计和规划,完成今天的代码工作。遇到细节问题马上找产品、前端、美工去单独问。不要闷头干。4、代码写好了,给产品、测试去玩玩,看看符不符合需求。5、测试提交的bug找时间解决一下。6、下班前把关键代码打个patch,和同事一起codereview,减少错误和冲突。7、把你的代码提交上去。有冲突及时解决。

    开发好功能后,测试就要使劲测了。这时候你的主要工作就是解bug,和产品、设计、测试一起多沟通。把bug数量降低,达到产品发布的合格水平。

    交给公司运营/运维/项目经理上线,当天可能会有新的bug,尽快解决,保证上线发布稳定成功。

    21、谈谈你对跳槽的看法?

    回答技巧:好与坏两个方面去讲,不要一下子就否定跳槽,你来面试就是跳槽了.顺便说一下你的离职理由。

    可以这样回答:跳槽很多种,处理不好同事关系等原因在公司待不下去跳槽,这个我是不看好,属于个人问题,如果不改正,到了下一家公司也很呆下去.如果是在一个公司两三年以上,技术和个人发展很长一段时间没有增长,可以适当的转换环境,可以在新环境可以有新的思路.这种我是不反对的.这次我选择跳槽也正是这个原因

    22、你的朋友对你评价?

    尽量说一些优点,调侃式也可以,千万别暴露缺点,也别直接说,可以这样回答我个人性格比较负责,用心的,通常很容易融入一个新团体,之前的公司同事和朋友很喜欢跟我搭档做事,通常对我印象都是靠谱…….

    23、你对今天面试打分,你会打几分?

    尽量打高分一点,并主动说出打这个的理由.可以这样回答:对于今天的面试,如果满分是十分的话,我会给自己7~8分之间.为什么呢,首先在技术回答,我回答比较流畅,也是我比较熟悉的部分,基本表达出我之前工作累计的东西,另外在表达上我的表达还是完整和清晰,整个人比较轻松,另外有点不足就是,我之前会的还有一些方面还没有来得及跟面试官探讨,希望有机会加入公司,日后探讨。

    24、上个公司的的薪资和薪资结构?

    回答技巧:这道题就是考验你是否有经验时候,这个时候你就简单描述上家工作工资情况

    回答:我上家公司基本工资10k,绩效工作2k,绩效根据每个月kpi考核表评定.公司社保公积金是按最低标准了解,每个月大概扣400多,个人税1000左右.每个月工资税后大概10.5k左右,不过每个月都有交通补贴+通讯补贴+餐补.每个月到手差不多11k左右

    25、说说开发中,你的性格、经验、视野、基础如何?

    回答技巧:根据题意,结合开发来讲这四个点

    回答:在工作中,我的基础还是比较扎实,我入职上家公司时候,我的老大对我的面试评价,就是基础比较扎实.之前在这一行摸爬滚打2年,经验比较丰富,有自己通过跳坑的总结出来经验,也有跟优秀同事学习的经验,这个跟我个人性格有关,我喜欢跟优秀的人一起工作,经常可以和他们探讨一些技术,转化成自己的东西.至于视野也是我现在努力方向,好像我刚进入行业时候,就想着以实现功能为主,做了一段时间后,考虑代码质量,代码封装,后面考虑性能优化,到现在开始慢慢学习从架构的层次去看待一个项目.不过还有待学习

    想知道更多?描下面的二维码关注我

    640?wx_fmt=png


    喜欢就点个"在看"呗^_^

    展开全文
  • GPS-RTK技术工程竣工测量工作中的优缺点与应用.pdf
  • 通过对比分析各种控制方式优缺点,使用了平均电流型控制方式,系统具有良好的动态特性和抗干扰能力。理论分析的基础上,对全桥电路中的几个重要器件进行了设计和选择。 基于 Buck 电路的小信号模型,考虑到...
  • 主要介绍了Java Builder模式实现原理及优缺点解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 脉冲式漏电保护开关工作原理是利用电流突变而动作,虽然存在有电流、时间动作死区,每条支路投入时都有可能产生误动作的缺点,但脉冲式漏电保护开关具有认别性,可发展为智能型漏电保护开关,作为配电变压器总保护,...
  • 小团队?团队?优缺点对比

    千次阅读 2020-06-05 11:45:00
    这个问题很明显:规模的团队和规模小的团队工作方式的差异非常,组织资源的方式也有明显的区别;我们抽象一下,把这两种模式称为:军团模式和小编队模式,再看这两种模式的具体区别: 军团模式 之前有一种...

    点击上方“Java基基”,选择“设为星标”

    做积极的人,而不是积极废人!

    源码精品专栏

     

    来源:cnblogs.com/liulun/p/7159705.html

    • 一个问题

    • 大军团模式

    • 小编队模式

    • 大军团的不足

    • 小编队的优势

    • 一个案例

    • 最后


    艿艿:欢迎胖友,在留言说说你的看法?

    我们公司和大部分传统软件公司一样,随着业务的发展和新领域的开拓,公司的管理风格越来越像华为,这是不是最佳的演进路线,我觉得值得探讨,以下是我的思考,希望跟大家讨论。

    一个问题

    前段时间跟一个创业的朋友聊天,说起他们最近在做的一个项目,这是一个教育行业的管理系统,业务非常复杂,牵涉到的决策人,需要对接的系统也非常多,最后问到他们做了多久完成这个项目,朋友告诉我2个多月,6个人,其中还括一个美工,一个项目经理;剩下的都是开发人员,没有测试,没有前端开发;朋友问我,如果这个项目给你们做,你们需要做多久;我想了想说,这个项目如果交给我们做,顺利的话,至少要半年。

    为什么差异这么大呢?

    我们一个一个环节来分析一下,朋友的团队跟客户沟通需求的时候,功能性需求只用一个原型草图,非功能性需求就一个excel表格;如果我们公司做的话,至少要做需求调研报告,需求规格说明书;这个阶段的负责人甚至不会画原型,要到设计阶段才有人能画原型;

    到设计阶段,朋友的团队几乎没有什么技术设计,业务按模块给开发人员分一下,各人设计好自己的数据库模型,汇总起来给项目经理看一下,没问题就进入开发阶段了,界面设计花的时间比较久,跟客户反复确认了两三次;如果我们公司做的话,至少要产出原型设计(低保真描述功能的设计稿,高保真描述界面的设计稿),概要设计,详细设计(技术设计、架构设计、网络设计)等等,而且几乎每个设计都要经历评审环节,组织评审就要协调人员,要等大家都有时间的时候再做评审,这都是损耗;

    到开发测试阶段,朋友的团队几个开发人员从前端到后端,从开发到测试,都是这几个人做;如果我们公司来做的话,后台开发人员不做前端(不做复杂的前端页面,普通的前端工作还是要做的),质量保证要测试人员保证,测试把BUG提交到BUG管理工具,开发再去BUG管理工具查阅属于自己的BUG,修改完成之后,再关闭BUG,测试再做回归测试;这些流程看起来琐碎,但却损耗了大量的资源;

    验收上线阶段,朋友的团队所有人都铺在项目现场,有问题,当场解决;我们公司要收集问题,让测试工程师验证问题,再由开发解决,解决之后再验证,再发布版本给现场的实施工程师,实施工程师再更新上线,给客户验证。

    这个问题很明显:规模大的团队和规模小的团队工作方式的差异非常大,组织资源的方式也有明显的区别;我们抽象一下,把这两种模式称为:大军团模式和小编队模式,再看这两种模式的具体区别:

    大军团模式

    之前有一种理论,要完成一项超大规模的工程,往往需要成百上千人,有组织有纪律的协作才能完成;

    这样就需要制定一系列的规章、制度、流程、KPI来约束这些人,

    把这些人变成一个庞大机器的零部件,保证结果的达成,避免产生差错;

    这是一种非常常见的大组织的运作模式,

    不但在软件行业普遍存在(华为、惠普、IBM),

    在造桥、修路、航天、汽车等工业领域也十分常见,

    这种模式非常“稳”,他能保证目标的稳定达成,并且能使目标达成的过程清晰、可控。

    小编队模式

    第三次工业革命(信息技术革命)以来,小编队的运作模式发展越来越好,我司IPCC产品的核心:开源语音通信软件FreeSwitch,核心开发者也不过6个人;(说这个开源软件养活了半个呼叫中心行业的开发者都不足为过);这种例子在软件行业不胜枚举,比如:git源码管理系统、linux操作系统、JavaScript语言等等。

    甚至有些产品是一个人在短时间内完成的,这就是英雄;

    有很多大规模的公司,比如谷歌、Facebook、国内的百度也在内部推行小编队的运作模式;

    这种模式非常“快”,他能保证目标的快速达成,并且能使目标达成的效率非常高;

    大军团的不足

    效率低下

    大军团强调集体的智慧,

    个体想推动一项事务向正确的方向推进十分困难,

    个体的决策往往会受到质疑或排斥

    诸如:流程、规范、计划、考核、文档、评审、调研等词

    都是为了保证目标的稳定达成所衍生出来的东西,

    它们都是团队快速前进的束缚和绊脚石!

    阻碍创新

    大军团鼓励墨守成规、照章办事的氛围,

    大军团强调分工,把员工看作螺丝钉,希望员工各司其职,不是职责范围内的事务尽量不要碰,因为你不专业,你可能会出错,大军团最害怕出错;

    只有这样才能使目标达成的过程清晰可控;

    然而创新却需要不拘一格的思想,需要独立自主的工作空间,需要组织具备容错性,这和大军团的工作方式是格格不入的;

    资源浪费

    为了使目标的达成过程清晰可控;

    大军团制定了很多流程和制度来约束个体的行为;

    他把每一项事务都拆分成很多环节;

    又给每个环节制定了很多关卡;

    而且每个环节都要留下数据,使过程有迹可寻;

    因为大军团要做到每项事务都可以复盘,产生问题之后要可以追溯问题根源;

    这样确实保证了目标达成过程的清晰可控,但却浪费了大量的资源;

    小编队的优势

    小编队也适合做大项目

    有很多很庞大复杂的软件系统,都是以小编队的方式完成的;

    比如操作系统linux,大数据分析系统hadoop,我们这个行业的freeSwitch等;

    如果一个项目大到一定的规模,需要不同角色的人参与,那么也应该是有更多的小编队来做这一块事情;甚至更极端的做法,就是一个项目在建设之初,就考虑到会有很多小编队或个人参与到项目建设过程中,预留了多人、多团队协作的支撑工具,比如说nodejs的NPM,go语言和rust语言也有相应的规划;

    小编队有很强的执行力

    小编队不会说这个事情需要做个评审;

    小编队不会说这个事情安排的资源不够,需要协调更多的资源;

    小编队会把这个事情当成自己的事情,不会像大军团一样,把这个事情当成大家的事情来对待;

    我们来看个图:

    (图片遗失,暂不补充)

    小编队有很强的创新力

    软件行业不像建筑行业,90%以上的优秀软件一开始都是个人或者小编队创造出来的;很少见一个优秀软件是一个大规模的组织创造出来的。

    一个案例

    张小龙曾经说过一段话:

    好的工具就不应该黏人,应该帮助用户非常高效率完成任务,而不是说用完了还要拿到手里玩一会儿、多用一会儿,那不是一个很高效的表现。但是对这样的一些想法的话,我特别希望它能够根植到大家意识里,时刻想一下什么是我们做的对用户有价值的事情;

    假设你是马化腾,你会怎么给张小龙定KPI呢?考核微信的日活吗?……

    无论你制定什么KPI,都会导致团队去围绕着那个KPI去完成任务;

    KPI考核准则里有一项原则就是“可度量”,当你提出一项纯数据目标的时候,团队就会围绕着那个数字去工作。而偏离了做好产品的初心。

    一个团队工作的目的不应该是完成KPI,工作的目的应该是做好产品,完成KPI只不过是做好产品这件事情的副产物,就像一个人好好工作的目的不应该是为了赚钱,他好好工作的副产物是赚了很多钱;

    所以你制定了一系列的kpi考核制度,只能导致员工工作的动机更不纯粹。

    最后

    一个组织只要发展良好,总是会吸引更多的资源,所以组织规模的扩大是无可避免的,但如果一个组织规模已经超过500人了,那么你应该把他看作是50~100个小团队来对待,而不是把他当作一个500人的大团队来对待;


    2017-07-13完成以上内容

    2017-07-30增补以下内容

    ** 康威定律**

    任何组织在设计一套系统时,所交付的设计方案,在结构上都与该组织的组织结构(沟通结构)保持一致。——梅尔.康威

    这个定律说明,组织的结构对系统的性质和质量有着深刻的影响;

    如果构建系统的组织更加松耦合,其构建的系统则更倾向于模块化,因此耦合度也更低;

    如果一个系统足够重要,要求有更松的耦合,更模块化的设计,系统也会反过来要求组织具备这样的特性,这就是反康威定律;

    我这篇文章并没有提到大军团的优势,并不代表大军团没有优势,

    相反,有很多项目非“大军团”根本就完不成,比如:卫星里跑的程序,控制原子弹起爆的程序,导弹的制导程序,都需要大军团来做!

    然而这些程序毕竟是少数,而且不是我们身边的东西,大部分时候,我们还是需要小编队来做。

    亚马逊提出“两个披萨团队”的概念,就是说亚马逊要求组织内部不应该有团队大到两个披萨不够吃。

    归根结底,就算非常庞大的组织,也应该强调小团队的协作模式。



    欢迎加入我的知识星球,一起探讨架构,交流源码。加入方式,长按下方二维码噢

    已在知识星球更新源码解析如下:

    最近更新《芋道 SpringBoot 2.X 入门》系列,已经 20 余篇,覆盖了 MyBatis、Redis、MongoDB、ES、分库分表、读写分离、SpringMVC、Webflux、权限、WebSocket、Dubbo、RabbitMQ、RocketMQ、Kafka、性能测试等等内容。

    提供近 3W 行代码的 SpringBoot 示例,以及超 4W 行代码的电商微服务项目。

    获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。

    展开全文
  • Lombok简介、使用、工作原理、优缺点

    万次阅读 多人点赞 2019-09-25 22:46:45
    4.Lombok的优缺点 1.Lombok简介 官方介绍 Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java.Never write another getter or equals ...

    1.Lombok简介

    官方介绍
    Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java.Never write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging variables, and much more.

    大概的意思:Lombok是一个Java库,能自动插入编辑器并构建工具,简化Java开发。通过添加注解的方式,不需要为类编写getter或eques方法,同时可以自动化日志变量。官网链接

    简而言之:Lombok能以简单的注解形式来简化java代码,提高开发人员的开发效率。
    博客及源码GitHub链接

    2.Lombok使用

    使用Lombok需要的开发环境Java+Maven+IntelliJ IDEA或者Eclipse(安装Lombok Plugin)

    2.1添加maven依赖

    <dependency>
    	<groupId>org.projectlombok</groupId>
    	<artifactId>lombok</artifactId>
    	<version>1.18.4</version>
    	<scope>provided</scope>
    </dependency>
    

    2.2安装插件

    使用Lombok还需要插件的配合,我使用开发工具为idea,这里只讲解idea中安装lombok插件,使用eclipse和myeclipse的小伙伴和自行google安装方法。
    打开idea的设置,点击Plugins,点击Browse repositories,在弹出的窗口中搜索lombok,然后安装即可。

    安装lombok插件

    2.3解决编译时出错问题

    编译时出错,可能是没有enable注解处理器。Annotation Processors > Enable annotation processing。设置完成之后程序正常运行。

    开启注解配置

    2.4示例

    下面举两个栗子,看看使用lombok和不使用的区别。

    创建一个用户类

    不使用Lombok

    public class User implements Serializable {
    
        private static final long serialVersionUID = -8054600833969507380L;
    
        private Integer id;
    
        private String username;
    
        private Integer age;
    
        public User() {
        }
    
        public Integer getId() {
            return id;
        }
    
        public void setId(Integer id) {
            this.id = id;
        }
    
        public String getUsername() {
            return username;
        }
    
        public void setUsername(String username) {
            this.username = username;
        }
    
        public Integer getAge() {
            return age;
        }
    
        public void setAge(Integer age) {
            this.age = age;
        }
    
        @Override
        public String toString() {
            return "User{" +
                    "id=" + id +
                    ", username='" + username + '\'' +
                    ", age=" + age +
                    '}';
        }
    
        @Override
        public boolean equals(Object o) {
            if (this == o) {
                return true;
            }
            if (o == null || getClass() != o.getClass()) {
                return false;
            }
            User user = (User) o;
            return Objects.equals(id, user.id) &&
                    Objects.equals(username, user.username) &&
                    Objects.equals(age, user.age);
        }
    
        @Override
        public int hashCode() {
            return Objects.hash(id, username, age);
        }
    
    }
    

    使用Lombok

    @Data
    public class User implements Serializable {
    
        private static final long serialVersionUID = -8054600833969507380L;
    
        private Integer id;
    
        private String username;
    
        private Integer age;
    
    }
    

    编译源文件,然后反编译class文件,反编译结果如下图。说明@Data注解在类上,会为类的所有属性自动生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法。

    反编译用户类


    自动化日志变量

    @Slf4j
    @RestController
    @RequestMapping(("/user"))
    public class UserController {
    
        @GetMapping("/getUserById/{id}")
        public User getUserById(@PathVariable Integer id) {
            User user = new User();
            user.setUsername("风清扬");
            user.setAge(21);
            user.setId(id);
    
            if (log.isInfoEnabled()) {
                log.info("用户 {}", user);
            }
    
            return user;
        }
    
    }
    

    通过反编译可以看到@Slf4j注解生成了log日志变量(严格意义来说是常量),无需去声明一个log就可以在类中使用log记录日志。

    反编译用户controller类

    2.5常用注解

    下面介绍一下常用的几个注解:

    • @Setter 注解在类或字段,注解在类时为所有字段生成setter方法,注解在字段上时只为该字段生成setter方法。
    • @Getter 使用方法同上,区别在于生成的是getter方法。
    • @ToString 注解在类,添加toString方法。
    • @EqualsAndHashCode 注解在类,生成hashCode和equals方法。
    • @NoArgsConstructor 注解在类,生成无参的构造方法。
    • @RequiredArgsConstructor 注解在类,为类中需要特殊处理的字段生成构造方法,比如final和被@NonNull注解的字段。
    • @AllArgsConstructor 注解在类,生成包含类中所有字段的构造方法。
    • @Data 注解在类,生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法。
    • @Slf4j 注解在类,生成log变量,严格意义来说是常量。private static final Logger log = LoggerFactory.getLogger(UserController.class);

    3.Lombok工作原理

    在Lombok使用的过程中,只需要添加相应的注解,无需再为此写任何代码。自动生成的代码到底是如何产生的呢?

    核心之处就是对于注解的解析上。JDK5引入了注解的同时,也提供了两种解析方式。

    • 运行时解析

    运行时能够解析的注解,必须将@Retention设置为RUNTIME,这样就可以通过反射拿到该注解。java.lang.reflect反射包中提供了一个接口AnnotatedElement,该接口定义了获取注解信息的几个方法,Class、Constructor、Field、Method、Package等都实现了该接口,对反射熟悉的朋友应该都会很熟悉这种解析方式。

    • 编译时解析

    编译时解析有两种机制,分别简单描述下:

    1)Annotation Processing Tool

    apt自JDK5产生,JDK7已标记为过期,不推荐使用,JDK8中已彻底删除,自JDK6开始,可以使用Pluggable Annotation Processing API来替换它,apt被替换主要有2点原因:

    • api都在com.sun.mirror非标准包下
    • 没有集成到javac中,需要额外运行

    2)Pluggable Annotation Processing API

    JSR 269自JDK6加入,作为apt的替代方案,它解决了apt的两个问题,javac在执行的时候会调用实现了该API的程序,这样我们就可以对编译器做一些增强,javac执行的过程如下:

    lombok工作原理

    Lombok本质上就是一个实现了“JSR 269 API”的程序。在使用javac的过程中,它产生作用的具体流程如下:

    1. javac对源代码进行分析,生成了一棵抽象语法树(AST)
    2. 运行过程中调用实现了“JSR 269 API”的Lombok程序
    3. 此时Lombok就对第一步骤得到的AST进行处理,找到@Data注解所在类对应的语法树(AST),然后修改该语法树(AST),增加getter和setter方法定义的相应树节点
    4. javac使用修改后的抽象语法树(AST)生成字节码文件,即给class增加新的节点(代码块)

    通过读Lombok源码,发现对应注解的实现都在HandleXXX中,比如@Getter注解的实现在HandleGetter.handle()。还有一些其它类库使用这种方式实现,比如Google AutoDagger等等。

    4.Lombok的优缺点

    优点:

    1. 能通过注解的形式自动生成构造器、getter/setter、equals、hashcode、toString等方法,提高了一定的开发效率
    2. 让代码变得简洁,不用过多的去关注相应的方法
    3. 属性做修改时,也简化了维护为这些属性所生成的getter/setter方法等

    缺点:

    1. 不支持多种参数构造器的重载
    2. 虽然省去了手动创建getter/setter方法的麻烦,但大大降低了源代码的可读性和完整性,降低了阅读源代码的舒适度
    展开全文
  • 非隔离电源是用220V直接输入到电子电路,通过电子元件降压输出,输入输出是通过电子元件直接连接的,所以称非隔离电源;
  • 热敏电阻的主要优点是:灵敏度较高,其电阻温度系数要比金属 10~100 倍以上,能检测出 10-6℃的温度变化;工作温度范围宽,常温器件适用于 -55℃~315℃,高温器件适用温度高于 315℃(目前 可达到 2000℃),低温...
  • 但是由于电路工作在开关状态,所以噪声比较。?通过下图,我们来简单的说说降压型开关电源的工作原理。如图所示,电路由开关K(实际电路中为三极管或者场效应管),续流二极管D,储能电感L,滤波电容C等构成。当开关...
  • 个人工作优缺点总结.doc
  • 多级放大电路耦合方式优缺点

    万次阅读 2015-09-12 11:28:39
    缺点是各级静态工作点相互影响且存在温漂,解决方法有引入直流负反馈(射极通过电阻Re接地)、温度补偿(b-e之间增加二极管构成回路)、采用差分放大电路(最常用)。 阻容耦合:放大电路的前级输出端通过电容接到...
  • 浅谈IPsec的工作原理及优缺点

    千次阅读 2019-04-09 14:41:03
    什么是IPsec? IPsec(IP安全性)是一套协议,旨在确保IP网络上数据通信的完整性,机密性和身份验证。虽然IPsec标准的灵活性已引起商业市场的兴趣,但...目前,IPsec主要用于VPN,当应用程序级安全性或路由安全性中使...
  • Spring的优缺点工作原理,以及使用方法,注意事项等.
  • 面试官:说说你最大的优缺点? (25题汇总版)

    万次阅读 多人点赞 2019-06-12 21:20:52
    原文地址: 面试官:说说你最大的优缺点? (25题汇总版) 首先这个问题是一个骨灰级问题,面试必问,很有必要认真探讨一下这个问题的答案。个人觉得可以从三方面来考虑回答(寻找新平台提升自己和表现出忠诚度和...
  • 软件外包公司优缺点

    千次阅读 2018-12-07 18:07:34
    企业赚钱的两种模式 企业赚钱的本质是出卖时间,出卖时间的方式有两种: 一份时间卖一次 一份时间卖多次 ...那第一种方式,就是线性的行为,类似下...劳务派遣公司、建筑施工队、家政服务公司、餐饮类公司等...
  • 硬件pwm的优缺点 由于单片机的工作频率一般都4MHz左右,由单片机产生的PWM的工作频率是很低的,再加上单片机用ADC方式读取充电电流需要的时间,因此用软件PWM的方式调整充电电流的频率是比较低的,为了克服以上的...
  • 众所周知,步进电机的驱动方式有整步,半步,细分驱动。...本文小编将带领大家详细的了解步进电机整步驱动、半步驱动、细分驱动的工作原理及优缺点。 步进电机的驱动方式 如下图是两相步进电机的内部定子示
  • LVM的工作原理和优缺点

    千次阅读 2019-07-03 20:04:13
    LVM每个物理卷头部都维护了一个metadata,每个metadata中都包含了整个VG(volume group:卷组)的信息,包括每个VG的布局配置,PV(physical volume:物理卷)的编号,LV(logical volume:逻辑卷)的编号,以及每...
  • RabbitMQ优缺点以及工作模式

    千次阅读 2020-04-10 23:32:45
    1.解耦,系统A代码中直接调用系统B和系统C的代码,如果将来D系统接入,系统A还需要修改代码,过于麻烦! 2.异步,将消息写入消息队列,非必要的业务逻辑以异步的方式运行,加快响应速度 3.削峰,并发量的时候,...
  • 工作分析的方法及优缺点.doc

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 795,615
精华内容 318,246
关键字:

在大公司工作的优势