会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
北风之神0509
反对极端面向过程编程思维方式,喜欢面向对象和设计模式的解读,喜欢对比极端面向过程编程和oop编程消耗代码代码行数的区别和原因。致力于使用oop和36种设计模式写出最高可复用的框架级代码和使用最少的代码行数完成任务,致力于使用oop和设计模式来使部分代码减少90%行,使绝大部分py文件最低减少50%-80%行的写法。
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
5
6
7
···
13
下一页
2019年5月27日
用python做的windows和linx文件夹同步。解决自动同步、加快传输大量小文件的速度、更丰富的文件上传过滤设置。
摘要: 现在工具不好用,用的pycharm自动同步,但对于git拉下来的新文件不能自动上传到linux,只有自己编辑过或者手动ctrl + s的文件才会自动同步。导致为了不遗漏文件,经常需要全量上传,速度非常慢。 由于经常需要在windows的pycharm上直接使用linux解释器,要快速测试,频繁在本机
阅读全文
posted @ 2019-05-27 11:24 北风之神0509
阅读(16145)
评论(0)
推荐(0)
2019年5月6日
超牛 猴子补丁,修改python内置的print
摘要: 猴子补丁一般是用于修改三方包或官方包,也可以用来修改自己或者他人的代码。 但也可以用来修改python 语言内置的关键字。 本篇博客修改python最常用的内置print,使你使用print时候,自动打印出当前打印处的文件名和行号,并使用特殊的自创模板,使其在pycharm控制台中能够点击自动跳转到
阅读全文
posted @ 2019-05-06 15:24 北风之神0509
阅读(15721)
评论(0)
推荐(0)
2019年5月4日
python编程范式培训文档,主要是结合4种代码和,对oop和面向过程编程区别和oop转化公式培训。
摘要: 这是写得培训文档。代码例子在附件。 是经过深入考察 4个git项目里面,找出代码非常非常十分low、代码重复得吓人的的最本质原因。提炼出oop转化公式。 围绕附件中的4种代码写法思维来实现同一个任务,结合这4个代码来讲解造成的原因和转化公式。 我们公司有大约20个人用py,其中有计算机科班工作几年的
阅读全文
posted @ 2019-05-04 20:10 北风之神0509
阅读(6203)
评论(1)
推荐(1)
oop的方式来操纵时间
摘要: 减少return 减少传参。 主要是在调用上比以前强大很多,以前很怕操作时间,在一堆函数中传来传去。这个调用爽。
阅读全文
posted @ 2019-05-04 20:10 北风之神0509
阅读(244)
评论(0)
推荐(0)
使用python对文件夹里面所有代码行数进行统计。
摘要: 统计目录下所有的代码个数和总行数。
阅读全文
posted @ 2019-05-04 20:09 北风之神0509
阅读(15856)
评论(0)
推荐(0)
2019年4月24日
DeBug Python代码全靠print函数?换用这个一天2K+Star的工具吧,改进版
摘要: 原版是上面这样,不能点击,修改后,直接点击链接可以跳转到代码对应地方。不用加很多print来确定代码运行了什么分支。
阅读全文
posted @ 2019-04-24 16:22 北风之神0509
阅读(15706)
评论(0)
推荐(0)
2019年4月21日
一个有界任务队列的python thradpoolexcutor, 直接捕获错误日志
摘要: 基于官方的需要改版 1、改为有界,官方是吧所有任务添加到线程池的queue队列中,这样内存会变大,也不符合分布式的逻辑(会把中间件的所有任务一次性取完,放到本地的queue队列中,导致分布式变差) 2、直接打印错误。官方的threadpolexcutor执行的函数,如果不设置回调,即使函数中出错了,
阅读全文
posted @ 2019-04-21 11:55 北风之神0509
阅读(5956)
评论(0)
推荐(0)
2019年3月22日
python flask多个app应用组合
摘要: 由于之前写得接口太多了,分为了多个app,每个app里面有几个接口。部署次数需要很多次,修改成部署一次,在不改变代码的情况下,不使用蓝图,最快的方式就是这样修改。 from werkzeug.wsgi import DispatcherMiddleware app = DispatcherMiddl
阅读全文
posted @ 2019-03-22 17:25 北风之神0509
阅读(3958)
评论(0)
推荐(0)
2019年3月9日
最方便最好看最好用的python日志。
摘要: 这个日志没有依赖自己的其他包,复制即可运行,也可以从pypi网站上下载或者pip来安装这个日志。 1、日志内置了7种模板,其中模版4和模板5,可以实现点击日志跳转到指定文件指定行数的功能,史无前例的实现这种方式。 2、使用了ColorHandler作为默认的控制台显示日志,而不是使用官方的Stram
阅读全文
posted @ 2019-03-09 19:38 北风之神0509
阅读(19469)
评论(2)
推荐(4)
2019年3月8日
开发一个python万能分布式消费框架(基于mq redis中间件的函数调度框架)。只需要一行代码就 将任何函数实现 分布式 、并发、 控频、断点接续运行、定时、指定时间不运行、消费确认、重试指定次数、重新入队、超时杀死、计算消费次数速度、预估消费时间、函数运行日志记录、任务过滤、任务过期丢弃等数十种功能。大大简化比使用celery,很强大简单,已在多个生产项目和模块验证。
摘要: 更新 python万能消费框架,新增7种中间件(或操作mq的包)和三种并发模式。 框架目的是分布式调度起一切任何函数(当然也包括调度起一切任何方法)。 之前写的是基于rabbitmq的,作为专用的消息队列好处比redis的list结构好很多。但有的人还是强烈喜欢用redis,以及rabbitmq安装
阅读全文
posted @ 2019-03-08 15:24 北风之神0509
阅读(16748)
评论(2)
推荐(2)
2019年1月15日
rabbitmq消费端加入精确控频。
摘要: 控制频率之前用的是线程池的数量来控制,很难控制。因为做一键事情,做一万次,并不是每次消耗的时间都相同,所以很难推测出到底多少线程并发才刚好不超过指定的频率。 现在在框架中加入控频功能,即使开200线程,也能保证1秒钟只运行10次任务。 里面的rabbitpy后来加的,然来是使用pika的,就框架本身
阅读全文
posted @ 2019-01-15 15:48 北风之神0509
阅读(1200)
评论(2)
推荐(0)
2019年1月10日
python 解除装饰器,调用原本函数。
摘要: 假设fun函数被装饰器装饰了,name调用fun,就不是调用fun本身了,那么如何继续调用本身呢。使用fun_raw = fun.__wrapped__这样使用fun_raw就是调用没被装饰器修饰后的函数本身了。
阅读全文
posted @ 2019-01-10 11:40 北风之神0509
阅读(1141)
评论(0)
推荐(0)
2018年12月28日
python rabbitmq的库,rabbitpy代替pika
摘要: 之前看网上都是清一色pika包的例子,就用的pika包,最大问题是非多线程安全,改为使用rabbitpy。大幅改善了pika多线程需要加锁,和外网推送延迟又不能开多线程导致推送慢的问题。 rabbitpy有个适配器,可以把rabbitpy包的channel适配成与pika包的channel的相同公有
阅读全文
posted @ 2018-12-28 15:21 北风之神0509
阅读(2658)
评论(0)
推荐(0)
2018年12月19日
rabbitmq 生产者 消费者(多个线程消费同一个队列里面的任务。) 一个通用rabbitmq消费确认,快速并发运行的框架。
摘要: rabbitmq作为消息队列可以有消息消费确认机制,之前写个基于redis的通用生产者 消费者 并发框架,redis的list结构可以简单充当消息队列,但不具备消费确认机制,随意关停程序,会丢失一部分正在程序中处理但还没执行完的消息。基于redis的与基于rabbitmq相比对消息消费速度和消息数量
阅读全文
posted @ 2018-12-19 14:14 北风之神0509
阅读(11004)
评论(4)
推荐(0)
2018年12月3日
手写一个selenium浏览器池
摘要: 维护一组浏览器,实现每分钟1000次查询。DriverPool使用变幻版只初始化一次的单例模式。维护每个浏览器的当前是否使用的状态。 不需要等待请求来了,临时开浏览器,开一个浏览器会耽误6秒钟。 可以在程序启动后,随便使用命令杀死slenium,,不怕被别人杀死,不需要重启程序就能保证长久正常运行。
阅读全文
posted @ 2018-12-03 17:41 北风之神0509
阅读(1265)
评论(0)
推荐(0)
2018年10月31日
python 将函数参数一键转化成字典的技巧,非**kwargs,公有方法和函数抵制kwargs。
摘要: 1、有时候使用设计模式,例如工厂方法模式,函数传的参数还需要一一根据条件传递到各个类里面去实例化或者其他原因,直接复制所有的参数看起来不太好,造成很多相同的行。 2、直接函数/方法中写**kwargs,那就不需要转化了,但写代码要抵制这样的写法,这样造成补全困难和使调用者不知道需要传递什么参数,必须
阅读全文
posted @ 2018-10-31 19:07 北风之神0509
阅读(1099)
评论(0)
推荐(0)
2018年10月30日
js复制文本内容到剪贴板
摘要: 记录一下使用clipboardData复制不成功。 1、定义一个按钮执行复制
阅读全文
posted @ 2018-10-30 17:49 北风之神0509
阅读(314)
评论(0)
推荐(0)
python 记录linux网速到文件。
摘要: import timefrom app.utils_ydf import LogManagerlogger = LogManager('network_monitor').get_logger_and_add_handlers(log_filename='network_monitor.log')logger_templete7 = LogManager('network_monitor2')...
阅读全文
posted @ 2018-10-30 14:17 北风之神0509
阅读(371)
评论(0)
推荐(0)
2018年10月26日
使用redis原生list结构作为消息队列取代celery框架。
摘要: 1、web后台对大批量的繁重的io任务需要解耦使用分布式异步技术,否则会使接口阻塞,并发延迟,一般就选celery好了。此篇的取代主要是针对取代celery的worker模式。没有涉及到周期和定时模式。 2、对我来说celery提供了 分布式,任务路由,超时杀死,任务过期丢弃,任务限速,并发模型选择
阅读全文
posted @ 2018-10-26 14:12 北风之神0509
阅读(966)
评论(1)
推荐(0)
2018年10月19日
supervisor来自动化部署,集成git
摘要: 使用此方法基本上在测试环境可以用来代替jenkens构建docker了,部署速度上快很多倍。 写一个脚本拉取git,可以使用git包,也可以直接调用linux或者wndows的 命令来拉取git。 然后需要执行两条命令,每个部署任务都先执行拉取git,然后再启动主要程序。 配置如下:
阅读全文
posted @ 2018-10-19 16:56 北风之神0509
阅读(458)
评论(0)
推荐(0)
上一页
1
2
3
4
5
6
7
···
13
下一页
公告