python 做的支付模块,如何保证“可靠”

2015-10-22 18:49:14 +08:00
 aiqier

大家应该都知道, python 本身不适合用来开发支付相关的模块。
相比之下,静态语言 java ,要适合的多,但是我们现在的系统,支付相关的模块,就是由 python 来做的,
那么就目前而言,我要如何在用 python 的同时,保证这个项目“可靠”
首先我认为:动态语言没有静态类型检查,所以在项目做大的时候,项目的维护成本会变的越来越高。支付系统的安全性很重要,而动态语言过于灵活,不易保证,他可能在做业务系统上会快很多。
我想请教一下:
1.除了我说的,用 python 做一个支付相关的系统,会有的那些风险,还会有哪些风险。
2.我如何在使用 python 的前提下,竟可能的保证项目”可靠”。
这个项目包括付款渠道,收款渠道。钱包,收银台等。逻辑不是很复杂,大概 2w 多行的代码。

5502 次点击
所在节点    Python
30 条回复
leavic
2015-10-22 19:02:01 +08:00
类型我倒不觉得有问题,其实 python 是强类型语言,关键是 python 并没有办法真正的隐藏接口,现在都是靠着 PEP 规范修改接口名字来做的,别人要不遵守这个规则,想访问一样可以访问。
test0x01
2015-10-22 19:58:05 +08:00
任何语言项目的维护都是要靠程序员自己。 靠语言根本不靠谱,你说 java 厉害吧,程序员要是不靠谱能把你搞死。
surfire91
2015-10-22 20:17:31 +08:00
"大家应该都知道, python 本身不适合用来开发支付相关的模块。"
我就不知道 python 不适合用来开发支付相关的模块,也不知道为什么不适合。
楼主你知道吗?
imn1
2015-10-22 20:20:58 +08:00
大家是谁?
binux
2015-10-22 20:24:31 +08:00
我怎么不知道 python 不适合开发支付相关的模块?
没有类型检查, 最多给你的余额改成 [100, 3], 或者执行到一半抛出异常. 说得好像静态类型检查自带 UPS 不会瞬间断电重启一样.
该算错帐的, 难道静态类型检查了就不算错了?
PythonAnswer
2015-10-22 20:31:01 +08:00
支付模块需要什么样的功能?性能?

你还没分析,就说大家认为 xx 不适合做 xx...
stackpop
2015-10-22 20:35:31 +08:00
和语言没有关系。
之前在猪厂用 python 做过支付模块,接入了银联 /支付宝 /stripe 等第三方渠道做支付, 服务千万级的游戏用户,没有出现过账务错误。
wkdhf233
2015-10-22 20:49:12 +08:00
动态语言过于灵活无法保证安全性,这逻辑也是醉了
kaneg
2015-10-22 20:55:39 +08:00
这不就和打错字怪键盘一样的逻辑吗
domty
2015-10-22 21:07:56 +08:00
安全性跟你用啥语言没关系吧。
首先保证你的业务流程没有空子让别人钻。
技术角度的安全交给专业的安全人员去考虑,比如框架上的,协议上的,系统上的。
再不济还可以抛异常强制回滚整个业务呢。
RitianZhao1988
2015-10-22 21:09:59 +08:00
槽点太多,喷不过来
janxin
2015-10-22 21:15:34 +08:00
如果你得想类型检查,可以考虑上支持 Type Hints 的 Pycharm ?
imlonghao
2015-10-22 21:15:36 +08:00
我不是大家中的一员,我觉得只有写不好的代码没有很糟糕不好的语言
ipconfiger
2015-10-22 21:31:48 +08:00
楼举神逻辑,第一句大家都知道不知道楼举是怎么知道的。

一种我代表全国人民的既视感
111111111111
2015-10-22 21:35:48 +08:00
"大家应该都知道, python 本身不适合用来开发支付相关的模块。"

我怎么不知道?听谁说的
aiqier
2015-10-22 23:05:42 +08:00
其实我觉得,如果要是不能客观分析我问的问题,就不要回答的,天天喷累不累,天天说这个是人的问题,那个是人的问题,买不起房是人的问题。我只是说动态语言,太活了,如何在一定程度上能“框住”设计懂么?做一个项目的经费就那么多,哪里招的起那么多 python 大神?那时候还不是靠 java 的静态类型检查过滤到一些错误再说,有一天你走了,别人接手这个项目,是 java 容易维护还是 python 容易维护?有些东西就是不能用 python 做的 ok ?那么既然是人的问题,那么为啥不用 lisp 写, lisp 多牛逼!写不出来也是人的问题是吧?
https://www.quora.com/Why-does-Google-prefer-the-Java-stack-for-its-products-instead-of-Python/answer/Robert-Love-1?srid=pu2I&share=1
hahastudio
2015-10-22 23:18:19 +08:00
aiqier
2015-10-22 23:19:34 +08:00
@domty 在知乎上看过类似的讨论,单纯说语言不是问题,是人的问题,完全没意义,类似说“找不到工作是人的问题”。我 python 还算不错,但是仔细去看 java 的写的一些东西,安全系数要高很多。 http://www.zhihu.com/question/21017354 ,我觉得一部分答案还是有道理的。
@leavic
@test0x01
@binux
@stackpop
binux
2015-10-22 23:26:41 +08:00
@aiqier 蛤?! 如果要是不能客观提出你的问题, 就不要提问.
geeklian
2015-10-23 00:13:57 +08:00
醉了,醉了,一个主观问题何必要客观的回答?
业务流程没漏洞就 ok 了,真要是程序语言有什么安全漏洞,那就认栽吧,好像有也是 java 多。
另外: python 现在也可以支持静态类型检查,有个库叫 typing.py

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/230265

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX