专栏首页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+阿里云授权接口,实现授权播放。

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

团队组成和角色担当

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


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

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

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

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 面试时,怎么介绍自己做过的项目?

    需求或机会--投资人在线上购买理财产品(平台代发布) 给借款人提供一个借款的渠道, 海尔(平台方)作为做一个监督方,从中抽取佣金; 第三方提供理财产品、保险、...

    张树臣
  • 如何向面试官介绍你的项目

    不知道大家面试的时候是怎么介绍自己的项目的?大家可以想一下当时介绍项目的时候是否把要点都说了,是否把面试官最关注的问题回答了?假如你说的都没有问题就问题不大。但...

    桃翁
  • 面试时如何介绍自己的项目经验?

    在面试时,经过寒暄后,一般面试官会让介绍项目经验 。常见的问法是,说下你最近的(或最拿得出手的)一个项目。

    Java技术栈
  • 如何在面试中介绍自己的项目经验(面向java改进版) 如何在面试中介绍自己的项目经验

    本人于3年前写的博文,如何在面试中介绍自己的项目经验,经过大家的捧场,陆续得到了将近7万个点击量,也得到了众多网站公众号的转载,不过自己感觉,这篇文章更...

    用户1153489
  • 如何在面试中介绍自己的项目经验?

    在面试时,经过寒暄后,一般面试官会让介绍项目经验 。常见的问法是,说下你最近的(或最拿得出手的)一个项目。

    Java团长
  • 如何在面试中介绍自己的项目经验

    在面试时,经过寒暄后,一般面试官会让介绍项目经验 。常见的问法是,说下你最近的(或最拿得出手的)一个项目。

    好好学java
  • 如何在面试中介绍自己的项目经验

    在面试时,经过寒暄后,一般面试官会让介绍项目经验 。常见的问法是,说下你最近的(或最拿得出手的)一个项目。

    Java学习
  • 如何在面试中介绍自己的项目经验

    在面试时,经过寒暄后,一般面试官会让介绍项目经验 。常见的问法是,说下你最近的(或最拿得出手的)一个项目。

    攻城狮的那点事
  • 用商城维护类项目,讲下应届生如何在面试中介绍项目,如何准备面试

    本人之前写的面试系列文,一直是针对技术和面试技巧,所以在本文里,就将结合具体的商城维护项目,给出介绍项目经验的做法。

    用户1153489
  • 如何在面试中介绍自己的项目经验,很重要!

    在面试时,经过寒暄后,一般面试官会让介绍项目经验 。常见的问法是,说下你最近的(或最拿得出手的)一个项目。

    芋道源码
  • 如何在面试中介绍自己的项目经验?如果有以下几点,就悬了

    在面试时,经过寒暄后,一般面试官会让介绍项目经验 。常见的问法是,说下你最近的(或最拿得出手的)一个项目。

    java进阶架构师
  • 为什么现在的开发都要懂测试了?这一份书单告诉你!

    Python是一种跨平台的计算机程序设计语言。是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版...

    黄小斜学Java
  • 这年头不会Python看来是不行了,推荐一份Python书单!

    Python是一种跨平台的计算机程序设计语言。是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版...

    黄小斜学Java
  • 干货 | 简历模板分享与面试经验之谈

    过于简单的描述项目,没有深入挖掘这个项目中的价值,自己在项目中扮演的角色(负责哪一块),解决了什么问题,有遇到比较困难的事情,如何去思考和解决,自己的优势等等

    前端皮皮
  • 干货 | 简历模板分享与面试经验之谈

    今天有幸第一次面试别人,想分享一下感受,希望大家能从中都有所收获,文末附上 B站面试分享、简历模板

    AI算法与图像处理
  • 福利:免费送50 份价值 129 元的《Android 面试指南》

    又到了一年“金三银四”,是找工作的最佳季节了,估计很多朋友开始考虑自己的职业生涯问题了,是否拿完年终奖之后再去外面找找机会?或者看看在新的一年里如何提高自己的技...

    腾讯Bugly
  • Pytest基础指南之常用配置项及实例

    在前文Pytest基础指南之APIs集大体介绍了Pytest的API集以及大体能力,本文主要介绍其中的配置项这块,通过具体的实例来说明配置使用方法,当然了如果你...

    苦叶子
  • 简历上的项目经历怎么写 ?这 3 条原则不可忽视 !

    不过还是有很多学生朋友来问我“没有项目怎么办”,诚然,确实有不少同学没有实习经历,又没有什么像样的项目经历,对于这样的同学,简历上的项目经历难道只能空着了吗。

    黄小斜学Java
  • 工具 | 编程书单:十本Python编程语言的入门书籍

    本文与大家分享一些Python编程语言的入门书籍,其中不乏经典。我在这里分享的,大部分是这些书的英文版,如果有中文版的我也加上了。有关书籍的介绍,大部分截取自是...

    CDA数据分析师

扫码关注云+社区

领取腾讯云代金券