Magnolia Tech

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

2021-01-01から1年間の記事一覧

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日 自分は割と「ゆっくり音読する」が一番効果が有る(と信じている)のだけど…

WEB+DB PRESS総集編[Vol.1~120]

WEB+DB PRESS総集編[Vol.1~120] (WEB+DB PRESSプラスシリーズ)作者:泉水 翔吾,櫻庭 祐一,宇佐美 健太,笹田 耕一,牧 大輔,末田 卓巳,池田 翔技術評論社Amazon わずか2970円で過去のWEB+DB Pressが120冊揃うの、マジで便利なので、とりあえず買った方がいいで…

『詳説データベース』は、2021年夏の課題図書

詳説 データベース ―ストレージエンジンと分散データシステムの仕組み作者:Alex PetrovオライリージャパンAmazon まさに2021年夏の課題図書といえる『詳説データベース』を読みました。 昔からOSやコンパイラなど、基本的なソフトウェアの構造や、技術的な課…

「Anker Nano II 65W」を購入 - 最小の65W対応のUSB PD充電器

Anker Nano II 65W (PD 充電器 USB-C)【独自技術Anker GaN II採用/PD対応/PSE技術基準適合/折りたたみ式プラグ】MacBook PD対応Windows PC iPad iPhone Galaxy Android スマートフォン ノートPC 各種 その他機器対応 (ブラック)AnkerAmazon 発売前に予約して…

Scalaの識別子(クラス名、メソッド名、変数名)に使える文字・使えない文字

Scalaでは、クラス名、メソッド名、変数名などの「識別子」に漢字・ひらがな・カタカナが使えます。 scala> val 変数 = 42 val 変数: Int = 42 scala> def 引数を倍にするメソッド(引数: Int): Int = 引数 * 2 def 引数を倍にするメソッド(引数: Int): Int s…

『ITと数学』、その切っても切れない関係

ITと数学 Software Design別冊作者:中井 悦司,橘 慎太郎,石川 聡彦,貞光 九月,中西 崇文,辻 真吾,飯尾 淳,上野 貴史,真嘉比 愛,伊勢 幸一,吉岡 弘隆,平林 純,及川 卓也,増井 俊之,藤原 博文,五味 弘技術評論社Amazon 初めてコンピュータサイエンスを学ぶとき…

Scala 2.13対応の『Scala スケーラブルプログラミング 第4版』は、全Scala使いが買うべき一冊

Scalaスケーラブルプログラミング 第4版 impress top gearシリーズ作者:Martin Odersky,Lex Spoon,Bill Venners,長尾 高弘,麻植 泰輔,立野 靖博,田所 駿佑,水島 宏太インプレスAmazon Scalaの言語設計者であるMartin Odersky著『Scala スケーラブルプログラ…

『[改訂新版]プログラマのための文字コード技術入門』...いつ役立つか分からないからとりあえず買っておいて損の無い一冊

[改訂新版]プログラマのための文字コード技術入門 (WEB+DB PRESS plusシリーズ)作者:矢野 啓介技術評論社Amazon ”基礎技術”系の本には、いつ役立つか分からないからとりあえず買っておいて損の無い一冊、というのが有って、この『[改訂新版]プログラマのた…

仕様と、実装、その間にあるもの

妙に時間をかけてしまって一つのPRを書いた。 Fixed Syntax Summary by magnolia-k · Pull Request #9666 · scala/scala · GitHub Scalaの文法概要の記載が正確ではない(過去の修正で誤りが混入した)箇所を直すものだ。 他の誤りも無いかと確認する過程で、u…

Vimの正規表現でのUnicode周りのこと

ファイルがUTF-8で作成されていても、\uxxxx形式のコードポイントで検索できる(UTF-8のコードポイントではないのは何故だろう?) [^\x00-\x7F]でもUTF-8の2バイト以上の文字にマッチさせられる iskeywordの範囲じゃ無いのに、UTF-8の2バイト以上の文字がワー…

USB Type-Cケーブルは迷わず『⚡︎3』刻印入りのThunderbolt 3ケーブルを買おう

Anker USB-C & USB-C Thunderbolt 3 ケーブル (0.5m ブラック)【100W出力 / 40Gbps / 高速データ転送 / 4K対応 / 5K対応】MacBook iPad Pro 他対応AnkerAmazon 認証済み Cable Matters Thunderbolt 3 ケーブル 40 Gbps サンダーボルト 3ケーブル 100W充電 0.…

たいていのソフトウェア開発の方法論や、機能は、「用法用量を守って正しくお使いください」に行き着くよね

たいていのソフトウェア開発の方法論や、機能は、「用法用量を守って正しくお使いください」に行き着くよね— magnoliak (@magnolia_k_) 2021年5月9日 でもなー、用法容量を守らないで痛い目に合わないと分かんないんだよなーって側面もある個人的なコードで…

10年目の『アジャイルサムライ』を読んで見たら前半はアジャイルというより、普遍的なソフトウェア開発のノウハウの話だった

アジャイルサムライ――達人開発者への道作者:JonathanRasmusson,西村直人,角谷信太郎発売日: 2017/07/14メディア: Kindle版 本棚から発掘した『アジャイルサムライ』を久しぶりに読み返した。 同じ著者による『ユニコーン企業のひみつ』が話…

『ハンズオンNode.js』、みっちり詰まっている一冊

ハンズオンNode.js作者:今村 謙士発売日: 2020/11/17メディア: 単行本(ソフトカバー) GWはJavaScriptを学び直そうと思って、『ハンズオンNode.js』を買ってきた。 なんかもうみっちり詰まってて、サーバサイドのJavaScriptを学ぶにはいい感じの密度と、リ…

一貫性…長くメンテナンスをするために、大事なこと

blog.magnolia.tech 昨日のエントリーは随分たくさんの方の共感を得られたようです。みんな頑張っていきたいですね! そのあと考えてみたのですが、エラー処理と並んで大切なことに「一貫性」があるのではないかと思い至りました。 保守するにしろ機能改修に…

運用に耐えられるコードを書くために

オブジェクト指向とか、DDDとか言う前に、「落ちる時は速やかに落ちる」「原因がきちんと解析できる情報を出す」「リトライポイントが用意されている」「最終的な結果の正当性、整合性を確認する方法が用意されている」っていうコードをですね.... https://t…

『ユニコーン企業のひみつ』を読んだけど、ひみつは書かれてたっけ?と思ってしまった

ユニコーン企業のひみつ ―Spotifyで学んだソフトウェアづくりと働き方作者:Jonathan Rasmusson発売日: 2021/04/26メディア: 単行本(ソフトカバー) 『ユニコーン企業のひみつ』を買ってきたけど、その前に先日本棚から発掘した『アジャイルサムライ』も読ま…

「役割」と、「振る舞い」について

エンジニアの仕事は疑うことです、リーダーの仕事は信じることです両方の立場を担う人はそれぞれの役割ごとに振る舞いを意識的に変えましょう、という話をしました— magnoliak (@magnolia_k_) 2021年4月28日 ちなみに初めてリーダー作業を経験した人に振り返…

ドメインエキスパートを外部のリソースと捉えるのは違うんじゃない?

実践ドメイン駆動設計作者:ヴォーン・ヴァーノン発売日: 2015/03/19メディア: Kindle版 『実践ドメイン駆動設計』の一節にこんなくだりがある。 ドメインエキスパートをプロジェクトに参加させる方法 コーヒーにきまっている。こんなユビキタス言語を使えば…

成長は経験の質の掛け算じゃないかって考えた

成長するために必要なこと・自分で手を動かしてアウトプットする環境・自分で意思決定できる裁量・フィードバックとそれを活かす機会・色々な意味での余裕— magnoliak (@magnolia_k_) 2021年4月6日 結局この掛け算なんだよなー長くやってても成長してない時…

if文を追加したくない高校 校歌斉唱!

時系列に沿った単純なif文の増加量を複雑性の増加根拠として挙げる、みたいな分析を昔見たことが有って、あれはあれで真実だよなーって感心したことが有ったなー https://t.co/dExpk2mYdZ— magnoliak (@magnolia_k_) 2021年4月1日 ポリモーフィズムでif文を…

株式会社はてなに入社しました

株式会社はてなに入社しました 株式会社はてなに入社しました - hitode909の日記

『エクストリームプログラミング』...僕らはいったいどういう「価値観の変えかた」をすればいいのかと考えるきっかけになる一冊

そういえば読んでいなかった。 エクストリームプログラミング作者:KentBeck,CynthiaAndres発売日: 2017/07/14メディア: Kindle版 XPは、私自身のソフトウェア開発の実践のなかで人間性と生産性を調和させ、その調和を共有しようとする…