タグ

ブックマーク / ezoeryou.github.io (2)

  • 依存地獄の解決

    新しいブログ記事が読みたいといういう声が聞こえてきたので、久しぶりにブログを書く。最近仕事で依存地獄の解決をしているので、その方法を書いてみる。 現代のソフトウェアは様々なライブラリに依存するものだ。ソフトウェアAがライブラリBに依存する場合を考える。 A B ソフトウェアAとライブラリBはそれぞれ別のgitレポジトリで管理されている。依存はパッケージマネージャーで管理されていて、レポジトリの中に設定ファイルがある。レポジトリAの中にはレポジトリBに依存する設定ファイルがある。npm, cargo, pip, rebar3といったパッケージマネージャーを考えるといい。 もちろんライブラリBも別のライブラリC, Dに依存している。 A B C D この場合、AはC, Dに間接的に依存していることになる。 実はさらにFというライブラリがあり、これはA, B, Dが依存している。 A B F C

  • 江添亮のC++入門

    書はプログラミングの経験はあるがC++は知らない読者を対象にしたC++を学ぶためのである。書はすでに学んだことのみを使って次の知識を説明する手法で書かれた。C++コンパイラーをC++で書く場合、C++コンパイラーのソースコードをコンパイルする最初のC++コンパイラーをどうするかというブートストラップ問題がある。書はいわばC++における知識のブートストラップを目指しただ。これにより読者はを先頭から読んでいけば、まだ学んでいない概念が突如として無説明のまま使われて混乱することなく読み進むことができるだろう。 C++知識のブートストラップを意識した入門書の執筆はなかなかに難しかった。ある機能Xを教えたいが、そのためには機能Yを知っていなければならず、機能Yを理解するためには機能Zの理解が必要といった具合に、C++の機能の依存関係の解決をしなければならなかったからだ。著者自身も苦し

  • 1