日々常々

ふつうのプログラマがあたりまえにしたいこと。

豆腐と紐しか描けない人向けの図解本が出てたので買ってみた

f:id:irof:20200910150706p:plain

酷い暴言だ。自己紹介なんですけどね……。

と言うことで、豆腐と紐の絵しか描けない私を含む皆様を救済するかのような「丸と線が書ければいい」と言う言葉がカバーに踊るこちらを買ってみました。

ざっと読みながら、お題をやりながら、一通り描き終えて。 出てくるテーマ的にピクト図解に引っ張られたり、ビジネスフレームワーク図鑑の書き方で行っちゃったり、余念が多い私……。

まあこれはこれでいいんだ。大事なのは伝わるように描くことだから、組み合わせれる物は組み合わせればいいんだ。

値段も1,500円前後と手頃だし、内容から得られることに比べれば正直安いと思う。 あ、Kindle版で買ったけど、改ページが微妙で文字が読めずに文字サイズを切り替えるとかを何度かするハメになりました。 覚悟して買うか、その辺が嫌なら紙で買うほうがいいかなと思います。

余白をあけろとか、足りなくなったらすぐ次のページに行けとか。その辺りのコツも一つ一つ良いんですが、要素としてはゼロワンくんがめちゃいい。棒人間より早く書けるし、表現力が豊かで使いやすいです。 あと「秒で書ける厳選アイコン200」のビジネスアイコンはどれも「あーこう描けばいいんだ」と、デザインの力に感心しました。 しばらく模写を続けようと思います。

まあこのブログを絵で描いてないところはどうなのって思ったりしますけど。

法律をリファクタリングしながら読んでみる

法律って慣れてないと読みにくいですよね。慣れたら読みやすくなるのかわからないけれど。 取り違いや誤解、漏れが少ないようにを意識して書かれているのか、どうしても冗長に感じます。 よくあるのが「AAAのBBB若しくはCCCのDDD」のようにAAAとCCC、BBBとDDDが並列で、これを一塊として後の文が続くもの。この塊を抜き出せると一気に読みやすくなります。

てことでリファクタリングをしてみる。テストがないのは気にしないで。 やるのは一次変数の抽出と名前の変更。

お題は「特定商取引に関する法律」の第三節 通信販売(通信販売についての広告)、第十一条です。 選んだ理由はたまたま今読んでるから。

まず原文から開始。

第十一条 販売業者又は役務提供事業者は、通信販売をする場合の商品若しくは特定権利の販売条件又は役務の提供条件について広告をするときは、主務省令で定めるところにより、当該広告に、当該商品若しくは当該権利又は当該役務に関する次の事項を表示しなければならない。ただし、当該広告に、請求により、これらの事項を記載した書面を遅滞なく交付し、又はこれらの事項を記録した電磁的記録(電子的方式、磁気的方式その他人の知覚によつては認識することができない方式で作られる記録であつて、電子計算機による情報処理の用に供されるものをいう。)を遅滞なく提供する旨の表示をする場合には、販売業者又は役務提供事業者は、主務省令で定めるところにより、これらの事項の一部を表示しないことができる。
一 商品若しくは権利の販売価格又は役務の対価(販売価格に商品の送料が含まれない場合には、販売価格及び商品の送料)
二 商品若しくは権利の代金又は役務の対価の支払の時期及び方法
三 商品の引渡時期若しくは権利の移転時期又は役務の提供時期
四 商品若しくは特定権利の売買契約の申込みの撤回又は売買契約の解除に関する事項(第十五条の三第一項ただし書に規定する特約がある場合にはその内容を、第二十六条第二項の規定の適用がある場合には同項の規定に関する事項を含む。)
五 前各号に掲げるもののほか、主務省令で定める事項

とりあえず目立つところに一時変数の導入。まずは「いい名前が思いつかないので変な名前をつける」でやります。

  • "販売業者又は役務提供事業者" -> HOGE
  • "通信販売をする場合の商品若しくは特定権利の販売条件又は役務" -> FUGA
  • "当該商品若しくは当該権利又は当該役務" -> FUGA
  • "これらの事項を記載した書面を遅滞なく交付し、又はこれらの事項を記録した電磁的記録(電子的方式、磁気的方式その他人の知覚によつては認識することができない方式で作られる記録であつて、電子計算機による情報処理の用に供されるものをいう。)を遅滞なく提供する旨の表示をする" -> PIYOする
第十一条 HOGEは、FUGAの提供条件について広告をするときは、主務省令で定めるところにより、当該広告に、FUGAに関する次の事項を表示しなければならない。ただし、当該広告に、請求により、PIYOする場合には、HOGEは、主務省令で定めるところにより、これらの事項の一部を表示しないことができる。
一 商品若しくは権利の販売価格又は役務の対価(販売価格に商品の送料が含まれない場合には、販売価格及び商品の送料)
二 商品若しくは権利の代金又は役務の対価の支払の時期及び方法
三 商品の引渡時期若しくは権利の移転時期又は役務の提供時期
四 商品若しくは特定権利の売買契約の申込みの撤回又は売買契約の解除に関する事項(第十五条の三第一項ただし書に規定する特約がある場合にはその内容を、第二十六条第二項の規定の適用がある場合には同項の規定に関する事項を含む。)
五 前各号に掲げるもののほか、主務省令で定める事項

ある程度読めてきたので、意味の通る名前で残りもやります。

  • 販売対象: 商品、役務、権利を纏めて呼称する。FUGAもこれにマージ。
  • 費用: 商品や権利は販売価格(商品の場合は送料含む)や代金、役務では対価が使われているのを纏めて呼称する。
  • 引渡時期: 引渡時期、移転時期、提供時期を纏めて呼称する。
  • 販売者: HOGEをリネーム
  • 別途表示: PIYOをリネーム
第十一条 販売者は、販売対象の提供条件について広告をするときは、主務省令で定めるところにより、当該広告に、販売対象に関する次の事項を表示しなければならない。ただし、当該広告に、請求により、別途表示する場合には、販売者は、主務省令で定めるところにより、これらの事項の一部を表示しないことができる。
一 販売対象の費用
二 販売対象の費用の支払の時期及び方法
三 販売対象の引渡時期
四 商品若しくは特定権利の売買契約の申込みの撤回又は売買契約の解除に関する事項(第十五条の三第一項ただし書に規定する特約がある場合にはその内容を、第二十六条第二項の規定の適用がある場合には同項の規定に関する事項を含む。)
五 前各号に掲げるもののほか、主務省令で定める事項

これくらいなら読めるかな。特に一、二、三の並びが明確。だいたい条文は同じ関心ごとで並んでいるから、読み慣れると自然とこんな感じに見えるらしいです。ほんとかよって気分はありますが。

ここで挙げているのは一条だけなのでそれほど変わっていないように思えるかもしれませんが、全体でみると同じ言葉のくりかえしってたくさんあるので、読みにくい時はやってみると一気に読みやすくなったりします。例えば先に「販売者」で括った「販売業者又は役務提供事業者」は一単語(みたいなもの)なのですが、日本語で考えると「又は」が入っていて文章を混乱させます。こう言うのが頻出してるんですよね。

f:id:irof:20200909180602p:plain

検索してハイライトしたもの。こんなの読みやすいわけがない。

「若しくは」と「又は」をハイライト。つらい……。 f:id:irof:20200909181239p:plain f:id:irof:20200909181245p:plain

これまだ検索で完全一致するならいいんですが、先の例でFUGAに纏めたときみたく「当該」で参照してたりするので機械的にはやり切れないです。

あと、一緒にしちゃいけない物を統合しちゃうと誤解が生じる(バグですね)ので、ある程度意味取りできたらやっぱ原文で意味が変わってないかは確認しなきゃです。

何かの参考になれば。

おまけ

f:id:irof:20200910150504p:plain

ツイート: 法律文書とか利用規約とかを読んだ後、だいたいこんなこと思ってます。

ブクマコメより: 2020-09-10T18:33追記

「これ表形式にした方が100倍分かりやすいだろ…」と読んでて思う条文は大量にある

ありますね。それでか別表にしてたりするんですが、表にしたところで(以下略

f:id:irof:20200910182959p:plain

ちなみに 特定商取引に関する法律施行令の別表第四 です。 表って、もっと、こう・・・、ね?

自分のための道具作りのすすめ

【オンライン】 JJUGナイトセミナー「おうちで!ビール片手にLT大会!」8/26(水) 開催 でLTしてきました。

オンラインLTは難しいですね。

内容

いつも通り目新しいこともない「ふつう」の話です。 元々40分くらいのセッションを煮詰めて5分に押し込みました。 Live(や公開されるであろう動画)で見られた方はめっちゃ端折って話してるのわかるかと思います。 言いたいことは言ったつもりだけど、言えなかったこともスライドには書いてるつもり。

特に大事なとこを挙げるならこの辺かな。

f:id:irof:20200826225723p:plain

とにかく完成させて公開する。公開を意識するだけで対応する物の優先順位とか、代替パスをどれやっておくかとか。 今できないものをどうしておくか という、現代のプラグラマに必要なスキルが身につけられます。

f:id:irof:20200826225653p:plain

ループ図のつもり……なんだけど、全部プラスになっちゃってマイナスがでないからそれっぽく見えない。まあいいか。(Keynoteだと数増えると描きづらいって問題もあったし)

JIG-ERD

作った日にLT申し込んだくらいなので、目的の一つはこれのお披露目でした。 リポジトリhttps://github.com/irof/jig-erd になります。(2020-08-26現在)

Twitterで言及してくれたり、PRくれたり、とりあえずForkしていじってみたり……なんか反応あったら嬉しい、かも。 私と同じ問題意識があるなら、それなりに使える物体ではあるはず。

蛇足

ちなみにこのLTの源流、JJUG CCC2018 Fallに出したCfP落選ネタの供養だったりします。

f:id:irof:20200826225149p:plain

これは初級者向けで出してて、上級者向けの「コードをどまんなかに据えた設計アプローチ」の方が通ってそちら話させてもらいました。

(そいやこのネタでブログ書いてないような……)

このとき通ってたら、JIG をネタに似たような話をしてたと思います。