项目面试题

项目面试题

1.描述最熟悉的或者(最近)的一个项目 ?

目的:检测技术和项目的熟悉程度+工作职责

回答:项目名称,项目的甲方,背景,实现的目的和意义,该项目主要是为了解决什么问题,具体的实际功能(尽可能详细清晰)。

项目分为两期完成,我在项目中负责的一期中XX模块,二期项目中负责XX模块开发。负责对技术文档的编写,负责对项目上线后BUG修复等工作。

2.描述在开发项目中遇到了哪些问题 ?怎么解决的 ?

目的:检验你对项目的需求了解,参与程度,解决问题的方式。

回答:从需求问题和技术问题两个方面回答。

需求问题:和产品经理或者甲方的客户进行充分地讨论项目的实际应用场景,反复阅读需求文档(3遍或5遍)。

技术问题:比如Redis问题:如何把Redis内存中的数据跟mysql数据库中的数据保持同步。先百度(为什么、是什么、怎么用),阅读官方文档,利用晚上私下时间解决。

3.描述在开发项目中有哪些亮点 ?

目的:项目的独特之处和优点。

回答:项目的应用场景,项目规范(文档规范,编码规范)比如之前项目编码没有那么规范,现在换了项目经理,他按照一些上市公司的标准来规范项目,所以我认为规范是项目中最大的亮点。还比如项目承受的并发量等。

注意:亮点切不可一样,要回自己独立思考。

需求亮点/技术亮点:比如为了解决高并发做了哪些事情,项目用到了Redis缓存技术,之前没用到过这个技术。

4.看你简历上项目里用到的技术、框架、Redis、数据库等,针对这些技术问问题 ?

就是简历上写的技术,都要做好复习的充分准备。

5.你参与的功能模块深入细节 ?(用到了哪些表、表名叫什么、有哪些字段)?

1、XX功能(要描述清楚)

2、数据库用到了哪些表;具体的表名称是什么;表里面有哪些字段(提前都写出来):先说公共字段(主键ID)、状态字段(status)、排序字段(sortnum)、时间字段(create_date/update_date)、 用户字段(create_user/update_user)表示数据的完整性,用于以后做数据统计等。

6.线目上线部署过程 ?

如果服务器CPU达到100%了,你该怎么解决?

解决:赶紧上报领导,不要自己去操作,自己做不了主,搞砸了会有被开除的风险。

人员参与:开发人员先自己测试,然后交付测试组进行测试,修复BUG,回归测试等一系列完成以后,需要先进行领导报备(验收),验收完成确认无误后,由领导通知所有相关人员准备上线。

描述详细步骤(目的:看你对项目部署过程的熟悉程度):研发工程师收到许可上线通知(邮件或者口头形式)后,进行线上的准备工作。第一步:把自己开发的模块制定上线的策略,若是多个系统,需要确定上线的顺序,细节 :比如(注册中心,Config…);第二步: 数据配置(确认)上线后,同步更新数据库数据和表结构,确保数据库正式环境和测试环境完全一致;第三步:项目部署(要清理缓存,把测试数据清理掉);第四步:测试,开发人员要把业务流程完整走一遍(缓存预热),测试人员采用灰度测试(只需要少量数据或者测试数据进行项目测试)+ 走一遍完整的业务流程,确保无误后通知产品相关人员进行二次测试;第五步:数据监控(监控报警)。

7.单元测试或开发规范 ?

单元测试:测试准则:满足AIR原则,A(自动化),I(独立性),R(可重复)。

开发规范:按照需求文档来完成业务开发;目录结构规范、部署规范、文件命名规范、编码规范、数据设计规范等。

8.如何在线上修复BUG ?

1、通过打包编译文件工具进行代码替换。

2、自动化部署:Jenkins+Docker+Git+GitLab。

3、负载均衡(Nginx)把新的项目权重weight调大一点,用户就到这个替换的项目访问了。

9.如果你的项目出现线上问题,你怎么解决 ?

定位问题:1、结合线上日志思考问题出现的最大可能原因,找到以后要进行验证,然后及时解决。

2、如果找不到BUG,要想办法尽可能做到本地重现(重现需要哪些条件),若无法重现,就仔细观察线上日志,对各种日志进行排查,确定好优先级。若还不行,那就是日志做的不好。

3、如果本地做了重新+精细的日志,就把本地正常能运行的JAR包替换线上的JAR包,看问题是否解决或者是否发生变化。

注意:Linux如何查看日志命令。

10.项目增加新功能,你怎么和之前的功能同步运行使用 ?

1、发布公告通知维护/更新时间。(这个工作是开发人员操作的)

2、将本地更新好的项目(或JAR包)打包替换服务器上的项目。

3、运行。

11.项目的并发量是多少 ?

目的:你有没有高并发的实战经验。

回答:并发概念:指同一个应用在同一时间多个进行访问,人数越多,并发量越高,服务器带宽要求很高。服务器并发量分为:系统用户数、最大并发访问数、同时在线用户数、业务并发用户数。

系统用户数:比如某个APP用户数有万人。

最大并发访问数==同时在线用户数:比如最高峰同时有5000人。

12.如何来测试项目的高并发 ?

测试相关:使用JMeter进行项目的并发量测试。

13.高并发的解决方案 ?

1、负载均衡。

2、动静分离。

3、文件服务器(图片、视频)。

4、页面HTML静态化。

5、热点数据缓存(Redis)单独部署,搭建Redis Cluster集群。

6、数据库分表分库,冷热数据分离,SQL语句优化,合理的表设计。

7、提高服务器的性能CPU,高性能的服务器,高性能的数据库(主从复制、读写分离、Redis缓存)。

14.面能试中如何给自己加分 ?

人与人之间的沟通交流最重要的是:情商。

情商:说话/沟通能够让对方舒服(快乐是可以分享的),不露痕迹地说出面试官爱听的话 。

1、能考虑到代码的扩展性、安全性、有意识的参与框架的设计,需求分析。

2、有调优意识,有优化意识,通过监控和日志发现问题,然后解决。

3、综合素质: 学习能力强、动手能力强、认真努力、抗压能力强、团队合作好。有积极的心态,通过不断的学习来提高自己的技能,除了完成自己的任务外,还积极帮助同事,共同进步,共同成长。

4、有主见:团队中遇到问题,敢于主动出击解决问题。

5、需求方面:在需求开发中,除了能够按时按质的完成任务,还会在保证项目进度的前提下和项目经理及时沟通交流,以便完成更加高效的代码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/450403.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL定时备份(全量备份+增量备份)

MySQL 定时备份 参考 zone7_ 的 实战-MySQL定时备份系列文章 参考 zmcyu 的 mysql数据库的完整备份、差异备份、增量备份 更多binlog的学习参考马丁传奇的 MySQL的binlog日志,这篇文章写得认真详细,如果看的认真的话,肯定能学的很好的。 如果…

java 接口可以多继承

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 接口是常量值和方法定义的集合。接口是一种特殊的抽象类。 java类是单继承的。classB Extends classA java接口可以多继承。Interface…

C语言struct关键字详解—结构体

struct 是个神奇的关键字,它将一些相关联的数据打包成一个整体,方便使用。在网络协议、通信控制、嵌入式系统、驱动开发等地方,我们经常要传送的不是简单的字节流(char 型数组),而是多种数据组合起来的一个…

JDK1.8使用Dubbo时需注意

2019独角兽企业重金招聘Python工程师标准>>> Dubbo自带的很多包都比较旧了,其中的javassist在JDK1.8上运行会报错 而且错误通常比较诡异,javassist是编辑和创建Java字节码的类库,常见的错误会从spring中报出 解决办法:…

Java 11 已发布,String 还能这样玩!

在文章《Java 11 正式发布,这 8 个逆天新特性教你写出更牛逼的代码》中,我有介绍到 Java 11 的八个新特性,其中关于 String 加强部分,我觉得有点意思,这里单独再拉出来讲。 Java 11 增加了一系列的字符串处理方法&…

Redis1 晨考题

Redis1 晨考题 1.Redis 是什么 ? redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 的内存数据库,并提供多种语言的 API。 2.NOSQL 是什么 ?出现的目的和意义是什么 ? NoSQL 泛指…

C语言void关键字

void 有什么好讲的呢?如果你认为没有,那就没有;但如果你认为有,那就真的有。有点像“色即是空,空即是色”。一、void a? void 的字面意思是“空类型”,void *则为“空类型指针”,vo…

深入了解RabbitMQ工作原理及简单使用

深入了解RabbitMQ工作原理及简单使用 RabbitMQ系列文章 RabbitMQ在Ubuntu上的环境搭建深入了解RabbitMQ工作原理及简单使用RabbitMQ交换器Exchange介绍与实践RabbitMQ事务和Confirm发送方消息确认——深入解读使用Docker部署RabbitMQ集群你不知道的RabbitMQ集群架构全解RabbitM…

使用el-checkbox实现全选,点击失效没有反应

最近在公司接收到了一个需求,给收藏夹的书籍添加批量、全选删除实现思路:点击全选改变item的checked,改变item的checked,重新便利一下所有item的checked来改变全选的selectAll1)该组件基本功能已经实现,che…

Spring3.2新注解@ControllerAdvice

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 ControllerAdvice,是spring3.2提供的新注解,从名字上可以看出大体意思是控制器增强。让我们先看看ControllerAdv…

Mysql1 晨考题

Mysql1 晨考题 1.描述主键、外键、候选主键、超键分别是什么 ? (1)主键:数据库表中对存储数据对象给予唯一完整标识的数据列或属性的组合。一个数据列只能有一个主 键,且主键的取值不能缺失,即不能为空值…

C语言关键字

C语言do、while、for关键字—循环 C 语言中循环语句有三种:while 循环、do-while 循环、for 循环。while 循环:先判断while 后面括号里的值,如果为真则执行其后面的代码;否则不执行。while(1)表示死循环。…

C语言字符篇(五)内存函数

memcpy不可以把目的地址写成本身但是memmove可以,因为它是先保存到临时空间 #include <string.h> void *memcpy(void *dest, const void *src, size_t n);将内存src拷贝n个字符到内存destvoid *memmove(void *dest, const void *src, size_t n);将内存src的前n个数据拷贝…

GMQ交易平台大力探索区块链技术,进一步推动产业繁荣

近年来&#xff0c;区块链技术作为金融科技的中坚力量&#xff0c;受到了产业界的热切关注&#xff0c;其实验开展和应用研发正在如火如荼的进行。 在此背景下&#xff0c;各地涌现出一大批优秀的企业投入到区块链产业中&#xff0c;各类企业投融 资活动十分活跃&#xff0c;充…

java 笔试题

JAVA-2003笔试题 一、选择题&#xff08;每小题2&#xff0c;共10分&#xff09; 下列语句序列执行后&#xff0c;m 的值是&#xff08; C &#xff09; int a10, b3, m5; if( ab ) ma; else ma*m; A.15 B.50 C.55 D.5若已定义byte[]x{11,22,33,-66}其中0≤k≤3&#xff0c;则…

objectdatasouce的温故

在做ecxel的时候&#xff0c;需要前台做一个联动的效果。 记录一下这个数据源的用法&#xff0c;大学时候用的&#xff0c;忘得差不多了 首先就是往页面拖拽一个objectdatasouce的控件 然后配置数据源&#xff1a; 选择业务对象(其实就是选择你要用的哪个类&#xff0c;如果下拉…

都会五星回评,欢迎留下地址-博客之星

欢迎五星回评地址https://bbs.csdn.net/topics/603961857

jQuery核心

jQuery(selector) jQuery 的核心功能都是通过这个函数实现的。 jQuery中的一切都基于这个函数&#xff0c;或者说都是在以某种方式使用这个函数。这个函数最基本的用法就是向它传递一个表达式&#xff08;通常由 CSS 选择器组成&#xff09;&#xff0c;然后根据这个表达式来查…

Feign api调用方式

Feign使用简介 基本用法 基本的使用如下所示&#xff0c;一个对于canonical Retrofit sample的适配。 interface GitHub {// RequestLine注解声明请求方法和请求地址,可以允许有查询参数RequestLine("GET /repos/{owner}/{repo}/contributors")List<Contributor&g…

预处理

C语言##预算符 和#运算符一样&#xff0c;##运算符可以用于宏函数的替换部分。这个运算符把两个语言符号组合成单个语言符号。看例子&#xff1a;#define XNAME(n) x ## n如果这样使用宏&#xff1a;XNAME(8)则会被展开成这样&#xff1a;x8看明白了没&#xff1f; ##就是个粘合…