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

2023-11-13

面试是每个程序员都逃不过的一环。在我面试过的程序员中,有一半的程序员都描述不好自己做过的项目,有些都讲不到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+阿里云授权接口,实现授权播放。

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

团队组成和角色担当

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

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

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

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

面试指南之如何介绍做过的项目 的相关文章

随机推荐

  • 【数据库系统概论】第七章:数据库设计

    视频 参考 文章目录 概念设计 E R图 逻辑结构设计 把E R图转化为表 物理结构设计 概念设计 E R图 E R图 矩形 实体 椭圆 属性 菱形 联系 联系 两个实体之间的联系 1 1 一对一的联系 身份证和人民 1 N 一对多的联系
  • Java 基于Excel模板实现导出Excel并插入数据

    本案例基于spring boot架构 一 需求介绍 给定一个Excel模板 在指定位置插入数据 然后将生成的excel导出 二 实现方法介绍 1 准备Excel模板 模板中要插入数据的地方用 代替 其实就是占位符 与mybatis的sql语
  • openwrt luci使用本地软件源更新软件包,更新package.sig签名

    官方的源在国外 一般访问速度比较慢 本地源可以快速解决这个问题 有时自己编译的软件升级发布版本使用本地源 能够更好的维护与安装 为了保证兼容性 尽量使用同一个源提供的SDK打包的源软件 把编译出来的ipk文件上传到本地服务器 在索引中添加新
  • HBase讲解

    1 HBase在Hadoop中的位置 HBase Hadoop Database 是一个开源的 面向列 Column Oriented 适合存储海量非结构化数据或半结构化数据的 具备高可靠性 高性能 可灵活扩展伸缩的 支持实时数据读写的分布
  • 竞赛选题 基于机器视觉的车道线检测

    文章目录 1 前言 2 先上成果 3 车道线 4 问题抽象 建立模型 5 帧掩码 Frame Mask 6 车道检测的图像预处理 7 图像阈值化 8 霍夫线变换 9 实现车道检测 9 1 帧掩码创建 9 2 图像预处理 9 2 1 图像阈值
  • Vue+elementUI el-input输入框手机号校验

    1 限制input框内只能输入数字 且为11位 type number 数字类型 maxlength属性对type number 类型的输入框无效 ninput if value length gt 11 value value slice
  • 达梦数据库教程:docker安装DM8数据库

    安装前准备 软硬件 版本 终端 X86 64 架构 Docker 2023 年 6 月版 下载 Docker 安装包 请在达梦数据库官网下载 Docker 安装包 导入安装包 拷贝安装包到 opt 目录下 执行以下命令导入安装包 docke
  • windows下nginx的安装及使用

    1 下载nginx http nginx org en download html 下载稳定版本 以nginx Windows 1 12 2为例 直接下载 nginx 1 12 2 zip 下载后解压 解压后如下 2 启动nginx 有很多
  • 为什么寄存器比内存快?

    原文出处 Mike Ash 译文出处 阮一峰 计算机的存储层次 memory hierarchy 之中 寄存器 register 最快 内存其次 最慢的是硬盘 同样都是晶体管存储设备 为什么寄存器比内存快呢 Mike Ash写了一篇很好的解
  • Vue使用routerlink实现点击导航栏进行页面跳转

    实现内容 如图所示 要实现的是 点击导航栏中的Data Set Data Mining Result List Model List区域跳转至对应界面 使用router link来实现跳转 1 如代码所示 router link后面的to需
  • linux笔记--文件内容操作和历史命令

    目录 cat命令 more命令 less命令 head命令 tail命令 sed命令 vim编辑器 history命令 clear命令 cat命令 查看文件内容 标准输出 补充 1 标准输出 在linux中规定为输出到屏幕 2 标准输入 在
  • 如何用cin读入空格

    在我们使用cin读入字符时 默认是跳过中间的空格以及可能的制表符和换行符 那么 如何让其不跳过空格呢 我们可以使用操作符noskipws来实现 cin gt gt noskipws 设置cin读取空白符 char ch while cin
  • 激光SLAM7-基于已知位姿的构图算法

    1 通过覆盖栅格建图算法进行栅格地图的构建 1 1 Theory 1 2 code 这里没有判断idx和hitPtIndex是否有效 start of TODO 对对应的map的cell信息进行更新 1 2 3题内容 GridIndex h
  • 服务器的相关知识

    服务器的分类 服务器指一个管理资源并为用户提供服务的计算机 通常分为文件服务器 数据库服务器和应用程序服务器 对于普通PC来说 服务器在稳定性 安全性 性能等方面都要求更高 因此CPU 芯片组 内存 磁盘系统 网络等硬件和普通PC有所不同
  • 主动配电网SOCP_OPF学习笔记(4)配电网重构

    配电网中的开关一般可分为联络开关和分段开关 联络开关负责转供备用和网络结构优化 常开 分段开关用于连接两条线路段的开关 为常闭 通过改变这两种开关的状态来调整网络拓扑结构 称为网络重构 加入联络开关支路会形成弱环网 1 辐射状拓扑约束 为了
  • 开源的推荐系统简介TOP 10

    最近这两年推荐系统特别火 本文搜集整理了一些比较好的开源推荐系统 即有轻量级的适用于做研究的SVDFeature LibMF LibFM等 也有重 量级的适用于工业系统的 Mahout Oryx EasyRecd等 供大家参考 PS 这里的
  • 利用chatgpt快速初步学习pandas

    最近体验了chatgpt作为编程助手的功能 确实很厉害 只要你擅长提问 找答案很精准快捷 由此可以想到是否能够通过系列提问 快速上手一个工具 以pandas为例 开始提问学习 是什么 有什么用 我需要用python处理表格数据 给我推荐现在
  • tp1900芯片对比7621a_貌似很多人看不起MTK,其实MTK7621A已经很给力了。

    以下内容为转载 和大家一起学习一下MTK7621A相关知识 全球无线通讯及数字多媒体IC设计领导厂商联发科技股份有限公司 MediaTek Inc 2013年11月宣告推出面向802 11ac高端路由器的全新双核网络芯片MT7621A MT
  • Python中将图片用base64进行编码

    我们可以使用base64模块 通过base64 b64encode 函数将图片直接转换为base64编码 import base64 假设a目录下有123 jpg图片 with open a 123 jpg rb as f read f r
  • 面试指南之如何介绍做过的项目

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