工作中一些原则体会

尽可能让一切变得简单,用最简单的方式完成工作

能用最少的概念,最精简易懂的概念模型来抽象系统,多一个概念就多一份别人了解系统以及维护系统的复杂度,别人也会质疑多一个概念的意义所在,自己如果没想清楚就容易被diss。

特别是在类的设计中,会发现其实很多时候用一个类就可以表达要干的单一职责了,每个类职责清晰,类于类之间关系易于理解及维护。

设计系统时某些功能只在需要它时构建

对于这点深有体会, 特别是在对设计此类系统没有业务经验的时候,不要尝试第一次就构建一个所谓“完美”系统,系统是要面向迭代的,永远都是随时准备修改或增加功能,所以设计系统的目标不在于追求一次性构建完美全面的功能,而在于追求系统对功能支持的扩展性,是否能具有快速cover新业务需求,从而分秒迭代自身的能力。

并且业务是多变的,设计时满足好当前的功能需求,并预留扩展点,即使目前功能不完备,也能在未来快速构建它。

没必要过度设计,特别是在自身经验不丰富的情况下,意淫的美好都是太自我,虽然多思考敢于尝试是好事情,但还是要找高手明确好要做的事情,否则对开发人力的浪费。开发暂时不需要的功能会导致最“重要且紧急”的需求delay或bug风险

敏捷迭代思维

先学会爬,然后再学会走,最后学会跑。换句话说,先保证能够正常运行,然后优化它使其更好,最后逐渐让它变得完美。为每个功能制定一个开发周期(最多2周),然后不断迭代。

注重投资回报率

工作中会发现任务都是排着队的,至于任务队列的 compare方法怎么写,对于事情的四象限法则,事情的投资回报率是评估是否重要的重要考量。

功能的设计和测试尽可能独立。如果在设计时考虑到这一点,长远来看,它将省去很多麻烦,否则只有一切构建完成时你才可以开始测试整个系统。很多时候直到要测试某个功能的时候,才发现代码相互依赖,而无法独立测试某模块。

推行MVP(最小可行产品)

该理念的核心在于:先制定一些用例,完成用例所涉及的相关功能,立即发布产品,然后根据反馈和经验对产品进行优化。

在需求评审阶段尽可能明确要做的事情,知悉pm需求的业务意义,才能更好更明确的带着目标做事情,技术评审阶段,尽量想清楚需求边界及所需的技术和业务资源来评估好开发时间,并乘以一个系数作为交付时间(主要是为后期突然插入的事情留buffer),从项目生命周期开始,直到上线期间,和相关人员经常进行 关键步骤同步和确认,大家不会天天盯着你在做的事情,要主动同步进度,寻求反馈,可以避免方向走偏,同时方便对于领导也能掌控全局信息。

在多人协作过程中,流程规范化的意义,比如结论文档化,分支管理按照契约。大家都有了common sense,办公效率也是极大提高。

试想微服务系统节点较少,俩人协作的时候,信息的沟通等价于最简单的的Pub/Sub模型,信息的传递较为简单,大家都会把对方同步给自己的事情处理好,甚至还闲着没事儿催促你好几遍,因为每个人只订阅对方的消息,来源单一,处理起来不会遗忘。后来的后来系统复杂了(同事多了),你作为生产者有了好多个消费者同事,比如你要改一个接口,涉及到好几个其他模块开发者,你推动这次升级需要每阶段都push各方同事这时候有个问题:

除了其它端,发现 支付端 也需要升级你的接口,然后屁颠屁颠跑人家那又巴拉巴拉描述如何升级——每个消费者接入,都需要生产者开发适配新消费者的消息发送代码。

学会解耦

别忘了工作中你本身作为生产者同时也在订阅别人,总之你作为一个节点,你的所有peer消息你都要处理,消息量大还处理不过来,容易遗漏。要么是push消息,要么是处理别人的消息,对于push别人的消息,你还要做好“降级”,因为你告诉别人这样做了,你确保不了别人一定按你说的做,消息一多这个时候人脑子会很容易乱的,别人如果做错了,如果不承认你给他push过消息怎么办?你要背锅嘛。。。

怎么办呢? 引入业务消息中间件~

所以人多了就得学会解耦,每个模块都有人专门负责,模块间的沟通工作,需要一种协议来确保沟通准确性和解耦,上面说的是典型的同步rpc协议,意味着你要了解所有的消费者,还要处理新来的消费者,没有消息落盘,不可追溯。如果这个时候有一些文档或消息群来承载结论性的消息变更,大家都只需要跟踪这个文档或这个群就可以了,生产者就往里push消息,剩下的分布式消息处理一致性让别人来保证就可以了,哪一端没处理好,怪不了你了可。

首先不用处理对别方的降级,都按文档约定的来的,也同步给你了,对于新的消费者接入,看文档就好了。 每个人就只需要push消息到文档落盘,订阅别人的文档watch变更,大量消息落盘,个人可以异步消费,而不会丢消息,落盘的消息可重复消费,可记录历史,避免沟通的扯皮,确保研发环节的有条不紊。当系统更大的时候,每个人工作消息模式复杂度保持不变,这也是 消息中间件 消息消峰 解耦的意义。

还没关注我的公众号?

  • 扫文末二维码关注公众号【小强的进阶之路】可领取如下:
  • 学习资料: 1T视频教程:涵盖Javaweb前后端教学视频、机器学习/人工智能教学视频、Linux系统教程视频、雅思考试视频教程;
  • 100多本书:包含C/C++、Java、Python三门编程语言的经典必看图书、LeetCode题解大全;
  • 软件工具:几乎包括你在编程道路上的可能会用到的大部分软件;
  • 项目源码:20个JavaWeb项目源码。

原文地址:https://www.cnblogs.com/xiaoqiang-code/p/11553197.html

时间: 2024-08-29 20:11:45

工作中一些原则体会的相关文章

工作中的心得体会

刚看了会电视,里面有一美女说“其实嘛,做生意,就是做人跟做事两个方面”,我觉得这对于工作也是这样,可叹的是,对于第二部分做人方面,我已经意识到我有这方面的问题,但怎么来修正,还在摸索当中. 第一部分 关于做事方面 开始工作之前.做好准备 如果你像我一样,遇到过很多次,加班加点做出来的东西,然而并没有被使用,我相信你也想知道,这些人,究竟想要什么?没错就是要弄清楚,到底是要干什么?还有我想说的是,不是任何一件事都需要写代码的,有的可能已经写好了啊! 工作的时候,SomeTimes,You thin

工作中请注意的十点

第一:不要认为停留在心灵的舒适区域内是可以原谅的. 每 个人都有一个舒适区域,在这个区域内是很自我的,不愿意被打扰,不愿意被push,不愿意和陌生的面孔交谈,不愿意被人指责,不愿意按照规定的时限做事, 不愿意主动的去关心别人,不愿意去思考别人还有什么没有想到.这在学生时代是很容易被理解的,有时候这样的同学还跟“冷酷”“个性”这些字眼沾边,算作是褒义.然而相反,在工作之后,你要极力改变这一现状.否则,你会很快变成鸡尾酒会上唯一没有人理睬的对象,或是很快因为压力而内分泌失调.但是,如果你能 很快打破

工作中的感悟 (三)三个月碎碎念篇

感慨一下来这里工作已经有一个月了,从最初的不是很适应这里的节奏,到慢慢适应了这里的生活,中间的过程就像经过一场暴风雨的洗礼虽然说的有点夸张,但是也是差不多吧,同在学校比要累很多,不过坚信不管再累.也要坚持既然有人有干,那我们就可以干我们没有什么理由坚持不了.别人可以做到的我们一样可以做到. 刚来的时候以一种无所谓.既兴奋又有很多好奇的心态来到了北京,这里很多人梦想的地方,不禁感慨以后我也在北京这里开始了这里的生活,时间长了究竟会是怎样一种心境呢,据说这里压力大.这里消费高.这里租房忒别烦人,来到

站长探讨之说说SEO在网站编辑工作中的运用

关于SEO知识在网站编辑工作当中的运用的这类知识,我百度了一下,几乎很少,因此我决定对这方面的知识点在我的SEO博客中做一个整理,希望大家能够给予宝贵的意见. 一.Html常用标签 对于网站编辑所需要涉及到的标签有:Title.Description.Keywords.H标签.Alt标签,现在这里简单的介绍一下,后面会有更加具体的使用方法. 1.TDK标签 Title,也就是文章标题 Description,即网站描述 Keywords,即网站关键词 TDK标签.jpg 不用多说,TDK三个标签

射频工程师如何在实际工作中学习射频

当射频工程师知道自己的工作职责之后,我们应该如何在工作和实践中进一步学习它呢?现实工作中有很多案例,不是我们通过多少多少的积分微积分方程就可以轻松解决的.这不是说微波方程在实际工作毫无意义,而是说的很多人重复的那一点,"理论要靠实践来检验". 踏入社会工作的第一天,不是你大功告成的第一天,而是你真正学习课本的第一天,是你检验课堂知识的第一天.很多朋友都希望毕业后马上进入一个好的公司,好的部门工作,想搞技术的第一选研究所,选到好公司的,想进公司中央研究部门,进到差一点的公司的也想起码得进

工作中的知与行

工作的第七年了.纪念. 最近一个入职没多久的小朋友(A)很郁闷,说是领导(L1吧)要做一个东西,L1自己没有什么好的想法,但是又极力反对A的想法,还说A不好好干,但A又要完成L1领导L2的需求,L1又觉得L2的需求其实不重要,至少L1不认同.....所以A跟我吐槽.我想起以前一个师兄给我讲过上善若水的理解,就煞有介事的跟A童鞋讲,这其实只是工作,没有必要那么愤怒,善变,学到东西即可.开导别人其实很容易,开导自己就难多了. 其实,我也碰到类似的事情:在某次会议上说兄弟组的产品做的不够好得罪了兄弟组

用户研究工作中的14个经典方法

历时2个多月的编撰和设计,#用研方法传遍中国#在今天将告一段落;经过仔细的梳理与总结,@百度商业UED 的用户研究工程师们将用户研究工作中的经典方法一一总结出来,与大家分享讨论,感谢和我们微博互动的同学们,也欢迎更多对用户体验感兴趣的同学加入讨论,大家共同努力.共同进步! 1 .[眼动&脑电研究] 将眼动仪和脑电设备联机同步,可以知道用户是如何看的,以及当时的心理活动. 2 .[可用性测试] 想知道可用测试是什么?可用性测试的目的&作用?适用的场景?测试所需的人数? 3.[信噪比原则] 如

在工作中如何做到优秀,在工作之外如何做到自己(一)

首先,既然想讨论这个问题,肯定是自己没做到. 罗老师,您能让我把话说完吗?(sorry,刚才老罗乱入) Part 1,在工作中如何做到优秀 积极.认真的态度,这个最重要. 要有心把手中的工作做到最好,才有可能做到,否则以一种随便的态度对待,事情的完成度可想而知.在一些小的事情上,也要认真.举两个一直记到现在的例子吧,一是高中毕业时,学生要写一些教学反馈和意见,我这个懒人就随便写了点,但是前座团支书写的让我吃了一惊,文书工整.条理清晰.写的满满当当的.这是一种习惯,也是学生对学校应有的责任.另一个

如何在工作中更好的学习(二)

欢迎关注我的微信公众号:软件测试经验与教训 前言 去年写过一篇文章<如何在工作中更好的学习>,是从员工的角度谈如何在工作中学习提升.今天这篇文章,是写给管理者.从内容来看,本文更应该叫<如何引导下属自我充实,提升工作表现?>. 也许你有过这样的烦恼: 下属工作能力差,难以胜任工作,组织了很多培训,却收效甚微,甚至出于好心的培训最后引来下属的反感. 花了大量人力物力培养起来的人,却离职去了其他公司,你开始怀疑培训到底是否有必要. 下属没有学习主动性,没有上进心,整个团队只有你在操心.