Magnolia Tech

いつもコードのことばかり考えている人のために。

2022-02-01から1ヶ月間の記事一覧

『Scala関数型デザイン&プログラミング』の演習問題をScala3で解く その13

blog.magnolia.tech パーサーコンビネータ scala-parser-combinators Scalaのパーサコンビネータライブラリと言えば、元々は標準ライブラリだったscala-parser-combinatorsが有ります。今では分離され、Scalaの標準のディストリビューションとは別に開発が進…

AnkerのPowerLineって色んな種類が有って、いつもよく分からなくなる

AnkerのPowerLineって色んな種類が有って、いつもよく分からなくなるけど、基本的に折り曲げの耐性が違うらしい。 種類 折り曲げの耐性 Anker PowerLine+ III 35,000回 Anker PowerLine III 25,000回 Anker PowerLine+ II 30,000回 Anker PowerLine II 12,00…

プレイングマネージャーについて

プレイングマネージャーの問題点は、プレイヤーとしての役割を期待する人と、マネージャーとしての役割を期待する人は別の人だったり、同じ人でも場面に応じて使い分けるので、結果的にピーク調整ができなくなってしまうことなんだよね本人の認識以上に要求…

『Scala関数型デザイン&プログラミング』の演習問題をScala3で解く その12

blog.magnolia.tech 引き続き第8章「プロパティベースのテスト」の演習問題を解いていきます。 この章の後半、割と急に難易度が上がりますが、一つ一つ解いていきましょう。 プロパティベースのテスト 本書では全般的に「まずどんなインタフェースとするか?…

理解の解像度をコントロールする

集中すると、理解の解像度が上がりすぎて、その時は複雑なコードも書けちゃうし、理解できちゃうんですよねでもそんなに集中できるタイミングは後には来ないから、自分で見返しても理解できないし、他人が読んだらもっと理解できないでも書けちゃうんですよ…

『Scala関数型デザイン&プログラミング』の演習問題をScala3で解く その11

blog.magnolia.tech 第8章の「プロパティベースのテスト」に入ります。 この章は一度作ったAPI設計を、その後の検討で作り直す流れになっていて、演習問題の答えが都度変化していきます。そのため、正解を参照しようとしても用意されている正解は先回りして…

抽象のための語彙を獲得するためにどんなことをすればよいのか、そして獲得した後にどんなことをすればよいのか

ビジネスロジックに抽象性を持ち込む場合、本来のビジネス要求に存在しなかった抽象を示す語彙を新たに定義する必要が有り、「見知らぬ言葉」に最初は戸惑うのだけど、それが本当に本質を捉えた抽象であれば便利なのでビジネス側の人も使うようになる、とか…

『Scala関数型デザイン&プログラミング』の演習問題をScala3で解く その10

blog.magnolia.tech 今回は「純粋関数型の並列処理」の後半、Nonblockingな実装を取り扱います。 ちなみに本書では、Nonblockingの実装は飛ばしても良い、と書かれていますが、後半の章でBlocking実装のPar[A]ではなく、Nonblocking実装のNonblocking.Par.[A…

『Learning the VI and Vim Editors: Power and Agility Beyond Just Text Editing』

Learning the vi and Vim Editors (English Edition)作者:Robbins, Arnold,Hannah, ElbertO'Reilly MediaAmazon オライリーのvi本、なんと13年ぶりに改版されました。しかも、頑なにタイトルは「vi & Vim Editors」となっていて、あくまでviを主張しています…

『Scala関数型デザイン&プログラミング』の演習問題をScala3で解く その9

blog.magnolia.tech 今回はFP in Scalaの2nd edition用のリポジトリを見ていて気づいたScala3の構文の使い方について、調べたことのまとめです。 extensionについて Scala3のextensionは、既存のクラスに後からメソッドが追加できる構文です。 Extension Met…

よそはよそ、うちはうち

システム開発の方法論、単純に表層だけをなぞって取り入れてはいけない、という話はようやく最近語られてきたところですが(クリーンアーキテクチャの図とか)、ここに関して言えることは、行き過ぎな話になった時は一回落ち着いて「よそはよそ、うちはうち…

『Scala関数型デザイン&プログラミング』の演習問題をScala3で解く その8

blog.magnolia.tech 今回は「純粋関数型の並列処理」の前半を扱います。ここから「Part II 関数型デザインとコンビネータライブラリ」に突入します。 個人的にはこのPart IIから演習問題の難易度が格段に上がった印象でした。また、ここでの演習問題で実装し…

『Scala関数型デザイン&プログラミング』の演習問題をScala3で解く その7

blog.magnolia.tech まだまだ続きます。 演習問題を解く上で、そもそも既存のメソッドの挙動がよく分からない、みたいな時はこのサイトが参考になります。 superruzafa.github.io 純粋関数型の状態 テストコード この章で扱うState[S, +A]や、Rand[A]の関数…