我是一位 iOS 开发者,看到 Flutter 这个高性能的跨平台 UI 开发框架越来越火,就上手学了起来。结果发现越写越喜欢,iOS 不想写了,RN 也不香了,于是决定用 Flutter 撸一个支持多端的个人项目,没想到这是掉坑的开始。
这个项目的名字叫做“购房计算器”,由于之前买二手房不清楚购房费用明细,被坑了一把,所以决定做一个项目让普通购房者也能清楚的知道自己每一分钱都花在了哪里。由于每个城市的政策和费用都有差异,所以一开始只考虑支持长沙。
Flutter 写起来是真的顺手,几天就撸了一个出来。撸出来了之后总觉得缺少什么,想来想去还得搞个后台,听说 Go 也是 Google 出的,性能也好,就用 Go 吧,又花了几天把后台接口也撸出来了,主要支持用户对购房计算结果的收藏管理。
接口接入项目后,又觉得功能太简单了,只支持常规的计算,像什么非住宅、公司购买、公司出售、土地增值税、法拍房等等都不支持啊。这时发现我已经花了不少时间了,但是这个坑还是咬着牙跳下去了。
我上网搜索资料,但是各个资料说法都有差异,不知道谁说的才对。没办法,我只好装作买房用户去咨询中介,但是中介也没有这么全面专业的(我暗暗发誓,以后做个人项目一定要避免切入自己不熟悉的非技术领域),最终在问了 N 个中介后去不动产交易中心搞清楚了税费的计算规则。😭
终于把长沙的功能做全了,乐滋滋的学习了 docker 把项目部署到了云服务器上。在发布前,突然在知乎上刷到了一个问答:面向对象编程的弊端是什么,里面以一段文字让我陷入了沉思:
再比如,传说中的面向对象本该大显神威的游戏领域——就说流行的 WOW 吧。
这个游戏有 10 个职业,10 个种族,每个种族都有自己的几个特有种族天赋(这个种族天赋还可能根据职业有所不同,比如血精灵);每个职业有几十甚至上百种不同的技能 /法术,这些技能有近战技能,有远程技能;有的技能会对敌方造成伤害或不良状态,有的技能能给己方队友加上好的状态或治疗队友;而且很多这类技能还会根据目标的状态切换不同的效果;有些技能是单体效果,有些技能是光环效果...
别人游戏这么复杂都能搞定。 但是我这个只支持一个城市估计没什么人用把?于是果断的对客户端和后端都进行了重构,没想到 Flutter 还有词法分析框架,又乐滋滋的把项目重构了一遍,只要给我规则,火星上的房产转让我也要能算!
重构完了之后我发现我是真的掉坑里了。 我默默的掏出手机打开了房地产软件,重新开始了伪装成买家一个中介一个中介咨询的流程,最终支持了深圳的费用计算。
其中还有很多坑就不一一诉说了,太长了估计大家也懒得看。此项目现在已经上架 AppStore 和酷安,希望能给购房的人一点帮助,求轻喷,求下载。
项目地址: http://qiniu.devlxx.com/index.html
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.