V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  siteshen  ›  全部回复第 6 页 / 共 22 页
回复总数  435
1 ... 2  3  4  5  6  7  8  9  10  11 ... 22  
2020-03-16 12:10:14 +08:00
回复了 onice 创建的主题 Python Python 有必要自己写类型判断吗?
@ManjusakaL
1. 坚持用 python 2.x 的用户不是 type hint 的目标用户;
2. type hint 如果是程序员主动发起的话,肯定是会配置一些基础的检查的;
3. type hint 不是万能的,static analysis 比 no analysis 还是好了不少的,最不济还能当个注释,让 ide 能智能补全。
@shintendo 我疑心题主说的也是读书时候的「喝了雪碧一样的心情」。
成都自如,由于疫情的影响,短续两个月的价格和租期一年一样。南京那边也是这样的话,可以先续着,疫情结束后搬家也方便些。
2020-02-27 12:39:15 +08:00
回复了 achilles111 创建的主题 Python django 前后端数据映射转换问题
在后端做的话,可以额外加个字段,API 调用时用原来值,展示时用 display_xxx 属性。

# model:
class Post:
category = models.CharField(max_length=100, choices=(...))


# API 设计:
{"category": "finance | art", "display_category": "财经 | 艺术"}

# 辅助函数,从 choices 里解析出对应的值:
def get_display_value(post, field='category'):
# model = post.__class__.model
# choices = ...
# [c[1] c for c in choices if c[0] === getattr(post, field')][0]


# 进一步优化的话,可以写个 decorator 完成转换工作:
@display_fields('category')
def list_post(request, response):
# 原来的逻辑

# 以上伪代码未考虑错误处理,请自行完善。
2020-02-26 09:13:51 +08:00
回复了 GTim 创建的主题 程序员 厦门地区寻找一个懂 AWS 的运维聊聊天
我们公司是做 AWS 迁移、运维、管理相关业务的,有需要的话可以了解一下。
2020-02-12 11:01:00 +08:00
回复了 kevinguoCN 创建的主题 Python 业余爱好感觉学 Python 学的很迷茫
2019-10-28 14:48:46 +08:00
回复了 superwhite 创建的主题 程序员 迫于今年生日没了,想知道有多少 V 友和我一样
换个思路,农历 9 月最后一天生日?
2019-10-28 13:43:38 +08:00
回复了 sandman511 创建的主题 程序员 关于魔法值 这样的行为是否多此一举
用常量能方便搜索,更容易理清逻辑。但如果只有一个地方使用且语义足够清晰,就没必要用了。
ps:你定义的常量缺少了 final。记得阿里规范是有常量说嘛的,也许加上 final 就和阿里的规范不冲突了?

// ok,已封装成函数,只有这一处使用 literal string。
bool isLeftBracket(String s) {
return s == "(" || s == "(";
}

// 只有此处使用,冗余的常量
bool isLeftBracket(String s) {
final String BRACKET_LEFT_EN = "(";
final String BRACKET_LEFT_CN = "(";
return s == BRACKET_LEFT_EN || s = BRACKET_LEFT_CN;
}

// ok,多处引用,用常量方便搜索
class Parser {
public static final String BRACKET_LEFT_EN = "(";
parseList(String s) {
if (s.startsWith(BRACKET_LEFT_EN && someCondition) {
// more code
}
}

parseArray(String s) {
if (s.startsWith(BRACKET_LEFT_EN && otherCondition) {
// more code
}
}
}
2019-07-30 12:48:24 +08:00
回复了 lyver 创建的主题 推广 天这么热...不如来一场线(fu)上(li)答(huo)题(dong)!
90 分超大便捷全能伞,就是你了!
2019-07-23 10:42:24 +08:00
回复了 siteshen 创建的主题 Java 怎么在一个 JVM 里启动多个 Spring Boot Application?
@arrow8899 是的,都在本地启动。如果解决了这个问题,同时还能应用到自动化测试上面,不需要各种 mock 微服务。
2019-07-19 11:55:00 +08:00
回复了 louhang 创建的主题 Python python3 以后的特性 ...只是占位?
以后遇到这种疑问,可以先去查一下 `...` 的含义:
https://docs.python.org/3/library/constants.html#Ellipsis

`...` 是个常量对象,在你这种场景下,换成 123 效果也一样。

$ python3 -c 'a = ...; print(a)'
Ellipsis

$ python3 -c 'help(...)'
Help on ellipsis object:

class ellipsis(object)
| Methods defined here:
|
| __getattribute__(self, name, /)
| Return getattr(self, name).
|
| __reduce__(...)
| Helper for pickle.
|
| __repr__(self, /)
| Return repr(self).
|
| ----------------------------------------------------------------------
| Static methods defined here:
|
| __new__(*args, **kwargs) from builtins.type
| Create and return a new object. See help(type) for accurate signature.
2019-07-18 19:58:00 +08:00
回复了 coolair 创建的主题 程序员 说说老东家的一些技术选型的一些变化
1. 使用 PostgreSQL,选择了更高级的而不是更流行的数据库,选型者可能受国外影响较大;
2. 期间用过 CentOS 盲猜是团队壮大后,新招聘来的运维选用的;
3. 项目精细化后,换用 Flask 也很自然(更可控,而 SQLAlchemy 也更强大)。近期 Go 发展起来后,Python 换成 Go 也是顺理成章的事;
4. FreeBSD 只是安装过系统,没太多发言权,不过用非主流的系统,选型者对自己对技术肯定很自信。

总结一下,除了候选人会比较少外,没什么问题。
2019-07-18 19:34:58 +08:00
回复了 Weixiao0725 创建的主题 git 为什么我在自己的 merge request 中可以看到其他人的 commit
@wuchujie 只要没有未 commit 的代码,rebase 随时都可以执行的,过程如下:

git fetch # 保证本地有远端的 master 代码
git checkout feature-A
git rebase origin/master


rebase 成功后,`git log` 的结果应该是这样:

20190719
20190720
20190718


另外,建议对 git 不那么熟悉的同学,在测试时可以复制所有目录(和文件),在副本中测试。这样即使操作失败了,也不会有什么影响。另外一个建议是,遇到出现不太确定的情况时,尽早找熟悉 Git 的同事查看。
2019-07-18 12:59:43 +08:00
回复了 Weixiao0725 创建的主题 git 为什么我在自己的 merge request 中可以看到其他人的 commit
执行 `git merge origin/master` 后,master 中的新代码就到你的分支了,你可以用 `git log` 在你的分支下看看 commit 历史来确认这一点( git difif origin/master 应该也能看到其他 commit 的代码)。

我用的方案是(注意,因为 rebase 会改变 commit 历史,所以只适用没有共享分支的情况):

git fetch
git checkout feature/impl-login
git rebase origin/master
# git push origin -f feature/impl-login # 警告⚠️请搞清楚 -f 的含义再使用

然后 `git log` 查看,就只有自己的 commit,冲突(如果有)在 rebase 过程中解决。
2019-07-13 01:12:38 +08:00
回复了 luhuan97 创建的主题 Python 9102 年了, Python3 首行还有必要加编码注释吗?
一个肯定没问题的方案,一个可能有问题的方案,我倾向于选择前者。
2019-07-09 19:17:59 +08:00
回复了 Hopetree 创建的主题 Django 使用了容器之后,第三方登陆失效了
nginx 通常是这么配置的(其中 proxy_params 里会设置主机名等 HTTP 头):

location / {
include proxy_params;
proxy_pass http://web:8000;
}

# file proxy_params
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;


改成这样应该就可以了。
2019-07-04 20:30:06 +08:00
回复了 pan519 创建的主题 Amazon Web Services 关于 aws 部署
用户在多区域的话,推荐用 AWS Global Accelerator 来加速。另外其实还是建议咨询 aws 的人,从他们那能得到更专业的建议。
2019-06-19 21:45:27 +08:00
回复了 pushyzheng 创建的主题 Python 分享一个 Python JSON to Object 的序列化和反序列化
两点建议:

1. 类名叫 JsonSerializableMixin,否则看到类名 JsonClass 会觉得是个特别重大的功能;
2. from_json_string 改为 class method,因为 from_json_string 的意思其实是 create OBJECT from json string,所以由这个函数负责创建对象。如果函数名是类似 update_with_json_string 则没这个意义不明确的问题。
2019-06-18 09:30:57 +08:00
回复了 palmers 创建的主题 Python 新手请教关于 Python 函数参数默认值设计的问题
@siteshen #19 另外建议直接写无副作用的代码,根本不给「副作用」坑你的机会。
2019-06-18 09:28:57 +08:00
回复了 palmers 创建的主题 Python 新手请教关于 Python 函数参数默认值设计的问题
# 因为表达式 `[]` 是在编译期执行的,函数得到的是表达式的值 `[]` (空数组),而不是表达式 `[]`。因为
# 空数组的表达式和值同型,可能容易忽略值和表达式的区别,但下面这个例子,应该能说明函数定义时得到的
# 是值,而不是表达式。
#
# 如果不这么设计会怎么样?函数需要保存表达式及上下文,并且在调用时执行表达式,会……很复杂。

from datetime import datetime


def print_time(time=datetime.now()):
print('time is', time)


print_time()
print_time()
1 ... 2  3  4  5  6  7  8  9  10  11 ... 22  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2612 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 51ms · UTC 15:23 · PVG 23:23 · LAX 07:23 · JFK 10:23
Developed with CodeLauncher
♥ Do have faith in what you're doing.