我今年 25 ,程序员 desu ,Manji是我在大学时学习 flutter 时写的一个日语汉字学习 app (是面向英语母语者的)。
从一开始用 python 写爬虫从网上收集数据,然后整理到 sqlite 里,再到把汉字的案例句子和词汇以及用户的自定义内容存储在 firebase ,然后用 tensorflow lite 实现了汉字手写识别,再到用 flutter 实现了一些我自认为出彩的用户界面和动画效果。通过这个项目我学习到了很多很多,可以说没有这个 app 就没有现在的我。
但是,我在写这个 app 时,还没有任何设计模式和架构的概念,没有任何项目经历,对很多东西的理解都是一瓶子不满半瓶子晃,如果你去看这个 app 的源代码就可以发现,每一个文件都有问题,data model 的属性都没有标注 final ,然后资源 class 没有依赖注入,等等等等,代码出奇的丑陋与混乱,问题层出不穷。
在我工作之后,接触到了商业项目,学习到了设计模式与架构,以及如何写干净的,可读的,可维护的代码,使我变成了一个对代码有强迫症的人,可以参考一下我最近写的一个 app ,Hacki, 然后最近几个月一直在考虑要不要重构或者重写 manji ,但是不管是重构还是重写,都需要大量的时间和精力,每次在我下定决心要写的时候,一打开 manji 的源代码,就会想算了吧,不值得。真的非常纠结,其实与其说是答疑解惑,不如说是求劝阻与说服,说服我赶紧放弃。。。
借这个机会也想听听各位是否有纠结过同样的事情,也可以在这分享一下
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.