今天面了一家招 python 全栈的,约的下午一点半,聊得比较少但还行。
先问 flask,django 和 tonardo 的区别,我答得很全面。tonardo 是异步框架,事件驱动型,基于 ioloop 的,性能好并发量高。Flask 和 django 都是同步型框架,基于 wsgi 协议的,Flask轻量级,Django重量级,自带众多子应用,Flask 用栈加 werkzeug.local 信号量约束实现线程安全,Django用wsgiref 处理的线程并发。tonardo 通常都是写原生 sql,开发效率不高。
接下来问了知不知道 sqlalchemy,Flask 项目中有没有用。回的知道,一个 ORM 模板框架,项目中没用,写的原生 sql,g.db.execute()
,问我 g 是啥,我说了 g 对象,没让我详细解释。
接下来问我对 web 安全有什么了解?我说这个问题太大了,能否具体点,我提了比如数据库安全,sql 注入什么的(脑中过了一下sql 注入,数据库远程登录,cookies、session会话信息和 token 鉴权,还有对称非对称加密,HTTPS,CSRF 和 XSS 等等)。没让我自由发挥,问了 cookie 和 session 机制,还有cookie池,问了设了 cookie 服务端怎么就知道知道客户端是谁。回了一个简单 session的demo,服务端存 key-value,将 key 返回给客户端。
然后问了权限划分,我举了上下级评论的例子,有些直接查数据库实现的。还有继承重写了 django 权限类,然后拿装饰器直接装饰(说错了,flask 常拿装饰器装饰,django 权限控制是在 meta 还是类属性直接指定来着)。其实这道题回答的一般,他也没细问。如果细问的话,我应该就会讲划分的粒度了。比如 Data级别, Model 级别,Form 级别(一般不用),Requests 级别。功能上只读,是否允许写和修改等等。在解释一波 django 的权限子应用的表结构和存储内容。
还问了前端用过啥,我就回了帮人干活,用的前端 Vue 那一套。问了 React,回了上个项目前端用的 React。没问技术点。
然后他们了解了他们做 B2B 的,风险监控帮客户做记账功能等等,他说他们业务挺复杂,正在重构,前端打算从 Vue 转 React,我瞬间没了兴趣。我感觉从 Vue 转 React 技术上说得过去,但是 python 也应该废掉了,毕竟业务复杂,维护一大坨 python 代码也是挺糟心的事,python语言特性导致。
然后就互相了解,聊了一会,问我有啥想问的,问了几个后我说我没啥想问得了,我问他还有啥想问的没,他说他也没啥想问得了,然后我就主动提今天先到这,然后他问我上家薪资,我就告诉他了。。。
我估计他是以为我着急走是因为赶下家面试,但其实是我没吃午饭,太饿了!!!
网友评论