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