总结:正确的事再难也要坚持做下去
8 q$ P9 F% N4 H; H: e7 }1 t* j
自从框架构思完毕后,就开始着手编程的事情。后面的难度远远超出我的预料,一度想放弃,幸好有一个朋友跟我说了一句话:正确的事情,再难也要坚持做下去。这个事情是正确的吗?嗯,毫无疑问,事情成功后将解决一个很大的问题。还是回到我一直以来的信念:任何问题都是有解决的办法,如果没有,肯定是问题描述不够清晰。
4 c/ d" n+ G# v8 F2 L3 @9 k
& ^, U' v# {! _* Y) F先说说困难
' I N+ _: o7 p& C* P/ {
7 x, Y0 S4 r# G) X! R9 U- s困难一,软件架构没有规划好,写到一半出现重大缺陷,只能推倒重来。# P& f* R* `) Z* x/ @
因为不是计算机专业出身,前期没有想软件架构的问题(关键也不懂这个),后续数据的查询、更新、插入等能力很弱,并发一上来,后端就开始闹情绪。想着这样实在是不行的,就找it行业的同学看看,让他给我重新规划了整个架构,然后前面的代码几乎重新写了一边。
. \: ]2 y3 p- P* z4 U0 y0 [" h4 m$ V+ @
困难二,想法很理想,但是技术上暂时实现不了。% M0 c3 F( u/ _7 N
站在用户的角度,我希望这个小程序具备某些功能,但是到了编程阶段,发现实现不了或者实现的代价很大。比如,我设想在外面看到不认识的单词,可以打开摄像头,然后识别出来,然后可以保存到优先列表中安排记忆。但是这个涉及到AI图像识别功能,虽然腾讯有这个技术提供,但是收费有点高。一边是理想,一边是现实,最终还是选择向现实妥协。+ c$ T( e. k1 v `! K! A
0 ?! L6 x* V8 a
困难三,功能上实现了,但性能上很蛋疼2 O, I# o/ Q A C- H2 J1 g6 F/ n
有时候一个功能经过不断尝试,终于能实现了,但是实际使用起来,性能很蛋疼。比如,记单词时,需要调取单词的数据。刚开始,我是每记一个就调取一次数据,过一段时间当我收到腾讯给我的费用清单,就瞎了眼,因为服务器是按照读取次数收费的,这一波操作差点把我那点私房钱清空了。而且读取次数太频繁,造成并发量上来,也影响了读取速度。吓得我赶紧优化。0 C5 b/ n' \8 P# H: ]: k1 G2 N- a
, i+ O. i: [) q* n$ O! v) X" e
#说说收获吧
6 A2 \8 B1 ~% P' n% \6 {; z9 V, I
+ f" t! `- ?, @ X, W4 ?& A9 G1 n2 _收获一,虽然不完美,但至少做了出来
, W0 ]: N7 j [# _9 h1 x从构思到上线用了9个月,几乎耗费了我全部的业余时间。虽然不完美,但至少按照自己的想法做了出来,后续还会不断地优化。对于我来说,这是一件正确的事情,我坚持了下来。1 T1 Z4 b& u- |9 Q6 S
. K, `$ G# \1 H4 B, Z收获二,没有条件具备这个说法,有想法了,干起来就好
& l, m7 J) G" v% l4 H3 m从一开始也是依仗自己对计算机有一点点的基础,就开始干起来了。遇到很多也许在专业人士眼中很皮毛的问题,只能硬着头皮在网上看看有没有答案,反复地看那些大能的视频,把别人的代码copy下来,一句一句分析他的逻辑原理,再改成自己想要的效果。
' A4 t6 t3 a0 [, n) _- B( n: U4 u# E/ @+ m J% Z
收获三,众人拾柴火焰高9 `8 |" I E: [8 H& a K
小程序的很多功能都是那些最初试用的同学提出的,我从来没有想到,但是很实用,所以我把它实现了,换句话来说这是一个集体的研发成果。感谢这些同学。
& c, X% }7 ?* e9 p. D2 `7 F) ~' U/ ua.比如记单词里有一个画板功能,我有一个习惯就是记单词时一边记一边写出来,所以我记单词的时候都会准备笔和纸。后来我发现有很多人都有这个习惯,然后一个同学跟我说带纸和笔不方便,能否在屏幕上写出来?后来我就加上了一个画板功能,小伙伴们反馈这个功能实在是太实用了。
" N0 H/ o$ p* y) n0 N9 _5 ~" ?, Lb.还有一个同学跟我说他每天开车上下班,他希望把这个时间用来学英语,开车时眼睛和手都不能被占用,只剩下耳朵和嘴巴可用。我就加入了自动循环播放功能,只要把小程序打开,开车也可以记单词。
7 `& X9 o# K z& @9 v! w+ Lc.有同学跟我说,他很多时间都在等电梯、排队,他希望可以把这个时间利用上。我就优化了程序的启动时间,让整个启动时间控制在2秒以内。: S' u1 {" q, R6 F: I
d.有同学跟我说,他上下班坐地铁,手机信号不好,但是他希望用这段时间学英语。我就优化了数据的缓存结构,只要打开过一次,后续就算没有网络也可以继续使用。 |