【转载+总结】Python 干货
来源:互联网 发布:卖衣服的淘宝店 编辑:程序博客网 时间:2024/06/09 10:47
1. 知乎【使用 Python会降低程序员的编程能力吗?】
首先楼主不知道知乎就是Python做支撑的么?
以前我是一个Linux/C程序员,后来我自学了Python,工作中利用Python做了一个支撑4000万日活跃用户,每天40亿条数据的系统。其中需要高性能的模块是用C的。
来点干货,Python中包含了许多从软件工程和实际应用都会遇到的问题。
面向对象?没问题,Python虽然不象Ruby万物皆对象,但是动态语言一些本身特性如鸭子类型,让你忘记还有多态,继承?太简单了,甚至还可以多重继承。封装?每一个文件都可以看作一个类,还有比这个更赞的么,你甚至可以不用关心什么是命名空间。
如何管理依赖?pip和virtualenv加wheelhouse打离线包,代码可以直接发布,妈妈再也不用担心我管理依赖了。
如何发布代码?fabric,一条命令,所有机器都执行,还要再简单点么?
异步系统?tornado是工业级的异步web服务器。
Web系统搭建?如果你是做java或者PHP什么的,基于类CGI的发布太简单了,paste.deploy可以让你轻松构建uwsgi的web,中间健?写个认证模块太简单了,在web接口层外部就隔离非法数据。
单元测试?webtest模块让你轻松离线测试web接口,根本不需要把代码部署到服务器,通过HTTP返回了,是的,离线的web测试。
Mock测试?stub模块,让你在Python的依赖层面注入stub。
以上这些,早已经脱离语言本身的范畴了,可是我都是通过Python学来的,任何地方都可以借鉴?
虽说不能绝对化,但是不同语言的社区训练出的程序员的能力侧重点还是不一样的:
1. C程序员对于内存管理,计算机体系的理解能力;
2. C++程序员对元编程的理解能力;
3.Java程序员对于OO和设计模式的理解,对规模项目掌控的能力, 对虚拟机实现理解的能力;
4.Ruby程序员创造Web应用的能力;
不会,软件工程师至少要包括程序设计和程序开发这两项能力。程序的设计与开发实现更重要。
1.Python有大量的开源库值得我们去学习,你会学习很多很灵巧的设计方法和设计模式;
2.编程能力主要体现在将复杂问题简单化,简单问题模式化的能力。
3.关注Python,因为她非常干净优雅,并鼓励清晰易读的代码,易学易用。
4.与C结合紧密,但需要你对软件的模块划分更加合理、科学,将C的效率和Python的优雅有机地结合起来。
5.最后,每种语言都有优势,C,Java,Python/Ruby,一个好的软件工程师应该兼收并蓄,不应厚此薄彼,这样才能你的能力才能提高!
我主要使用的编程语言有c/c++/python/java,除了python都参与写过万行以上的项目(python没有是因为解决问题根本用不着1w行:)。个人还是很喜欢python编程的感觉,可以将注意力集中在逻辑实现而不是细节实现上。
遍布各地的python黑客发来贺电,一般只有不会编程的人才去纠结编程语言的优劣,大牛都在用js写编译器,写代码做基站。
原谅我言重了lz。
加一句,lisp可以加重程序员的强迫症。
2.【说说这篇「我为什么从python转向go」】
django的网络是同步阻塞的,也就是说,如果我们需要访问外部的一个服务,在等待结果返回这段时间,django不能处理任何其他的逻辑(当然,多线程的除外)。如果访问外部服务需要很长时间,那就意味着我们的整个服务几乎在很长一段时间完全不可用。
为了解决这个问题,我们只能不断的多开django进程,同时需要保证所有服务都能快速的处理响应,但想想这其实是一件很不靠谱的事情。
tornado是异步的,但是python的mysql库都不支持异步,这也就意味着如果我们在tornado里面访问数据库,我们仍然可能面临因为数据库问题造成的整个服务不可用。
python的GIL导致导致无法真正的多线程,大家可能会说我用多进程不就完了。但如果一些计算需要涉及到多进程交互,进程之间的通讯开销也是不得不考虑的。
部署python服务的时候,我们需要在服务器上面安装一堆的包,光是这一点就让人很麻烦,虽然可以通过puppet,salt这些自动化工具解决部署问题,但相比而言,静态编译语言只用扔一个二进制文件,可就方便太多了。
Python 是有 virtualenv 这个工具的,事实上对比包管理和包隔离,Python 比 Go高得不知道哪里去了。Python 跟 Git 谈笑风生的时候, Go 的 dev 们还得考虑我怎样才能使得 import的包稳定在一个版本上(当然现在有很多第三方方案)。Virtualenv + Pip 完全可以实现 Python部署自动化。
0 0
- 【转载+总结】Python 干货
- python干货分享/网址总结
- 【转载】 linux-python …
- 【转载】 linux Python&…
- 【转载】python -- 15个…
- Web 挖掘技术总结 (转载)
- 转载 hessian学习总结
- 干货转载
- 适合Python初学者的笔记总结【干货】
- python干货
- python 干货
- 【转载】Python 基础语法(二)…
- 【转载】python __init__&nbs…
- 【转载】Python 获取网卡设置…
- 【转载】python xml.dom模块…
- Apache DBUtils使用总结(转载)
- 【原创】 python MySQLdb 异常总结
- 干货:Python快速入门
- 【原创】centos 打开防火墙端…
- huchi's mysql扫盲笔记
- 【原创】 下载 安装 bootstrap
- 【原创】VIM 快捷键大全&nbsp…
- matlab 常用集合相关的函数
- 【转载+总结】Python 干货
- 对StrongReference,WeakReference,SoftReference和PhantomReference的认识
- 【原创】python修改文件某行的内容
- 【转载】python -- 15个…
- SSO (Single Sign On)介绍
- 【原创】python mysql-connec…
- 【原创】sublime text 快捷键
- git部署与git常见问题解决
- 【原创】python 装饰器