V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  siteshen  ›  全部回复第 9 页 / 共 23 页
回复总数  449
1 ... 5  6  7  8  9  10  11  12  13  14 ... 23  
2018-08-20 09:38:15 +08:00
回复了 leeeeee 创建的主题 Python 请问一下现在新开 Python 项目都用第三版了吧?
我厂之前简单调研过,python3 绝大部分场景够用,三年前的新项目就在用了。
对题主的遭遇深表同情,遇到个不合格的后端。更要感慨一下 V2EX 的氛围,发帖吐槽不合格的队友,居然会被喷出翔。

数组返回 [] 或者 null 都有一定道理,返回 "" 或 "[]" 就真的匪夷所思了。按这逻辑,数组类型也可能返回 1024, true, false (和 "" 一样同为基本类型),那使用 API 的人岂不是要防天防地防空气了?
2018-08-11 18:29:13 +08:00
回复了 luzhongqiu 创建的主题 程序员 有多少人愿意为了知识付费的?
@leekafai 然而吃了后不能上 WC,否则记忆面包上的内容会流失掉。
2018-07-25 18:20:07 +08:00
回复了 Lpl 创建的主题 程序员 GitHub 新玩法,强
那么问题来了,楼主到底 star/fork 了哪些 repo ?
2018-07-23 23:08:04 +08:00
回复了 tt67wq 创建的主题 程序员 怎么应对喜欢摸来摸去的领导
> 你咋这么清楚呢,莫非。。。

@zqiyun 盆友,西游记了解一下。
2018-07-23 11:46:49 +08:00
回复了 1ku 创建的主题 程序员 “收入投票”的结果出来啦!
@Ginray 要御姐也可以,不过更容易漏气。
2018-07-21 21:27:35 +08:00
回复了 lz12366007 创建的主题 酷工作 [字节跳动 /内推]] 北京,成都,武汉,上海,深圳
接收简历的是私人邮箱,不明觉厉。
2018-07-19 22:32:13 +08:00
回复了 az09py 创建的主题 程序员 怎么获取上次 push 操作时的 commitid
@az09py `$(BRANCH}` 替换为 `$(git rev-parse --abbrev-ref HEAD)` 就行。

另外 @gnaggnoyil 说的 X-Y 问题应该是这个: https://coolshell.cn/articles/10804.html
意思是也许直接问你要解决的(完整的)问题,比问一个你提出的解决方案的一部分更好。
2018-07-18 09:56:38 +08:00
回复了 az09py 创建的主题 程序员 怎么获取上次 push 操作时的 commitid
还是不太明白"最近一次的 pull/push 的 commit",不过下面的命令能得到远端分支的最后一个 commit

git fetch; git rev-parse origin/${BRANCH}
2018-07-14 17:28:49 +08:00
回复了 LeungJZ 创建的主题 程序员 向大佬们请教一个关于排行榜的实现问题。
自然月很简单,使用 redis 的 sorted set 实现很方便。

点赞( for month ):zincrby popular:2018-07 1 {post_id}
热帖( for month ):zrevrangebyscore popular:2018-07 +inf -inf limit 0 20

自然周同理(假设今天属于本年的第 38 周,懒得计算了):
点赞( for month ):zincrby popular:2018-w38 1 {post_id}
热帖( for month ):zrevrangebyscore popular:2018-w38 +inf -inf limit 0 20

rolling 周的话复杂些,可以使用写入多次的方式实现。
2018-06-12 14:28:10 +08:00
回复了 zjsxwc 创建的主题 程序员 你们 Python 是怎么安装依赖的?
# 以前
mkvirtualenv awesome-project
pip install requests
echo "requests" >> requirements.txt
pip freeze -l > requirements.lock
git add requirements.txt requirements.lock

# 现在
touch Pipfile
pipenv install requests
git add Pipfile Pipfile.lock
@6167 放里面是为了最小权限原则,不行的话放外面。下面这个是 drf_yasg.utils 里的代码,用的 is 比较,比我之前写的完善些。

class unset(object):
"""Used as a sentinel value for function parameters not set by the caller where ``None`` would be a valid value."""
pass


def swagger_auto_schema(method=None, methods=None, auto_schema=unset):
if auto_schema is not unset:
data['auto_schema'] = auto_schema
看了下 Django 的代码,直接设置 default 做不到,因为 default 作为 callable 调用时,不会传入任何参数。
你的答案方案在于,没有区分 self.last 的值,是“初始值”还是“被设置的值”。
和 @twor 答案类似,不过用了一个无意义的变量作为 sentinel value。

class Pool():
UNSET = object()

last = models.IntegerFields(default=UNSET)

def save(self):
if self.last == self.UNSET:
self.last = self.amount

super(Pool, self).save()
1. 写出能按距离排序的 SQL 语句;
2. 翻译成对应的 python 代码。

不考虑性能的话:
1. sql_let ordering = ((long - ${x})^2 + (lat - ${y})^2)
2. select * from branch order by ordering where ordering < {distance} desc
3. Branch.objects.filter(RAW_SQL('((long - %s)^2 + (lat - %s)^2) < %s') % (x, y, distance))

另外不知道你生成的 SQL 是怎么样的?看样子是把 `Distance()` 直接当成字符串直接传入到 SQL 语句了。这里需要知道 Distance('location__coordinates', user_coordinates) 对应的 SQL 语句类型(比如是 float ?),然后传入值时也变成对应类型,大约类似这样: `objects.filter(Distance('location__coordinates', user_coordinates) < distance.metres)`
2018-05-11 09:30:51 +08:00
回复了 SingeeKing 创建的主题 Python 一段有趣的代码
无数人讲过 python 默认参数的“坑”了,我提供另外一个思路,函数尽量不要有副作用。这样无论 python 内部怎么实现,都不会出现问题(当然如果是性能不足,肯定需要研究语言的实现机制)。
2018-05-07 09:25:23 +08:00
回复了 lcj2class 创建的主题 程序员 大家平时 coding 时都收藏了哪些提高效率的小工具
;; 我通常用的这个 https://www.epochconverter.com/
;; 如果只需要查看,可以用更简单的函数
(format-time-string "%FT%T%z" (number-at-point))

;; (describe-function 'format-time-string)
;; For example, to produce full ISO 8601 format, use "%FT%T%z".
2018-05-07 08:59:55 +08:00
回复了 chenqy930 创建的主题 NGINX ngnix 做代理的问题
没在 nginx 中实现过这么复杂的逻辑,用 lua 应该能做到。可以考虑直接在 A 服务器代码中请求 B 服务器是否有权限。
2018-05-07 08:53:44 +08:00
回复了 Magentaize 创建的主题 程序员 swagger codegen 能不能差分更新 api,而不是重新生成一个?
没找到好的办法,所以我是根据代码生成 swagger.json 文件。比如使用(或者自己实现)类似这样的库:
https://github.com/MarkSonghurst/swag
2018-05-03 15:14:35 +08:00
回复了 kuoruan 创建的主题 程序员 如何才能减少代码的嵌套层级?
楼上说的“最简单的,反过来判断不就行了”,其实说的是 `early return`。
其他的回答 Promise async/await 等完全是另外一个话题。
按照这个思路重构代码会清晰很多,刚刚写了个例子供参考。

```js
// origin source code
function doSomething() {
if (cond1) {
success1();
if (cond2) {
success2();
if (cond3) {
success3();
} else {
fail3();
}
} else {
fail2();
}
} else {
fail1();
}
}

function betterDoSomething() {
if (!cond1) {
fail1();
return;
}
success1();

if (!cond2) {
fail2();
return;
}
success2();

if (!cond3) {
fail3();
return;
}
success3();
}
```
1 ... 5  6  7  8  9  10  11  12  13  14 ... 23  
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2395 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 43ms · UTC 10:58 · PVG 18:58 · LAX 03:58 · JFK 06:58
♥ Do have faith in what you're doing.