GitHubでリリースの仕方

  • まずタグを作る
git tag -a タグ名 -m タグコメント

タグ名は、例えば、v1.0 など。

タグコメントは、例えば、"version 1.0"など。

git push リモート名 タグ名

リモート名は、git remote addで指定した名前。よく使うのは"origin"

  • その後、GitHubで"Create a new release"をクリックして作成する

なお、タグの作成もGitHub上で作成可能だそう。

GitとGitHubの基本的な使い方

前提

  • Gitはインストール済であること

Gitインストール後の最初だけやっておくこと

  • Git Bashでユーザー名を登録する
git config --global user.name ユーザー名
  • Git Bashでメールアドレスを登録する
git config --global user.email メールアドレス

新規リポジトリを作成するときだけやっておくこと

Git Bashでローカルリポジトリディレクトリに移動して、以下を実行する

git init
git remote add リモート名 リモートURL

リモート名は、よく使うのは"origin"

リモートURLは、https://github.com/ユーザー名/リポジトリ名.git

コミット

追加、変更を記録する

コミットするファイルをステージに乗せるため、Git Bashで以下を実行する

git add ファイル名

上記のファイル名のところは、ディレクトリ名でも、. (ドット)でもいい。

. (ドット)は、カレントディレクトリ以下の追加、もしくは変更したファイルをステージに乗せることになる。

Visual Studioではコミットする必要のない中間ファイルが多く存在する。それらのファイルをコミット対象外にするには、".gitignore"ファイルを作成しておくといい。 Visual Studioコマンドプロンプトで、ローカルリポジトリディレクトリに移動して、以下を実行すると適切な".gitignore"ファイルが作成されるので便利。

dotnet new gitignore

ステージに乗せたファイルを以下を実行してコミットする

git commit -m "コミットコメント"

プッシュ

リモートリポジトリに変更を反映させるため、Git Bashで以下を実行する

git push リモート名 ブランチ名

リモート名は、git remote addで指定した名前。よく使うのは"origin"

ブランチ名は、特にブランチを作っていなければ、"master"。

C#のビルドで単一実行可能ファイルを生成する方法

C#でプログラムを書きビルドしてみると、どんなに単純なプログラムでも、実行可能ファイル(*.exe)単体で実行できる実行可能ファイルを生成することはできない。

しかし調べてみると.NET Core 3.0以降を使用しているなら、単体で実行可能な実行可能ファイルを生成できることがわかった。

方法(Microsoft Visual Studio Community 2019を使用している場合)

  • メニューのビルドの"〇〇の発行"をクリック
  • ターゲットをフォルダーにして"次へ"をクリック
  • 特定のターゲットをフォルダーにして"次へ"をクリック
  • フォルダーの場所を指定して、"完了"をクリック
  • 対象プロジェクトの Properties/PublishProfilesフォルダ内にFolderProfile.pubxmlがあるので、それをダブルクリックで開く
  • PropertyGroupブロック内に、次の2行を挿入する
<PublishSingleFile>true</PublishSingleFile>
<RuntimeIdentifier>win10-x64</RuntimeIdentifier>
  • メニューのビルドの"〇〇の発行"をクリックして、公開で"発行"をクリック

JavaのBigDecimalの使い方の注意点

BigDecimalは誤差が出ないように計算ができるクラス。
ただオブジェクトの生成には注意が必要。

文字列から生成する場合

BigDecimal value = new BigDecimal("1234.567");

数値から生成する場合

BigDecimal value = BigDecimal.valueOf(1234.567); // 良い例
BigDecimal value = new BigDecimal(1234.567); // 悪い例

BigDecimal#valueOfは、オブジェクトの再利用をしてくれる。
new BigDecimalは、2進数で正確に表現できない数値を指定すると、誤差が含まれたオブジェクトを生成してしまう。

Javaの参照型

Javaには、いわゆる参照渡しは存在しない。

参照型は、C++の参照とは異なる。

Javaの参照型は、参照値の値渡しをしている。JLS - 4.3.1

どちらかというと、C++のポインタに近いと言える。 つまり、値が入っている場所を渡している。 C++の参照は、ある変数の別名であるので、まったくの別物である。


ここでC++の復習

C++の参照は初期化時に、どの変数の参照かが固定される。

int a = 100;
int &b = a; // 変数bは変数aの参照で固定

後でこの参照関係(変数bは変数aの参照である)を変えることができない。

後で変えたと思ったものは、初期化時に指定した変数の値を変えることを意味する。

int a = 100;
int &b = a;
cout << "a := " << a << endl; // a := 100
cout << "b := " << b << endl; // b := 100

b += 5;
cout << "a := " << a << endl; // a := 105
cout << "b := " << b << endl; // b := 105

int c = 10;
a = c;
cout << "a := " << a << endl; // a := 10
cout << "b := " << b << endl; // b := 10

ポインタや参照を使うときは、constを積極的に使うべき。 変更されてもいいものだけconstを外すようにする。

const int* a;は、ポインタが指す中身が固定。

int* const a;は、ポインタそのものが固定。

const int &b = a;は、参照が指す中身が固定。

Markdown記法

手軽に文章構造を明記できる書き方

代表的なものは、以下の通り

  • 段落は、1行空ける。
  • 強調は、**で囲む。
  • 箇条書きは、行頭に- を付ける。
  • 番号付きの箇条書きは、行頭に1. を付ける
  • リンクは、[]で囲って、リンク先を()内に書く
  • 見出しは、行頭に# を付ける。#の数が増えるごとに小見出しになる
  • インラインのコードは、` で囲む
  • 独立したコードは、``` で囲む。最初の```の直後に言語名を書く

コードの例

System.out.println("Hello World!");
std::cout << "Hello World!" << endl;

リンクの例

これはヤフーへのリンク
Yahoo! JAPAN