发现把某些法律条款改写成伪代码更好理解

2017-09-21 10:08:31 +08:00
 weakish

发现将某些法条改成伪代码感觉可以提高可读性(也有可能并没有增加可读性,只是更加习惯而已)。 同时,改写的过程中也能发现一些含糊的地方 (其中包括法条本身表述不明确及表述明确但自己没理解两种情况)。

比如,用伪代码表达诉讼时效:

class 民事权利 {
    private Period 诉讼时效;
    private Period 完整诉讼时效;
    LocalDate 知道或应当知道被侵权;
    LocalDate 被侵权;
    boolean 当事人自愿履行;

    public 民事权利(LocalDate 知道, LocalDate 被侵, boolean 自愿) {
        this.完整诉讼时效 = Period.ofYears(2);
        this.诉讼时效 = this.完整诉讼时效;
        this.知道或应当知道被侵权 = 知道;
        this.被侵权 = 被侵;
        this.当事人自愿履行 = 自愿;
    }

    public Period get 诉讼时效() {
        return this.诉讼时效;
    }
    public void set 诉讼时效(Period p) {
        this.诉讼时效 = p;
    }

    public boolean is 有效期内() {
        if (当事人自愿履行) {
            return true;
        }
        else {
            // 民法通则 s. 137 规定有特殊情况的,人民法院可以延期。
            // 实际诉讼中这个一般要援引司法解释具体 patch 的情况才能延期。
            // 因此下面不考虑这个情况。
            LocalDate today = LocalDate.now();
            // 1988 年最高法关于执行通则的意见明确了 20 年期限不适用中止、中断的规定。(s. 175)
            if (Period.between(被侵权, today) > Period.ofYears(20)) {
                return false;
            } else if (Period.between(知道或应当知道被侵权, today) > this.诉讼时效) {
                return false;
            } else {
                return true;
            }
        }
    }

    public boolean 中止(boolean 因不可抗力或其他障碍无法行使请求权,
                        LocalDate 中止原因消除) {
        if (因不可抗力或其他障碍无法行使请求权) {
            if (诉讼时效 <= Period.ofMonths(6)) {
                Period 中止期间 = Period.between(LocalDate.now(), 中止原因消除);
                this.诉讼时效 += 中止期间;
                return true;
            } else {
                return false;
            }
        } else {
            return false;
        }
    }

    public boolean 中断(boolean 提起诉讼, boolean 提出要求, boolean 同意履行) {
        if (提起诉讼 || 提出要求 || 同意履行) {
            this.诉讼时效 += this.完整诉讼时效;
            return true;
        } else {
            return false;
        }
    }
}

class 身体伤害 extends 民事权利 {
    public 身体伤害(LocalDate 知道, LocalDate 被侵, boolean 自愿) {
        super(知道,被侵,自愿);
        this.完整诉讼时效 = Period.ofYears(1);
        this.诉讼时效 = this.完整诉讼时效;
    }
}
// 同理可定义 `class 质量不合格商品`, `class 延付拒付租金`, `class 寄存财物丢失损毁`,
// 此处省略。

abstract class 另有规定 extends 民事权利 {
    @Override public boolean is 有效期内();
}

以上伪代码摘自 写给 Programmer 的法律入门指引

注意:v2ex 强行在中文和英文之间加空格,code block 里也不放过,所以上面有些空格请自行脑补去除。

3722 次点击
所在节点    分享发现
19 条回复
myliyifei
2017-09-21 10:20:54 +08:00
中国法律 txt
jason2017
2017-09-21 10:27:27 +08:00
谈论技术的时候总有些 sb 喜欢往政治上扯。
cyang
2017-09-21 10:43:53 +08:00
也就 V2 的程序员会觉得伪代码好理解,
给普通人看还不如画成示意图,流程图来的更直观!
fiht
2017-09-21 11:06:10 +08:00
讲道理这个并不如示意图来得直观
lyragosa
2017-09-21 11:09:09 +08:00
在另一个平行世界中的程序员共和国就是这样的。
justfly
2017-09-21 11:14:40 +08:00
如果把自己的情况当参数传进去能执行出来结果就更好了。

其实最怕怕是在我们当前的环境下,没办法编译执行,系统版本、依赖库什么的需要先升级。
hundan
2017-09-21 11:17:53 +08:00
真的写成程序的话好像也可以?
不过抢了律师的饭碗的样子
paulagent
2017-09-21 11:18:26 +08:00
可问题出了事情难道不是要找律师吗? 你难道准备自己看懂法条去当自己的代理人吗?

还是说怕被律师坑了?
est
2017-09-21 11:19:41 +08:00
德国的法律,机器可解析,已经放在 github 了

https://github.com/bundestag/gesetze#german-federal-laws-and-regulations


查了下。。5 年前的事儿了。

时间过得真快。。
est
2017-09-21 11:22:23 +08:00
法律放在 git 上更加重大的意义是,

1. 可以方便历史追溯看哪个傻逼议员把哪个条款在什么时候改了。。。
2. 可以根据时代变化提交 PR



讨论: https://news.ycombinator.com/item?id=4353389

大部分人的结论是:然并卵。这个世界的政治权力还是被 60 年的老不死的掌控者。
WillShin
2017-09-21 11:23:04 +08:00
是对你们程序员更好理解吧。写成这样只是更加增加了理解法条的壁垒。
ranleng
2017-09-21 11:23:45 +08:00
txt 还想成为 exe ?
newtype0092
2017-09-21 11:58:33 +08:00
数学家:看,那帮看不懂公式的笨蛋就喜欢加点英语凑出一坨乱七八糟的东西出来,还自以为很聪明。。。
1759761439
2017-09-21 12:23:34 +08:00
app 上没格式化看起来我觉得完全不行
misaka20038numbe
2017-09-21 12:30:47 +08:00
操作系统并不是以后缀名判断是否是可执行文件的,只要文件头说是可执行文件,.txt 照样可执行。
weakish
2017-09-21 16:41:15 +08:00
@hundan 某些医院的医生边听病人描述症状边搜索,可不意味着医生没用。法务工作者同理。初级的完全可以自动化。
Taojun0714
2017-09-22 05:30:45 +08:00
@est markdown 格式的的国民法典而已,啥就成了解析了
weakish
2017-09-24 09:32:46 +08:00
@paulagent 法律行业的现状是靠谱一点的律师基本没兴趣做小 case (说不定收个几百一千的咨询一下还可以),所以并不能指望全部委托给律师办。而找有兴趣做小 case 的律师,碰到不靠谱律师的概率比较大。这和码农业不一样,几个页面的小网站,费点心也能找到靠谱的开发者来做 —— 但这一方面是码农圈比较开放,一方面也是对行业比较了解,真的连 dns, html 什么的都不知道的纯外行,去找外包公司,其实也很容易踩到坑。
wizardforcel
2017-09-25 22:31:39 +08:00
你 out 了。

计算法理学早就有人研究了。

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

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

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

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

© 2021 V2EX