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

1 面试前的准备要点

1 运行通本项目,尤其地,了解用JPA访问数据库,以及用Eureka等组件管理项目的做法。

2 背若干配置参数,比如JPA访问数据库是如何做配置,面试中要以此证明自己做过。

3 了解项目敏捷开发的模式,因为你是要把这个项目介绍成商业项目,而不是学习项目。

4  看如下项目管理方式:用Maven + Git管理代码,用Maven+jenkins打包部署,用junit作单元测试,以此进一步证明这是商业项目。

准备这些技能的目的是,想办法把这个项目当商业项目来介绍,因为大多数毕业生只做过学习项目,没有在公司里干过,你只要证明出你有,哪怕是三个月半年,这就是优势。而在学习项目里,不会接触到敏捷开发和项目管理软件,当你准备好上述第3第4点后,你就能证明你做过商业项目。

2 进入面试环节,首先是自我介绍

您好,我叫xx,目前虽然没有在公司干过,但大三大四的时候,帮老师做过实习项目,加起来有半年时间(强调你做过商业项目,这很有优势),在实习过程中,有做过一个社区超市的维护项目(别说商城项目,因为一听就是学习项目,但如果是小型维护项目,还比较可信些),这个项目是用敏捷开发方式来管理,在其中用到了Spring Boot框架,用JPA连接数据库,前端用过VUE+jquery框架,用Maven+Git管理代码,用jenkins打包,用junit作单元测试,在其中我不仅写代码,还参与过线上问题排查工作,还解决过因没写hashcode方法而导致的问题。(这里别详细说业务细节,因为面试官不关心,你就说这个项目里你用过什么技术,同时更要强调你有分析解决实际问题的能力)

说明:在自我介绍环境,首先要展示你的项目经验以及技能,同时证明这个项目是商业项目,所以其他的,比如业务需求等,不用展开。同时,面试前一定要准备,不仅要准备自我介绍的说辞,更要准备你提到的技术,其实这些不难,哪怕是应届毕业生,网上查下也能说出来。

3 然后一定是介绍项目,面试官会让你介绍最近做过的项目

3.1 分析

你在自我介绍阶段,已经概要性说出你掌握的技能,以及项目经验,这里就要结合项目经历,达到如下的目的。

1 进一步证实你的项目是商业项目,而不是学习项目。

2 结合项目说明关键技术,比如JPA和Eureka等用法,否则这些技能只能算学习项目。

3 展示你有分析问题和解决问题的能力。

4 同时说明,你在项目里不仅参与过编码,更参与过测试、业务分析等工作。

5 展示自己的责任心,肯加班,肯学习。

同时切记,你别在这阶段犯如下的错误,因为这些错误非常普遍。

1  再次强调,要通过说项目开发模式和用过的项目管理软件,说明这是商业项目,就在公司里能挣钱的项目,别说成学习项目,很多候选人项目会默认按学习项目来介绍,这虽然聊胜于无,但无法证明相关技术在实际项目里用过,相反,你一旦说成了半年商业项目经验,那么你就有代差优势。

2 要结合项目说技术,但别大谈特谈业务需求,比如说订单管理模块怎么做,因为面试官不关心这个。

3 过于突出项目规模和用到的新技术,忽略基础技能。对于应届生而言,其实能证明有增删改查的经验,那就足够了。证明有分布式等值钱经验,也要先讲好基础技能。我见过不少候选人,大谈特谈项目的规模和复杂度,结果说半天是学习项目而不是商业项目,也见过不少人准备了redis和kafka等分布式技能,但jpa增删改查,以及java集合等技术,说得一塌糊涂,这就属于南辕北辙了。

3.2 具体的介绍项目说辞

这个项目是超市维护项目,我在大三阶段帮实验室老师做的,是个外面公司接的维护项目,我做了3个月,结果拿到了1万块钱。(证实是商业项目,非学习项目)

    这个项目采了目前流行的微服务架构方案。我们选择的是以SpringCloud为核心的,基于Rest风格的微服务架构。在这个项目里,我用到了Spring Cloud全家桶做后台,具体采用了Eureka做服务治理,用Ribbon做负载均衡,用Zuul做网关,用JPA连接MySQL数据库,用RabbitMQ(消息队列)来发送短信,做后台时还用到了Java的集合,异常处理等技术,前端用Vue+Nuxt技术。

这个项目采用的是敏捷开发模式,我们每天有站会讨论进度,每两周一个开发周期,在其中讨论哪些要做,并在此基础上排任务,周期结束会release,在开发过程中,我不仅写代码,还参与过商品模块的需求讨论,也做过单元和集成测试。(说明你干过的活,并用项目管理方式进一步证实是商业项目)

在做这个项目的过程中,我在解决技术问题的时候,看过HashMap和ArrayList快速失效的底层源码,也通过建索引调优过数据库性能,也通过看日志解决过线上问题。(抛出亮点,等面试官来问)

这个项目有时候进度会比较紧,我会主动加班开发,并排查线上问题,遇到一些我没接触过的技术,比如Zuul,我会主动查资料,并通过问别人等方式,保证进度保证质量地完成任务。(说明你的责任心,肯加班,肯学习)

3.3 说这个项目前,你该准备的技术要点

1 你提到过的Eureka,Ribbon,Zuul等技术,事先通过跑通程序理解下。同时要准备如下细节,zuul过滤器,ribbon配置文件,eureka注册方式,jpa一对一一对多等,如果可以,再到网上搜些spring cloud面试题,或者系统看基本spring boot和spring cloud的书。

2 就看HashMap的底层源码,尤其结合hashcode和equal方法看,看快速失效的源码,这体现在,集合不能一边迭代一边修改。应届生很少有人会通过代码讲技术,你讲清楚了就是优势,而且这些不难。

3 看下索引,尤其是索引背后的b+树数据结构,了解下索引的用法,以及索引的缺点。

4 由于项目是部署在linux上,所以你看下linux里打开文件,以及在文件里用关键字查信息的命令,后面说分析问题和解决问题时要用到。

5 看下Java核心,尤其是集合,异常处理,多线程等的面试题。

4 后面是面试官提问

面试官一般会根据你在项目介绍时抛出的亮点提问,这时你要结合项目需求说明。

    问题1:谈下你们项目里是怎么用到微服务的?

我们是把个业务需求以微服务的方式切割成若干个功能要带你,比如商品微服务,文件上传微服务等,各微服务模块间用restful的方式相互调用。在项目里,是把这些微服务模块注册到Eureka上,同时用zuul做网关来管理。

    问题2:说下Spring Cloud里 实现增删改查的流程?

可能未必是这样问,但面试官一定会考核候选人基本的增删改查能力。对此你可以按如下的方面来准备。

1 在控制器里,用@RestController注解标识,用@RequestMapping来映射请求。

2 用@Service注解标识业务层,业务层里用@Autowired的方式引入Repo类。

3 Repo类里,就用JPA提供的基本方法,对于一些复杂的请求,就用@Query加原生SQL的方式来查询。

4 用@Entity和@Table注解标识POJO类。

5 可以的话,讲下用@Transactional做事务,同时可以准备事务隔离级别和事务传播机制这两个值钱要点。

6 前端用ThyMeleaf模板,后端会用ModelAndView向前端传数据。

以上技术点用一个业务流程穿起来,比如对于下订单的业务功能,我们首先会在控制器层里用@RequestMapping映射到该请求,随后会把该请求提交到业务层和Repo层,最终通过Repo层加入到数据库里,对于这个请求,我们会在业务层用@transactional注解来用事务管理。当订单成功插入后,会通过ModelAndView向前端ThyMeleaf模板发送成功信息,并展示到前台。

    问题3:你提到了你看过源码?你详细说明下。

你就结合源码,主要说下hashcode等

    问题4:你项目里是怎么用索引的?

在这个项目的业务流水表里,数据规模比较大,有十万规模,而项目里经常要根据业务流水号来查询,所以我们就对这个字段建了索引。建好索引后,我们会非常小心,以免索引用不到,比如如果对该字段进行左值查询,或者用isnull判断,就用不到索引了。同时,我看过索引的数据结构是b*树。如果后面面试官允许,你可以边画边讲。

    问题5:你提到你用过junit做过单元测试,你是怎么做的?

在写单元测试前,我会了解业务需求,尤其是边缘输入会导致的问题,然后就写各种case,具体的,会用@Test注解来标识数据,同时我还会用mockit等方式来mock数据。尤其在遇到for,if等条件时,我会确保所有的分支和各边缘条件和异常情况都测到。

(这是重点)在测试过程中,我发现过不少问题,哪怕这些问题不是我造成的,我会第一时间分析,遇到需要协调的,我会第一时间和相关人员沟通处理。

    问题6:你是怎么解决线上问题的?

在短信微服务模块,我们是对接阿里云平台,用RabbitMQ(消息队列) 实现异步的短信发送,但有时候会发现,短信发不出去,通过看linux日志(用vi打开,ps命令搜索),根据异常提示,发现是对同一个手机号发送消息限制一分钟之后才可以再发送验证,然后修改代码就解决问题了。

这里面试官不在乎你发现什么问题,在乎你如何通过看日志发现问题,以及发现问题后你要主动解决,而不是推诿。

5 接下来是面试官自由发问

这块就太多了,虽然多,但网上有太多的准备题和答案,我这里就给出一个连接,大家自己看吧。

https://blog.csdn.net/weixin_43365369/article/details/104356512

但请注意,一定得围绕Java核心,数据库和框架方面准备,而且在准备时,优先准备项目介绍以及项目里提到的技术。

6 总结

先总结下应届生准备面试的要点。

1 多挖掘商业项目经验。   2 运行通你要介绍的项目,并了解其中的技术要点。

3  准备本文给出的面试说辞。    4  随后再是刷各种面试题和算法题。

再总结下在面试中介绍项目的要点。

1 通过本文给出的各种手段,把项目介绍成商业项目。    2 介绍项目时注重技术,别偏重业务。

3 抛出亮点,等面试官发问    4 回答技术问题时,围绕业务需求,以此证实在项目里用过。

要知道,有商业项目经验的应届生少之又少,而有商业项目经验的应届生往往还不知道如何把项目说成商业项目,所以如果你按本文给出的方法,在面试中向面试官证明你有商业项目,这种优势可能是决定性的。这还不算,如果你按本文给出的方式准备技术问题,以及亮点说辞,你还能在证实商业项目的基础上,向面试官展示你扎实的功底。

这样你哪怕当下基础一般,但按本文给出方法准备一段时间后,你就能成功应聘。最后祝大家前程似锦。

请大家关注我的公众号:一起进步,一起挣钱,在本公众号里,会有更多精彩文章。

用商城维护类项目,讲下应届生如何在面试中介绍项目,如何准备面试相关推荐

  1. 【Qt】QtCreator中使用ActionManager类管理标题栏(MunuBar)、菜单(Menu)和菜单中的项目(Action)

    1.简介 QtCreator中使用ActionManager类管理标题栏(MunuBar).菜单(Menu)和菜单中的项目(Action),下面以创建"New"动作为例,介绍Act ...

  2. 中国电信计算机岗待遇,中国电信的abc类员工待遇及应届生工资定级

    中国电信的abc类员工待遇及应届生工资定级 中国电信的薪资水平: 南方一个小县城为例:ab类正式工(正式工=现行用人标准a类或b类):人员体制为:全民制(国营)合同工 中国电信员工以十岗为例.十岗及以 ...

  3. 如何在面试中介绍自己的项目经验(面向java改进版)

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

  4. 大厂java程序员教你面试如何介绍项目经验

    本文包含如下的内容. 1 在Java面试时,如何介绍项目经验? 2 在介绍项目经验时,如何引导面试官后继的提问. 3 再进一步给出在面试前系统准备面试问题以及面试亮点的技巧. 本人于3年前写的博文,如 ...

  5. 如何在面试中介绍自己的项目,才能让软件测试面试官无可挑剔,

    四.项目 4.1 简单介绍下最近做过的项目 根据自己的项目整理完成,要点: 1)项目背景.业务.需求.核心业务的流程 2)项目架构,B/S还是C/5,数据库用的什么? 中间件用的什么?后台什么语言开发 ...

  6. 如何在面试中介绍自己的项目

    如何在面试中介绍自己的项目经验 在面试时,经过寒暄后,一般面试官会让介绍项目经验 .常见的问法是,说下你最近的(或最拿得出手的)一个项目. 根据我们的面试经验,发现有不少候选人对此没准备,说起来磕磕巴 ...

  7. 面试中 项目遇见的难点答案_如何在面试中介绍自己的项目

    原文地址: https://www.cnblogs.com/JavaArchitect/p/7586949.html 如何在面试中介绍自己的项目经验 在面试时,经过寒暄后,一般面试官会让介绍项目经验 ...

  8. @应届生,如何在没有实际项目经验的情况下找到工作

    本文转载自CSDN公众号 作者丨Paddy Sherry 翻译丨LeviDing 许多开发人员在找工作的时候,虽然满足了对方所要求的理论技能,但是缺乏实际的开发经验,这让雇主在是否雇用你这个问题上犹豫 ...

  9. 没有项目经验的应届生如何进大厂?

    最近公众号上逐渐放出了2022的秋招信息,又一年的秋招大戏要开始了.小部这段时间被问到最多的就是实习和求职相关的问题.怎样才能进大厂?能不能帮忙内推?如何在短时间内增加简历含金量? 从大家春招的反馈来 ...

最新文章

  1. [HAOI2012]音量调节 入门dp
  2. 那天,我被拉入一个Redis群聊···
  3. 一个c++程序员的学习历程自述
  4. Live Writer
  5. ap的ht模式_AP6256 STA模式操作示例
  6. Seq(HDU-6672)
  7. SSH集成log4j日志环境
  8. 接口测试总结-值得一看哟
  9. 输错密码?这个 sudo 会“嘲讽”你
  10. mysql数据库存储数组_数据库索引的知识点,你所需要了解的都在这儿了
  11. Spring 3整合Quartz 2实现定时任务:动态添加任务
  12. 利用stm32读取思岚A1雷达数据
  13. 第一性原理分子动力学(AIMD)结果分析教程
  14. XAMPP下安装微博模板
  15. Python快速编程入门#学习笔记06# |第6章 :函数(学生管理系统)
  16. python中in是什么意思中文_python中的in是什么意思
  17. Sai Life Sciences任命COO;Affamed 在华植入首例景深延长型人工晶状体 | 医药健闻
  18. empress和queen区别_王后和皇后有什么区别?
  19. Jep解析字符串数学公式
  20. 生成树个数(基尔霍夫矩阵)

热门文章

  1. 数据结构(十九) -- C语言版 -- 树 - 树、森林、二叉树的江湖爱恨情仇、相互转换
  2. python怎么将字符串逆序_python中如何把一个字符串顺序逆序反转的几种方法?
  3. html5 canvas 画笔透明的实现方法
  4. Impala 技术点梳理
  5. linux系统下,wps缺少windows字体的问题。
  6. Kaggle数据集猫狗分类(Pytorch+ResNet34预训练)99%以上正确率
  7. 国产2.4G芯片的简单应用
  8. android 设置联系人头像代码,Android根据电话号码获得联系人头像实例代码
  9. 【机器学习|数学基础】Mathematics for Machine Learning系列之图论(9):匹配的概念
  10. 不要打梦到的电话号码。。。