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

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

团队组成和角色担当

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


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

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

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

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

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

  1. web前端新手面试指南:自我介绍

    web前端新手面试指南:自我介绍 面试时注意:自我介绍不能太长,也不能过短,3分钟左右最合适,尤其做为web前端技术方面的面试,更加要说到点上,我依次从学习方面.项目实践.未来规划这三个方面写下web ...

  2. 面试官:“你大学做过真实项目吗?”

    整个春招阶段,我收到很多粉丝吐槽,尤其是开发岗同学,不少同学都在面试官同一个问题上栽跟头:"同学,你做过真实落地项目吗?" 其实,国内开发岗用人需求依旧很大,但相比平时,企业招聘明 ...

  3. 百度前端fex-team团队面试指南

    注意 目前发现有其他人以 FEX 团队名义进行招聘,发出的邮箱皆为私人邮箱. 为防止在投递简历出现误会,在此提醒各位注意: FEX 团队没有以任何「个人名义或邮箱」进行招聘. 所有简历都以投递到 fe ...

  4. 软件测试面试,如何自我介绍?

    01 如何自我介绍 面试过程中一定要放慢语速,做到条理清晰.特别是做自我介绍时,可以适当多介绍自己会什么,有哪些重要经验. 例如: 面试官,上午/下午好. 我是XXX,今天来面试贵公司的软件测试工程师 ...

  5. 后端开发面试自我介绍_一定是最适合你的后端面试指南

    原标题:一定是最适合你的后端面试指南 本文转自公众号:Java面试通关手册 友情提示:阅读+独立思考的方式学习本文效果最佳.本文干货较多,如果大家觉得不错请转发给可能需要本文的朋友哦!最后,不要忘记给 ...

  6. 【日照百度推广seo】想要转行做SEO?《SEO面试指南》拿去!

    [ 日照百度推广seo]想要转行做SEO?<SEO面试指南>拿去!又到了一年一度的毕业季,不少同学发现学了四年的专业特别不好找工作,怎么办?当然是换换换专业,不换专业难道要等着毕业即失业吗 ...

  7. 想去Google做AI?先看完这套面试指南(附面试题)

     作者 | 阿司匹林 出品 | 人工智能头条(公众号ID:AI_Thinker) 凭借强大的技术实力和良好的工作氛围,Google 对求职者一直有着强大吸引力. 虽然 Google 在几年前就已经 ...

  8. 面试第一问:简单做个自我介绍吧,怎么回答才让面试官频频点头?

    面试第一问:简单做个自我介绍吧,怎么回答才让面试官频频点头? 前言 个人的基本信息,扬长避短 突出自己的技能 个人兴趣爱好与结尾 总体案例: 前言 面试问题第一问,99.99999%都是:请先做个自我 ...

  9. 去苹果做 AI 一共分几步?看看这套面试指南吧(附面试题)

    翻译 | 王柯凝 出品 | 人工智能头条(公众号ID:AI_Thinker) 苹果手机很常见,苹果工程师却不常见. 国内的网络上活跃着诸多 Google.微软.亚马逊.Facebook 的工程师,而且 ...

  10. 给软件工程师、数据科学家和数据工程师的面试指南:该做与不该做

    亚马逊这样的公司有 14 项领导原则 .他们不想仅仅雇佣一个数据科学家或软件工程师.对于许多只进行一次或两次面试的面试者来说,这可能没有那么明显,因为你太专注于回答面试的技术部分.但是,在你进行技术面 ...

最新文章

  1. 以太坊开发 发行代币的增发功能 并实现转到钱包 和买卖的功能
  2. boost::regex模块信用卡匹配相关的测试程序
  3. Tomcat servlet工作原理
  4. 12个Visual Studio调试效率技巧
  5. 那是两个小时我不会回来
  6. 【转】【经典算法】——KMP,深入讲解next数组的求解
  7. 不等式解集怎么取_6.初中数学:一个不等式的解集,都是另一个不等式的解,求a的取值范围?...
  8. wincc7.5下载安装教程(Win10系统)
  9. 论【软件工程是不是教会不怎么会写程序的人软件开发】
  10. 渗透测试流程-全(仅供学习,知识分享)
  11. excel vba saveas 另存为使用方法
  12. 电脑故障恢复控制台命令
  13. python可读性好吗_Python 输出可读性更好的时间文本
  14. 在模仿学习中进步的智能机器人
  15. 面试官问:浏览器输入 URL 回车之后发生了什么?
  16. 企业微信私聊安全吗?管理员看得到吗?
  17. linux查看cpu核数命令,centos查看CPU以及核数命令
  18. Python PDF转Word,以及提取Word中图片里的文字
  19. 礼物说,一款小程序给你生活最好的选择
  20. javascript 进制转换(2进制、8进制、10进制、16进制之间的转换)

热门文章

  1. 证监会对6宗内幕交易案件作出行政处罚 涉及现代制药等
  2. 三星i9050手机贴膜
  3. 已解决FileNotFoundError: [Errno 2] No such file or directory: ‘D:\\1. PDF‘
  4. Garden Plannerfor Mac /win:轻松创建您的理想园林绿化设计
  5. JZOJ6675. 【2020.05.30省选模拟】交通网络
  6. 【Python】zip()函数的用法,将多个序列组合后再生成多个序列。接受任意类型,并可以输出任意类型
  7. cubemxc工程修改后,keil文件下面带有星花
  8. SHELL病毒简介(转)
  9. 1.Yolov5学习率调整策略
  10. java io 系列之1 decorator模式