大家好,我是陈有余,又到了每周总结的时间了,一起来看看我这周都有什么收获吧!大家也可以在留言区分享自己的收获。
1. 思考总结 💡
如何做框架选型?
最近在开发 Flutter 相关的项目,大家应该知道 Flutter 开发绕不开的一个话题就是状态管理,好在已经有先行者考虑并解决了这个问题,像 Provider、flutter_redux、scoped_model 等等。
但是新的问题是,Flutter 状态管理框架太多,不知道如何去选择 🤪。
首先你得去学习每一个框架,然后再深入了解框架的优缺点,最后才能做出决定。
那有什么办法能辅助我们做出正确的决定吗?
我的一个原则是:站在工程化的角度思考 。
假如你只是开发一个体量很小的应用,比如公司内部使用的一些运营工具,需求和功能有限,未来的业务也不会无限增大,那么这个时候你只需要选择一个容易上手、使用简单的状态管理框架即可,不用过多对比优劣。
如果是开发中型或者大型的项目,你在选择框架的时候就必须站在工程化的角度思考。
以 58APP 举例子。
58APP 本身是一个庞大的工程,由多个团队共同负责,如果你为 58APP 选择合适的状态管理框架,那么需要考虑的情况就更多了。
比如,是否适合多团队开发(跨端),是否能统一管理、拦截和隔离应用中所有的状态、是否能做到UI逻辑和业务逻辑解耦、是否能适应快速的业务调整等等。
如果这些问题都考虑到了,那么适合你项目的框架就会自己浮出水面,因为可选范围越来越小。
我一直觉得,框架没有绝对的好坏,只要适合自己项目的,都是好框架。
2. 本周学到了 👨🏻💻
2.1 ETC 原则
不是高速路上收费的 ETC 😅!
Easier To Change,即更容易变更 。
它可以用来评估一个设计是否是优秀的设计,满足 ETC 原则的即可认为是优秀的设计。
除此以外其余设计原则都是 ETC 的一个特例:
为什么解耦很好?因为通过隔离关注焦点可让每一部分都容易变更,此谓 ETC。
为什么单一职责原则很有用?因为一个需求变化仅体现为某个单一模块上的一个对应变化,此谓 ETC!
为什么命名很重要?因为好的命名可以使代码更容易阅读,而你需要通过阅读来变更代码,此谓 ETC!
ETC 是一条价值观念,而不是一条规则。
价值观念是帮助你做决定的:我应该做这个,还是做那个?在软件领域思考时,ETC 是个向导,它能帮助你在不同的路线中选出一条。
日常工作中,如何实践 ETC 原则:
在做一件事情的时候有意识的问自己,刚刚做的事情是让整个系统更容易改变还是更难改变?保持文件的时候问一遍,测试的时候问一遍,修改 bug 的时候问一遍。
2.2 做开发也需要未雨绸缪
工作中,经常会发现这一类人,他们做什么事情都感觉很轻松,而且很能适应环境的变化和突发状况。
比如,拿面试来说,有的人应对面试很轻松,似乎没有问题能难倒他们,而有的人则显得很吃力。
他们之所以能够应对自如,原因就是他们懂得未雨绸缪,提前规划,预判风险,想好对策,然后坚决执行。
所以,在日常工作中,我们也应该学会提前规划自己的学习、技术方向、文章产出以及思考目前负责的项目未来有哪些技术挑战,然后提前做一些准备工作。
3. 闲言碎语 🔈
这两天学了一个新词:元宇宙 。
什么是元宇宙可以看看这篇文章:元宇宙,人类最后的迁徙
虽然我也是个科幻迷,但其实对元宇宙也不是完全理解,不知道大家是如何理解这个概念的。
4. 后记 🔚
听说好看的人都喜欢给我点赞👍!
See you next week!