見出し画像

プログラミングと法律の共通点 _ "要件"という言葉 (サンプルソース付)

法律を勉強し始めたときに大変だったのは
法律家の人たちの文化というかバックボーンからくる言葉遣いでした。
とにかくそれに食らいつくのに最初の一か月は苦労しました。

"要件"という言葉

要件という言葉について皆さんはどういった意味をイメージしますか?
奇しくもWikipediaで調べるとなんと用例にITと法律が出てくるんですよ。

私はIT側の言葉で理解してるので、法律上に要件という言葉が違う意味であるんだなあ!という驚きがありました。こういう驚きって自分が普段まったく接してないものほど頻度が増えるので法律を勉強し始めたときにはワクワクしました。

つまるところ要件とは何なのか - プログラマとしての理解

単に法律を勉強してるわけではなく司法書士試験の受験科目として勉強しているので、試験に合格するための最低限の理解としては"要件"とは法律要件だとか効力要件だとか呼ばれる類のものだ。と理解しました。
情報処理試験と同じように過去問もありますからそれを解いていくなかで
効力要件というのはプログラミングでいう条件式なのでは?と
つまり

if( 効力要件 ){
    法律効果
}

ということです。(法律効果とは効力要件がtrueになったら実行される処理です。)

乱暴な理解かなと最初は思ってたのですが勉強を進める中で結構いい線いってるんじゃないか。少なくとも先生の話は腑に落ちるようになったし、模擬試験でも点数が取れる。といった状態になったのです。

あのTED動画も荒唐無稽ではない?

以前の記事で書いた法律の勉強の決心となったTED動画でGithubでの法律の文書管理を説明していました。そこで私はだったらまんま法律をプログラミングコードに変換してしまえばプログラマがGithubの機能を使って面白くできるんじゃないの?という思いを抱くようになりました。

サンプルソース(java)

ということでサンプルを書いてみます。
繰り返しになりますが、私が法律の条文を読むときは
"効力要件とは条件式であって条件式を評価して真になれば実行されるのが法律効果"だという意識でした。

仕様
特定承継がされた場合 かつ 農地法の許可が得られた場合 には所有権移転登記を打つことができる。

if( isSpecificSuccession() && isAgriculturalLandLawPermission() ){
    reg.ownerShipTransfer();
}

(なお司法書士試験を勉強した人は不正確な仕様だと感じると思いますが
今は説明のためちょっと目をつぶってください。)
ぶっちゃけプログラミングかじったことある人ならなんとなく動きがわかるんじゃないかと思います。そしてそれで合ってます。
要件の特定承継ってなんだ?(継承じゃなくて??) とか農地法の許可って?
とかショユウケンイテントウキ…とかなってもソースコード見せたら
それぞれのメソッドの中身を調べていこうかって自然と方向性が見えてくると思います。それがすっごく面白くて楽しくってハマっていったのです。

終わりに

とにかく新しいプログラミングコード勉強するようなもんだな。っていう感覚でいたほうが、もしあなたがプログラマで法律を勉強することになったら
絶対にいいと思います。経験者としてそう断言できます。ただこれ以降も講義を受けるたびに知識と知識がぶつかる経験をしていくのですが、それはまた明日以降に…
ここまでお読みいただきありがとうございました。

この記事が気に入ったらサポートをしてみませんか?