系统架构变迁——个人成长路线

想法雏形

某普通大学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、即使看透了代码只是为了满足需求的工具,但依旧保持着探究新技术的热情。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值