第4部:実務スキル / 第6章:技術リファレンス

よく使う技術知識

1年目でよく使う技術知識の概要を紹介します。詳細は必要に応じて学習してください。

📖 読了目安 約20分 対象:すべてのエンジニア

バージョン管理(Git)

基本的な用語

用語説明
リポジトリコードを保存する場所
コミット変更を記録すること
ブランチ作業を分岐させること
マージブランチを統合すること
プルリクエストマージの依頼(レビュー依頼)

基本的な流れ

# 1. 最新を取得
git pull

# 2. ブランチ作成
git checkout -b feature/new-feature

# 3. 作業してコミット
git add .
git commit -m "[add] 新機能を追加"

# 4. プッシュ
git push -u origin feature/new-feature

# 5. プルリクエストを作成(Web上で)

よく使うコマンド

コマンド用途
git status状態確認
git diff差分確認
git log履歴確認
git stash変更を一時退避
git checkout .変更を破棄

WebAPIの基礎

APIとは

API(Application Programming Interface)は、プログラム同士が通信するための仕組みです。

REST APIの基本

HTTPメソッド用途
GETデータ取得ユーザー情報を取得
POSTデータ作成新しいユーザーを作成
PUTデータ更新ユーザー情報を更新
DELETEデータ削除ユーザーを削除

ステータスコード

コード意味
200成功
201作成成功
400リクエストが不正
401認証が必要
403アクセス禁止
404見つからない
500サーバーエラー

正規表現

正規表現とは

文字列のパターンを表現するための記法です。検索・置換・バリデーションに使います。

基本的なパターン

パターン意味
.任意の1文字a.c → abc, adc
*0回以上の繰り返しab*c → ac, abc, abbc
+1回以上の繰り返しab+c → abc, abbc
?0回か1回ab?c → ac, abc
^行頭^abc → 行頭のabc
$行末abc$ → 行末のabc
[abc]いずれかの文字[abc] → a, b, c
[0-9]範囲[0-9] → 0〜9
\d数字\d+ → 123
\w単語文字\w+ → abc123
\s空白文字\s+ → スペース、タブ

よく使うパターン

# メールアドレス(簡易版)
^[\w.-]+@[\w.-]+\.\w+$

# 電話番号(ハイフンあり)
^\d{2,4}-\d{2,4}-\d{4}$

# 郵便番号
^\d{3}-\d{4}$

例外処理

例外とは

プログラム実行中に発生するエラーです。適切に処理しないとプログラムが停止します。

基本的な書き方

try {
    // エラーが発生する可能性のある処理
    File file = new File("data.txt");
    // ファイル読み込み処理
} catch (FileNotFoundException e) {
    // ファイルが見つからない場合の処理
    System.out.println("ファイルが見つかりません");
} catch (IOException e) {
    // その他のIO例外の処理
    System.out.println("読み込みエラー: " + e.getMessage());
} finally {
    // 必ず実行される処理(リソースの解放など)
}

例外処理のポイント

  • 例外を握りつぶさない(空のcatchブロック禁止)
  • 適切な粒度でcatchする
  • ログを出力する
  • ユーザーには分かりやすいメッセージを表示

Null安全とオプショナル型

NullPointerExceptionとは

nullのオブジェクトにアクセスしようとすると発生するエラーです。

String name = null;
int length = name.length();  // NullPointerException!

オプショナル型とは

オプショナル型は、値が存在するかどうかを明示的に扱うための型です。nullによるエラーを防ぎ、値の有無を安全に処理できます。

通常の変数: 値が入っているはず... → nullだとエラー!
オプショナル型: 値があるかないか明示 → 安全にチェック可能

言語別のNullチェック方法

// 値が存在しない場合
Optional<Integer> age = Optional.empty();
if (age.isPresent()) {
    System.out.println("Age is " + age.get());
} else {
    System.out.println("Age is not set");
}

// デフォルト値を使う
Optional<Integer> height = Optional.of(170);
int heightValue = height.orElse(0);  // nullなら0を使用
// Nullable型(int?)
int? age = null;

if (age.HasValue) {
    Console.WriteLine($"Age is {age.Value}");
} else {
    Console.WriteLine("Age is not set");
}

// Null合体演算子
int? height = 170;
int heightValue = height ?? 0;  // nullなら0を使用
var age: Int? = nil

if let unwrappedAge = age {
    print("Age is \(unwrappedAge)")
} else {
    print("Age is not set")
}

// Nil合体演算子
var height: Int? = 170
let heightValue = height ?? 0  // nilなら0を使用
const name = null;

// オプショナルチェーン(?.)
const length = name?.length ?? 0;

// Nullish合体演算子(??)
const displayName = name ?? "未設定";

Nullを防ぐ習慣

  • メソッドの戻り値がnullになりうるか確認
  • nullを返すよりOptionalや空のコレクションを返す
  • nullチェックを習慣化する
  • オプショナル型を積極的に活用する

文字コード

よく使う文字コード

文字コード特徴
UTF-8世界標準、多言語対応
Shift_JIS日本語、古いシステム
EUC-JP日本語、Unix系

文字化けの原因

  • 保存時と読み込み時の文字コードが異なる
  • 通信時に文字コードの指定がない

対策

  • UTF-8に統一する
  • ファイル保存時に文字コードを意識する
  • APIレスポンスでは文字コードを明示

日付・時刻

日付処理の注意点

  • タイムゾーンを意識する
  • フォーマットを統一する
  • 閏年、月末日に注意

よく使うフォーマット

フォーマット
yyyy-MM-dd2024-01-15
yyyy/MM/dd2024/01/15
yyyyMMdd20240115
yyyy-MM-dd HH:mm:ss2024-01-15 10:30:00
ISO 86012024-01-15T10:30:00+09:00

まとめ

これらは1年目でよく使う技術知識です。

  • Git:基本的なコマンドを覚える
  • WebAPI:HTTPメソッドとステータスコードを理解
  • 正規表現:基本的なパターンを覚える
  • 例外処理:適切にエラーを処理する
  • Null安全:NullPointerExceptionを防ぐ
  • 文字コード:UTF-8を基本に
  • 日付:フォーマットとタイムゾーンに注意

詳細は必要になったときに深く学習しましょう。