毕业设计的技术选型

本贴最后更新于 1654 天前,其中的信息可能已经时过境迁

啊啊啊啊啊转眼就大四了,第一次来黑客派的时候刚大三开学,还是因为折腾 manjaro,然后找 linux 的百度网盘然后找到 BND 来的。

现在快毕业了,毕业设计选题是 web 项目,主要是一个选课题的项目,老师可以选学生,学生可以选老师。然后老师指导学生完成这个课题的流程,包括论文修改、流程记录啥的。想问问大家有没有什么好的技术选型。

有些问题不知道采取什么技术选型,想问问社区大佬的意见:

  1. 需要填写很多资料,而且资料字段可以自定义的那种 —— 我想到就是 mongodb,系部主任可以自定义表格的字段,一次课题就是一个文档,第一次尝试,不知道这样可以不。mysql 肯定不够用了。
  2. 前端要对 pdf 文件进行标注,学生上传了 pdf,老师可以看到并且直接批注修改——目前我真的不知道前端有啥比较好的解决方案。
  3. 前端必须适配——我打算使用 material design 的设计风格适配,所以考虑 flutter 还是 react 还是 react native(不用 vue,因为前面写的项目全是 vue 的)。flutter 也可以做 web 但是支持没那么好。想请 V 姐给点建议 T T
  4. 测试驱动开发——每个地方都要写测试用例,前端准备 jest,后端就是 junit5 了。
  5. 要牛逼!——这个真的必须要有的,必须牛逼,目前想到的就是数据可视化,但是只有那一堆图其实感觉并不牛逼,总想拿得出啥出来,人工智能深度学习感觉自己是没时间去学了 T T。想问问 D 大有没有啥好的建议啊。
  6. 要全面,开发出来是直接给我们系用的,所以一些中小企业级的东西要有的——目前打算是微服务开发,初步选择是 webflux + spring cloud 阿里巴巴和一些 vert.x 服务。使用 kotlin 来写。但是最近朋友去公司实习,才发现公司还有好多东西和技术,比如 Ansible、Zabbix 这些,想问问中小企业一般都会有哪些框架或者技术啊?
  7. 通知,能够通过 QQ 或者微信发送通知——这个我还没有找到啥好的解决方案,倒是有几个机器人可以用,但是还有没有尝试,大家有没有推荐啊?

自己做的有点大,但是没办法啊,到我毕业答辩的时候人估计会有很多,我是我们学校第一届这个专业的,然后是“名声在外”的那种,好多人都给我说我毕业答辩那天一定叫他们去看。所以我必须做的牛逼能够震得住场子的东西,但是自己也就会 web 啊 -0- web 无非就是那么点东西,前后端 + 运维。所以求大佬给点建议。。。到时候实在不行只有上一点数据可视化啥的了 T T 然后考虑下哪方面可以用以下区块链技术,如果有必要就去学习一下。

还有半年的时间,感觉有点多。各位大佬帮帮忙。。。想了几天感觉就那么点。

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • lizhongyue248

    @Vanessa @88250 D 大 V 姐, 给点建议好不好。。。

  • 88250

    底层不需要基于 XXX 学术理论么?当年我的毕业设计做的是基于 Petri Net 的软件过程管理,实现了一个简单的流程引擎。根据你这题目,我觉得存储可以上 IPFS,用于保存论文终版,这样也有亮点。

    1 回复
  • adlered

    辣鸡路过,暖

  • hjljy

    整个大数据的页面,一下子就高大上了。

    1 回复
  • 又要“牛逼”又要“全面”,两者很难兼得啊。

    要知道毕业设计的目的不是为了让你搞出一个多么牛逼、有多么强的适用性的实际产品出来,而是考察你在校期间学习的专业知识能否学为所用。所以,我觉得你在技术选型的时候,不要想着现在业界都有那些牛逼的技术,然后填鸭式地临阵磨枪,并试图把这些技术都塞到自己的项目里。相反,你要梳理一下你已经掌握的知识和技术,并从中找到自己的强项。接着,分析自己能利用这些强项做到什么,有哪些创新的地方,突破了哪些壁垒,等等。然后,专注于某一点去为你的毕业设计选题。

    拿我自己的本科毕业设计为例,我做的是一个基于深度强化学习的综合能源微网优化调度。这个题目是老师选的(学渣没人权)。由于我不擅长深度学习这一领域,所以我将重点集中在了优化调度的载体上,而不是深度学习模型的构建、调参和训练上。最终,虽然训练出来的 DQN 模型不是很理想(事实上传统数学方法更优),但是我成功地将其集成到 麒麟 970 平台上,利用 麒麟 970 的 NPU 加速神经网络的运算,从而使得在嵌入式平台上实时地应用深度强化学习的手段对综合能源微网进行优化调度变得可行。最终,我的毕业设计取得了还算理想的分数。至于优化 DQN 的工作,后来老师将其交给了一些擅长深度学习领域的研究生去继续进行。

    希望我的见解可以帮到你

    2 回复
  • namelysweet

    比如 Ansible、Zabbix 这些........这些不都是运维层面了么。。。。

    1 回复
  • hjljy

    如果你这都是学渣没人权,那我毕业设计都是混过的算什么

  • lizhongyue248

    感谢,很有帮助!

    我的专业是软件工程,讲究的是项目工程化,软件开发工程化,所以毕设就是做一个项目。而且我的题目是系主任直接指定的,做出来给我们软件工程系用=-=我只能做这个,并且要求就是强适用性。至于牛逼则是为了所谓的“炫技”吧。说大点就是我是我们第一届软件工程的“元老”或者老师们口中的“学霸”,虽然我从来没有这样说过但是老师在给后面的学弟学妹说的时候就把我营造成这么一个形象了,故而要有牛逼,能够让学弟学妹们 wow 出来的东西。

    我们是校企合作,大二开始大部分专业课就是企业来给我们上课(所以你懂的),上的都是 web 开发,前端就是十年前那种程度,上了一年半才到 spring boot。所以我们的毕业设计基本都是开发 web。自己对 web 开发不能说熟悉,但是也是能够上手,所以我上面提到的东西个人觉得半年的时间自己完全能够熟练运用。至于说强项,自己也说不清,从架构到设计,从界面到编码,从测试到运维,自己都做过=-=

    专注于某一点 说的特别好。web 设计大多都是业务逻辑的复杂,亦或是前端页面的适配酷炫交互。但是我不想从这两个点,这两个点不新,要好好思考下从哪个点专注。

  • lizhongyue248

    大数据的页面已经没啥新鲜的了,别说老师了,自己都看腻了。。。

  • lizhongyue248

    啊,确实是。还有 api 网关 kong 啥的。

  • lizhongyue248

    谢谢 D 大,我去了解下 ~ 系主任直接给我指定的题目。。。我也很无奈

  • 选几个自己熟悉的技术做就行了,真正开始做的时候 你会发现可能时间不够。而且你要是临时学其他的技术来做,根本做不完。到了公司你会发现你无论怎么学,跟公司用的东西还是有点差距。运气不好的话,一大堆运维技术都得学。docker,k8s 这些运维要学,开发还得学。让你怀疑人生。

  • 前端上传 pdf,然后批注修改是指在浏览器里面修改 pdf?这个怕是有点复杂。如果是修改 excel 之类的表格还容易一点。😂

    1 回复
  • ZephyrJung

    中小企业还不至于到微服务的地步吧
    我觉得你做好项目的模块化整体发布就可以了,上微服务徒增复杂性
    你们部署的时候有多机房么,上了微服务,相关的中间件怎么部署,怎么维护呢

    1 回复
  • ZephyrJung

    我觉得所谓的全面应该是功能上五脏俱全,也就是业务的完整性而不是技术

    1 回复
  • lizhongyue248

    对啊,也不是修改 pdf,就是批注,不过也头疼死了,但是这就是需求。。。我也很无奈。

  • lizhongyue248

    五脏俱全说的很对,刚刚和系主任吃饭谈话,他也是强调这一点。

    不过微服务肯定是要的,机房多啊,我管理的两个机房就有六台工作站,四台刀片服务器,两台图形工作站了。这个校区还有很多这种机房,其他校区也有,还有用来搭建数据中心的机房就有十多台刀片了。而且有几个同学的毕业设计都要接入我写的统一授权中心,这个时候肯定是要微服务了。

    技术主要是希望震场子用 ~

    1 回复
  • 我们公司就比较小,外包公司,全是古董项目。jdk6,Tomcat6。只不过最近在搞容器化,往 k8s 上面迁。最新的一个京东项目直接就是微服务了,我也很无奈。

    1 回复
  • SignV

    和我的毕设差距好大 不过也对 环境不一样 我是学渣 学校也一般 可能要求没那么高 我当时还是用的 JSP + SSM 哈哈哈 现在的话 公司有用微服务 和各种自动化运维 比如 Jenkins+K8S 这些 不过你这项目 需要做那么复杂吗 又微服务 又要搞些测试驱动之类的东西 实际考虑的话 感觉也不需要微服务的样子 普通的 springboot 应该就足够了吧 微服务 加进去 会复杂很多 没什么必要 就不要加进去了 你可以尝试用 docker 部署 如果搞自动化运维也可以 实力允许的话 也不嫌麻烦的话 看起来你们的毕设都好牛逼 我当时的毕设都做得我要生要死 自己搞前后端 还有写 socket 对接信号 项目是我和室友一起搞的 他搞的是嵌入式方面的 我和他对接信号数据 比如他能探测温度 湿度这些 我来进行入库 以及安全报警相关的操作

    1 回复
  • Eddie

    可以,但没必要。不是我打击你,其实老师不怎么在乎你毕业设计做了啥。

    1 回复
  • ellenbboe

    ...我也在搞毕设...

  • 咦 定位是东京trollface

  • lizhongyue248

    这个还真说错了,我给学校做的项目一只手都数不过来了,大二开始做的,两年半学校除了每个月 800 的补助,系主任每次还单独发工资,加起来有 2W+ 了,我是我们系的工作室的主要负责人,我们这个工作室全部人加起来从学校那里拿到的钱也有 20W+ 了。这次项目是系主任指定的题目,经费可能少点,但是肯定是要用的,上次和学院领导开会就提到过这个东西了,还是比较重视的。

    1 回复
  • lizhongyue248

    巧了。我同学也要和我合作,不过是跨专业了,他写的是人脸识别 + 自动签到,要接入我写的授权中心。

    微服务肯定要上的,东西很多,上了好管理点。测试驱动是方便我走了以后别人来接手能够好一点。docker compose 我们给学校写的项目去年已经在用了,准备 k8s 和自动化运维了。

  • Eddie 1 赞同

    我说毕业设计。。。你这种不是。。。

  • ZephyrJung

    原来如此,厉害了,作为学生做到这点,真令我汗颜
    挺好奇你的架构设计呢,希望楼主将来可以分享一下

    1 回复
  • ZephyrJung

    加油 😂

  • 只能说...可怕...真的是后浪推前浪

请输入回帖内容 ...
lizhongyue248
一个天真的小孩儿......https://echocow.cn 东京

推荐标签 标签

  • OkHttp

    OkHttp 是一款 HTTP & HTTP/2 客户端库,专为 Android 和 Java 应用打造。

    16 引用 • 6 回帖 • 52 关注
  • Redis

    Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。从 2010 年 3 月 15 日起,Redis 的开发工作由 VMware 主持。从 2013 年 5 月开始,Redis 的开发由 Pivotal 赞助。

    284 引用 • 247 回帖 • 148 关注
  • golang

    Go 语言是 Google 推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去 10 多年间软件开发的难度令人沮丧。Go 是谷歌 2009 发布的第二款编程语言。

    493 引用 • 1385 回帖 • 342 关注
  • MyBatis

    MyBatis 本是 Apache 软件基金会 的一个开源项目 iBatis,2010 年这个项目由 Apache 软件基金会迁移到了 google code,并且改名为 MyBatis ,2013 年 11 月再次迁移到了 GitHub。

    170 引用 • 414 回帖 • 405 关注
  • Angular

    AngularAngularJS 的新版本。

    26 引用 • 66 回帖 • 531 关注
  • Android

    Android 是一种以 Linux 为基础的开放源码操作系统,主要使用于便携设备。2005 年由 Google 收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑及其他领域上。

    334 引用 • 323 回帖 • 25 关注
  • Bootstrap

    Bootstrap 是 Twitter 推出的一个用于前端开发的开源工具包。它由 Twitter 的设计师 Mark Otto 和 Jacob Thornton 合作开发,是一个 CSS / HTML 框架。

    18 引用 • 33 回帖 • 683 关注
  • 外包

    有空闲时间是接外包好呢还是学习好呢?

    26 引用 • 232 回帖
  • 服务器

    服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。

    124 引用 • 580 回帖
  • 一些有用的避坑指南。

    69 引用 • 93 回帖
  • Dubbo

    Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,是 [阿里巴巴] SOA 服务化治理方案的核心框架,每天为 2,000+ 个服务提供 3,000,000,000+ 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。

    60 引用 • 82 回帖 • 614 关注
  • Electron

    Electron 基于 Chromium 和 Node.js,让你可以使用 HTML、CSS 和 JavaScript 构建应用。它是一个由 GitHub 及众多贡献者组成的活跃社区共同维护的开源项目,兼容 Mac、Windows 和 Linux,它构建的应用可在这三个操作系统上面运行。

    15 引用 • 136 回帖 • 5 关注
  • Postman

    Postman 是一款简单好用的 HTTP API 调试工具。

    4 引用 • 3 回帖 • 1 关注
  • 安装

    你若安好,便是晴天。

    131 引用 • 1184 回帖 • 1 关注
  • OpenStack

    OpenStack 是一个云操作系统,通过数据中心可控制大型的计算、存储、网络等资源池。所有的管理通过前端界面管理员就可以完成,同样也可以通过 Web 接口让最终用户部署资源。

    10 引用
  • JWT

    JWT(JSON Web Token)是一种用于双方之间传递信息的简洁的、安全的表述性声明规范。JWT 作为一个开放的标准(RFC 7519),定义了一种简洁的,自包含的方法用于通信双方之间以 JSON 的形式安全的传递信息。

    20 引用 • 15 回帖 • 21 关注
  • Sandbox

    如果帖子标签含有 Sandbox ,则该帖子会被视为“测试帖”,主要用于测试社区功能,排查 bug 等,该标签下内容不定期进行清理。

    379 引用 • 1221 回帖 • 588 关注
  • Sublime

    Sublime Text 是一款可以用来写代码、写文章的文本编辑器。支持代码高亮、自动完成,还支持通过插件进行扩展。

    10 引用 • 5 回帖 • 1 关注
  • 宕机

    宕机,多指一些网站、游戏、网络应用等服务器一种区别于正常运行的状态,也叫“Down 机”、“当机”或“死机”。宕机状态不仅仅是指服务器“挂掉了”、“死机了”状态,也包括服务器假死、停用、关闭等一些原因而导致出现的不能够正常运行的状态。

    13 引用 • 82 回帖 • 50 关注
  • FFmpeg

    FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。

    23 引用 • 31 回帖 • 8 关注
  • 程序员

    程序员是从事程序开发、程序维护的专业人员。

    541 引用 • 3529 回帖
  • OpenShift

    红帽提供的 PaaS 云,支持多种编程语言,为开发人员提供了更为灵活的框架、存储选择。

    14 引用 • 20 回帖 • 611 关注
  • 30Seconds

    📙 前端知识精选集,包含 HTML、CSS、JavaScript、React、Node、安全等方面,每天仅需 30 秒。

    • 精选常见面试题,帮助您准备下一次面试
    • 精选常见交互,帮助您拥有简洁酷炫的站点
    • 精选有用的 React 片段,帮助你获取最佳实践
    • 精选常见代码集,帮助您提高打码效率
    • 整理前端界的最新资讯,邀您一同探索新世界
    488 引用 • 383 回帖 • 4 关注
  • 面试

    面试造航母,上班拧螺丝。多面试,少加班。

    324 引用 • 1395 回帖 • 4 关注
  • 又拍云

    又拍云是国内领先的 CDN 服务提供商,国家工信部认证通过的“可信云”,乌云众测平台认证的“安全云”,为移动时代的创业者提供新一代的 CDN 加速服务。

    21 引用 • 37 回帖 • 519 关注
  • 分享

    有什么新发现就分享给大家吧!

    244 引用 • 1762 回帖
  • CAP

    CAP 指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得。

    11 引用 • 5 回帖 • 582 关注