美文网首页笔试&&面试经验程序员
Python Web工程师面试总结(一)- 总体框架

Python Web工程师面试总结(一)- 总体框架

作者: FesonX | 来源:发表于2019-03-10 15:33 被阅读30次
py

面试了一家初创公司, 面试官问的问题并不是说很难, 但是覆盖面比较广, 有一些基础概念不清晰的话, 很容易被问倒.

一些资料显示, 对 Python Web 开发工程师的一些技术栈要求如下:

  • 熟悉Python语言
  • 对 HTML/ CSS/ Javascript 比较熟悉
  • 对网络基础知识,比如HTTP、TCP/IP 等比较熟悉
  • 熟悉数据库、缓存、消息队列等技术的使用场景和使用方法
  • 日常使用类 Unix 系统工作, 如 Mac OS, Ubuntu, Deepin
  • 有性能优化经验,能快速定位问题

如果用一个项目来反推技术栈要求可能更好理解.


技能树

用 Python Web 框架开发项目, Python 语法基础自然是前提条件. 而开发过程中使用 Python 包管理工具也是必不可少的. 这是为了开发环境不受污染, 同时也方便后期项目的部署, 如果整个系统使用同一个包管理工具, 很容易会出现库包的版本冲突, 并且部署到服务器时, 由于没有区分环境, 只能将所有项目的包的并集一起安装到服务器上, 造成资源浪费.

以 Django 为例, MTV 模型中的 Model, 虽然是用 ORM 简化了数据库的操作, 但是基础的数据库增删改查语句仍是必须要学会的. 如果使用了非关系型数据库还需要你清楚与关系型数据库的差别, 或者说使用的原因是什么. 技术优劣性的讨论都是在限定条件下的, 盲目鼓吹某个技术, 并不是一个明智的做法.

Django 中的 T 是 Templates 模板, 模板中需要的大部分都是前端的知识, HTML/ CSS/ JavaScript/ Ajax 都需要有所了解, 也许我们不是一个设计师, 但是用前端做一个清爽易用的页面不是一件很困难的事, 而这却能提升不少用户体验.

Django 中的 V 是 Views 视图, 视图通常要与路由 urls 结合使用, 路由少不了看懂并会写一些基本的正则表达式, 路由转发请求和视图响应的过程涉及到一些网络基础知识, 这些网络基础知识包括但不限于 HTTP/ TCP协议, 各种网络响应状态码等, 熟悉这些知识可以在调试, 查看日志时更快地定位错误.

最后一项是项目部署上线, 项目部署通常是在 Linux 服务器上进行, nginx / Apache 代理服务器与 uWSGI 之间的配置文件需要清楚是如何关联的.

由于服务器通常只有一个终端可供交互, 平时的用户界面都是没有的. 常用的 Linux 命令自然要了然于心, 否则出了问题, 连日志都不知道怎么看. 同时常用的 Git 管理命令也要清楚明白. 克隆, 同步, 分支管理的几个常用命令都是标配, 同时背后的原理也要明白, 什么时候会冲突, 冲突又要怎么解决.

关于上述几个方面的详细内容, 将会在接下来的文章中展开.

相关文章

网友评论

    本文标题:Python Web工程师面试总结(一)- 总体框架

    本文链接:https://www.haomeiwen.com/subject/xzqspqtx.html