前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >面试指南之如何介绍做过的项目

面试指南之如何介绍做过的项目

作者头像
甲蛙全栈
发布2020-11-24 10:46:25
1.6K0
发布2020-11-24 10:46:25
举报
文章被收录于专栏:Java全栈Java全栈

面试是每个程序员都逃不过的一环。在我面试过的程序员中,有一半的程序员都描述不好自己做过的项目,有些都讲不到3分钟就结束了,听完我都不知道这个项目是做什么的,所以,决定写下这遍手记,希望对正在找工作的你有所帮助。

在面试过程中,程序员都需要介绍自己做过的项目,有的是在工作中做过的,有的是业余时间完成的,有的是团队合作完成的,有的是个人独立完成的。丰富的开场是赢下面试的基础。我总结了如下几个方面的项目介绍流程,供大家参考:

项目描述

这一部分可以先总后分,总体介绍下描述下这个项目是做什么的,是否已上线,用户量有多大,然后介绍这个项目分为了哪些模块,如果是微服务,那可以介绍下有哪些应用。这一部分可以让面试官对你做的项目有个大体的了解,有些公司对行业有要求,比如支付公司、银行一般都要求有支付行业的项目经验。

团队组成

可以这样说:这个项目,加上我,总共多少人,其中几个是开发,几个是测试。也可以说几个前端,几个后端。 这一部分可以让面试官了解你这个项目的规模,参与规模大的项目肯定比规模小的项目有优势。

角色担当

可以这样说:我在团队里担当核心(前端、后端)开发,负责核心模块(核心功能)的开发,比如权限管理模块、登录注册功能、文件上传等。

技术架构

接着,可以介绍项目中用到的技术,前端用了xx框架,后端用了xx框架,持久层用了xx框架,数据库用的xxx。中间件用到了redis等,除了框架,还可以介绍一些工程化技术,比如jar包依赖使用maven,代码管理使用git等

场景解决方案

当你介绍完上面的技术架构后,面试官可以会问你:

redis在什么场景中用到?为什么要用redis? 为什么用git,不用svn?

所以我们需要提前准备好一些场景,描述一下用什么技术解决什么业务需求。 每个项目的场景都不太一样,需要结合各自的项目做准备。 比如电商项目,可能有添加购物车,支付,抢购秒杀等场景。 比如后台管理系统,可能有单点登录、报表导出等场景。

以上就是项目介绍的通用框架,在简历中,我们也可以用上面介绍的这个框架来写【项目介绍】。


很多同学在学习了《Spring Cloud + Vue 前后端分离 开发企业级在线视频课程系统》这门课后,都想将这个项目写到简历中,带到面试里,但是不知道该如何介绍。下面我们就以这个项目为例,看看如何介绍这个项目。

项目描述

这是一个类似慕课网的在线视频课程项目,也可以作为网校平台,项目分为三大块,前端网站+管理控台+服务端。 【管理控台】:供内部运营人员使用,用于管理课程、章节、讲师等核心精选信息,也包含了用户资源权限等系统管理。 【前端网站】:供网站会员使用,可以报名课程之后开始学习课程。 【服务端】:为管理控台和前端网站提供各种接口,具体分为了注册中心、网关路由、系统模块、业务模块、文件模块、公共模块,共6个模块。

技术架构

图片描述
图片描述

整个项目采用目前最热门的前后端分离架构 管理控台和前端网站使用前端框架Vue CLI UI使用响应式UI Bootstrap,一套页面兼容PC、PAD、移动端 服务端使用微服务框架Spring Cloud 持久层使用Mybatis框架 数据库使用Mysql 中间件使用了Redis Jar包管理使用Maven 代码管理使用Git。 (以上这些技术都是目前企业级项目开发中常用的,需要熟练掌握) 同时项目中还用到了阿里云的服务,比如OSS服务,用来存储图片视频;视频点播服务,用来对视频做加密转码并授权播放,保证视频安全。

场景解决方案

代码生成器:自己制作了代码生成器,集成到项目中,使用freemarker模板引擎(课程中有介绍怎么制作代码生成器),用于生成service层、controller层,dto层和vue界面代码,配合上mybatis-generator生成持久层代码,极大的提高了开发效率。在一张表设计完成后,只要1分钟,就可完成单表的增删改查管理功能(包含界面)。 单点登录:使用统一登录标识token+分布式缓存redis的方案,实现单点登录。 短信验证码注册:包括了短信验证码生成和验证码校验,并对验证码的时效性做了控制,比如5分钟有效;同一手机号1分钟内只能发送一次验证码;验证码只能使用一次等。 图片验证码登录:使用redis存储验证码,图片验码登录,可以有效防止撞库攻击、暴力破解,保障用户信息安全。 权限管理:使用经典的用户+资源+角色的权限设计方案,适用于绝大多数项目的权限管理,纯手工打造,未使用任何现成的权限框架,代码没有盲区,安全,易扩展。 文件上传:实现基本的Vue+SpringBoot文件上传功能 分片上传:当文件较大时,文件上传受网络影响较大,容易失败。在上面基本的文件上传的基础上,扩展成分片上传,提高大文件的上传成功率。 断点续传:在分片上传的基础上,再扩展出断点续传,当传到某一个分片失败了之后,下次再上传同一文件时,从余下的分片开始上传。 极速秒传:对于同一个文件,上传过一次后,再次上传时,会直接提示极速秒传成功,提高用户体验。 文件存储:项目中实现了两种文件存储方法,一是自己搭建文件服务器,二是使用阿里云OSS服务。(实际项目中推荐使用第二种,大大减少了运维工作) 视频加密:作为视频网站,视频安全是核心功能,这里用到了阿里云的视频点播服务(慕课网也是用的阿里云的视频点播服务)。使用接口直接和阿里云对接,实现控台统一管理 授权播放:视频经过加密后,需要授权,才能播放,这里我们使用阿里云aliplayer+阿里云授权接口,实现授权播放。

上面我举例了很多场景,实际在面试的时候,不一定要全部介绍,可以挑几个比较熟悉的着重介绍,其它的可以简单带过。

团队组成和角色担当

如果是一个人跟着课程一步一步做下来的,可以介绍整个项目从框架搭建到前后端代码开发,都是一个人完成的。


另外,还要自己准备一些常见的面试题,比如:

项目开发过程中遇到过什么问题? 这个需要平时积累了,将开发过程中,遇到过的比较难解决的点记录下来,可以这样回答:……这个问题解决后,很有成就感,成就感很重要,听起来有专研精神,不过只适合初中级程序员,高级程序员说成就感就有点掉价。

对我们公司有什么问题 这个需要提交了解要面试的公司的相关情况,至少让面试的人觉得你对他们公司还是有兴趣的,有提前了解。

最后祝所有的程序员都能面试顺利!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-07-02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 项目描述
  • 团队组成
  • 角色担当
  • 技术架构
  • 场景解决方案
  • 项目描述
  • 技术架构
  • 场景解决方案
  • 团队组成和角色担当
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档