哈喽,我是老刘
老刘做Flutter开发7年了,被问到最多的问题之一就是状态管理怎么选。
比如昨天半夜,有个兄弟给我发微信,说是新接的那个私活,纠结是用Provider还是Bloc。
这一纠结就是三天,代码一行没写,网络上的对比文章倒是看了几十篇。
我看了一眼他的需求,一共才20个页面的小商城,我差点一口老血喷在屏幕上。
兄弟们,这不叫技术选型严谨,这叫"技术选择焦虑症",说难听点就是潜意识里想偷懒。
对于这种体量的项目,你闭着眼睛抓阄选一个,哪怕是用最土的setState,也就是多写几行代码的事儿。
但你这三天纠结的时间,要是用来写代码,首页和详情页早就跑通了。
咱们程序员最大的幻觉,就是觉得选对了框架,烂代码就能自动变香。
真正的高手拿把菜刀都能雕出花来,而你还在纠结是买瑞士军刀还是屠龙宝刀。
你的"小破站",根本不需要屠龙刀
咱们手里正在写的90%的项目,根本就不配谈什么"复杂状态管理"。
不管是你接的那个两万块的外包,还是自己用来练手的Demo。
扒开那些高大上的外衣,本质上就是一个"网络请求播放器"。
你仔细回想一下你的代码逻辑。
用户打开页面A,屏幕中间转个圈圈。
App调用后台接口,拉回来一坨JSON数据。
然后你把数据解析一下,塞进ListView里展示出来。
用户手指头一点,跳转到页面B。
App再屁颠屁颠跑去后台,拉回另一坨JSON,展示个详情页。
这就是你们口中所谓的"核心业务逻辑"。
就这种线性的、一眼就能看到底的"一条龙"服务。
你摸着良心告诉我,哪里有"错综复杂"的状态需要管理?
这就好比你仅仅是想削个苹果吃。
结果你非要觉得自己是个绝世高手。
跑到博物馆里偷了一把屠龙宝刀。
还得先闭关修炼七七四十九天的刀谱。
最后气沉丹田,一刀下去,苹果烂了。
听老刘一句劝。
这种时候,Provider甚至最原始的setState,就是最好用的神兵利器。
简单才是王道,能快速交付拿到钱才是硬道理。
别让那些高大上的技术名词,把你的脑子给忽悠瘸了。
你是"搭积木"还是"造航母"?
很多兄弟之所以焦虑,根本原因就一个。
想要搭个积木,确选了造航母的图纸。
你做一个只有自己看的记账App,一共没几个页面。
非要吧各种高大上的技术都用上,还要搞什么DDD领域驱动设计。
反过来说,你若是真在搞一个像淘宝、微信这样复杂的国民级App。
光是状态流转就能画满整整一面墙。
这时候你却想着用全局变量或者简单的setState打天下。
那绝对是给自己,也给后来的维护者埋雷。
所以,到底该怎么选?
做小项目,或者验证想法的MVP(最小可行性产品)。
Provider、GetX,甚至就是裸写setState,哪个顺手用哪个。
千万别犹豫,犹豫一秒钟都是对生命的不尊重。
但如果是做大项目,涉及到十几号人协作,要维护个三五年。
那就得把眼睛瞪得像铜铃一样大。
怎么稳怎么来,怎么规范怎么来。
还要考虑AI友好度的问题。
这时候,Bloc 这种强约束、虽然写起来略微繁琐的框架。
就不再是累赘,而是你的"救命稻草"。
别被圈子里那些所谓的"技术政治正确"绑架了你的大脑。
根本就没有什么最好的框架,只有最适合你当下的选择。
总结:技术选择的终极智慧
说到底,状态管理这事儿重要吗?
当然重要。
但对于你现在的项目来说,它可能真的连根葱都算不上。
在这个技术卷成麻花的时代。
真正的智慧,绝对不是你掌握了多少屠龙技。
而是你能分得清,什么时候该亮剑,什么时候该"差不多得了"。
别整天盯着那些所谓的"最佳实践"看。
那都是给大厂造航母用的,不是给你造独木舟用的。
选一个你自己用着最顺手、闭着眼都能写出来的框架。
哪怕它被各路大神鄙视,哪怕它看起来土得掉渣。
只要能让你快速把活儿干完,它就是最好的。
记住老刘的这句掏心窝子的话:
写代码赚钱的时间,永远比你纠结用什么框架装X的时间更值钱。
别让技术选择,成了你拖延症的遮羞布。
选一个,干就完了!
如果看到这里的同学对客户端或者Flutter开发感兴趣,欢迎联系老刘,我们互相学习。
私信免费领老刘整理的《Flutter开发手册》,覆盖90%应用开发场景。
可以作为Flutter学习的知识地图。
------ laoliu_dev