想法雏形
某普通大学CS专业的小丁,经常在表白墙qq群里淘各种二手产品,可是每次打开群都会99+,每次都看不到之前别人发了什么东西,要是有一个和淘宝一样的平台来校内交易就好了,哎!小丁想到:“我自己就是计算机专业的啊,我可以做,可是都类应用我不会做啊,我只会在C语言的黑框框里输出烫烫烫烫烫烫烫烫口。”于是乎,这个念头就在藏在了小丁的脑海中。 他不知道的是,这就是需求的产生。
系统基础架构
后来,学习了Java,了解了j2ee,小丁豁然开朗,自己可以做一个web程序!于是自学Javaweb,用servlet和jsp写了一个小demo,兴冲冲的拿去给老师看,可是老师却说这已经是十年前的东西了。小丁感到迷茫,于是去请教了周学长。周学长给小明指明了去学习Spring。 在一个个干杯的视频后,小明学完了Spring,但是回想起来,满脑子AOP,IOC什么的,写的练习也不知道有什么用,但是视频紧接着就推荐了mybaits,小明查了一下,说是用来操纵数据库了,会比原生jdbc好用多了,于是又开始了学习。多日的学习中,小明了解到了MVC结构,又学习了SpringMVC。待小明看完视频之后,自己已经跟着视频写出了一个XXX管理系统,心中的自豪油然而生。此时又想着,现在我学习了更稳定和先进的框架与技术,可以开始做我的二手交易平台了。 于是乎做出了这样结构的系统。
基础业务满足
在完成了基础了业务功能之后,小丁在测试中又发现了很多问题,比如账户登录的权限,非法访问控制,数据库事务,编码的规范等等,于是又对着系统进行着优化。 优化后的系统 在优化完成后,小丁的系统在自己的服务器上线了,一开始只有自己关系好的朋友来当内测用户,但是大家发现功能较为便捷,就开始向周边人推广。
系统完善
随着使用的人越来越多,系统开始出现越来越多的问题,比如 1、不小心的错误操作无法撤销 2、界面哪个按钮很不方便,功能排版不合理 3、查询最近的二手物品很卡 小丁面对这些问题,又开始完善自己的系统 于是乎,完整版1.0系统上线了。
微服务
小丁一开始也没想到,自己的系统能推广到全校范围,大家有事没事就会像逛淘宝一样看一下二手平台,大家迅速知道了这个平台是由一个在校学生做出来的。因为小丁做出了这个平台受到了很多同学的夸赞,有很多同学前来学习,小丁从不吝啬分享自己学过的知识,这让大家虽然对系统体验一般,但也对小丁十分敬佩。 在面对系统无法承受住过大的用户访问量时,小丁从老师和学长那里听到了微服务,分布式等概念,小丁听的晕乎乎,回家查了资料后发现原来是自己落伍了,相对于SSM,SpringBoot以及SpringCloud更为适用。于是乎,小丁发了公告,为了更新系统而将系统关闭一段时间,一时间,学校内风声四起,有说那位写出平台的大神情场失意无心维护,有说大神要去参加竞赛没有时间,也有说大神遇到了事业滑铁卢等等,可这一切小丁都不知晓。 小丁每次都待在他勤工俭学的办公室内,一边学习着微服务,一边重新设计着系统。 耗时几个月,新的系统发布了。
微服务优化
在系统上线后,因为平台的服务,也为小丁带来了一定的收入和声望,小丁也很自豪,老师们对于这个学生也是很骄傲,同学们也佩服着这个不认识的大佬。 但是在一次与一位教授的对话中,小丁被问到,你有统计过一些数据信息吗,比如最喜爱商品类型,商品的均价等等,小丁又觉得自己还是很多没有考虑,于是乎又钻进了实验室,去学习大公司的产品方案从而对自己的平台进行更新。 又耗时很多天,更加完善的系统发布了。
运营维护
小丁的平台已经十分完善,但由于过于庞大,自己修改起来感觉十分劳累了,可是只有十分了解这个系统和懂技术的同学才能帮到他,然而身边很少有这样的同学。 看着自己的电脑windows的图标,小丁想到,windows作为一个操作系统,也只是一个让大家更好的使用电脑的功能,纳闷自己也可以将修改以及配置的功能做成图形化的界面,这样即使别人不懂代码也可以维护这个系统了,于是乎,小丁完成了最终版。并且小丁画出了系统结构图后,他感叹道,“以前自己都看不懂这些架构图,现在已经可以自己画出了。”
回看系统
匆匆忙忙,毕业时间到了,小丁看着自己的系统,回忆着自己的大学生活,仿佛自己做了很多事情,又仿佛很多事情没有做。 在做完了系统所有的迭代之后,小丁明白了有需求才会有对应的功能,所以创新才一直被大力提倡。小丁还明白了很多: 1、良好的编码规范与注释,完整的项目文档 2、多花时间在设计上,八分设计两分coding 3、框架是别人给我们写好的工具,真正的核心仍然是底层原理 小丁又思考了几个问题: 1、计算机为什么可以干这么多事情?(计组、操作系统) 2、计算机是怎么运行一个Java程序的呢?(java文件从编译到运行) 3、老听别人说的Java虚拟机是什么呢?(java虚拟机) 4、别人是怎么访问到我服务器上的程序的呢?(计算机网络,servlet) 5、代码怎么样才做高高耦合,低内聚呢?(设计模式) 6、规范的软件开发流程又是怎样的呢?(软件工程、UML) 7、如何能写出一个高效的方法呢?(数据结构) 小丁暂时也说不清楚这些,他突然觉得,自己还有很多东西要学。
总结
1、本文图并不规范,请勿模仿 2、文中经历纯属虚构 3、我个人觉得是业务需求推动了系统的迭代与优化 4、我没有涉及到具体中间件的技术名称,可以自己去查询对应的技术,那样收获的更多 5、文中图中每一块都需要大量的知识学习 6、本文的核心是想说通过业务的不断扩张去寻找对应的解决方案,从而学习更多的技术,而不是被指明了学完了这个技术下一个就应该去学哪个 6、即使看透了代码只是为了满足需求的工具,但依旧保持着探究新技术的热情。
|