ldc

TIM图片20190917183435

Python和Go的区别?以及各自的优势?
列表生成式的好处?

列表推导式是将所有的值一次性加载到内存中

生成器是将列表推导式的[]改成(),不会将所有的值一次性加载到内存中,延迟计算,一次返回一个结果,它不会一次生成所有的结果

search和match的区别?

match()函数只检测字符串开头位置是否匹配,匹配成功才会返回结果,否则返回None
search()函数会在整个字符串内查找模式匹配,只到找到第一个匹配然后返回一个包含匹配信息的对象,该对象可以通过调用group()方法得到匹配的字符串,如果字符串没有匹配,则返回None。

什么是贪婪匹配?
面向对象中的__cal__方法的作用?
什么是元类?【不好】
super的作用?【不好】
什么是偏函数?
装饰器的应用场景?什么是单例模式?

staticmethod和classmethod的区别?
面向对象的上下文管理?【不好】
栈和队列的区别?
如果用两个队列实现一个栈?【不好】
如何做链表的逆置?【回去写】
什么是中序遍历?
如何将一个列表中第二大的数找到?
Python垃圾回收机制

进程、线程、协程的区别?
如果遥过yield自己实现一个协程?【不好】
async、await关键字?【不好】
什么是I0多路复用?【不好】
线程池和进程池的用法?

你了解的MySQL引影和区别?
什么是MySQL的存储过程?【不好】
什么是MySQL的触发器?【不好】

组合索引想要命中需要遵循什么?什么是MySQL的执行计划?
什么是MySQL的慢日志?【不好】
什么是分库分表?【不好】
你能想到的性能优化?
left join和inner join的区别?
char和varchar的区别?

http和Https的区别?
列举Http请求头?【不好】
列举常见的状态码?
django和flask的区别?

wsgi的作用?
什么是cgi?【没讲过】
F和Q是什么?
django的orm中on_delete的作用?
django中方法:only、defer?
django中的 selete_related、prefetch_related的作用?【不好】

有外键存在时,可以很好的减少数据库请求的次数,提高性能
select_related通过多表join关联查询,一次性获得所有数据,只执行一次SQL查询
prefetch_related分别查询每个表,然后根据它们之间的关系进行处理,执行两次查询

django如何做读写分离?
django如何写原生SQL?
redis的五大数据类型?

set , list ,

redis和memcache的区别?
redis如何保留热点数据?过期策略
redis的分布式锁是什么?
redis如何实现的高可用?
rabbmitMQ和kafka的区别?
什么是rpc?
什么是celery?
ORM和原生SQL的区别?
drf如何实现的认证流程?

获取原生request, self._request
获取认证类的对象, request.authenticator
1.封装Request
认证成功,走反射方法
认证失败,抛异常
实现认证走perform_authentication 
里面有request.user
获取认证对象, 进行一步步的认证
            self._authenticate()
执行认证类的authenticate方法
1.如果auth方法抛出异常,self._not_auth()执行
2.有返回值,必须得是元祖(request.user, request.auth)
3.返回None , 当前不处理,下一个认证来处理
重写Authtication
重写函数
authenticate
authenticate_header

drf如何实现的截流?

gitm何做协同开发?

基于gitlab做的协同开发,每个人一个分支.

git如何做code review?

基于pull request来实现 (gitee)
组长(同意,合并)

权限组件的实现流程?权限都用到了那些表?
如何实现粒度控制到按钮?
如果让你实现的话,如何实现粒度控制到行?【思考题】
权限信息为什么要放在session中?放在session中有什么不好的地方?
django中如何实现事务?
crm有应用到数据库的锁吗?
crm系统都有哪些功能?
为什么不用现成的crm而来自己开发?
有听说过有第三方现成的crm吗?

第二张

深浅拷贝?

你了解的内置函数?【不好】

filter 

常用的模块?【不好】

什么是迭代器?什么是生成器?

拥有__iter__方法和__next__方法
迭代器

面向对象中_new_方法的作用?_call_方法的作用?【不好】

进程、线程、协程的区别?【一般】

进程
    特点:操作系统级别 开销大 数据隔离
         资源分配的最小单位 数据不安全
         可以利用多核
线程
    特点:操作系统级别 开销小 数据共享
         被cpu调度的最小单位 数据不安全
         可以利用多核
协程
    特点:用户级别  开销极小 数据共享的
        不能利用多核 从代码级别来看数据安全 
进程
    你用过什么起进程的模块么?
        multprocessing
        concurrent.futrues  进程池
        Process(target=func,args=(参数,)).start()
        join()
        ProcessPoolExcutor

    为什么要起进程?
        爬虫的时候 数据分析做的比较复杂 比较多  -- 开启多进程
        为什么要爬虫?

线程
    你用过多线程么?  用过、爬虫
    django(默认就是线程)\socketserver(多线程+io多路复用)\flask(默认用协程,协程找不到,就用线程)
    你知不知道python的GIL锁
    这个锁有什么效果

    你写代码的时候用到过哪些锁
        互斥锁(只能acquire一次) 递归锁(在一个线程中acquire多次也不会死锁)
        互斥锁 效率高、用好了也不会出错
    logging queue list 是否线程安全
        logging queue 线程安全
        list 的所有方法都是线程安全的 append insert extend pop
            list[0] += 1 线程不安全了
        dict update setdefault 都是线程安全的
            dic[key] += 1 线程不安全
协程
    gevent  asyncio
    你用过协程么?
        爬虫 aiohttp
        web项目 sanic asyncio模块
    线程和协程的区别
        操作系统控制线程 程序员代码用户控制协程
        协程的本质就是一条线程
        线程对于IO操作的感知力更强 :打开文件 网络操作 时间模块
        协程对于IO操作的感知力弱很多 :网络操作 时间操作
        文件操作频繁的情况下 协程无法规避掉这部分io操作
    协程有哪些模块?
        gevent
        acyncio :aiohttp sanic

什么是GL锁?

GIL:全局解释器锁 , Cpython解释器下的
,导致了同一进程中多个线程不能利用多核
    相对安全  gc垃圾回收机制,不想加太多细粒度的锁

TCP三次握手和四次挥手?

三次握手
tcp协议在建立连接的时候经历的过程
第一次由客户端向server端发送Syn请求
server端在发送ack回复的时候顺便发送syn请求
客户端收到请求和回复再确认发送一次ack请求
就建立起一个全双工的通信
四次挥手
tcp协议 再断开连接的时候经历的过程
第一次由客户端或者server端发起 发送FIN请求
对方回复ack
对方发送fin请求
接收并回复ack
断开了两端的连接

为什么要有三次握手和四次挥手?

稳定传输,防丢包

OSI7层模型?为什么要有这么多层?

应用层 http https ftp snmp  (会话层 表示层 应用层)
传输层 tcp udp 四层路由器 四层交换机
网络层 ip     路由器 三层交换机
数据链路层 arp 交换机 网卡
物理层

分层的目的是利用层次结构可以把开放系统的信息交换问题分解到一系列容易控制的软硬件模块-层中,而各层可以根据需要独立进行修改或扩充功能,同时,有利于个不同制造厂家的设备互连,也有利于大家学习、理解数据通讯网络。
OSI参考模型中不同层完成不同的功能,各层相互配合通过标准的接口进行通信。

left join和inner join的区别?【不好】

外链接之左连接:优先显示左表全部记录
全外连接:显示左右两个表全部记录

char和varchar的区别?

varchar 变长的 时间换空间型
char 定长的 

如何导出和导入数据?【不好】

组合索引想要命中索引应该遵循什么原则?【不好】

列举http请求头?

user-agent
session 
cookie

列举http常见的状态码?

get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace'

django请求生命周期。

请求进来,路由系统,先走as_view(),然后在走dispatch,反射
def as_view():
​ def view():
​ return view
然后相当于执行的view()函数 as_view()

就成fbv那样了, 执行的view , 然后就是 view() : def view() : return self.dispatch() # drf , 请求封装 ,认证, 权限 , 节流, 反射对应的method执行

列举django的orm操作?
django orm中on_delete的作用?
django如何执行原生SQL?

项目的功能?发布流程?实现方式?

ansible模块?
ansible 和saltstack的对比?
ansible连不上远程机器怎么办?
项目实现时间?负责内容?
协同合作?
git 常用命令?

git init
git add
git commit -m ” “
git push
git pull
svn:
区域:
工作区: 当前的目录
缓存区: add之后的区域
本地仓库:commit之后的区域
远程仓库:
git log 查看当前版本之前的所有的提交记录
git reflog 查看所有的提交记录
git log -n # 显示最近的#条数据
git log -p 对比每次提交的差异
git log --format="%an:%ae:%s:%h" 自定义输出格式
git reset --hard hash值 回滚到自定的版本
git checkout -- file 将文件回滚到最近的一次提交
git status 查看状态
git reset HEAD file 将制定的文件从缓存区拉取到工作区,只是颜色的变化
git diff 对比工作区和本地仓库的区别
git diff --cached 对比本地仓库和缓存区的区别

git stash
git stash list 查看stash
git stash drop 删除快照
git stash pop 恢复快照并删除快照 = git stash apply + git stash drop
git stash apply stashid 恢复快照

git branch 查看分支
git branch name 新建分支
git checkout name 切换分支
git branch -d name 删除分支
git merge name 在合并到的分支上合并
git checkout -b name 创建分支并切换分支=git branch name +git chekcout name

git tag 查看标签
git tag -a name -m “” 创建一个tag
git tag -a name -m "" hash 以hash为模板创建一个tag
git tag -d name 删除一个本地的tag git push origin --tags
git tag -d v0.5 #删除本地
git push origin :refs/tags/name 删除远程仓库的tag
git push origin :refs/tags/v0.5 #往上推送一个空的=删除远程

git clone 将远程仓库的代码拉取到本地,默认是master
git push origin master 上传
git pull origin dev 下载

新电脑如何快速拿到代码?【不好】

环境搭建
安装所需要的模块(requirement)
数据库(和老板要测试库或者手动搭建一个)
功能和url去项目中找代码加注释(粗略看,抓紧为公司办事)
切记: 不要多问技术问题,可以问业务问题
主动:汇报最近的工作情况(周报).

celery使用方式?
为什么要使用celery执行异步任务?
如何代码实现异步?
如何单独文件上传?exce表如何设计?
redis数据类型?

redis是一种高级的key:value存储系统,其中value支持五种数据类型
字符串(strings)
散列(hashes)
列表(lists)
集合(sets)
有序集合(sorted sets)

redis 字符串常用方法?

set   设置key
get   获取key
append  追加string
mset   设置多个键值对
mget   获取多个键值对
del  删除key
incr  递增+1
decr  递减-1

redis 超时时间?【不好】

redis 的使用场景?【不知道】

性能高,读取速度10万次每秒
写入速度8万次每秒
所有操作支持原子性

用作缓存数据库,数据放在内存中
替代某些场景下的mysql,如社交类app
大型系统中,可以存储session信息,购物车订单

运维开发几个人?离职原因?

redis面试题:

redis和memcached比较?
redis中数据库默认是多少个db 及作用?
python操作redis的模块?
如果redis中的某个列表中的数据量非常大,如果实现循环显示每一个值?
redis如何实现主从复制?以及数据同步机制?
redis中的sentinel的作用?
如何实现redis集群?
redis中默认有多少个哈希槽?
简述redis的有哪几种持久化策略及比较?
列举redis支持的过期策略。
MySQL 里有 2000w 数据,redis 中只存 20w 的数据,如何保证 redis 中都是热点数据?
写代码,基于redis的列表实现 先进先出、后进先出队列、优先级队列。
如何基于redis实现消息队列?
如何基于redis实现发布和订阅?以及发布订阅和消息队列的区别?
什么是codis及作用?
什么是twemproxy及作用?
写代码实现redis事务操作。
redis中的watch的命令的作用?
基于redis如何实现商城商品数量计数器?
简述redis分布式锁和redlock的实现机制。
什么是一致性哈希?Python中是否有相应模块?
如何高效的找到redis中所有以oldboy开头的key?

猜你喜欢

转载自www.cnblogs.com/Doner/p/11537388.html
ldc
BDC
ldt
LAC
LDA
ldd
GDC
LCD
ADC
ldp