🦣

リーダブルコード 用語memo #1

2024/07/23に公開

リファクタリング

  • プログラミングの外部から見た動作を変えずに内部構造を整理すること

tmp(ファイル)

  • "一時的な"って意味。用がなくなったら捨てちゃう。
    "tmp〇〇"と出てきたら、"一時的な〇〇"と読み替える。
  • retval "戻り値"
  • tmpやretval のような汎用的な変数名は避ける

https://sinproject.net/【リーダブルコード】tmp-や-retval-などの汎用的な名前/#google_vignette

ノード

  • 構成図を簡略化したときの点部分(図参照)

エッジ

  • 構成図を簡略化したときの、線部分(図参照)

BinaryTree クラス(二分木🌲)

  • プログラミングで頻繁に使用されるデータ構造のひとつ。
  • 二分木は上記で説明した、ノードと呼ばれる要素と、それらをつなぐエッジと呼ばれる線で構成されるデータ構造のこと
  • 二分木には特性があり、
    1. 各ノードは、"2つの子ノード"を見つことができる(左の子、右の子)
    2. 各ノードは、1つの親ノードを持つことができる。
      ただし、"根(ルート)"ノードは親ノードを持たない。
  • 二分木の用語
    1. 根(ルート)
      二分木の一番上にあるノード。他のノードの祖先

    2. あるノードからエッジをたどって直接つながる上位のノード

    3. あるノードからエッジをたどって直接つながる下位のノード
    4. 兄弟
      同じ親を持つノード

    5. 子ノードを持たないノード

https://zenn.dev/brainyblog/articles/data-structures-intro-binary-trees

Thread クラス

  • スレッドとは、一つのプログラム(プロセス)の中で、複数の処理の流れを走らせることができる。スレッドを作成するには、Threadのサブクラスを作成する方法と、Runnableインターフェースを実装したオブジェクトを用いる方法がある
    https://www.tohoho-web.com/java/thread.htm

明確な単語を選ぶ

コンパイル

  • ソースコードを人間語から機械語に翻訳すること(コンピューターの仕事)

イテレーター

  • イテレータ(反復子)( i,j,k )
    データ集合の要素に順番にアクセスするための仕組み。

ループイテレーター

  • for文(指定されている条件分繰り返す)や
    while文(条件が成立してる間繰り返す。)でよく使われる。

  • インデックスの最初の文字は、配列と同じ文字が正しい
    ex)membersだったら、[mi],usersだったら、[ui]

マクロ

  • アプリケーションソフトであらかじめ操作手順を設定しておくことによって、必要なときに簡単に実行させることができる機能

ロギング機能

  • プログラムを実行しているときに起こった出来事を記録して追跡する

コピーコンストラクタ(c++)

  • オブジェクトを作成する際に呼び出されるメンバ関数(メソッド)をコンストラクタといいます。 コンストラクタはデータメンバの初期化を行うために使用する
  • クラス名と同じ名前で戻り値がない関数がコンストラクタ
  • そのクラスの参照だけを受け取るコンストラクタを"コピーコンストラクタ"という。
    例 )
  1. コンストラクタ
class Rectangle {
 public:
    Rectangle(int height, int width);

    int Area() const;

 private:
    const int height_;
    const int width_;
};
  1. コピーコンストラクタ
class Copyable {
 public:
    Copyable();  // デフォルトコンストラクタ
    Copyable(const Copyable& c);  // コピーコンストラクタ
};

見た記事
https://rinatz.github.io/cpp-book/ch07-05-constructors/

メンバ関数

  • オブジェクト指向プログラミングでオブジェクトに所属する関数のこと。
    メソッドと同じ意味みたい。

メモリーリーク

  • メモリの解放処理が入っていないのが原因で、確保されたメモリ領域が解放されないことによって、
    メモリの空き容量が減っていくこと
  • プログラムさんが「ここは僕が使うよ!」と場所取りしたメモリの場所を「もう使わないから他の人が使っていいよ!」にするのを忘れちゃったのが原因で、他の人が使えない状態が続くことによって、メモリの使える場所が減っていくこと。この文がわかりやすかった。

https://wa3.i-3-i.info/word16066.html

10進数

16進数

「 チャットgptからの返答」
16進数(Hexadecimal)は、基数16の数の表記法で、数値を0から9までの数字と、AからFまでのアルファベットを使用して表します。これにより、数値を短く簡潔に表現することができます。特に、コンピュータサイエンスやデジタルシステムでは非常に一般的に使用されます。

16進数の構成
16進数の各桁は以下のようになっています:

0から9: 十進数の0から9に対応
AからF: 十進数の10から15に対応

16進数Aは十進数の10
16進数Fは十進数の15
16進数10は十進数の16(116 + 0)
16進数1Fは十進数の31(1
16 + 15)
16進数の使用例
コンピュータメモリアドレス:
コンピュータのメモリアドレスは通常16進数で表されます。例えば、0x7FFFはメモリアドレスを表します。

色の表現:
ウェブデザインやグラフィックデザインでは、RGBカラーを16進数で表現します。例えば、#FF5733は赤、緑、青の値を16進数で表したものです。

16進数から十進数への変換
各桁を16の累乗で掛け合わせて合計します。

16進数1A3を十進数に変換する場合:
1A3 = 1 * 16^2 + 10 * 16^1 + 3 * 16^0
1A3 = 1 * 256 + 10 * 16 + 3 * 1
1A3 = 256 + 160 + 3 = 419
まとめ
16進数は、数字と文字を使って効率的に数値を表現する方法であり、特に技術分野で多く使われます。数値の範囲が広がるにつれて、数値を簡潔に表現するための便利な方法として重宝されています。

ハンガリー記法(イングリッシュ記法)

  • 編集名の最初や最後に目印をつけることで、(接頭辞/接尾辞)変数名をわかりやすくして間違いを減らそう!ってこと。

ex)

合計 = 変数1 + 変数2
これより
数字_合計 = 数字_変数1 + 文字_変数2
の方がわかりやすいってこと

https://wa3.i-3-i.info/word13959.html

スコープ

  • 範囲のこと。影響範囲

単語補完(リーダブルコードによると、知らない方多いらしい。)

  • Ctrl-P Ctrl-N
    基本的な補完コマンド。編集中の文章内で、前方向Ctrl-Pまたは、後方向Ctrl-Nにある単語を検索して、現在入力中の文字列にマッチする単語を補完リストとして提案してくれる

  • Ctrl-X Ctrl-L
    行の補完を行う。現在の行の一部を入力した後、このコマンドを使うと、以前に入力した類似の行を補完として提案してくれる。

https://qiita.com/zhao-xy/items/a9c0291e3a4d89728d18


idの区切り文字にはアンダースコアを。
classの区切り文字にはハイフンを使う規約がよい。

Discussion