CODE COMPLETE 上 第5章 コンストラクションにおける設計 5.3.7疎結合の維持

5.3.7疎結合の維持 結合度 クラスやルーチーンが他のクラスやルーチーンとどれだか結びついているかを表す。 良いモジュール間結合とは、あるモージュールが他のモジュールから簡単に使用できるくらい弱い(疎)結合であること。 他のモジュールに依存しない…

CODE COMPLETE 上 第7章 高品質なルーチーン 7.3良いルーチーン名

7.3良いルーチーン名 ルーチーンが行うことをすべて説明する ルーチーン名には処理の内容すべてが分かる様な名前をつけなければならい。 例えば、環境変数の数をカウントして昇順に並べて出力する関数だとしたら、 CountEnvTotal()では不十分でCountEnvTot…

CODE COMPLETE 上 第7章 高品質なルーチーン 7.2ルーチーンレベルでの設計

凝集度 cohesion: 強度とも言う クラス設計においては凝集度はあまり関係ないが、ルーチーンの観点からは非常に重要。 凝集度とはルーチーン内の処理がどれだけ強く関連しているかを表す。 例えば、Cosine()という関数はルーチーンが一つの処理に徹している…

気になったので exportとenvの違い

exportとenvの違い envコマンド ➜ env env | sortApple_PubSub_Socket_Render=/private/tmp/com.apple.launchd.fVQpnTWccq/RenderCOLORFGBG=7;0COLORTERM=truecolorCOMMAND_MODE=unix2003C_INCLUDE_PATH=/Users/tosakai/.brew/include:DISPLAY=/private/tmp/…

CODE COMPLETE 上 第7章 高品質なルーチーン 7.1ルーチーンを作成する理由

7.1ルーチーンを作成する理由 ※ルーチーンとは1つの目的で実行される個々のメソッド、プロシージャのこと。 複雑さを低減する 中間部分をわかりやすく抽象化する コードの重複を避ける サブクラスを作成しやすくする 処理順序を隠蔽する ポインタ処理を隠…

はじめて読む486 3.3 メモリ管理 その2

メモリ管理の話の中の、今回はメモリ保護について。 メモリ割り当て メモリ保護 仮想記憶 メモリ保護 メモリ保護とはタスク内で実行されるアプリケーションがアクセスできるメモリ領域を制限すること。 エンジニアのミスにより他のアプリケーションに割り当…

はじめて読む486 3.3 メモリ管理 その1

オペレーティングシステムの主要な役割 プロセス管理 メモリ管理 ファイルシステム 入出力管理 オペレーティングシステムの主要な役割のプロセス管理は以前書いたので、今回はメモリ管理の話。 ボリュームが多いので、いくつかに分けようと思います。 メモリ…

はじめて読む486 3.2 プロセス管理

マルチタスクとは? プロセスの開始や終了を管理するプロセス管理のうち、 複数のプロセスを並行して実行管理する機能のことをマルチタスク機能という。 例えば、Youtubeを見ながらブログを書くのもマルチタスク機能。 マルチタスク機能が無ければ、動画を見…

C言語 関数内変数宣言時のstaticのメリット

staticのメリットを整理 関数内で変数宣言時にstaticを使うメリットを整理しよう。 持続性 メモリ管理の簡略化 持続性 staticで宣言して一度メモリに取り込んでしまえば、処理が別の関数に移動しても変数は残る。通常の変数は関数で呼び出されるたびに初期化…

はじめて読む486 3.1 オペレーティングシステムの役割

MS-DOS時代 MS-DOS時代は16ビットCPUであり、かつ使用可能なメモリは640Kバイトまで。 機能的に低いレベルだが、当時のハードウェアの性能を考えると十分なスペックだった。 MS-DOSの限界 CPUの性能が上がり、メモリやディスク容量の増加に伴い、MS-DOSでは…

はじめて読む486 2.4 486のレジスタ

486には4種類のレジスタ群があるんだって。 一般レジスタ 浮動小数点レジスタ システムレジスタ デバッグレジスタ 一般レジスタ すべてのソフトウェアが利用するレジスタ。 プログラムが実装される際メモリから読み込んだデータを置いたり、 メモリのセグメ…

CPUの勉強 ー はじめて読む486

はじめて読む486 2.3 486の操り方 CPUには大きく2つの機能が存在 基本機能 システム管理機能 基本機能とは、メモリからデータをレジスタに読み込み、解釈、実行する機能。 システム管理機能とは、メモリ管理、タスク管理をする機能。 どちら同様にレジスタを…