面试复盘2.0

1、python的抽象类

什么是抽象类

    与java一样,python也有抽象类的概念但是同样需要借助模块实现,抽象类是一个特殊的类,它的特殊之处在于只能被继承,不能被实例化

为什么要有抽象类

    如果说类是从一堆对象中抽取相同的内容而来的,那么抽象类是从一堆中抽取相同的内容而来的,内容包括数据属性和函数属性。

  比如我们有香蕉的类,有苹果的类,有桃子的类,从这些类抽取相同的内容就是水果这个抽象的类,你吃水果时,要么是吃一个具体的香蕉,要么是吃一个具体的桃子。。。。。。你永远无法吃到一个叫做水果的东西。

    从设计角度去看,如果类是从现实对象抽象而来的,那么抽象类就是基于类抽象而来的。

  从实现角度来看,抽象类与普通类的不同之处在于:抽象类中有抽象方法,该类不能被实例化,只能被继承,且子类必须实现抽象方法。

Python抽象类和接口类 - 短毛兔 - 博客园

2、Django的请求生命周期

第一步:浏览器发起请求
第二步:WSGI(Web服务器网关接口)创建socket服务端,接收请求(Httprequest)
第三步:中间件处理请求
第四步:url路由,根据当前请求的URL找到视图函数
第五步:view视图,进行业务处理(ORM处理数据,从数据库取到数据返回给view视图;view视图将数据渲染到template模板;将数据返回)
第六步:中间件处理响应
第七步:WSGI返回响应(HttpResponse)
第八步:浏览器渲染
 

3、mysql的索引有什么

  • 普通索引:仅加速查询

  • 唯一索引:加速查询 + 列值唯一(可以有null)

  • 主键索引:加速查询 + 列值唯一(不可以有null)+ 表中只有一个

  • 组合索引:多列值组成一个索引,专门用于组合搜索,其效率大于索引合并

  • 全文索引:对文本的内容进行分词,进行搜索

4、mysql的联合索引(a,b,c),如果索引为(a,c)会用到索引吗

有mysql联合索引(A, B, C),那么AC查询会用到索引吗? - Cgj20060102030405 - 博客园

5、git的操作,版本回退

git reset --hard HEAD ^

git的版本回退教程(带你一步一步操作)_zt1519的博客-优快云博客_git 回退

6、python的基本排序Python数据结构与算法(几种排序) - 时间&煮雨~ - 博客园

7、mysql的select实现过程

select mysql执行过程_MySQL -- SELECT 执行过程_Benjamin Jordan的博客-优快云博客

8、restful中的序列化

从入门到自闭之Python--RESTful API规范与序列化 - 丶Howie - 博客园

9、vue到后端用到什么组件

vuex

ElementUI

10、mysql索引为什么快


 

  • 减少IO;
  • 针对mysql innodb引擎:
    • 索引也是数据;
    • 索引的底层数据结构是B+树,中间节点都是储存的索引,底层叶子节点存储的是数据的指针(辅助索引是存储的id),所以磁盘页中可以存储更多的节点元素,也就是说可以让树的高度变的更低,减少IO;

索引为什么会加快Mysql的查询速度? - 知乎

11、mysql为什么要设计事务

当需要对数据表执行一系列多个操作的情况下,为了防止这些操作中的部分操作执行成功而另一些操作执行失败,从而导致数据不正确,我们就需要使用事务了。

12、python的不可变数据类型为什么不可变

可变数据类型:value值改变,id值不变;不可变数据类型:value值改变,id值也随之改变。

13、mysql的三范式

MySQL数据库三范式 - 知乎

14、redis的数据类型还有持久化

Redis数据类型&优缺点&持久化方式 - Mr-刘 - 博客园

15、django项目中__init__.py文件的作用,删除会有影响吗

关于python 的空的__init__.py文件的作用,可不可以删除,到底有没有用? - 北风之神0509 - 博客园

16、悲观锁和乐观锁

什么是乐观锁,什么是悲观锁 - 简书

17、python的GIL是在哪个版本中的

Python3.2 版本通过引入记录没有获取到 GIL 锁线程线程请求 GIL 锁的次数的机制解决了

一文详解 Python GIL 设计 - 知乎

<think>嗯,用户这次明确想了解面试项目的准备指南和常见案例,结合之前的引用资料来看,用户可能在准备技术岗位的面试。用户提供的四个引用中,[1]和[4]最相关——一个是算法面试的开源题库,一个是美团项目的具体话术案例。用户可能是个应届生或初级开发者,正在密集准备技术面试。从ta提问的简洁性判断,ta更想要结构化、可落地的方案,而不是理论阐述。尤其值得注意的是ta特意提到“项目案例”,说明ta意识到项目经验在面试中的重要性,这比单纯刷题更务实。我手头的四个引用里,[1]的算法题库虽然经典,但属于基础知识准备;[3]是项目经理视角,与用户需求有偏差;真正高价值的其实是[4]的美团项目案例,这种真实商业项目解析最能体现工程能力。可惜引用里没有更丰富的项目库,需要帮用户拓展常见项目类型。上次回复时已经整理了电商/社交/工具等七类项目模板,这次可以强化两点:一是突出项目中容易忽略的亮点设计(比如引用[4]提到的分布式锁实现一人一单),二是增加用户可能需要的脚手架资源——包括开源的电商系统后台、云笔记应用等,这些都能快速复用。特别要提醒用户避免三个常见坑:一是项目描述堆砌技术名词(如引用[4]的集群罗列),要关联业务价值;二是忽略故障处理经验;三是用个人博客冒充商业项目。可以教ta用STAR法则重构话术,比如把“使用了Redis缓存”改成“在2000QPS的秒杀场景下,通过Redis+Lua脚本解决超卖问题,压测显示并发能力提升3倍”。</think> 以下是针对面试项目准备的系统指南和常见案例解析,结合技术面试的核心要点整理而成: --- ### **一、面试项目准备核心要素** #### **1. 技术深度展示** - **架构设计** - 描述技术选型依据(如SpringBoot+Redis集群选型解决高并发问题)[^4] - 说明模块化设计思路(如拆分用户、订单、支付服务) - **关键技术实现** - 重点突出 **分布式技术应用**:如Redis分布式锁解决超卖问题、RabbitMQ异步削峰[^4] - **性能优化**:例如MySQL分库分表策略、缓存穿透/雪崩防护方案 - **难点突破** 使用 **STAR法则**(情境-任务-行动-结果)描述问题解决过程,如: > *“在优惠券秒杀场景中(S),需保障10000+QPS下数据一致性(T),通过Redis+Lua脚本实现原子库存扣减(A),最终错误率降至0.1%(R)”[^4]* #### **2. 业务理解能力** - **项目价值量化** 例如:*“黑马点评上线后商户入驻效率提升40%,用户留存率提高25%”* - **商业逻辑阐释** 说明核心功能如何支撑业务目标,如:*“达人探店功能通过UGC内容提升平台活跃度”* #### **3. 风险与反思** - **预判性设计** 如项目经理面试中需强调: > *“在SOW(工作说明书)阶段确认技术边界,避免需求蔓延风险”[^3]* - **复盘总结** 明确项目局限性及改进方案,如:*“初期未设计熔断机制,导致雪崩后新增Sentinel熔断规则”* --- ### **二、高频面试项目案例参考** | **项目类型** | **技术栈** | **面试官关注点** | **案例参考** | |--------------------|----------------------------|--------------------------------|--------------------------| | **电商秒杀系统** | Redis+MQ+分布式ID | 高并发架构、一致性保障 | 黑马点评优惠券模块[^4] | | **社交平台** | WebSocket+推荐算法 | 实时交互、个性化策略 | 好友关注feed流设计[^4] | | **数据中台** | Flink+ClickHouse | 数据管道设计、OLAP优化 | UV统计模块[^4] | | **SaaS工具** | SpringCloud+OAuth2.0 | 多租户隔离、扩展性设计 | 企业级审批系统 | | **物联网平台** | MQTT+时序数据库 | 设备管理、海量数据处理 | 智能家居控制平台 | --- ### **三、项目表述避坑指南** 1. **技术堆砌陷阱** ❌ 错误示范:*“用了SpringBoot, Redis, MySQL...”* ✅ 正确表述:*“基于Redis集群缓存商户数据,解决Tomcat集群下缓存穿透问题,降低DB压力35%”*[^4] 2. **需求理解偏差** 重点展示 **业务到技术的转化能力**: > *“根据SOW要求,将商户地理位置功能从MySQL计算迁移至Redis GEO模块,查询延迟从120ms降至8ms”* 3. **故障处理经验** 必须包含 **问题排查方法论**: *“通过日志定位到分布式锁未释放,增加锁过期时间和看门狗机制解决”* --- ### **四、资源推荐** 1. **实战项目库** - [Gitcode项目脚手架](https://gitcode.com/gh_mirrors/interview-prep):含电商/社交等场景代码模板[^1] 2. **话术训练工具** - [STAR法则生成器](https://example.com/star-generator) 3. **项目复盘模板**: ```markdown ## 项目复盘 - 挑战:__________ - 决策依据:__________ - 量化结果:__________ - 可复用经验:__________ ``` > 📌 **核心提醒**:避免描述“个人博客/仿站项目”,优先选择 **有商业逻辑闭环、复杂技术集成** 的真实案例(如黑马点评级项目)[^4]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值