关于 python 掌握程度的问题?

2016-09-07 18:51:42 +08:00
 defias
几年前开始就一直对 python 感兴趣,然后也是作为主要语言来学习,由于本身工作是做测试不是做纯开发,所以一般主要就是使用 python 中大量现成的模块来实现一些测试相关的功能。
最近的公司里面社交产品后端主要就是 python 语言开发的,然后大概了解了下后端的 python 代码实现,发现有很多地方不仅仅是在使用一个框架或模块,还会对模块本身功能进行扩展、继承、改写等等,比如很常用的 json 模块,对里面的 JSONEncoder 进行继承改写。。 我想这势必要对模块本身有深入的了解而不仅仅是会使用才能做到的。
作为测试以前总是把那些现成的模块当成是黑盒子,较少关心里面的实现,我想问下作为开发或是高级 python 开发人员,你们掌握 python 语言会掌握到什么程度?
2816 次点击
所在节点    Python
8 条回复
binux
2016-09-07 19:10:25 +08:00
现成的模块仅限于了解 O 的程度,具体实现细节需要再去看。
mgna17
2016-09-07 19:11:13 +08:00
如果精通是 100 分的话,我给自己打 40 分,我是一个写业务逻辑的初级开发😁
kindjeff
2016-09-07 19:12:43 +08:00
defias
2016-09-07 20:16:26 +08:00
@kindjeff 哪里有售
kindjeff
2016-09-07 21:56:44 +08:00
@defias 哈哈,我只是推荐你看看董伟明的博客,这本书现在只有预售
sylecn
2016-09-08 14:45:38 +08:00
语言这块首先是基本语法,标准库,常用第三方库要熟。深入一些会涉及到 decorator, context manager, iterable, generator/co-routines 。再深入一些可能会涉及到 metaclass, C module/cython.

其实对于日常开发,语言是次要的。更重要的是工程上,能够把大问题肢解成小问题并合理解决,写出来的代码容易懂,容易测试、扩展和维护。懂得合理利用工具。懂字符串处理,懂 web 协议,懂 web 前后端,懂异步编程,懂分布式计算。懂算法复杂度,懂实现复杂度。
JoeyTeng
2016-09-08 23:27:51 +08:00
@sylecn 等一下,我想请教一下,对于库是不是黑盒式使用要好一些?毕竟内部实现可能会修改,但是接口是不会变的。
sylecn
2016-09-11 12:53:26 +08:00
@JoeyTeng 由于 python 的动态特性,很多需要了解细节的东西,可以在需要的时候再去研究,不是很需要一开始就研究内部细节。除非你的目标是实现自己的框架或者很基础的库,否则都可以不要研究实现细节。只要在遇到问题的时候,能够有能力去研究细节就可以。比如你需要知道某个复杂项目 /库里面 class/function/method/module/pkg 的调用关系,知道常见的错误类型,知道常见的算法,知道一些调试的手段。

一开始就研究细节容易迷失方向,见树木不见森林。对与库来讲,在闲的时候,能把用户文档和 API 文档完整浏览过一次就行。一般不用深入源码级别。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/304627

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX