new article body
【Go入門】Golang基礎入門+αの備忘録#4の続き。
この記事は以下のUdemyコースの学習記録です。
重要だと思った部分や感想、復習用に何を学んだかを書いていきます。
セクション16:標準パッケージ
各パッケージの主要な識別子の使い方を学んだ。
os
基本的なファイル操作処理書いた
- Fatallnが実行されると引数の値(エラー)を出力してos.Exit(1)を呼び出す。
- fatal→deferが処理されない。
- panic→deferが処理される。
- mainでスクリプト的に書く程度のときに使う。(参考)
- 実行時にコマンドライン引数を受け取る。インデックス1番はコマンド名、2番以降に引数を格納していく。(os.Argsの中身は範囲式forで取得する)
fmt.Println(os.Args[0])
fmt.Println(os.Args[1])
math/rand
- 1.20以降では固定値を渡して再現性のある乱数を生成をしたい場合は、rand.New(rand.NewSource(seed))を使うことが推奨されている。
sync
ミューテックスを使って排他制御し、レースコンディション問題を防ぐ処理書いた
セクション17:サードパッケージ
基本的なDB接続や操作を学んだ。
ini
- config.iniでconfigの設定をし、ConfigList(任意名)構造体でグローバル構造体を宣言し、iniパッケージを使って読み込んでいく。
uuid
- uuidでオブジェクト一意に識別したい時に使う。
セクション18:Webアプリの基礎
ボリューミーだったが、ディレクトリ構成やCRUD操作(DB接続、テーブル作成、操作、取得等)やセッション管理やセッションの有無による画面遷移と単純な画面遷移等Webアプリの基本を最小構成で網羅的に学べた。
データの流れや記述方法は理解できたが、途中からこんがらがってこのデータはどこでどうやって作ったのか不明瞭になることがあったので定期的な復習が必要だと感じた。
今回はtemplateパッケージを使ってHTMLテンプレートのパースとレンダリングを全てサーバー側で行い、クライアント側にレスポンスする形式だったので、次はフルスタック構成で作ってみたい。
おわりに
基本的な文法等の書き方や性質を把握できた。
Webアプリの全体像を描かないまま部分部分でデータの流れを実装していったので、理解が追いつくのに時間がかかった。最初に簡単な設計の全体を理解してから実装していくとより理解が深まると感じた。
今後はWebを支える技術等で一度Web技術の基本を把握しておきたい。