闭关十几天,我完成了我的毕业设计

Posted 前端杂货铺

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了闭关十几天,我完成了我的毕业设计相关的知识,希望对你有一定的参考价值。

个人简介

👀个人主页: 前端杂货铺
🙋‍♂️学习方向: 主攻前端方向,也会涉及到服务端(Node.js)
📃个人状态: 在校大学生一枚,已拿多个前端 offer(秋招)
🚀未来打算: 为中国的工业软件事业效力n年
🥇推荐学习:🍍前端面试宝典 🍉Vue2 🍋Vue3 🍓Vue2&Vue3项目实战 🥝Node.js🍒Three.js
🌕个人推广:每篇文章最下方都有加入方式,旨在交流学习&资源分享,快加入进来吧

文章目录


一、前言

文末有投票,欢迎大家积极参与~~

大家好,这里是 前端杂货铺。回首一看,已经 近五十天 天没有更文了(深表歉意)。因为前段时间一直在 忙工作和毕设上的事,也没怎么学习新知识,就一直拖着没有更新…

别的不多说,接下来,请君听我讲述一下我这十几天的毕设历程吧!

二、毕设经历(上)

1、初期

我是从三月上中旬开始请假的,虽然在这之前也利用下班时间做了几天,但下班后的编码效果并 不尽人意。

因为后端(Node.js)的很多东西还不会,数据库设计的也不太合理,再加上每天晚上都会有一些报错的问题解决不了,那段下班后做毕设的时光真的很糟糕…

在迷茫与急躁中度过了几天,之后我便决定请一段时间的假,“全职” 来做毕业设计!

我的毕设从 UI 设计与复现数据库设计后端接口设计与实现前后端交互 等都是自己 全权负责 的,自我感觉任务量还是比较大的(因为之前并没有这种全栈的开发经历)。但好在结果还不错,我用了 十几天的时间较完整地(因为现在还有些东西需要优化)完成了我的毕业设计!

2、明确功能

在我们拿到毕设课题之后,我们就要对我们要实现的功能有个大致的了解了。其实不管是什么功能,都离不开增删改查,只不过是实现的方式和困难程度不太一样。

我的毕业设计的功能包含:

  • 注册(包括用户是否已存在,格式校验)
  • 登录(用户名密码对比,格式校验)
  • 个人中心(修改个人信息、修改密码)
  • 分类展示(按类型进行展示)
  • 点赞(点赞或取消点赞某一个作品)
  • 评论(评论某个作品)
  • 评分(给某个作品评分并且只能评一次,并计算出综合评分)
  • 关注(关注和取消关注,自己不能关注自己,获取关注列表和粉丝列表并实现相应的跳转)
  • 管理(增删改查)
  • 交易(购买人减金币,被买的加金币,金币不够不能购买,自己不能购买自己的,生成相应的订单)

难度上来说,中规中矩。很多功能还是很常见的(但有些问题在解决的过程中也是困难重重,技术的广度和深度很是欠缺…)

3、技术选型

其实本科的毕业设计中【xxx管理系统】或者【xxx平台】占的居多,我的选题就是一个【xxx平台】类型的。

由于我对 Java 了解的不多,所以在 服务端 的技术选型上我使用了 Node.js

我毕设总体的技术选型:【Vue + Element ui + Koa2 + Sequelize + MySQL】,如果你对后端技术不是很了解,但前端知识掌握的不错的话,我觉得使用 Koa2 或者 Express 将会是个不错的选择(好学易上手)!

4、数据库模型设计

在数据库模型设计上,还是要根据自己的业务做出相应的设计。其实数据库模型的设计是 很重要 的一步,如果前期对数据库模型设计的不好,可能后期做工作的时候需要重新进行数据库模型的设计,那时候就会带来一些不必要的麻烦了…

说实话,我对数据库模型的设计也没有太多见解,大家多去看一些优秀毕设的数据库模型设计做一下参考吧!

但总的来说,我们要提前把需要的字段都设计好,还要设计好 主键、外键、以及各个字段的类型 等。

如果后端使用的是 Node.js,那么推荐你 使用 sequelize 去操作 MySQL(真的很好用!)

三、毕设经历(中)

1、搭架子

在明确完需求和和设计好数据库表结构之后,我们就要着手把我们项目的架子搭起来了。

如果你也是采用 前后端分离 的方式,那么就可以 创建两个工程,一个前端一个后端(我刚开始还犹豫在一个文件夹下怎么建目录更合理的问题,后来发现前后端分开创建是个更好的方式)。

前端 Vuevue create xxx(前提是有node环境,并且安装了相应版本的脚手架),选择你要使用的 vue 版本(Vue2 | Vue3),之后可以按需进行一些配置,这个其实没啥难度,按需选择就可以了。

后端 Koa2:可以参考一下这篇文章 ——> Koa2环境搭建

2、解决跨域

毕竟这是前后端分离的项目,我们首先要解决的问题就是 跨域,要不然前后端根本交互不起来。

我们常用的解决跨域的方式有两种, Nginx 和 CORS

我是使用的 CORS 跨域,因为这样可以少启动一个服务,还是挺香的。

CORS 解决跨域:

首先要安装 koa2-cors

npm install --save koa2-cors
/**
 * @description CORS解决跨域
 * @author zahuopu
 */
const CORS_CONFIG = 
    origin: 'http://localhost:8080', // 前端地址
    credentials: true, // 是否携带 cookie
    allowMethods: ["GET", "POST", "DELETE", "PATCH"], // 设置所允许的HTTP请求方法
    exposeHeaders: ["Authorization"], // 让浏览器能访问到其他的响应头
    allowHeaders: ["Content-Type", "Authorization", "Accept"] // 设置服务器支持的所有头信息字段


module.exports = 
    CORS_CONFIG

之后在 app.js 文件中引入并使用即可

const Koa = require('koa')
const cors = require('koa2-cors')
const  CORS_CONFIG  = require('./conf/cors')

app.use(
  cors(CORS_CONFIG)
)

这样跨域的问题就解决了,我们再写接口返回的数据就可以在前端进行相应的展示了。

3、功能实现

总体的架子搭好之后,我们就可以着手去实现 设计并复现前端UI,实现接口,前后端交互等 工作了。

当然,在这个过程中肯定不会是一帆风顺的,各种各样的报错你都可能会遇到,但不要着急,看一下报错的原因,自己搞不懂的错误就去网上查资料,相信自己问题肯定会解决的。

我在功能实现上就遇到了各种各样的问题,有时候也是没有头绪,但经过了一番思考,查询资料及调试后也都顺利的解决了。

千万不要把毕设想的多么难,其实本科的毕业设计难度真的没那么高,基础差不多足矣完成它,千万不要畏惧。只要思想不滑坡,方法总比困难多!

四、毕设经历(下)

在把基本的功能都实现之后呢,我们的项目中还存在一些的小 bug(包括一些需要优化的点)。

我们要知道一个完整的项目必定是功能健全,能抗能打的。我们把基本的功能要求实现后,并不代表我们已经完成了毕业设计。就像玉石一样,需要我们反复打磨抛光!

在这一点上,我还没有做好,接下来会利用下班后的时间进行一系列的优化!

五、写在最后

毕业设计是我们大学四年 最后一个 也是 最有意义 的一个作业了(算是给我们的这四年一个交代吧),希望大家都能顺利的完成它并顺利的毕业!

各位加油,有什么问题和想法欢迎一起交流讨论!


七年Java开发,在工资被新员工倒挂后,32岁的我选择裸辞,闭关三个月后拿到阿里Offer,定级P7!

前言

今年32岁,我从公司离职了,是裸辞。

前段时间,我有一件事情一直憋在心里很难受,想了很久也没找到合适的人倾诉,就借着今天写出来。

我一个十几年开发经验,七年Java经验的职场老人,我慢慢涨上来的工资竟然被一个应届生倒挂了!

当我得知这个消息的时候,我的心是拔凉拔凉的。

我现在只有一个想法,我想跳槽!

可是,我现在已经32岁了,这让我一度陷入了纠结与迷茫。

 

应届生倒挂老员工

作为一个在公司待了六年的老员工,我一直兢兢业业,为了公司的项目能够按期上线,每天熬夜,加班加点。除了自己的本职工作外,我还无偿帮公司培训,分享技术,带新人,做了很多自己职责之外的问题。

但是我感觉自己并没有得到自己应有的回报。

首先,作为一个六年的老员工,我的待遇增长并没有增长多少,不管是薪资还是福利待遇,都和刚进公司的时候没太大差别,另一方面,我的职级也没有升过,干了这些年,仍旧是一个普通的工程师。

最让我无法忍受的事情是,在某次的饭桌上我得知我带的一个入职3个月的应届生小新人,他的工资居然和我差不多(我17K+,他18K+)但是,通过几个月的相处我发现他的技术没我好,学历和我一样也就是个普通本科。

后面我稍微打听了一下另外几个同期应届生的工资,也没比我低多少。

终究意难平

那段时间里,我的心情十分失落,感觉公司对我特别不公平。

我对公司这种应届生倒挂老员工的行为感到十分寒心,他把我们这些为公司抛头颅洒热血的老人放在什么位置?

凭什么我在公司辛辛苦苦打拼几年,你一个应届生一进来就比我的薪酬还高?

半夜逛知乎,我看到了一个问答:那些在一个公司死磕了5~10年的人最后都怎么样了?

有一个回答戳中了我的心:跳槽了。

我不禁问自己:我还留在这里有什么意思?不如离开!

于是,我直接裸辞了。

裸辞之后

虽说一开始是觉得有些冲动,毕竟32岁了,上有老,下有小,家庭压力不小,但是我实在是无法在这样的公司待下去。

其实,在上家的时候,也不乏猎头联系我,只是我念着公司当初的好,一直没有答应,现在想想,是时候开始新的工作了。

一开始,我并没有把互联网公司所谓的“35岁危机”放在心上,想来也就是技术不到家的人制造的焦虑吧,直到我发现自己差不多投了上百份简历,但是收到的面试通知就那么几个,而且基本上都是一些小厂,几乎没有大厂。而且打从自己离职后,以前那些联系过的猎头都消失了,我开始变得焦虑。

裸辞一时爽,再职火葬场。大概就是说的我吧。

后面我拜托了在大厂的朋友帮忙内推,得到了面试的机会,但是现场面试还是没有通过。看在朋友的面子上,HR提点了我,他说,我现在掌握的技术泛而不精,深度不够,而且我掌握的技术也不是现在那些大厂需要的热门方向。以我的现状,很难达到现在大公司的用人标准。

虽然有些伤人,但是这也是事实。我也是在这个时候才突然发现,自己已经很久没有主动向这个世界学习了。高不成低不就,这就是我现在的状态,小厂的机会是不缺的,但是工资也就那样,我怎么可能甘心。

回炉重造

我始终觉得,做为一个程序员,这一生起码要进一次大厂。

感觉年纪越大,机会越渺茫,所以,这次我不打算放弃。

自那次内推不成功后,我就一直在闭关,买了很多书,打算好好补一下基础。

此外我还付费咨询了几位业界大佬,询问了很多行业和技术问题,也算是有不少收获。

那段时间过的很充实,老婆也很支持我,似乎又找回了学生时代追求技术的感觉。

闭关修炼了三个多月后,我让一位阿里的朋友帮我内推了,在进行了一番问答后,我顺利的拿到了阿里P7的offer。

面试官感慨称,其实一开始是对我不抱太大的期望的,但是结果出乎他的意料。我只是笑了笑,那段时间的焦虑我没有提。

下面是我对这一段时间学习的一些总结。

再就业感想

Java技术更迭速度快,如果不想被淘汰,就要掌握主动权,而主动权只有两个字:进阶。

现在的被动离职很多时候都是因为你目前的工作没有很大的技术含量,很容易被取代,被新手替换。这样的工作,换谁都可以完成。主动离职也不过保留了一丝尊严。

前面也说了,现在的中国市场并不缺人,在这样的情况下,你的年龄增长了,不能加班了,但是你的工资会随着工龄的增加而增加,那么你的价值在老板眼里就变低了,他请你的钱足够他去请一个甚至两个更加年轻能加班的低价劳动力了,为什么还要留下你呢?反正你的工作其他人也很好上手。

相反的情况,如果你的工作内容比较“高级”,有一定难度,那些新人不是那么容易上手,别人不是那么容易替代,那么你就掌握了工作的主动权,不会轻易被优化。

这也就是中高级Java程序员,想要达到中高级的水平就需要进阶学习。

所谓进阶,不仅是技术层面需要掌握当下像腾讯,阿里巴巴,字节跳动这些大厂看重和常用的技术,还要懂得底层原理,下面我将会根据这些来进行知识点的整理。

知识点整理

Java 学习资料,包含了 Java 工程师必学的四大开源框架–MyBatisSpringSpring MVCSpring Boot视频资料大厂面试题等,想要的同学可以点击这里免费领取。

  

 程序员必备书单

《Java核心知识点合集(283页)》

内容涵盖:Java基础、JVM、高并发、多线程、分布式、设计模式、Spring全家桶、Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、MongoDB、Redis、MySQL、RabbitMQ、Kafka、Linux、Netty、Tomcat、数据库、云计算等

《Java中高级核心知识点合集(524页)》

《Java高级架构知识点整理》

《1000道 互联网Java工程师面试题 (485页)》

以上【阿里P7 Java开发架构师学习笔记】七大模块整套学习资料均免费分享,需要的小伙伴,点击下方的蓝色字体可以获取,欢迎来白嫖哈~

点击这里的蓝色字体可以直接获取
 

以上是关于闭关十几天,我完成了我的毕业设计的主要内容,如果未能解决你的问题,请参考以下文章

运维一款免费云服务十几天的心得记录

Android课程设计第六天欢迎界面(跳转)

移动端App UI 设计入门与实战

做用户体验设计,你不得不知的18件事

Alpha冲刺第4天

Alpha冲刺第6天