Magnolia Tech

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

2021-08-01から1ヶ月間の記事一覧

ソフトウェアの再利用性について

下手すると「再利用できるか?」という調査をするコストよりも、ゼロから作るコストの方が安い場合もあるし、確実性が無かったりするし、多少のアンマッチは無視されてしまうこともあるし、ソフトウェアの再利用は難しいけど、詳しくない人は「もうあるから…

モデルを作っていく、ということについて考えた

例えば人事管理のモデルを作るときに、社員、管理職、役員みたいなのを、抽象社員クラスからの継承で別々に用意したものの、結局ロジックは全て外側に有って、そのロジックは属性による判断しかしないから、単純な社員クラスでよくね?みたいな思考の過程が…

Software Design 2021年9月号

Software Design (ソフトウェアデザイン) 2021年9月号 [雑誌]技術評論社Amazon Rustを題材にしたメモリ管理の特集、でもそもそもメモリ管理とは?他の言語での実装は?など、基礎的なところから入って行ってRustにおけるメモリ管理の考え方と、実際のミドル…

ISUCON11に参加した

isucon.net 開催日に、初めて参加できた緊張感とか焦りとかが凄い!でもきちんと練習しておくと一定の点数までは取れることが分かった(足りない練習観点がよく分かった)初手でPerl実装に切り替えて心を落ち着かせるところから始まった「ここはホーム、ここ…

『入門 老眼』の出版が待たれる

「入門 老眼」が出版されるのを待ってます老眼鏡の選び方から、最適なディスプレイの解像度設定など、きっと必要な知見はたくさんあるに違いない— magnoliak (@magnolia_k_) 2021年8月19日 とりあえずこれ読み直そうhttps://t.co/m57AydGo8w— magnoliak (@ma…

計画の解像度を上げていく

2021/8/15: 最初の言説のところ、微妙に何が何だかって記述だったので少し見直しました。 昔初めてPMBOKで「段階的詳細化」って用語を知った時、随分と当たり前のことにわざわざ名前がついてるんだなぁと思ったことが有るけど、案外ちゃんと名前をつけてあげ…

Scala3学習メモ: Scala3におけるType Lambda

Scala2におけるType Lambdaについては、下記のブログエントリが詳しい。 underscore.io 最初に、型パラメータの数を一つとして定義していると、型パラメータを二つ取る物を渡せない。 scala> trait Functor[F[_]] trait Functor scala> type F1 = Functor[Op…

夏休みのお供に『アンダースタンディング コンピュテーション』

技術書なんて必要なところを拾い読みするか、読書会でいろんな人の考え方や経験を知るきっかけに使うもの...慣れてくるとそんな感覚になってきますが、せっかくの夏休みなので初心に帰って、全部頭から再度まで読み切って、かつコードの写経もやってみて…と…

Scala3学習メモ: Intersection型

Scalaではclassの定義時にtraitをmix-inできる。 scala> trait A // defined trait A scala> class B extends A // defined class B scala> val o1 = new B val o1: B = B@36b53f08 この時、変数の型はBと推論されている。 また、オブジェクトの生成時にもmi…

Scala3学習メモ: newキーワードが不要になった

case classではない、通常のクラスでもapplyメソッドを持つコンパニオンオブジェクトが自動生成されるようになったので、newキーワードを使わなくてもオブジェクト生成ができるようになった。 scala> case class Person(name: String, age: Int) // defined …

programming in scala fifth edition

Programming in Scala Fifth Edition: Updated for Scala 3.0 (English Edition)作者:Odersky, Martin,Spoon, Lex,Venners, Bill,Sommers, FrankArtima PressAmazon Scala3対応の第5版。日本ではScala 2.13対応の第4版が出たばかりですが、原著はScala3対応…

言葉にすること、言葉にする前と、言葉にした後のその先のこと

「考えられる」「考えたことを言葉にできる」「その考えに至った背景や構造を整理できる」「考えたことが妥当、正当であることが説明できる」みたいな感じで難易度が上がって行くんだけど「考えられる」の前の「考えるべきことを決める」「方針を決める」「…

Scala3学習メモ: Scalaとnull, Scala2とScala3と

Rustの公式ドキュメントにnullに関する興味深い記事("Null References: The Billion Dollar Mistake"(Null参照: 10億ドルの間違い))が引用されています。 Enumを定義する - The Rust Programming Language nullは、インタフェースにおける双方の合意として取…

Scala3学習メモ: 新しい制御記法

Scala3では、“quiet” syntaxと呼ばれるPythonっぽい新しい記法が導入されていて、括弧が大幅に削減できるようになっています。 おそらく一番大きな変化点ですね。Scala3ベースの解説書である『Programming in Scala Fifth Edition』もすべてのコード例がこの…

僕らはいつまでUSB Type-Cケーブルを選ぶのに迷うのだろう…まだ迷っている人のための覚え書き - 2021年、夏

自分用の買い物メモ、Thunderbolt4ケーブルが続々とリリースされてきたので、2021年夏用にアップデート。 いつもの「全部同じじゃないですか」案件。 USB Type-Cケーブルの選び方は難しい…あらゆる規格をサポートするけど、あらゆる規格を”同時に”サポートす…

学ぼうとしたことが頭にぜんぜん入ってこないとき

ダメだ、全然理解が追いつかないことが書かれていると、もう一回音読するしかない小学生みたいだけど、これが自分にとって一番確実だ...— magnoliak🍧 (@magnolia_k_) 2021年7月31日 自分は割と「ゆっくり音読する」が一番効果が有る(と信じている)のだけど…