V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  workwonder  ›  全部回复第 7 页 / 共 12 页
回复总数  224
1  2  3  4  5  6  7  8  9  10 ... 12  
2017-11-14 21:14:02 +08:00
回复了 workwonder 创建的主题 Python Python 's builtin min/max is evil
> 不符合 min/max 逻辑的使用方式就应该报错而不应该过度包装

@n2ex2 我觉得是否符合逻辑得看场景,比如当我们说 世界首富 的时候考虑到了财富未被统计(p.wealth=None)的人了吗?
我的某些 task.start=None 在系统里面是正常的;我取 `min(t.start for t in tasks)` 的结果作为 project.start 也是既定规则; tasks 是空列表也是正常的,表示没有任务,那么我让 `min([])` 返回 None 表示没有结果也是符合预期的。
所以我觉得我没有过度扭曲 min/max 的语义。
2017-11-14 21:02:20 +08:00
回复了 workwonder 创建的主题 Python Python 's builtin min/max is evil
> 危害就是 Python 里 int/float 不可以与 None 比较,你强行让他们可以比较了

@billgreen1 我的命名为 min/max_ignore_none, 其实想表达 None 是未知值,参与比较是没有意义的,所以直接忽略了,不管比大还是比小。
2017-11-14 20:58:59 +08:00
回复了 workwonder 创建的主题 Python Python 's builtin min/max is evil
@dawncold task.start 表示一个 task 没有设置开始时间。
2017-11-14 20:55:53 +08:00
回复了 workwonder 创建的主题 Python Python 's builtin min/max is evil
@est 让您意外了,确实被坑的狠!而且我 Python 有多年经验。哈哈!

一开始没做详尽数据数据校验,但是能正确运行很久,其它子模块逻辑微调,意外受灾。但是用我所谓的 safe 版替代,确实不用到处做那么冗杂的判断了,这也从侧面反映了内建的 min/max 不太灵活。

比如像下面这种逻辑:

>>> task.start = min(task.start, start)

原地判断一下参数写起来还是很容易出错的。
2017-11-14 20:24:35 +08:00
回复了 workwonder 创建的主题 Python Python 's builtin min/max is evil
@n2ex2 危害在哪儿,欢迎举例。
2017-11-14 20:23:50 +08:00
回复了 workwonder 创建的主题 Python Python 's builtin min/max is evil
@zsj950618 我还考虑了 `min()`, `min(1)`, `min([])`,所以复杂了点。
2017-11-14 20:20:42 +08:00
回复了 workwonder 创建的主题 Python Python 's builtin min/max is evil
@CSM 我们的业务中,`min(t.start for t in tasks)`,其中 task.start 为 None 是很正常的,所以也不需要快速失败。
还有如果 tasks 是个空列表,我完全希望其返回 None。
2017-10-29 14:08:37 +08:00
回复了 fkbd 创建的主题 程序员 脱离了 git,我现在用 sftp+phpstorm 来实现多人合作开发。
心累
楼主太固执了,没法看下去了
2017-10-23 20:09:23 +08:00
回复了 workwonder 创建的主题 数据库 如何高效的存储手工排序
@ZnZt 我现在写 Flask+ArangoDB
2017-10-23 19:58:03 +08:00
回复了 workwonder 创建的主题 数据库 如何高效的存储手工排序
@ZnZt 拖动到目标位置后把 position 设置为前后之和取平均的方法确实也考虑了并实施了,但正如大家都提到的,很快就会消耗完所有能够表达的数字(哪怕支持小数),而且我当时把没有搞那么的的步长,很快就觉得这种机制不靠谱。

文中提到可以在闲时再重拍,避免数字被消耗光,我觉得靠谱。准备再考虑下这种方案。
2017-10-23 19:43:34 +08:00
回复了 workwonder 创建的主题 数据库 如何高效的存储手工排序
@ZnZt 多谢老搭档,其实我的业务实体不是 Project+Task,看来这两个关键词好搜索。
2017-10-23 19:18:50 +08:00
回复了 workwonder 创建的主题 数据库 如何高效的存储手工排序
@noNOno 暂时往简单的方向做,尽量兼顾性能。

我还有个方案是在 Project 上添加一个数组字段( Project.tasks_order, e.g. ['t001', 't002', 't003']),用来保存 tasks 的顺序,这样每次拖动都只用改单个 project 的 tasks_order 属性。这种方法在存储上比较冗余( Task 上面已经有了到 Project 的外键),同时如果想按 tasks_order 的顺序读取出来,还无法利用数据库做到,需要额外在程序中排序。总之感觉这种方案怪怪的。
2017-10-23 19:12:00 +08:00
回复了 workwonder 创建的主题 数据库 如何高效的存储手工排序
@lizon 我的意思是拖动实时生效,一次拖动,需要改 N 个 task 的 position 字段。同时一个 project 是多人管理的,如果有好几个人拖来拖去,那写操作就比较夸张了。
2017-10-23 19:07:30 +08:00
回复了 workwonder 创建的主题 数据库 如何高效的存储手工排序
@noNOno 你这种方案需要额外引入异步调度任务
2017-10-14 18:12:45 +08:00
回复了 takanasi 创建的主题 Python django 的信号是什么原理?
我用的 arango-orm 库由于没有事件机制,我就自己写了,你可以看下相当简单的,还有单元测试。
https://github.com/wonderbeyond/arango-orm/commit/1559cba970ea28fe96536efb739f8d558ef7370d
2017-10-14 17:55:18 +08:00
回复了 rogwan 创建的主题 Python 这个有点厉害了 The fifteen most popular languages on GitHub - 2017
@Mistwave 那项目里面的 markdown 文件要统计吗?
2017-10-13 13:23:21 +08:00
回复了 workwonder 创建的主题 Python 如何得到 flask 中单个请求的唯一 ID?
https://gist.github.com/wonderbeyond/ae7c27be9536d65966f5d94464df0d96

实际需求很简单,我实现的也很简单。
可为什么以 "flask request id" 为关键词找到的别的实现看起来有点复杂而且有点绕,或者完全不是一个意思:

- https://pypi.python.org/pypi/flask-request-id-middleware/1.0
- https://pypi.python.org/pypi/flask-request-id/0.1
- https://github.com/Workable/flask-log-request-id
2017-10-11 21:43:04 +08:00
回复了 workwonder 创建的主题 Python 如何得到 flask 中单个请求的唯一 ID?
@iyaozhen nice
2017-10-11 20:04:26 +08:00
回复了 workwonder 创建的主题 Python 如何得到 flask 中单个请求的唯一 ID?
@odirus 多谢,通过 Nginx 是不错的方法,这样能和 Nginx 日志整合到一起来追溯。
1  2  3  4  5  6  7  8  9  10 ... 12  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5751 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 20ms · UTC 02:53 · PVG 10:53 · LAX 18:53 · JFK 21:53
Developed with CodeLauncher
♥ Do have faith in what you're doing.