十年大厂经验总结,给Android开发者的几点启发性建议( 二 )


终日跟业务打交道 , 应该如何来提升自己1、学会思考和总结
比如当 if else 写得太长的时候 , 是不是分析下判断条件的内在逻辑 , 有没有可能去构建一个状态机 。
比如一段代码逻辑 , 当你写第二次的时候 , 是不是考虑抽成一个单独的函数 , 因为有第二次 , 就意味着会有第三次 , 第四次 。
有不少同学觉得业务逻辑繁杂且没有技术含量 , 所以一直对业务逻辑有抵触的心理 , 但实际上 , 业务逻辑也不完全是无章可循 , 不可复用的 。
如果你留心观察市面上的各类产品 , 各种APP , 你会发现 , 大家在功能上都会有很多的相同点 。
比如 , 每个APP , 几乎都会有这些功能:注册 , 登录 , 用户头像 , 昵称 , 用户资料管理 。
有些APP会有消息聊天 , 有的APP会有论坛功能 , 有的APP会有内容推送 , 有的APP会有商城 , 会有支付 。
总的来说 , 你可以认为To C 产品的业务逻辑是有限的( To B的业务丰富性会更高 , 但也是有限的) , 虽然具体的业务逻辑不同 , 但设计的关键点 , 其实是相同的 。
比如说登录 。 一个产品的登录模块 , 一般会涉及:就近接入 , IP重定向 , 加密设计 , 密码验证等 。
比如说消息逻辑 , 消息逻辑的关键点一般是:消息的唯一性和顺序性 。
类似论坛 , 内容推送 , 商城 , 支付 , 都一样 , 每个具体的业务都有其关键点 , 而且这些关键点几乎都有业内最佳实践 , 也有很高的经验可复用性 。 (代码不一定可以复用 , 但设计思路几乎都是相同的) 。
所以这里一定要学会思考和总结 , 你的成长只能你做主 , 没人可以帮你!
2、不要只守着自己的一亩三分地
很多人做事 , 只守着自己一亩三分地 , 来一个需求 , 做一个需求 , 做完就不理了 , 不愿意进行更多的总结 , 也不愿意接触需求以外的代码和逻辑 。
一个超过5人维护的系统 , 就可以认为是一个大系统了 。 这类系统 , 按一般比例 , 有 80% 的逻辑不是你维护的 , 所以这里就是关键了 。 有的人会去了解覆盖面更广的剩余的 80% 的逻辑 , 有的人就终日只守着自己那块 。
所以最终 ,一定是更愿意了解全盘的人可以胜出 , 升职加薪 , 开始负责统筹整个项目 。
这个道理很浅显的 , 只是很多人或懒或不屑去做 , 但人跟人的差距 , 确实就是在这些额外的付出中拉开的 。
围绕业务经验规划职业发展我发现不少同学的职业规划有点问题 , 有些人是围绕新技术来规划自己的职业发展的 , 这显然有问题了 。 这么做的结果 , 就是终日在追新技术 , 终日焦虑 , 但却没有形成核心的竞争力 。
我觉得业务的同学应该围绕业务技术经验来规划自身的发展 。
其实大家日常接触的所有需求 , 延展开来看 , 都是跟一个具体的行业相关的 。
比如做微信 , QQ , 是 To C 的产品 , 再细分是社交产品 , 业务技术经验是社交架构和海量服务 。
头条 , 抖音 , 是推荐型产品 , 业务技术经验是推荐系统 。
企业级应用 , SaaS , 是 To B 的产品 , 业务技术经验是企业级应用 , 比如如何在共性需求和个性需求之间进行取舍 。
搜索 , 电商等都是如此 。
十年大厂经验总结,给Android开发者的几点启发性建议文章插图
以上的这些业务技术经验都是有很高技术经验壁垒的 , 一旦你积累起来 , 后面就是猎头来挖你了 。
跟挖人的猎头接触的时候 , 他们喜欢问 , 你有没有做社交产品的经验 , 你有没有做过搜索系统 , 做过推荐系统 , 有没有做过企业级的应用等 。
挖人的猎头 , 招聘的面试官 , 都希望能够找到有相关经验的从业者 , 而客观来说 , 行业经验的壁垒比技术栈的壁垒要高很多 。
新的技术栈 , 你可能花几个月的时间 , 就可以掌握到一定程度了 , 但行业经验 , 却是要经年累月积累的 。
所以 , 你在做职业规划的时候 , 一定要认真思考这个问题 , 自己所在的行业是什么 , 未来可选择的有哪些公司 , 自己应该注重积累哪些业务技术经验 。
最后技术服务于业务 , 这是客观存在的 , 不过随着技术的发展和存量时代的到来 , 技术人员的决策权会越来越大 。
踩坑 , 阅读恶心的业务逻辑代码 , 是一件很有价值的事情 , 很多人不愿意做 , 但做的人 , 可以获得一份独到的经验 , 这个便是竞争的壁垒 。
做业务的同学 , 平日要多思考 , 多总结 , 尝试思考业务的共性 , 思考业务的标准化 , 这能够极大的提高自身软件设计的能力 。