本文分享给不知道如何提高方案设计能力的朋友~
1. 日常工作中,多总结一些通用的技术方案.
在日常工作中呢,注意积累一些通用的技术方案。正所谓不积跬步无以至千里。
比如幂等设计、分布式锁、限流设计、分库分表设计等等,不管你做什么类型的业务需求,几乎都离不开这些通用设计。所以我们要把他们都总结积累下来~~
如果现在要求你设计一个通用幂等组件或者实现一个分布式锁功能,你是否能很快设计出来,或者是否有一些比较完整的思路呢。
当然,我建议大家,最好是有自己的总结哈~~ 这些文章呢,只是一些相关知识点,真要设计要一个好的方案,还有很多东西要考虑。
比如你要设计好一个分布式锁,需要考虑:
分布式在哪些场景可能有坑(如释放了别人的锁) 如果使用redis分布式锁,redis挂了怎么办?是否有兜底
等等,其实还有很多。
2. 多参与技术方案讨论
一般我们开发需求,编码前,一般都会有概要设计。这时候,可以多点参加同事的技术方案评审,多点参与讨论。
当然,参与讨论前,最好先看看别人的设计,思考该方案,可能存在哪些问题,有哪些好的地方(不要吝啬你的赞许,同事有些设计好的地方,该赞还是得赞。)
然后技术方案评审会议上,就可以说问题和好的地方。如果你没思考过,为了说话而说,或者为了参与感、存在感,说一些几乎不相关、或者不实际的东西,好大可不必。
鼓励大家参与技术方案,是为了先思考,然后参与头脑风暴,去积累、升华自我。
3. 多看看别人的设计方案
一般公司,都会把设计文档这些汇总的,你平时有空的话,可以少点摸鱼,而是去看别人的设计方案,尤其一些写得好的方案,思考他们那里写的好,然后记录下来,等到你写方案的时候,参考这些精华的地方。
你甚至可以看其他组的一些优秀设计,尤其你在大公司的话,肯定很多优秀人才和优秀设计方案,把资源利用好,多看别人好的设计方案。
4. 进行案例分析
分析一些成熟系统(如 Redis、Kafka、Zookeeper 等)的设计文档和源码,理解它们是如何解决特定问题的。等到你设计的时候,就参考参考。
不要说你们的业务很简单,都不涉及到,实际上,任何的增删改查,后端设计思想都通用。
比如你调用第三方的接口,拿结果回来组装。这个日常开发中,再正常不过了。你设计的时候,可以考虑,调用第三方接口,异常怎么办,是否需要重试,你们调用第三方接口是否都统一,是否可以抽取一个通用模板,等等,其实很多很多。
5. 多分享自己好的设计方案
我还是鼓励大家多分享一些好的设计方案,尤其人多的时候,分享,有互动更好。
好处多多:
分享前,你肯定会很认真准备,脑袋又过一遍。有利于你更熟悉自己的方案。 分享互动时,如果有人提出不好的点,可以利于改进提高。 分享的时候,会得到别人认可,学习动力会更强,每个人都希望得到别人认可的,小时候考100分,都迫不及待告诉父母,然后期待赞扬,对吧。如果你说你想当咸鱼,不在乎,那你当我没说过。
6.多角度思考
从不同的角度看待问题,例如性能、可扩展性、安全性和可维护性等,确保设计方案在多个维度上都是合理的。
通过以上方法的结合,你可以逐步提升自己的方案设计能力,尤其是在复杂的分布式系统中,能够设计出高效、可靠的解决方案。最重要的是保持学习的态度,勇于实践和反思。
7. 关注新技术和趋势
跟踪最新的技术趋势和工具,了解它们如何影响系统设计。例如,了解服务网格、容器化、无服务器架构等新兴技术。
8. 参与开源项目和社区
参与开源项目,特别是那些涉及分布式系统的项目,可以帮助你在实践中学习如何设计和实现复杂的系统。加入技术社区(如 GitHub、Stack Overflow、Reddit 等),与其他开发者讨论设计方案,获取反馈。
9.在完成需求后,进行总结,好的、不好的地方。
在完成每个项目或任务后,进行总结,分析哪些地方做得好,哪些地方可以改进,记录下自己的思考过程和设计决策。
我们在每个版本需求过后,回头思考,那些做得好的,哪些做得不好的。做得不好的地方,思考如下次做得更好。
甚至是测试提了哪些bug,我们思考一下,是否方案设计得有漏洞,导致bug产生呢?
举最近一个例子:有个需求,我是给个接口加多个返回字段,然后这个是交易接口,支持幂等的,然后再命中幂等的时候,忘记加返回了。。。
11.多看看别人踩的坑,总结自己踩的坑
你知道哪些组件、代码、或者设计思路会有坑,在设计方案时,才会更全面嘛,所以我建议多看看别人踩的坑,总结自己踩的坑。
10.培养批判性思维
质疑现有设计:在设计时,学会质疑现有的设计思路,考虑是否有更优的方案,或者是否存在潜在的问题。
多问“为什么”:在思考设计时,多问“为什么”,深入挖掘问题的本质,确保自己对需求和设计的理解是全面的。
最后
好了,今天就聊这么多,大家如果还有自己的经验心得,欢迎在评论区分享哦~
👇🏻 点击下方阅读原文,获取鱼皮的编程学习路线、原创项目教程、求职面试宝典、编程交流圈子。
往期推荐
24 年最新项目,手把手教程
我的新书,冲上了京东榜一!
我用一行代码,干崩同事的服务器!
不敢相信,Nginx 还能这么玩?
我开源了一套 RPC 框架,学爆它!
我做了个闯关游戏,竟难倒了无数程序员。。