タグ

ブックマーク / blog.magnolia.tech (17)

  • 2023年買ったもの(技術書とか) - Magnolia Tech

    2023年のお買い物、技術書編です。 技術書以外はこちら blog.magnolia.tech とりあえずノータイムで買っちゃえ!損は無いよ!という3冊 他に、類似のがないか、有ってもこっち買っておけばよくね?という3冊 なっとく!関数型プログラミング なっとく!関数型プログラミング 作者:Michał Płachta翔泳社Amazon Scalaをベースとした関数型プログラミングの学習。オブジェクト指向言語であり、関数型プログラミング言語であるScalaの特性を生かして、命令型から宣言型のコードの書き方への変え方を学んでいくスタイル。 前半の凄まじい丁寧な学習のステップと、後半の「ここまで一気にやらなくても良くない?」の落差もすごいけど、ページ数の厚さに躊躇せず、前半1/3くらいを時間をかけて丁寧に学習するくらいが良いと思います。 周りに良い先生が居れば別ですが、そうでなければこの

    2023年買ったもの(技術書とか) - Magnolia Tech
  • 『なっとく!関数型プログラミング』は読者の理解度の進捗を先読みして作り込まれた”プログラミング入門”の良書 - Magnolia Tech

    なっとく!関数型プログラミング 作者:Michał Płachta翔泳社Amazon 良い、買おう、読もう、(コードを)書こう、以上! めっちゃ良いですよ、この 中盤のプリミティブじゃやりづらい→直積→直和→二つ合わせてADT→値を取り出すためのパターンマッチの解説の流れの疾走感がいいですね— magnoliak🍧 (@magnolia_k_) 2023年8月6日 『なっとく!関数型プログラミング』は、2022年に出版された『Grokking Functional Programming』の邦訳版で、主にScalaを題材として関数型プログラミングを学んでいくための入門書("Grokking"は、完全に理解する、という意味)。あくまで関数型プログラミングの考え方、コードの書き方、良い設計の指針の解説が主眼に置かれているので、Scalaの言語機能の入門書ではない。Scalaの言語仕様を網羅

    『なっとく!関数型プログラミング』は読者の理解度の進捗を先読みして作り込まれた”プログラミング入門”の良書 - Magnolia Tech
  • 一家に一冊『詳解UNIXプログラミング 第3版』 - Magnolia Tech

    詳解UNIXプログラミング 第3版 作者:W. Richard Stevens,Stephen A. Rago翔泳社Amazon 先日、sambaのソースコードを読んだ話をブログに書いた。 blog.magnolia.tech その時に、傍に置いて参照したのが『Advanced Programming in the UNIX Environment』、邦題『詳解UNIXプログラミング 第3版』。 手元には10年前に買った原著しかなく、和訳の紙版を買おうとしたら、いつの間にかどこにも売られていなくなってしまっていた......電子書籍版は今でも入手できるけど、この手の定番書籍は紙で持っておきたいんだよなぁ。 内容は、Linuxmacos、FreeBSD、Solarisなどのシステムコールや、POSIX仕様と照らし合わせながら各OSの差異などがB5・896ページに渡って解説された凄まじい1冊

    一家に一冊『詳解UNIXプログラミング 第3版』 - Magnolia Tech
  • 『マスタリングLinuxシェルスクリプト 第2版』、こういう1冊手元に有るとずっと使える本はちゃんと買っておきたいですね - Magnolia Tech

    マスタリングLinuxシェルスクリプト 第2版 ―Linuxコマンド、bashスクリプト、シェルプログラミング実践入門 作者:Mokhtar Ebrahim,Andrew MallettオライリージャパンAmazon 令和最新版のシェルスクリプトの入門書とリファレンスがセットになった1冊。手元に置いておくと安心感ありますよね。 令和最新版なので、冒頭からデバッグしたいならVisual Studio Code がオススメ、と出てきます。 コンテナ使おうと思ったらシェルスクリプトの読み書きの出番がどんどん増えていって、コンテナに一番必要なスキルはシェルスクリプトのスキルでは?と思っている今日この頃です(違います)が、そのくらいの用途に必要な要素は全部盛り込んであり、シェルスクリプトの文法と実践的な使い方に加えて、一緒に利用されることの多いgrep、awk、sedといったコマンドの解説も併せて載

    『マスタリングLinuxシェルスクリプト 第2版』、こういう1冊手元に有るとずっと使える本はちゃんと買っておきたいですね - Magnolia Tech
  • 『ちょうぜつソフトウェア設計入門――PHPで理解するオブジェクト指向の活用』は、現代ソフトウェア開発の”知の高速道路” - Magnolia Tech

    ちょうぜつソフトウェア設計入門――PHPで理解するオブジェクト指向の活用 作者:田中 ひさてる技術評論社Amazon 予約してまで買ったものの、なかなか時間が取れず、読めていなかった『ちょうぜつソフトウェア設計入門――PHPで理解するオブジェクト指向の活用』をようやく読み終わりました。 筆者である田中ひさてるさん自身で描かれた表紙の可愛らしさからは想像もできないハードな内容なので、一気に読もうとすると「分かった気」になるだけで全然理解していなかった、ということになりがちなので、3回くらいぐるぐる読むといいと思います(そうです、この文もイラストも丸っと同じ人が書いているのです!!)。 目次 第1章 クリーンアーキテクチャ 第2章 パッケージ原則 第3章 オブジェクト指向 第4章 UML(統一モデリング言語) 第5章 オブジェクト指向原則 SOLID 第6章 テスト駆動開発 第7章 依存

    『ちょうぜつソフトウェア設計入門――PHPで理解するオブジェクト指向の活用』は、現代ソフトウェア開発の”知の高速道路” - Magnolia Tech
  • 設計の「why」を言語化する - Magnolia Tech

    設計の「why」を言語化できる人は強いんですよ— magnoliak🍧 (@magnolia_k_) 2022年10月29日 っていうか、驚くくらい「why」が上手く表現できないんですよ、普通は 手順は言えても、なぜ?が言えない— magnoliak🍧 (@magnolia_k_) 2022年10月29日 設計において、すべての決定について仔細に「なぜ、そうしたか?」を言えるべきなのだけど、これを上手く言語化できない人は多い。「このプロジェクトでは以前からそうしているから」「そうするのが当たり前だと思っていた」などなど、当に理解してないまま「設計という作業」を進めている人もいれば、上手く自分の行為を言語化できないだけの人もいる。 また、必ずしも自分が設計したことについて説明する場面ばかりとも限らない。既に存在する設計から「なぜ」を類推するしかない場面もある。他人のコードを読み取るとき

    設計の「why」を言語化する - Magnolia Tech
  • 紙の技術書を開いたままコードを書く時は、クラスプクリップがおすすめです - Magnolia Tech

    紙の技術書を開いたままの状態にして、参考にしながらコードを書きたい時ってありますね。ただ、を開いた状態にしておくのが結構大変です。ブックスタンドなどもありますが、けっこう大きいし、持ち運びには向いていないです。 そんな時には、ステンレス製のクラスプ クリップがおすすめです。ペンケースにも入るサイズなので持ち運びもできます。 (写真のは、最近読んでいる『Learning Go』です) 紙の質にもよりますが、150ページくらいまでは止めておけるし、それ以上のページになれば自重で全体は開いたままの状態になるので、めくれないように手前のページを数ページ軽く挟んで押さえておけばいいだけです。 一番大きなサイズでも275円なので、試しに買えるレベルなのもオススメの理由の一つです。 ステンレスクラスプ クリップ シンプル 書類 整理 オフィス 備品 Lサイズ ステンレス製 DAS-2501 スリッ

    紙の技術書を開いたままコードを書く時は、クラスプクリップがおすすめです - Magnolia Tech
  • 「ログを出す!ログを読む!」エンジニア版ベストキッド…「syslogに出す! loggerで出す!」「ログレベルアップ!ダウン!アップ!ダウン!」 - Magnolia Tech

    エンジニア版ベストキッド 師匠 「ログを出す!ログを読む!」「syslogに出す! loggerで出す!」「ログレベルアップ!ダウン!アップ!ダウン!」 生徒 「クラウドネイティブなマイクロサービスの作り方を教えてくれる約束だ!」 プロダクション環境にて… 生徒「ログが…有る!これだ!」— magnoliak🍧 (@magnolia_k_) 2022年4月10日 ふとベストキッドの台詞を思い出して、雑に書いてみたけど、案外いいこと書いてるなーって自分でも思ってしまった。 loggerの使い方は入門書に載ってたり載ってなかったりするし、どんなタイミングでどんな情報をどこに出すべきか?みたいな話は一子相伝の秘伝の技みたいになりがちだし。 まさにそう思います。https://t.co/ZKTTtdwB1d— Hideo Fukumori (@hideo_fukumori) 2022年4月11日

    「ログを出す!ログを読む!」エンジニア版ベストキッド…「syslogに出す! loggerで出す!」「ログレベルアップ!ダウン!アップ!ダウン!」 - Magnolia Tech
  • 『ソフトウェアアーキテクチャの基礎 ―エンジニアリングに基づく体系的アプローチ』を読めばアーキテクトになれるのだろうか - Magnolia Tech

    ソフトウェアアーキテクチャの基礎 ―エンジニアリングに基づく体系的アプローチ 作者:Mark Richards,Neal FordオライリージャパンAmazon とても良いだ!アーキテクチャのパターンは体系的に整理されているし、アーキテクチャを議論する上で、共通の語彙となり得る用語を解説している(コンウェイの法則や、凝集度など)。 後半は、リスクや、チームビルディング、交渉術まで多岐に渡るトピックを網羅している。 必要なことは全部書いてある...けれど、なんとなく初めてPMBOKを読んだときに抱いた感想...読み始めてからすぐに「果たしてこのに書かれている通りの考え方に沿って振る舞えばアーキテクトになれるのか?」という気持ちになりはじめたところで1章の最後の方に出てくる「ソフトウェアアーキテクチャの法則」が出てきて、「そうだよなー」という気持ちに。 ソフトウェアアーキテクチャはトレード

    『ソフトウェアアーキテクチャの基礎 ―エンジニアリングに基づく体系的アプローチ』を読めばアーキテクトになれるのだろうか - Magnolia Tech
  • ディストリビューションごとのJavaのバージョン表記 - Magnolia Tech

    色んなJavaのディストリビューションのバージョン表記を集めてみました 1行目はjdkのバージョンを示している ベンダがLTSを表明しているディストリビューションは「LTS」の表記がつく JREやJVMのバージョンはベンダごとに独自のバージョンが付けられる JREやJVMのバージョンの後ろに括弧付きでopenJDKのバージョン番号が表示される...ビルド番号や、ディストリビューション固有のバージョン番号が含まれる 1行目のダブルクォーテーションに囲まれた数字を見ておけばOKですね Oracle JDKのバージョン表示 java version "17.0.1" 2021-10-19 LTS Java(TM) SE Runtime Environment (build 17.0.1+12-LTS-39) Java HotSpot(TM) 64-Bit Server VM (build 17.

    ディストリビューションごとのJavaのバージョン表記 - Magnolia Tech
  • 定期的に知識をリフレッシュする - Magnolia Tech

    IT系に身を置いていると、つい新しい知識ばかりを追いかけがちになるけど、CS的な基礎知識や、Linuxのコマンドとかの(もちろんソラでコマンド10個のオプションを言える必要は、無い)も当然大事なわけです。というか、土台となる知識が無いと、新しい知識がちゃんと身につきません。 だけど、普段使わない、手を動かさない分野のスキルはどんどん忘れていきます。歳をとると加速度的に忘れていきます。 そしてヤバいのは、分かっていることと、分かっていないこと、できること、できないことの区別がつかなくなることです。 人は分かる範囲でしか物事を理解しないので、「分かっていないことを知る」という行為を行なって「分かる範囲」を広げる、または最低でも維持する営みを続けていかないとどんどん判断する時に必要な材料が狭まっていきます。 Java 1.5の知識で、Java17時代の判断はできないですよね、10倍以上違うんだか

    定期的に知識をリフレッシュする - Magnolia Tech
  • ドメイン知識は、容易に失われる - Magnolia Tech

    以前noteに書いた記事ですが、管理上こちらにも転載。 なるべくドメインを表現したコードにしよう、というのはそりゃそうなんだけど、ちょっとした記述方法だけでもドメインが持っていた意図は容易に失われる(だからこそどうやって表現を残すか考えないといけない)っていう趣旨のエントリでした。 ドメインにはドメインの都合があるし、コードにはコードの都合があるんだよね。完全にどちらかに寄るわけじゃないけど、後世の人にとって都合の悪い寄り方はあると思う。 例えば区分コードみたいな値が有ったとして、1の時は○○という処理、2,3,4の時は△△という処理を実装する、という状況のときに、条件分岐が「区分コードが1か、それ以外」で分岐させると、2,3,4と限定しておきたかった、というドメイン知識が失われたりしませんか?みたいなことが有ったり無かったり— magnoliak🍧 (@magnolia_k_) 202

    ドメイン知識は、容易に失われる - Magnolia Tech
  • 『Webで使えるmrubyシステムプログラミング入門』は、現場で経験値の高い先輩から指導を受けている錯覚を起こさせる一冊だった!! - Magnolia Tech

    Webで使えるmrubyシステムプログラミング入門 作者:近藤宇智朗発売日: 2020/11/25メディア: Kindle版 この手のミドルウェア・プログラミング言語の入門・解説書、ひたすら語り口を優しくしているだけだったり、単にリファレンスをなぞっているかのどちらかで、教科書的な硬さとかが鼻につくんだけど、この『Webで使えるmrubyシステムプログラミング入門』は全然違う。次元が違う。 明らかに、”現場で経験値の高い先輩から指導を受けている”ような錯覚を感じさせる内容、流れになっている。 今後、この手の入門書は全部こんな感じでお願いします(あとは公式リファレンス読むんで!)と言いたくなるくらいの良書。マジで良い。 環境がmacOSを使いつつ実際のプロセスはVirtualBox上のLinuxで進む(ちゃんと両方使う前提になっている) 冒頭でmrubyのビルドの解説をする際に、さらっと「デ

    『Webで使えるmrubyシステムプログラミング入門』は、現場で経験値の高い先輩から指導を受けている錯覚を起こさせる一冊だった!! - Magnolia Tech
  • 「ドメイン駆動設計入門」を買って、読んだ - Magnolia Tech

    ドメイン駆動設計入門 ボトムアップでわかる!ドメイン駆動設計の基 作者:成瀬 允宣出版社/メーカー: 翔泳社発売日: 2020/02/13メディア: Kindle版 先日開催されたObject Oriented Conferenceに象徴されるように、最近設計論の議論が盛んでですね。設計論と言えば、「エリック・エヴァンスのドメイン駆動設計」、いわゆるDDDがよく取り上げられてきましたけど、なかなかヘビーなだし、案外コードは全然出てこないので、読んだ上で「で、どうすればいいの?どんなコードを書けばいいの?」という疑問がわきます。 おなじくドメイン駆動設計の解説書である「実践ドメイン駆動設計」も、語られる順番がDDDと変えることで併せて読むことで理解を深めることを意図していましたが、やはりコードの少なさは同じくらいでした。 「ドメイン駆動設計入門」は、とにかく豊富なコード例が出てくると

    「ドメイン駆動設計入門」を買って、読んだ - Magnolia Tech
  • 一冊の本をじっくり読み込み、知識を吸収するためにはどうすればいいのか - Magnolia Tech

    blog.shibayu36.org 先日、id:shiba_yu36さんのブログで、同じジャンルのを複数同時並行で読み、気になったキーワードを繰り返し選別していって、読書ノートにまとめることで知識の吸収速度を上げる、という内容のエントリが話題になっていた。 確かに同時並行で同じジャンルのを読むことで、同じキーワードでも複数の視点で考えるきっかけになって、より理解し易いという効果が有ると思う。一方で、自分は元々一冊のをじっくり最後まで読み切るのが苦手で、だんだんと読み方が雑になって、後半は流し読みくらいになってしまうことがよく有る。 では、どうすれば1冊の方をじっくり読み切って、かつ知識を吸収することができるか、ということを考えてみた。 「目次」と、「はじめに」をじっくり読む 前半部分は並列に読む 中盤まで行ったら最初に戻る メモできる環境を用意する 分からないキーワードは都度調べる

    一冊の本をじっくり読み込み、知識を吸収するためにはどうすればいいのか - Magnolia Tech
  • どうやってコーディングを学ぶか - Magnolia Tech

    CPANに上がってるモジュール、一つ一つの粒度が小さいから読みやすいし、ドキュメントもテストもしっかり揃ってて挙動を把握しやすくて、自分にとっては最高の教科書だったな 今でも他の言語で分からない時に同じ目的のPerlモジュールを見る事があるし— magnoliak🍧 (@magnolia_k_) 2021年1月7日 自分が学んだ頃の、時代的なものもあるけど、今でもPerlのモジュールは粒度が小さく、ドキュメント、テストがしっかり用意されているので、参考にするにはちょうど良いと思っている。 ScalaScalatraっていうWAFのメンテナンスに参加しているんだけど、HTTPプロトコルだったり、Webのお作法的なところが分からないことが有ったら、たいていPlackか、Rackのソースを見て理解するところから始める、みたいなことしてる— magnoliak🍧 (@magnolia_k_)

    どうやってコーディングを学ぶか - Magnolia Tech
  • 僕らはいつまでUSB Type-Cケーブルを選ぶのに迷うのだろう…もう間違えないための覚え書き - Magnolia Tech

    2021/8/6更新 Thunderbolt4ケーブルがリリースされてきたので、アップデートしました。 blog.magnolia.tech 自分用の買い物メモ USB Type-Cケーブルの選び方は難しい…あらゆる規格をサポートするけど、あらゆる規格を”同時に”サポートするわけではないので、主にケーブル長や用途などで上手く選ばないと、使えなかったり、無駄に高いケーブルを選ぶことになってしまう そんなことを起こさないためのメモ あれこれ迷わないための”全部入り” 低速から高速まで色々な周辺機器の接続に使う(USB2.0, USB3.1, Thunderbolt3) ディスプレイ接続に使う(DisplayPort) 給電に使う(最大100W) などなどを考えると、長さが1.0m以下で、USB PD 5A(100W)対応と書かれているThunderbolt3ケーブルを選ぶと全部対応している。

    僕らはいつまでUSB Type-Cケーブルを選ぶのに迷うのだろう…もう間違えないための覚え書き - Magnolia Tech
  • 1