荷兰 Gov 根据要求公开身份验证 App 的源代码

2023-01-18 16:06:07 +08:00
 alexkuang

代码出处: https://github.com/MinBZK/woo-besluit-broncode-digid-app/blob/master/Source/DigiD.iOS/Services/NFCService.cs

8233 次点击
所在节点    分享发现
78 条回复
churchill
2023-01-18 17:36:32 +08:00
“最佳实践”可还行,逻辑都不讲了
dingjs
2023-01-18 17:57:02 +08:00
@luob 产品: 我们要显示更精准的进度,用 100 个球来显示
DOLLOR
2023-01-18 18:11:00 +08:00
我也有过同样的实现,但我不用人力一个一个地写,会另写一段代码来生成代码。
Yourshell
2023-01-18 18:15:51 +08:00
看来我还是太菜了,想不出来该怎么吹这段代码。
luob
2023-01-18 18:19:31 +08:00
@NoOneNoBody
@dingjs

有一个从别人那里接手的陈年老项目,需求是把十个球改成一百万个球,你是希望原项目写的是上面那样的,还是这样一串?

x = Int(Math.ceil(p*10))
String.repeat("🔵" * x) + String.repeat("⚪" * (10-x))

任何一个智力正常的人最多 0.5 秒就能知道这十行球写的什么,但是推明白这两行各位需要多长时间?
chenqh
2023-01-18 18:35:37 +08:00
居然是 C#
iseki
2023-01-18 18:42:24 +08:00
10 个球有点多了,要是 3 个 5 个这么写我觉得还行
iseki
2023-01-18 18:48:29 +08:00
主要是 3 个以内不容易写错看错,10 个一手滑就不好了。至于代码生成的还是歇一会儿吧,还不如拿 Math 函数凑合下

@luob 这两行有个两三秒也看懂了,可按上例堆上个几十行我得仔细看有没有反直觉的条件,改时候也得小心翼翼
iseki
2023-01-18 18:49:19 +08:00
顺带一提…你那两行写的不太对吧
iseki
2023-01-18 18:54:39 +08:00
如果你们用 Math 函数写东西都是这种风格,我建议还是老老实实堆条件吧,起码不出错
n18255447846
2023-01-18 18:55:14 +08:00
跟标题有什么关系?
elfive
2023-01-18 18:56:29 +08:00
@luob 属于前期计划不足,后期写代码过度设计了。

能完成当前设定的目标,而且足够简单,就足够了。当然前提是前期设计足够细致完善。
ck65
2023-01-18 20:05:08 +08:00
@dingjs 放心,不是所有 PM 都怀揣着一颗和世界较劲的心。
20015jjw
2023-01-18 21:08:43 +08:00
当年 obama care 的网页也就这水平
政 @府外包嘛不能要求什么
clrss
2023-01-18 21:12:34 +08:00
var get_rating_string = function(rating) {
return "★★★★★☆☆☆☆☆".substring(5 - rating, 10 - rating);
};
NoOneNoBody
2023-01-19 01:00:11 +08:00
@luob #25
你想的点错了,这两行只适合一个项目,但不应只考虑眼前问题
我写的话,会以 dict, enum 等等类似的格式传入,这样调用的人在构建参数的时候自然也清楚目的是什么
因为问题的本质就是一一对应的选择,输入 a 输出 A ,使用的人理清出入的格式就够了,不需理会中间如何实现

此题的话,传入 0.1 ~ 0.9 九个 breakpoint ,("🔵" * x) 组成的十个结果,以及测试值
构建前面这两个参数的人自然清楚是做什么
至于中间实现的代码,难读也没所谓,快速和高效更重要

例如这个 python 小函数,我几乎全部项目都有用到,是个通用函数
def grade(score, breakpoints=[60, 70, 80, 90], grades='FDCBA'):
... i = bisect(breakpoints, score)
... return grades[i]
理解 breakpoints, grades 两个参数应该比四个 if 容易吧
enchilada2020
2023-01-19 03:33:47 +08:00
@clrss 妙啊 滑动窗口了
binux
2023-01-19 03:55:41 +08:00
@luob 任何一个智力正常的人检验#24 的正确性只用 2 秒,但是看完原文这十行需要多长时间?
pikashi
2023-01-19 08:26:46 +08:00
这代码不光简单易读,而且性能应该也是最高吧
jaggle
2023-01-19 09:02:43 +08:00
@enchilada2020 抱歉好像是你看懂了,能否解释一下,长度不够还能回到第一列取?

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

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

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

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

© 2021 V2EX