Python技术迷

公司来了个牛逼的女开发,感觉我又行了

刚看到有网友说,最近公司来了个女后端开发,瞬间感觉自己又行了。说实话,作为老程序员,我是真的不太care性别,更多还是看代码实力。

Image

后端圈子里女生本来就少,每次遇到都挺稀罕,但能被招进来,十有八九就是技术硬核。

我也见过狠角色,女同事写起服务来,一行行bug全扫清,分分钟把我们这些“老男人”都比下去。网友评论说女后端比社招都强,这点我真信——别觉得偏门的就弱,往往越难的地方,人才才显得更耀眼。

不过话说回来,职场其实最看重的还是你能不能创造价值,别管外界怎么议论,手里的本事才是真正让人服气的底气。【备注:文末可领最新资料】

面试题:查询活跃业务

我们组那个小李还非要问我,“哥你那个查活跃业务的Python脚本有吗?”我说你等会,我刚抽根烟回来就给你说说,真的是,活跃业务这种需求,怎么说,挺常见,但大家每次都喜欢把它搞得贼复杂,实际上用起来还挺简单的。

其实啊,说白了就是查有哪些业务是真正在用的嘛,啥叫活跃,定义特别玄乎,有人说只要最近7天有数据流量的算,有人非得要最近1小时有访问的才算。我一般就是拿数据库那表,比如order或者log啥的,直接来一波group by加count,然后挑出有记录的业务id就行了。有一次我用Python,配合pandas,分分钟查出来,感觉比sql还灵活。

先说最简单那种,就是你假设有个业务表 business,还有个日志表 log,日志表里有业务id和时间戳。那你就这么玩:

import pandas as pd
from datetime import datetime, timedelta

# 这步其实就是模拟下从库里查出来的
logs = pd.DataFrame([
    {"business_id": 1, "op_time": "2024-07-10 20:12:01"},
    {"business_id": 2, "op_time": "2024-07-09 09:30:00"},
    {"business_id": 3, "op_time": "2024-06-10 17:45:32"},
    {"business_id": 1, "op_time": "2024-07-11 10:03:33"},
    {"business_id": 2, "op_time": "2024-07-10 08:22:11"},
])

logs["op_time"] = pd.to_datetime(logs["op_time"])

# 最近7天
start_time = datetime.now() - timedelta(days=7)

# 过滤一下
active = logs[logs["op_time"] >= start_time]
active_business_ids = active["business_id"].unique()

print("最近7天活跃业务:", active_business_ids)

这个你直接抄过去改下表名就能用。你要觉得pandas用得别扭,直接用sql也一样,反正活跃业务的核心就一点:找那些“近期有动作”的业务。

有一次我们项目更变态,要查活跃用户还要分渠道,问我能不能多条件组合一起查。我那会在工位上喝咖啡,差点没呛死。我说兄弟你这不是为难我么。其实你就多加几列条件,pandas那groupby,或者sql的where加and,随便你搞。

然后你要是数据量大的话,比如日志表爆炸,几千万条,别直接暴力查,得有索引,要不然你线上直接爆炸,我有一次线上搞挂了,被领导叫过去问候了半天,血的教训。

对了你们要是查某种活跃,比如说活跃用户占比,类似留存,这种就把所有业务做个总数,然后活跃的做个交集,除一除就是比例。有点像这样:

total = logs["business_id"].nunique()
active_count = len(active_business_ids)
print("活跃业务占比:", active_count / total)

就是这样,思路特别简单,主要还是业务上自己把“活跃”怎么界定说清楚,要不然你写出来,业务方又给你返工,说不准。

-END-

我为大家打造了一份RPA教程,完全免费:https://www.songshuhezi.com/rpa.html

🔥虎哥私藏精品🔥

虎哥作为一名老码农,整理了全网最全《python高级架构师资料合集》,总量高达650GB,点击下方公众号回复关键字 python 全部免费领