面试项目问题

news2024/12/23 4:55:43

文章目录

  • 1. 你们这个项目多少人在做?人员分布是怎样的?做了多长时间?
  • 2. 你们项目一共有几个端? 每个端都是哪些人在用? 作用是什么? 有哪些模块?
  • 3. 你们项目一共有几个微服务? 每个微服务负责的任务是什么?
  • 4. 你们项目一共有几个数据库? 你负责的数据库是哪个? 核心表是哪几张? 表中有哪些字段?
  • 5. 你负责的核心业务的功能代码是怎么实现的?(比如分布式锁、分布式事务)
  • 6. 找到你项目表述中的每个技术,然后这个地方为什么要用此技术?怎么用的?
  • 7. 你的项目上线了吗? 有网址可以访问吗? app可以看看吗? 小程序可以看看吗?
  • 8. 你们项目现在有多少用户,日活量是多少? 项目访问量、并发量是多少,服务器几台?
  • 9. 你们项目在哪些地区推广的? 一共投放了多少台设备?效果怎么样?
  • 10. 你们项目有没有做过广告或者营销? 盈利点在哪里? 如何推广用户?
  • 11. 你开发这个项目过程中遇到什么难题没有啊?咋解决的?
  • 12. 项目上线之前,测出大概多个bug,用什么记录bug? 线上bug如何调试?
  • 13. 给你一个需求,从头到尾应该怎么实现? 说一下整个流程?
  • 14. 项目上线之后有没有做后期维护?在维护过程中你都做了哪些工作?
  • 15. 项目中有没有用过多线程, 使用场景是什么?
  • 16. 刚进入项目组,如何熟悉项目?
  • 17. 这个项目中哪个模块是你认为做的比较好,好在哪里,用了什么技术实现?
  • 18. 还有2天就要上线,产品经理突然找你要加需求,怎么办?
  • 19. 公司项目上线完整流程是什么样的?
  • 20. 说一说你们项目的整体架构, 来给你纸笔 画一下
  • 你工作过的这两家公司,你选择他们的原因,以及你在工作中的收获,还有离职的原因。

1. 你们这个项目多少人在做?人员分布是怎样的?做了多长时间?

我们项目组一共十个人,包括四个后端开发人员、两个前端开发人员、两个测试人员、一个项目经理和一个产品经理。

从需求分析、设计、开发到测试上线到最后的维护阶段,整个项目的周期大概是六个月左右。

2. 你们项目一共有几个端? 每个端都是哪些人在用? 作用是什么? 有哪些模块?

我们这个项目有三个端,运营管理WEB端、旅游公司WEB端和游客APP端。
游客APP端可以进行旅游线路搜索、旅游报团、门票购买、私人定制旅游、签到、户外徒步等操作。

旅游公司WEB端中,旅游公司管理人员可以上传编辑删除旅游线路数据、确定报名名额、处理订单、销售额统计分析、收益提现等操作;商家管理人员可在WEB端入驻店铺、销售商品、编辑商品、处理订单、销售额统计、收益提现等操作。

运营管理人员可以在运营管理端审核旅行社入驻信息、管理用户订单等操作。

3. 你们项目一共有几个微服务? 每个微服务负责的任务是什么?

我们这个旅游项目有10个微服务。

  1. 用户服务:负责管理用户信息、身份认证和权限控制,包括用户注册、登录、个人信息管理等功能。
  2. 行程服务:提供线路推荐功能,根据用户偏好、时间和地点等条件生成个性化行程推荐。
  3. 订单服务:负责旅游订单的创建和管理,包括产品浏览、下单、支付和退款等功能。
  4. 支付服务:负责处理支付相关的逻辑,包括接收订单支付消息、调用第三方支付平台进行支付操作并处理支付结果。
  5. 搜索服务:负责提供旅游线路的搜索功能。
  6. 客服服务:负责处理用户的咨询和投诉。
  7. 评论服务:管理用户对旅游线路的评价和评论,包括查看评论、发布评论和评分等操作。
  8. 数据服务:负责对旅游数据进行汇总、分析和挖掘以提供决策支持。
  9. 网关服务:负责处理路由请求并提供统一的访问入口。
  10. 监控服务:负责监控各个微服务的运行状态和性能指标,并提供警报和分析功能。

通过微服务拆分,实现了高内聚、低耦合的架构,每个微服务都能独立部署和维护,系统可扩展性和可维护性高。

4. 你们项目一共有几个数据库? 你负责的数据库是哪个? 核心表是哪几张? 表中有哪些字段?

我们项目有八个数据库。

  1. 用户服务数据库:用于存储用户相关信息,包括用户基本信息、权限信息。
  2. 行程服务数据库:存储旅游线路、偏好设置和行程推荐信息。
  3. 订单服务数据库:存储旅游订单信息,包括订单详情、支付记录等。
  4. 支付服务数据库:存储支付相关的记录,包括支付流水号、订单支付状态等。
  5. 搜索服务数据库:存储旅游线路的索引信息,支持快速线路搜索。
  6. 客服服务数据库,存储用户的咨询和投诉信息。
  7. 评论服务数据库,存储用户对旅游线路的评论信息。
  8. 数据服务数据库:存储各个微服务提供的数据汇总结果,如用户统计信息、订单统计信息等。

我负责的数据库是行程服务数据库、订单服务数据库、搜索服务数据库和客服服务数据库。

核心表包括:

  1. 行程服务数据库里的 行程表(trip):主要字段包括
    行程ID(trip_id)、
    用户ID(user_id)、
    起始地点(start_loc)、
    目的地(end_loc)、
    出发时间(start_time)、
    到达时间(end_time)、
    距离(distance)、
    行程时长(duration)
  2. 订单服务数据库里的 订单表(order):主要字段包括
    订单ID(order_id)、
    用户ID(user_id)、
    行程ID(trip_id)(关联的行程ID)、
    下单时间(oder_time)、
    总价(total_price)、
    支付状态(payment_status)
  3. 搜索服务数据库里的 线路表(route):主要字段包括
    线路ID(route_id)、
    线路名称(route_name)、
    描述(desc)、
    价格(price)、
    线路类别(category)、
    评分(rating)、
    上架状态(status)
  4. 客服服务数据库里的 用户表(user):主要字段包括
    用户ID(user_id)、
    用户名(user_name)、
    邮箱(email)、
    手机号(phone)、
    地址(address)、
    最后登录时间(last_login)
  5. 客服服务数据库里的 客服记录表(customer_service_record)
    记录ID(record_id)、
    用户ID(user_id)、
    客服人员ID(customer_service_id)、
    记录时间(timestamp)、
    消息内容(message)、
    处理状态(status)

5. 你负责的核心业务的功能代码是怎么实现的?(比如分布式锁、分布式事务)

我负责的核心业务是订单服务,其中最重要的功能是处理用户下单操作。

处理用户下单时,要确保同一时间只有一个用户可以下单,避免超卖问题。

在这里我通过分布式锁机制来实现,使用Redis作为分布式锁的存储介质,用户下单时先尝试获取分布式锁,成功获取锁后才能执行下单操作,保证了并发下单时的数据一致性。

同时需要保证订单创建、库存扣减和支付操作的原子性,要么全部成功,要么全部失败,避免出现数据不一致的情况。

利用分布式事务管理器Seata或者消息队列RabbitMQ实现分布式事务。

用户下单后,先发消息到消息队列,库存服务和支付服务监听到消息后进行相应操作,如果其中一个服务出现问题,消息队列可以保证消息的幂等性和重试机制,从而保证订单相关操作的一致性。

6. 找到你项目表述中的每个技术,然后这个地方为什么要用此技术?怎么用的?

7. 你的项目上线了吗? 有网址可以访问吗? app可以看看吗? 小程序可以看看吗?

是的,我们的项目已经成功上线并且可以通过网址进行访问。
我们团队开发的这个旅游项目已经在生产环境中运行了。

我们的APP已经在腾讯应用宝等应用商城上线了,名字就叫“乐游游”,可以搜索和下载体验。

8. 你们项目现在有多少用户,日活量是多少? 项目访问量、并发量是多少,服务器几台?

我们项目有一百万注册用户,日活量大概一万左右。
项目的日访问量大概五万次左右,并发量大概是三百人次左右。
部署了3台服务器。

9. 你们项目在哪些地区推广的? 一共投放了多少台设备?效果怎么样?

我们的项目先在陕西的一些热门地区进行了推广,比如西安、华山、秦兵马俑等。

为了提供更好的服务和便利,我们在这些地方投放了大约200台设备。

这些设备安装在旅游景点、旅行社、酒店等地,为游客提供实时旅游信息景点介绍、路线规划等服务。

总体来说,推广效果很不错,得到了很多正面的评价和反馈。很多游客表示这些设备给他们带来了很大的便利。

我们也通过用户的使用数据和反馈进行了分析,对项目进行了改进和优化。

在这之后我们就在全国范围进行了推广,涵盖了很多热门旅游目的地,比如北京、上海、广州、成都等。
根据不同地区的旅游需求和市场情况,有针对地投放了大约500台设备。

10. 你们项目有没有做过广告或者营销? 盈利点在哪里? 如何推广用户?

是的,我们这个项目在推广过程中进行了一系列的广告和营销活动。

我们采用了在线广告、社交媒体推广、合作伙伴关系等渠道进行广告和营销。

通过在线广告,我们在搜索引擎和社交媒体上展示项目优势和特色,吸引用户。

同时我们与旅游公司、航空公司建立了合作关系,通过他们的渠道向目标用户宣传项目。

11. 你开发这个项目过程中遇到什么难题没有啊?咋解决的?

12. 项目上线之前,测出大概多个bug,用什么记录bug? 线上bug如何调试?

bug很多,我在项目开发过程中出现的bug有二十多个。
记录bug用的是禅道

我在项目开发的过程测出来的bug有二十多个,我们公司用禅道记录和跟踪这些bug。

禅道是一个常用的bug管理系统,它是一个集中管理和追踪bug的平台。

记录bug方面:

  1. 登录禅道:我会先用我的账号登录禅道系统
  2. 创建bug报告:然后创建新的bug报告,录入bug的标题、描述、复现步骤等信息
  3. 设置优先级:接下来根据bug的紧急程度设置优先级,帮助团队了解哪些bug急需解决
  4. 附加相关信息:同时把相关截图和日志文件附加进来
  5. 提交bug报告:最后,确认无误后提交bug报告

bug线上调试:

  1. 查看日志:对于线上bug调试,我会先查看服务器和应用程序的日志,了解具体的错误信息和异常栈信息。
  2. 复现bug:之后尝试复现bug,并且记录复现步骤。
  3. 调试代码:如果通过日志和复现不能定位问题,我会用IDEA的Debug模式逐步跟踪代码,在合适的位置添加日志输出进一步排查。
  4. 提交解决方案:找到bug的原因之后,我会把解决方案提交给开发团队。

13. 给你一个需求,从头到尾应该怎么实现? 说一下整个流程?

接口

  1. 需求分析:首先我会和产品经理沟通,确定需求的具体内容,包括功能、性能、安全等方面的要求。

  2. 设计架构:然后对需求进行分析,确定实现地技术方案、开发周期及人力资源等。

  3. 编码实现:接下来编码阶段根据系统架构和接口设计,结合项目开发规范和代码规范,进行代码编写。

    同时进行单元测试确保代码的质量。

  4. 联调测试:完成编码后,进行系统联调测试,确保各模块间的数据传递和交互正常,并对整个系统进行全面测试,发现并修复潜在的问题。

  5. 部署上线:最后把系统部署到生产环境中并进行上线前的测试和检查,确保系统能正常运行。

    同时进行系统监控和日志分析,及时解决问题。

具体场景,比如产品经理提出一个需求是实现在线售票模块。

我会先进行需求分析,确定需要哪些功能,比如查询线路、选择线路、下单支付等。

然后我会根据系统架构设计,确定系统的模块划分,比如用户管理、线路管理、订单管理等。

最后我会进行代码编写和测试,最终将系统部署上线。

14. 项目上线之后有没有做后期维护?在维护过程中你都做了哪些工作?

有后期维护。

后期维护中我主要做定时检查和分析日志文件,及时发现和解决潜在问题。

维护过程中遇到bug之后,我会根据优先级和紧急程度,及时处理和修复,并进行回归测试以确保问题的解决。

同时我会和产品经理和团队成员密切合作,收集用户反馈和需求,并根据实际情况进行功能改进和迭代。

作为后端开发人员,我会对数据库的数据进行备份和和恢复操作。确保数据的完整性和可靠性。同时我也会进行数据库性能调优和索引优化,提高系统的数据访问效率。

15. 项目中有没有用过多线程, 使用场景是什么?

并发量要大、要有阻塞

嗯,我们项目中使用了多线程技术,使用场景是在后台执行大量数据处理任务时,为了提高处理效率和系统性能,我们使用了多线程技术来并行处理数据。

为了提高系统的并发能力和响应速度。使用多线程技术处理用户的搜索、支付请求,提高系统的吞吐量。

线路价格、航班信息等数据是需要定期更新缓存数据,为了避免阻塞主线程,使用多线程来更新这些缓存数据,保证数据的实时性。

日常需要对数据库进行大量读写操作,为了提高数据库的并发处理能力,使用多线程同步执行这些操作,提高系统的性能和响应速度。

在使用多线程技术开发的过程中,要注意线程安全和资源竞争问题,使用锁机制和线程池等技术保证数据的一致性和系统的稳定性。

16. 刚进入项目组,如何熟悉项目?

刚进入一个新的项目组的时候,我会认真阅读项目的文档和代码,了解项目的整体结构和各个模块间的关系。

然后认真研究项目的技术选型和核心代码,调试程序,追踪代码的执行过程,了解业务处理逻辑。

最后我会多和开发团队中的其他成员沟通,了解他们对项目的理解和看法。

积极参与团队讨论,提出自己的观点。

17. 这个项目中哪个模块是你认为做的比较好,好在哪里,用了什么技术实现?

18. 还有2天就要上线,产品经理突然找你要加需求,怎么办?

首先我会认真听取产品经理的需求,并与开发团队成员沟通,评估这个需求对上线时间的紧迫程度和实现难度,告知产品经理可能会引起的风险和延误。

若我们认为这个需求可以在两天内完成并且不会影响项目进度和质量,我会尽最大努力完成这个需求。

若这个需求的实现难度较大,或者加入这个需求会导致不必要的风险,我会与产品经理沟通,找出合理的解决方案,如推迟需求上线时间、优化需求实现方案等。

19. 公司项目上线完整流程是什么样的?

项目上线的过程可以与盖房子类比,如果要盖一座新房子(开发一个新项目),上线就相当于房子全部建好了并准备入住。

  1. 设计阶段:设计需求文档来说明项目的功能和设计。
  2. 开发阶段:前后端开发人员按照需求文档编写代码,构建系统的各个模块。
  3. 测试阶段:进行单元测试、集成测试和系统测试,以确保软件的质量和稳定性。
  4. 部署阶段:把开发完成的代码部署到服务器上,配置服务器环境、安装依赖项。
  5. 发布阶段:把部署好的系统交付给最终用户使用,进行数据库迁移和数据导入。
  6. 监控阶段:项目上线之后,对系统进行监控确保正常运行,设置监控系统检测系统的健康状况,如错误日志监控、性能监控等。

总之,项目上线的流程大致可以分为

  1. 设计阶段确定需求
  2. 开发阶段编写代码
  3. 测试阶段测试功能
  4. 部署阶段配置服务器
  5. 发布阶段通知用户
  6. 监控阶段确保系统运行良好

20. 说一说你们项目的整体架构, 来给你纸笔 画一下

画出浏览器访问nginx,nginx代理进网关,网关进微服务

你工作过的这两家公司,你选择他们的原因,以及你在工作中的收获,还有离职的原因。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

在centos 7 中安装配置Jdk、Tomcat、及Tomcat自启动

目录 一、安装配置Jdk 1.创建目录并上传文件 2.解压JDK压缩包 3.配置JDK环境变量 4.设置环境变量生效 二、安装配置Tomcat 1.上传Tomcat并解压 2.启停Tomcat 3.修改tomcat-user.xml配置 4.配置远程访问Tomcat 5.远程项目发布 三.Tomcat自启动配置 1.配置Tomcat自启…

npm ERR! path E:node_modules\node-sass

分析报错发现有关 python2 环境相关报错 解决办法:需要再电脑中安装python 2.X版本的环境 因为我本地电脑有python 3.9的环境,所以我使用 Anaconda安装python环境 1、安装 python 2.7 conda create -n py2 python2.72、激活虚拟环境 conda activate…

基于STM32的以太网通信协议选择与实现

在基于STM32的以太网通信中,主要涉及到选择合适的通信协议和实现对应的功能代码。常见的通信协议包括TCP/IP、UDP、HTTP等,选择合适的协议取决于具体应用需求。以下将介绍在STM32上进行以太网通信时,常用的通信协议选择以及对应功能代码的实现…

使用 FHEW-like 自举 BV-like

参考文献: [CDKS21] Chen H, Dai W, Kim M, et al. Efficient homomorphic conversion between (ring) LWE ciphertexts[C]//International Conference on Applied Cryptography and Network Security. Cham: Springer International Publishing, 2021: 460-479.[K…

Electron桌面应用实战:Element UI 导航栏橙色轮廓之谜与Bootstrap样式冲突解决方案

目录 引言 问题现象及排查过程 描述问题 深入探索 查明原因 解决方案与策略探讨 重写样式 禁用 Bootstrap 样式片段 深度定制 Element UI 组件 隔离样式作用域 结语 引言 在基于 Electron 开发桌面应用的过程中,我们可能时常遇到各种意想不到的问题…

redis-主从复制

1.主从复制 1.1简介 主机数据更新后根据配置和策略, 自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主 1.2作用 1、数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。 2、故…

第九篇【传奇开心果系列】beeware的toga开发移动应用示例:人口普查手机应用

传奇开心果博文系列 系列博文目录beeware的toga开发移动应用示例系列博文目录一、项目目标二、安装依赖三、实现应用雏形示例代码四、扩展功能和组件的考量五、添加更多输入字段示例代码六、添加验证功能示例代码七、添加数据存储功能示例代码八、添加数据展示功能示例代码九、…

【每日一题】最大合金数

文章目录 Tag题目来源解题思路方法一:二分枚举答案 写在最后 Tag 【二分枚举答案】【数组】【2024-01-27】 题目来源 2861. 最大合金数 解题思路 方法一:二分枚举答案 思路 如果我们可以制造 x 块合金,那么一定也可以制造 x-1 块合金。于…

免 费 小程序商城搭建之b2b2c o2o 多商家入驻商城 直播带货商城 电子商务b2b2c o2o 多商家入驻商城 直播带货商城 电子商务

1. 涉及平台 平台管理、商家端(PC端、手机端)、买家平台(H5/公众号、小程序、APP端(IOS/Android)、微服务平台(业务服务) 2. 核心架构 Spring Cloud、Spring Boot、Mybatis、Redis 3. 前端框架…

ID-GCS

ϕ \phi ϕ denotes the zero padding 作者未提供代码

【代码随想录-链表】移除链表元素

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 jav…

【算法】BFS算法解决多源最短路问题(C++)

文章目录 前言那么什么是单源最短路 / 多源最短路呢?如何解决此类题?解法一解法二对于解法二,如何编写代码? 算法题542.01矩阵1020.飞地的数量1765.地图中的最高点1162.地图分析 前言 此前我们对 单源最短路 问题进行的讲解&…

React16源码: React中处理LegacyContext相关的源码实现

LegacyContext 老的 contextAPI 也就是我们使用 childContextTypes 这种声明方式来从父节点为它的子树提供 context 内容的这么一种方式遗留的contextAPI 在 react 17 被彻底移除了,就无法使用了那么为什么要彻底移除这个contextAPI的使用方式呢?因为它…

【遥感专题系列】影像信息提取之—— 土地利用数据监督与非监督分类

基于光谱的影像的分类可分为监督与非监督分类,这类分类方法适合于中低分辨率的数据,根据其原理有基于传统统计分析的、基于神经网络的、基于模式识别的等。 本专题以ENVI5.3及以上版本的监督与非监督分类的实际操作为例,介绍这两种分类方法的…

258. Add Digits(各位相加)

问题描述 给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。返回这个结果。 问题分析 我们至少要将num的每一位相加一次得到一个新的数字,然后判断是否新的数字需要每一位再次相加,如此重复下去,这…

《HTML 简易速速上手小册》第2章:HTML 的标签和元素(2024 最新版)

文章目录 2.1 文本格式化标签(🎩✨📜 网页的“时尚搭配师”)2.1.1 基础示例:一篇博客的格式化2.1.2 案例扩展一:产品介绍页面2.1.3 案例扩展二:个人简历 2.2 链接和锚点(&#x1f6a…

C# 获取计算机信息

目录 一、本机信息 1、本机名 2、获得本机MAC地址 3、获得计算机名 4、显示器分辨率 5、主显示器分辨率 6、系统路径 二、操作系统信息 1、操作系统类型 2、获得操作系统位数 3、获得操作系统版本 三、处理器信息 1 、处理器个数 四、CPU信息 1、CPU的个数 2、…

操作符讲解

目录 二进制和进制转换 原码、反码、补码 移位操作符 位操作符 一道面试题: 练习1: 思考题: 练习2: 逗号表达式 函数调用操作符() 结构成员访问操作符 结构体 操作符的属性:优先级、结合性 优先级&#x…

C与C++相互调用的“底层原理“

在你的C语言代码中,不知能否看到类似下面的代码: 这好像没有什么问题,你应该还会想:“嗯⋯是啊,我们的代码都是这样写的,从来没有因此碰到过什么麻烦啊~”。 你说的没错,如果你的头…

CSDN·COC城市开发者组织2023年度聚会上海站纪实

目录 前言活动宣传活动议程活动总结结束语 前言 2023年是CSDNCOC成立之年,经过一年的不断发展和壮大,COC上海城市开发者社区的队伍不断壮大,本着每个月都有线下活动的原则,先后举办大大小小的线下沙龙活动20余场。与此同时&…