分类
期权交易

技术分析入门的一些感悟

沪ICP备19023504号-2 | 沪网安备31011202011959 | Copyright © 上海弘缠文化传播有限公司版权所有

我参与 Seata 开源项目的一些感悟

在了解 Seata 的原理之后,我就着手看 Seata 源码,继续深入研究,在这个过程中,我是发现 Seata 源码是有很多地方需要完善的,因此我得到了代码贡献的机会,在看源码的过程中,我参与了某些 bug 的修复,一些功能的开发,同时还对部分代码进行了优化,代码优化这点我特别有感触,因为 Seata 技术分析入门的一些感悟 的 RPC 重构主要是由我完成的,由于我之前研究过一些 RocketMQ 的源码,其中就包括 remoting 模块,感觉它的设计思想非常好,于是我就将这个设计思想从 RocketMQ 带到 Seata 中。

我这里在补充一点,很多人看源码的时候,看到某些代码写得不是很优雅,瞬间不想研究下去了,我觉得这点非常不可取,我们在看源码的同时,需要秉承一种 “不拘小节,观其大意” 的精神,因为每个人都有自己的编码风格,如果你觉得写的不好,那么这时候你的机会就来了,这时候提个 PR 优化一波会不会更加爽?而且一个开源项目都有其本身的设计理念,不要为了拘一时小节,而忽略了其整体的架构设计。

在参与开发的过程中,相当于在玩游戏打怪升级,如果你对某个开源项目贡献了自己的代码,那么恭喜你,你成功成为了该项目的贡献者(Contributor),这时候在开源项目的贡献者名单中,就有你的大名啦,你的代码将会随着项目 run everywhere,是不是心中充满了成就感?如果你一直对项目有持续的贡献,那么成为该项目的核心开发(Committer)指日可待。但需要记住一点的是,持续贡献不仅仅只是提交代码,参与 PR Code Review、输出文章、解答用户问题同样是一种贡献。

从以上的描述中,我花费了那么多时间和精力,我能够从中得到什么?仅仅只是让我的代码 run everywhere?那不免太过于浮躁了。

参与开源项目会形成给予你一种学习驱动力,比方说我在重构 Seata RPC 模块时,驱动我去学习 Netty 相关知识,在写配置同步脚本时,驱动我去学习写脚本(我真的是边学边写 Seata 配置同步脚本的),在研究 Seata 配置中心实现原理时,驱动我去研究 Seata SPI 机制,并且要了解各个配置中心框架的特性等等,人性往往是懒惰的,如果你为了学而去学,很多时候你会半途而废,很多时候你做着某件事半途而废,往往就是因为没有外界驱动力,去驱动你去坚持。学过物理的都知道,世上没有永动机,外界驱动力就是你坚持下去的动力源泉。

同时,你在研究源码或者进行 PR CodeReview 时,可以看到很多大牛的编程思想,这也是你最宝贵的经验源泉,比如 Seata RPC 模块的 Processor 处理器设计思想就是我从 RocketMQ 源码中参透而来。如果你想摆脱日常 CRUD,想增进自己的编码水平,来开源做点贡献吧!

作者张乘辉,擅长消息中间件技能,负责公司百万 TPS 级别 Kafka 集群的维护,作者维护的公号「后端进阶」不定期分享 Kafka、RocketMQ 系列不讲概念直接真刀真枪的实战总结以及细节上的源码分析;同时作者也是阿里开源分布式事务框架 Seata Contributor,因此也会分享关于 Seata 的相关知识;当然公号也会分享 WEB 相关知识比如 Spring 全家桶等。内容不一定面面俱到,但一定让你感受到作者对于技术的追求是认真的!

恭喜您,注册成功!

弘缠院

安卓版APP

苹果版APP

公众号

弘缠院

弘缠院

沪ICP备19023504号-2 | 沪网安备31011202011959 | Copyright © 上海弘缠文化传播有限公司版权所有

技术分析入门的一些感悟

技术转岗产品2年,月薪翻4倍,我的一些感悟和思考

  • 17年毕业,软件工程专业,普通二本;
  • 毕业后,进入互联网金融行业,做Java开发一年多,月薪5000;
  • 19年初,内部转岗产品,月薪提到8500;
  • 20年11月入职现在的公司,月薪涨到20000,相当于翻了4倍;
  • 未来规划:5年内,计划不断拓展自己的业务地图,之后做到产品管理岗。

一、从迷茫到坚定,感谢引路人

在这种天天与机器交流的日子里,我逐渐认识到这样一个残酷的现实:这份工作可能并不适合我。但我并没有找到一个更好的替代选择,直到注定要改变我命运的那天到来。

他说的这些,就像帮我打开了一扇新世界的大门。我终于意识到,做产品经理,可能是最适合我的职业选择。

二、为成功转岗,我的付出与收获

首先是整体的产品流程和思维方法,搭建一个基础的认知框架。这个是根本、底层的东西,如果没有这个知识的骨架,学其他东西都没有办法很好地理解,也会因为没有逻辑条理而变得效率低下。

只掌握方法论是不够的,因为我们做产品工作都是要把这些知识落地的。那么你就要知道,一个产品究竟是如何从0到1落地的。这个过程中,一定是要自己动脑思考,动手实操。

从产品的需求源头分析,到产品设计的原型方案再到产品运营的落地规划,最理想的就是自己动手做完完整的一个流程。现在很多公司招产品岗,完整实操的项目经历是加分项,甚至是必备项,非常重要。

还有一些产品工具是必备技能,比如Axure、墨刀、思维导图软件、Visio、Excel、需求管理工具等。尤其是Axure和思维导图软件,对小白来说是很重要的,因为你可以利用这些工具,来直观表达你的需求内容与逻辑思维。

一开始的时候,我经济条件比较差,只能选择自学,从人人上面找资料,跟公司的产品经理多沟通。在职学习的话,一定要充分利用每天的工作空余时间,比如地铁、公交和吃饭的时候,挤时间来学习。那时候我基本每天自学,要到1点睡觉,持续了5个多月的时间;现在感觉如果报班的话,可能3个月就差不多了。

我觉得我在起点学院最大的收获,就是认识了很多优秀的同学和老师。他们本身就非常有非常高的专业素养,而且还有包括温柔、友好、善良、积极,有想法等优秀的品质。在人人和起点学院的平台上,我得到了从思维到方法到落地的全方位帮助,让我能够站在巨人的肩膀上前行,这些经历让我受益无穷。

三、技术转产品,思维转变先行

然后确认需求有做的必要性,以及实现的可行性之后,再结合系统平台考虑,这个需求会影响到哪些点。怎么做这个需求能更好贴合系统,并可以更好的解决问题。把前面所有的问题想清楚之后,最终才是产出PRD文档和原型,交付开发。

我对两者的理解,技术关注的是点,产品关注的是面,产品需要将思维发散到整个面,并结合用户体验,给予用户好的体验,同时也是要为公司创造商业价值。