文章目录
解决方案分析方法论SWOT
什么是SWOT: 例子中间件RabbitMQ和RocketMQ队列选择对比
- S (strengths)是优势:团队多人用过、AMQP跨语言、模型API丰富
- W (weaknesses)是劣势:阅读过源码的人过少, Erlang开发,二次修改不容易
- O (opportunities)是机会:多个容器平台拥抱RabbitMQ, 易用性、扩展性强
- T (threats)是威胁:未来可能有更强大的MQ产品出现或改动架构
例如,RabbitMQ生产者可以用java语言开发,消费者可以用Python,公司和集团跨团队合作的话就可以用RabbitMQ,这样就不会局限于java语言。
RabbitMQ基于 Erlang开发,阅读过源码的人少,这是它的劣势。
整个团队通过SWOT对RabbitMQ对进行判断,就可以 判断选择此技术对整个项目的影响,同样的你可以把RocketMQ用这种方式对比出来。
SMART原则【目标管理、设置】
Specific:目标要具体
Measurable:目标成果要可衡量(量化)
Attainable:目标要可实现,避免过高/过低
Relevant:与其他目标有一定的相关性
Time bound:目标必须有明确的期限
意义:在制定工作目标或者任务目标时,考虑一下目标与计划是不是SMART化的。只有具备SMART化的计划才是具有良好可实施性的,也才能指导保证计划得以实现。
要成为一个高级工程师或者架构师,你肯定需要团队管理经验,但是你现在没有,公司也没有机会给你实施,所以在里你要假想一下,不管是以后的面试还是公司的内部竞聘都能临危不乱。
面试题:如果让你带一个5个人,或者10个人的团队,你应该怎么带呢?
作为管理者,要对团队的每个人设定目标绩效考核,那么你就可以说带团队的方法论,用上面的目标管理,比如,目标要具体,不要说一个很虚的东西,你要给成员可以具体描述的,比如新产品上线的拉新功能,你要告诉成员拉新什么东西,拉新的具体数值是多少。目标成果可量化容易理解,比如说现在支付模块成功的概率是99%,下个阶段的目标是99.999%,再如接口的响应时间,现在是100ms,定个目标优化后50ms,ok,可以奔着这个目标做一系列的优化。目标的制定要合理,比如接口的响应时间是100ms,你让团队成员做成1ms,那基本上不太可能,制定的目标要和他的层级对应起来。
DDD领域驱动设计
- 什么是DDD: 领域驱动设计,领域专家->电商领域/支付领域/物流领域/在线教育等
- 步骤:领域分析->领域设计->领域实现->循环迭代优化
- DDD是一套思想,不同团队实行DDD都有不同的理解, 不是每个项目都适合
- 国内大厂基本都没做好-腾讯、阿里、美团、字节等, 只是部分团队有落实
这一小节后续会更新…
DevOps提效
面试题:如果你是技术负责人,会决定怎样的发版周期,说下理由?
严格控制发布流程, 班车制度, 提高频率,几天一个版本发布。
例如两天一次的频率发布新版本,开发,测试,运营人员可以熟练掌握发布流程,功能变动的越小,回滚的时候更加轻量级。同时开发人员需要考虑运营人员的误操作,测试人员的测试覆盖度, 出问题回滚或者突发流量扩容运维人员怎么操作更高效,不再是传统的,各做各的事情。
和你说下DevOps是如何提效的
- 什么是DevOps: 开发+测试+运维 交集
- 以前是单一职责 现在一专多能 考虑配合提效
- 核心: CI/CD 多环境-构建-打包-测试-上线-监控
- 快速迭代产品,每次代码的改动都触发校验,每刻都可进行新版本的上线
CI:持续继承,CD:持续交付,持续部署
持续开发、持续集成、持续测试、持续部署、持续监控