RustによるWebアプリケーション開発を読む

3.3 ヘルスチェックを実装する

anyhow@1.0.75を指定してインストールしたがanyhow@1.0.98がインストールされたようだ。
rustのバージョンに合わせて上がったようだ。
ヘルスチェックはOK

3.3.4 サーバーを起動する

3.4 ユニットテストを書く

cargo-nextestをインストールした。大量にインストールされた。
version 0.9.95がインストールされた。 cargo nextest runでテスト良好のようです

RustによるWebアプリケーション開発を読む

3.2 axumでサーバーを起動する

cargo add axum@0.7.0 --features macros

でインストール完了。続いて

cargo add tokio@1.37.0 --features full
cargo add --dev rstest@0.18.2

でインストール完了
3.2.3,3.2.4は飛ばしして3.2.5 簡易サーバーを起動するまで進む

3.2.5 簡易サーバーを起動する

掲載されたコードをそのまま実行。意外とトラブルなく実行できた。

RustによるWebアプリケーション開発を読む

WindowsのWSL上で試すことにした。
rustupのインストールを行う。
rustc ver 1.86.0
rustup ver 1.28.1
がインストールされた。
リンカーはgccを利用するとのことなので
sudo apt install gcc
としたがエラーがでた。
sudo apt-get update実行後
再度インストールしたらOK
WindowsにあらかじめVSCODEがインストールしてあったのでRemoto機能からWSLに接続した。
rust-analyzerもWSL上にインストールした。

2.2 Docker Composeを用いたローカルPCでの開発環境

DockerはWindowsにDocker Disktopをインストールしてあったのでそのまま使用。 compose.yamlとDockerfileをhelloworldフォルダに置いてdocker compose up app --buildをWSL上で実行したらエラーが出た。

 => ERROR [app builder 4/4] RUN cargo build --release                                                                             0.2s
------
 > [app builder 4/4] RUN cargo build --release:
0.173 error: failed to parse manifest at `/app/Cargo.toml`
0.173 
0.173 Caused by:
0.173   feature `edition2024` is required
0.173 
0.173   The package requires the Cargo feature called `edition2024`, but that feature is not stabilized in this version of Cargo (1.78.0 (54d8815d0 2024-03-26)).
0.173   Consider trying a newer version of Cargo (this may require the nightly release).
0.173   See https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#edition-2024 for more information about the status of this feature.
------
failed to solve: process "/bin/sh -c cargo build --release" did not complete successfully: exit code: 101

WSL上にインストールしたのがrustの最新バージョン1.86でエディションが2024だったため、DockerfileでDLしたrust環境のエディションが2024をサポートしていなかったのようでDokerfileの
FROM rust:1.78-slim-bookworm AS builderを
FROM rust:1.86-slim-bookworm AS builderに書き替えたら
OKとなった。

2.2.3 PostGresSQL,Redisの追加と起動確認

トラブルなくインストールできた。

2.3 タスクランナーcargo-makeの導入

トラブルなくインストールできた。

前処理大全のデータを使ってDax式で処理する練習

第10章 日時型

10-2年/月/日/時刻/分/秒/曜日への変換

M年 = 
YEAR(MAX('reserve'[reserve_datetime]))
M月 = 
MONTH(MAX('reserve'[reserve_datetime]))
M日 = 
DAY(MAX('reserve'[reserve_datetime]))
M時間 = 
HOUR(MAX('reserve'[reserve_datetime]))
M分 = 
MINUTE(MAX('reserve'[reserve_datetime]))
M秒 = 
SECOND(MAX('reserve'[reserve_datetime]))
MDATE = 
FORMAT(DATE([M年],[M月],[M日]),"yyyy/MM/dd")
M月数 = 
DAY(EOMONTH([MDATE],0))

前処理大全のデータを使ってDax式で処理する練習

第9章 カテゴリ型

9-1カテゴリ型への変換

Csex_is_man = 
if(
    [sex]="man",
     TRUE(),
     FALSE()
)

PowerQueryでもやってみる

= Table.AddColumn(変更された型, "カスタム", each if [sex] = "man" then true else false)

前処理大全のデータを使ってDax式で処理する練習

第8章 数値型

8-7数値の補完

ISBLANK関数で除去できるか試してみたがCSVファイルから読み込んでいるためNoneという文字列と認識してしまっているので有効に動作しない。
単純な比較にしてNone文字列のある行を除去した。
1000行から892行になった。

TNULLのないテーブル = 
FILTER(
    'production_missing_num',
     NOT [thickness]="None"
)

PowerQueryでもやってみる。

= Table.SelectRows(変更された型, each ([thickness] <> "None"))

定数補完
PowerQueryにで変換

let
    ソース = Csv.Document(File.Contents("C:\Users\kjkq2\Documents\PowerBIまとめ\前処理大全をPowerBIでやってみる\data\production_missing_num.csv"),[Delimiter=",", Columns=4, Encoding=932, QuoteStyle=QuoteStyle.None]),
    昇格されたヘッダー数 = Table.PromoteHeaders(ソース, [PromoteAllScalars=true]),
    置き換えられた値 = Table.ReplaceValue(昇格されたヘッダー数,"None","1",Replacer.ReplaceText,{"thickness"}),
    フィルターされた行 = Table.SelectRows(置き換えられた値, each true),
    変更された型 = Table.TransformColumnTypes(フィルターされた行,{{"thickness", type number}, {"length", type number}, {"fault_flg", type logical}})
in
    変更された型

前処理大全のデータを使ってDax式で処理する練習

第8章 数値型

8-5外れ値の除去

T外れ値除去 = 
FILTER(
    'reserve',
    ABS('reserve'[total_price] - AVERAGE('reserve'[total_price]))/STDEV.S('reserve'[total_price])<=3
)


除去前が4,030行、除去後が3,932行に減った。