首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python后端架构演进

来腾讯之前在前公司做了3年的后端开发,经历一款SaaS产品从0到10(还没有到100, 哈哈哈)的过程,3年间后端的架构逐步演变,在微服务的实践过程中遇到的问题也越来越多,在这里总结下。...产品是一款服务于人力资源的SaaS在线服务,面向HR有Web Android/iOS 小程序多个客户端,后端采用RESTful风格API来提供服务。主要使用Python语言,方便快速迭代。...后端需要很多的预留设计,避免产品逻辑的变更带来整个表结构的变动,在这个阶段代码上最重要的是确定适合团队的代码规范,代码检查规则。 ​...拆分的过程没有遇到太大的问题,初期的拆分只是代码的分离,把公用的代码抽离出来实现一个公用的Python库,数据库,Redis还是共用,随着负载的增加,数据库也做了多实例。 ​...饿了么维护一个纯Python实现的thrift协议框架thriftpy,并提供很多配套的工具, 如果团队足够大,这一套RPC方案其实是合适的,但是我们的团队人手不足,水平参差不齐,很难推广这一整套学习成本高昂的方案

6.4K30

Python后端技术栈(二)

并且回顾了 Python 语言基础部分。美中不足的是上篇文章的结构有些混乱,从这篇文章开始,严格按照导航的编号进行编写。 本篇文章将要开始 Python 算法与数据结构相关知识的总结回顾。...1.2.4 Python list/tuple 区别 它们都是线性结构,支持下标访问。但是 list 是可变对象, tuple 保存的引用是不可变的。...1.利用 Python 内置的 dict + collections.OrderedDict 实现。 2.dict 用来当做 k/v 键值对的缓存。...web后端数据结构总结 1.常见的数据结构链表、队列、栈、二叉树、堆 2.使用内置结构实现高级数据结构,比如内置的 list/deque 实现栈 3.可以多看一下 LeetCode 或者 《剑指 offer...1.2.18字符串 我们需要了解常用的字符串操作: 1.Python 内置了很多字符串操作,比如 split(分割)、upper(大写)、replace(替换)等等。

1.6K20
您找到你想要的搜索结果了吗?
是的
没有找到

简单聊聊Python后端开发和Java后端的区别

今天我想以个人观点来简单说说Java后端开发和Python后端开发的区别。...回归正题 Java和Python开发后端的区别,从我个人最直观的感受就是 1、简易度 Python后端框架最火的就是Django和flask,我也写过这两个框架的系列文章,感兴趣的可以去看看。...但是在Python中我们的项目架构更多的是自己去定义甚至可以不需要。 ? springboot项目架构 ? flask项目架构 3、生态环境 生态环境也许是Java后端更火的原因之一吧。...当然像这些大型网站不可能只用一种语言来写后端,但是主体的支撑还是Java。 在大型网站里用Python来做支撑的其实并不是非常的多,但是也有,例如豆瓣、youtube等。...总结 除了上面我的一些直观感受,Java后端的优势确实还是有许多,例如性能、并发等。 可能有些小伙伴会说,那做Python后端还有前途吗?

11.9K40

Python后端技术栈(一)

.常用框架的对比,使用 Restful 2.WSGI 原理 3.Web 安全的问题 1.8系统设计 1.设计原则,如何分析 2.后端系统常用的组件(缓存、数据库、消息队列等等) 3.技术选型和实现(短网址服务...2.1.2 Python 作为后端语言的优缺点 为什么使用 Python ? 答:它是一门胶水语言,轮子多,应用广泛;语言灵活,生产力高,是一些创业公司以及外包项目节省时间的首选语言。...2.1.4 Python 之禅 The Zen of Python 便是著名的Python 之禅,它是由 Tim Peters 编写的关于 Python 编程的准则,我们可以使用下面的代码进行查看: import...2.2 Python2 和 Python3 的差异 2.2.1 Python2/3 差异 Python3 中做了一些改进,我们需要了解。...在 Python2 中使用 Python3 的函数功能可参照如下代码: from __future__ import print_fuction 2.3 Python 函数 2.3.1 Python 如何传递参数

4.8K52

Python后端基础面试题

反向代理,多个客户端给服务器发送的请求,nginx服务器接收到之后,按照一定的规则分发给了后端的业务处理服务器进行处理了。...负载均衡 反向代理中,服务器按照一定的规则分发给后端服务器,将服务器接收到的请求按照规则分发的过程叫做负载均衡 负载均衡的调度算法:权重轮训,ip_hash,url_hash 2.nginx配置 server...Template 此外, Django 还有一个 urls 分发器, 它将一个个 URL 的页面请求分发给不同的 view 处理, view 再调用相应的 Model 和 Template 10.python...22.python和go的区别?...以及各自的优势 python是动态类型的解释型语言,代码简洁易懂 go是静态类型的编译型语言,天生支持高并发 23.列表推导式和生成器推导式 列表推导式占用内存,可以重复利用 生成器推导式节省内存,但不可重复利用

84230

Python后端面试(持续更新)

Python后端 Python后端技术栈 Web请求的流程 浏览器 负载均衡 Web框架 业务逻辑 数据库缓存 Python语言基础 语言特点 语法基础 高级特性 算法与数据结构 常用算法和数据结构 分析时间...后端系统常用组件(缓存、数据库、消息队列等) 技术选型和实现(短网址服务、Feed流系统) 技术之外,软实力 学习能力 业务理解能力,沟通交流能力 心态 Python初、中级工程师技能要求 初级工程师...适当模拟训练 采用STAR模型让回答更有条理 Python语言基础常见考题 Python是静态还是动态类型?是强类型还是弱类型?...动态强类型语言 动态还是静态指的是编译期还是运行期确定类型 强类型指的是不会发生隐式类型转换 Python作为后端语言优缺点 胶水语言,轮子多,应用广泛 语言灵活,生成力高 性能问题、代码维护问题、Python2...,ipaddress,concurrent.futures等 Python2/3工具 six模块 2to3等工具转换代码 __future__ Python函数常考题 以下Python代码分别输出什么?

1.9K11

从前端Processing 到后端Python

就以python到processing为例,因为processing是支持Client的,那么就可以直接通过socket进行通信了,这个就好像一个网页的前后端一样,前端的网页 - processing...和后端的服务器 - 本地server。...background if the mouse is pressed if (mousePressed) { background(255); } else { background(0); }} Python...这只是一个例子,显然不至于python,其他各种语言也都是可以实现的,选择专业的环境,做专业的事! 这种的通信方式,不仅可以完成本地的数据的调取,其实也可以完成远程的数据传输。...通过把“前端” “后端”的切分,让processing更加专注于视觉效果的展示,同时让代码模块化,不熟悉的processing的工程师们也是可以加入进来一起共同完成项目了。

1K40

Python后端技术栈(八)--系统设计

1.8系统设计 上篇文章传送门『我是个链接』 上篇文章对 Python web 框架中的一些经典问题做了总结,比如 WSGI、web 框架、网络安全问题、RESTful 以及 RESTful API 本篇文章将开始系统设计的相关内容...,开始咯~ 1.8.1 系统设计相关内容 1.什么是系统设计 2.系统设计需要掌握哪些知识 3.如何设计以及如何实现一个后端系统服务的设计 1.8.1.1 什么是系统设计 System Design 系统设计是一个定义系统架构...还需要熟悉后端的技术组件,比如消息队列、缓存、数据库和各种 web 框架。我们需要掌握它们的使用场景以及底层原理。比如什么时候去使用缓存?数据同步的问题如何去解决?...Python 中 bin 这个函数可以进行转化,但是我们不用,我们傲娇,我们要自己用代码实现一下: def mybin(num): # 10进制 -> 2进制 if num == 0:...NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), KEY `idx_token` (`token`) ); 前端页面此处不提供,只提供后端代码

1.5K40

如何面试Python后端工程师?

我斗胆回答了一下,  http://www.zhihu.com/question/33398583/answer/59017861 吃午饭的时候我就一直在想这个问题,我觉得重点不是Python而是后端工程师...我希望听到twisted->tornado->gevent,能扯到golang,erlang更好 二.操作系统 可以直接认为是linux,毕竟搞后端的多数是和linux打交道。 ...更新:讨论区挺热闹,有人说好简单,有人说好难,其实我觉得这只适合面试2~3年工作经验的后端工程师。真的没有问  很难的题目,只是可能你平时没有注意。 ...我想有一部分原因是Python这门语言造成的,会写Python的人很多,但写的好的人很少,大部分都把Python当做脚本来写,缺乏面向对象,模式的思想。...反观Python,尤其是生成器,协程,元类给Python注入了很大的灵活性,想写的Pythonic有不小难度,但其实Python高级特性就那么几个,干掉了也就没有了。

1.4K10

IOS App如何调用python后端服务

本篇文章旨在通过一个小的Demo形式来了解ios app是如何调用python后端服务的,以便我们在今后的工作中可以清晰的明白ios app与后端服务之间是如何实现交互的,今天的示例是拿登录功能做一个演示...01、第一部分 ios app端主要代码和底层依赖的IOS系统原生工具包内容如下图所示: 02、第二部分 Python 开发的后端服务的代码及服务启动截图如下图所示: 从服务启动日志可以看到,服务端提供了入口地址是...如果不是指定的用户名及密码就返回失败的json给请求端,再看看ios app源码中的代码: 发送了一个get 请求,请求的地址是192.168.1.102:8090/user_login,从这里就可以看到请求就会发到python...后端服务器上来。...总结:测试工程师在每天的繁忙测试任务中,可能会只看重我们当前测试的功能,而忽略了系统内部间的调用关系及原理,所以本文主要是让大家知晓ios app 如何调用python 开发的后端服务,以便了解整个过程发生了什么

97130

Python后端技术栈(三)--设计模式

1.3编程范式 上篇文章传送门『我是个链接』 上篇文章对 Python 的一些数据结构和常用算法做了归纳概括,很多东西还需大家多多练习才能掌握,算法需要理解,而非记忆。...多态:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果 3.Python 中使用类来实现面向对象的编程。之前我们是过程式编程以函数为基本单位。...1.3.2.1什么是装饰器 Decorator 1.Python 中一切皆对象,函数也可以当做参数传递 2.装饰器是接受函数作为参数,添加功能后返回一个新函数的函数(类) 3.Python 中通过 @...之所以动态语言比如 Python 里面设计模式讲的少,并不是说它不重要,而是动态语言自己已经实现了一些设计模式,比如迭代器模式,装饰器模式 Python 本身就支持。...其实我们经常接触它,也许你不注意而已,比如 Python 的模块其实就是单例的,只会导入一次。不论你在代码里面 import 多少次,最后其实解释器只导入一次。

1.1K30
领券