V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
defias
V2EX  ›  Python

关于 python 掌握程度的问题?

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

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

    一开始就研究细节容易迷失方向,见树木不见森林。对与库来讲,在闲的时候,能把用户文档和 API 文档完整浏览过一次就行。一般不用深入源码级别。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3031 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 11:02 · PVG 19:02 · LAX 03:02 · JFK 06:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.