0%

果园大二下小学期通关计划

电商做电商网站,物联做数据库管理软件,电管做Arduino相关硬件,框架上每年差不多,换一换素材罢了。

这个小学期分为两个阶段,第一个阶段是大二下考完之后马上开始,1周时间,理论上是5天做完,电商这边去年晶姐姐多给了两天,物联和电管好像都是5天,第一阶段三个专业算是分开做,电商和物联理论上要用一个数据库模板,其实不用也没有多少关系。第二阶段是安排在大三上开学之后,我们去年是10月28日,英方一起验收三个专业的东西,10分钟展示+5分钟提问(时间和老师关系比较大,有的老师多展示一会也OK,有的老师比如Yao Na会严格掐表),老师是随机分的,包括教法律的老师,有一点碰运气。貌似是各有一半的分数,第二阶段英方打分差异会大一些。

成员上是随机分组,10人一大组,电管5人,电商和物联一个3人一个2人,随机分组上有好处有坏处,可能会遇到大佬带你,也可能遇到什么都不想做拿200块让你们帮他打工的,同时打击TB买代码有奇效,因为单独买的翻车概率大大增加(逃。

三个专业的任务量上,电商第二阶段的任务会比较重,因为第一阶段一周时间有的组可能才把晶姐姐的Demo跑起来,相比其他两个专业基本上不需要改太多东西。

后面的经验分享主要针对电商专业学生,根据第一和第二阶段分别说一下我的经验和建议。

第一阶段

晶姐姐会简单带一下前后端的一些知识,然后给一个Servlet + JSP + JDBC的简单Demo。前端她是允许找模板改的,所以建议找个好看的模板然后改,后端不能用PHP。

首先非常建议抛弃掉JSP,一行JSP代码都不要写,因为JSP会大大增加工作量,灵活程度远不如JS,后端耦合程度太高维护很费劲。

我们组用的用静态HTML和CSS模板+jQuery&AJAX进行开发,利用JSON进行数据封装。这一套我觉得对技术的要求并不算高,只是需要有尝试和偷懒的勇气。但是这一套也不是现在流行的网络开发技术,并没有实现纯粹的前后端分离,前后端还是一起部署的,而且Servlet编程还是比较讨厌,什么都要自己写。jQuery拼DOM也不是很方便。但是总体上对付这个小学期是思路清晰。

有能力的组推荐使用SpringBoot和Spring Data JPA写后端,比纯Servlet好维护的多。前端推荐用React和Antd,实在不行再用jQuery吧。

时间比较紧张,但是晶姐姐给分主要看态度,最重要的是自己做,不要想着花钱偷懒,买的代码太过于华丽会直接挂掉,浑水摸鱼的分不会高。

第二阶段

第二阶段时间会拖得比较久,如果英方到21年秋天还来不了,只能继续网络验收,那像上面说的三个专业会在一起验收。电商在开学验收之前,有一些事情是可以做的,一个是完善第一阶段的网站,还一个是可以试一试云上部署。能够有机会熟悉一下Linux环境的操作也非常值得的,更重要的是展示效果吊打本地部署的组,去年展示是用的教室的台式机共享屏幕,外加一个摄像头,如果用自己笔记本部署的话摄像头展示效果不会很好,远程部署的话老师在英国也能看你们做到的网站。

英方验收对网站的硬性要求是要数据库,有一些简单的功能要求,具体前后端语言不受限制。

云上部署并不算很难,也很便宜。服务器和域名有两种选择方式。

  1. 如果你有Visa或者Master卡,去namesilo买一个1🔪的域名。服务器的话如果有Visa卡首选AWS免费套餐,免费的12月ec2实例,一个月15G免费出站流量外加30G的免费硬盘额度;操作系统的话推荐Ubuntu 20.04,Win Server不适合跑在这么低性能的服务器上。
  2. 没Visa或者Master卡就选国内腾讯阿里的学生机,几十块吧,域名直接在对应的云上买,还需要备案。

除了完善要求的功能,实现这些写到报告里吹牛逼也算不错的。:

  1. 使用Spring框架。Tomcat配置起来比较麻烦,去年传war包给我留下泪很深的心理阴影。Spring + Maven直接打成Jar包传到云上运行会简单不少。
  2. 把JDBC改成ORM框架,推荐Spring Data JPA,不太需要写SQL。
  3. 部署HTTPS。CloudFlare提供免费的DNS解析、CDN和SSL证书服务。二级域名和三级域名都有免费的证书。
  4. CI/CD。Github Actions适合做这个,写好脚本可以自动完成编译、测试和部署。
  5. 写好测试。软工会讲,单测和集成测试有余力的话可以加上。
  6. 容器化。入门Docker,需求化大的话可以上K8S。
  7. 微服务。有余力的话可以把项目拆成几个微服务。

第二阶段还需要交一些材料,一个Report(三个专业所有内容,不限页面数量),短视频(展示电管硬件)和2页说明书(电管硬件),需要三个专业做好分工。

21年补充

今年场景换成了智能家居,外加电商要去访问物联网的数据库,那么要在展示环节实现比较好的效果,云几乎是必备的。

这里给一个比较简单的思路供参考。

  1. 电管使用ESP8266开发板连接到Mobile网络,和之前做的设备连接。
  2. 电商负责网站前端和后端业务,响应相应用户的网页请求,并控制ESP8266。
  3. 物联专门弄数据库,写Restful接口给电商读写数据库,同时也能给自己的GUI管理程序用。
    这个分工还是比较明确的,方便三个专业各司其职,就是对10个人的平均能力和折腾的时间有要求🤣。

特别提醒

Java是一门极其需要动手的语言。因为本身设计上过分OOP,光看书可能会觉得很难懂,写一个SpringBoot项目往往就开窍了。