读《阿里工程师的自我修养》有感

1、如何熟悉一个新系统,我的步骤是:

1. 要一个测试账号,把相关功能走一遍,这样能非常快地了解一个系统的功能;

2. 看关键的核心表结构,这样可以快速了解系统的领域模型;

3. 根据功能步骤找到系统对外的接口列表,了解系统的 L0 业务流程;

4. 下载系统工程,熟悉整个工程结构和模块职责;

5. 以一个最重要的流程为入手点,阅读代码,看清楚核心的执行逻辑,可以边看边画时序图;

6. 制造一个 debug 场景,以 debug 方式走一遍流程,这样可以实际加深一下对系统的理解;

7. 做一个小需求,掌握相关的流程和权限;

例如:下单这里来了一个新的需求,出一个技术方案的步骤:

1. 看清楚之前的需求,把这个需求所在的场景和链路大致阅读一遍,搞懂;

2. 找到需求的变化点;

3. 分析变更的方案,涉及的内容可能会有:

        i. 数据结构会不会变,如何变;

        ii. 交互协议会不会变,如何变,交互协议分为:端和组件要不要变;和下游 接口要不要变;

        iii. 执行逻辑会不会变,如何变,执行逻辑变更的细化考虑点:是否变更域服 务;是否变更流程编排;是否变更主干逻辑;是否变更扩展点是否变更扩 展点的内部逻辑,变更内部逻辑的时候,又可以进一步拆解:

                a. 重构原有的方法,覆盖之前的逻辑,那就需要进行回归;

                b. 通过逻辑路由到新的方法,这里需要增加路由逻辑;

4. 稳定性方案;

5. 发布方案;

2、我们程序员的工作中,究竟有哪些与原理性知识是需要我们掌握的呢? 按我们团队的实战经验来看: 

1. java,linux,数据结构和算法,数据库,网络通信与分布式计算的原理,这几类是比较重要的基础知识,我们在做方案设计、编码、问题排查中会运用得很多;

2. 设计模式,UML(时序图)这个是对系统架构设计必要要掌握的知识,当你经历了很多大规模的软件系统设计,回到根本上,你会发现逃不出这一块的理论和工具;

3. 领域性的基本原则,比如我们上面提到的“钱货平衡”,“财务平衡公式”, “线下收银让消费者最快速度走人”,这种逻辑需要大家 get 到这些领域性的设计原理,甚至自己去总结出这种原理;

4. 关于管理学,人际沟通,心理学的一些基本原理,大家可以按照自己的实际 需求去看一下。

如何在工作中学习和运用这些原理,我觉得有一个最佳实践

1. 首先,对你可能用到的领域知识,建立一个基本的概念。看书,看文章,找 行业资深的人去聊,都可以得到。注意,这里需要有一个基本的概念就可 以,这样你在有可能 touch 到这些原理的时候,你会有意识,也不至于花很 多时间;

2. 在实践中,有个意识是“多问一下为什么”,并一直“刨根问底”,最终肯定能够追查到背后的最终原理;这里面还要注意思考一下,为什么在这个地方会 运用这个原理,也就是找到“场景”和“原理”的关联关系,这样你的理解 会更加深刻;

3. 了解了原理以后,在实践中运用一下,这样你对这个原理的理解就会非常深 刻,并且你知道如何去运用这原理;

4. 如果这是一个非常重要的原理,建议大家如有余力去结合经典的书籍系统化学习。

3、结构化思维:构建自己的知识树 

不要看别人的总结方式,因为每个人思考思维习惯不一样,要自己去思考,推荐一个很常见的工具:xmind,把自己的树记录下来,之后学习一个知识就更新一点你的树,做到书到用时真正好!

非鸡汤:在排查问题和写代码上,如果你 1 个小时只能尝试一种方法,别人却能够尝试 10 次,那么别人就是比你牛。天下武功唯快不破,你后续写 demo、查问题、 工具的熟练程度都会决定你学习和尝试新事物的速度。

但他在单位时间内尝试的次数特别多,就很快把问题给逼出来了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值