Yomiage
メニュー

#実践技術

18 件の記事

すべての記事
並び替えを変更 更新日時 / 降順
aiの歴史ai倫理ai法務g検定haskelljavajava実践講座pythonpython実践講座rustrust実践講座シフト演算ド・モルガンの法則プログラミングベン図人工知能代数公式過去問解説命題命題論理型と設計基数基数変換基本情報技術者基礎文法基礎理論学習ガイド学習ロードマップ実践技術応用情報技術者情報処理技術者試験数値表現数学数理統計機械学習浮動小数点深層学習真理値表社会実装算術演算総合演習補数試験対策誤差論理演算集合離散数学
投稿者: しゅりりん

Rust実践講座 16:async・awaitと通信の期限

到達点は、非同期処理を動かす仕組みと、待ちを制限する場所を理解することです。前提は第07・15回です。 Futureだけでは進まない async関数はFutureを作り、実行を進めるにはポーリングするランタイムが必要です。awaitは待ちが必要なときに他の仕事へ進む機会を与えます。ここではTokioを使い、ローカルのTCP通信を一往復させます。 新しいプロジ

1 0 0 0
投稿者: しゅりりん

Rust実践講座 15:スレッド・チャネル・共有状態

到達点は、データを渡す方法と共有する方法を選び、完了を待つことです。前提は第14回です。 共有しないことで単純にする 別スレッドへ仕事を渡し、結果だけをチャネルで戻すと、共有状態への同時更新を減らせます。moveクロージャは必要な所有物をスレッドへ渡すためによく使います。 コードブロック。 src/main.rsで120と1が表示されます。結果が届く順番は保

0 0 0 0
投稿者: しゅりりん

Rust実践講座 14:Box・Rc・RefCell・Arcの役割

到達点は、共有や内部変更が必要な理由を説明して型を選ぶことです。前提は第05・09回です。 所有権の道具を目的で選ぶ Boxはヒープ上の値を単独所有する道具、Rcは単一スレッドで参照カウントにより共有所有する道具です。RefCellは借用規則の一部を実行時に確認し、共有参照の内側から変更する「内部可変性」を提供します。 コードブロック。 src/main.r

0 0 0 0
投稿者: しゅりりん

Rust実践講座 13:ファイル・Serde・JSONの検証

到達点は、外部データを型へ変換した後も、値の妥当性を調べることです。前提は第07・11回です。 文法、型、業務ルールの三段階 JSONの文法が正しくても、必要な項目があるとは限りません。型が合っていても、学習時間が一日を超えるなど業務上の不正があり得ます。Serdeはシリアライズとデシリアライズを支援しますが、アプリ独自のルールまですべて自動で知っているわけ

0 0 0 0
投稿者: しゅりりん

Rust実践講座 12:単体テスト・統合テスト・診断

到達点は、型チェックでは分からない業務ルールをテストすることです。前提は第07・11回です。 コンパイル成功は仕様の正しさではない Rustは多くのメモリ上の誤りをコンパイル時に防ぎますが、送料無料の境界を5001円にしても型としては正しいままです。具体的な入力と期待結果をテストへ記録します。 cargo new test-practice --lib --

0 0 0 0
投稿者: しゅりりん

Rust実践講座 11:モジュール・クレート・依存管理

到達点は、公開するAPIと内部実装を分けることです。前提は第09回です。 ファイルと名前空間を対応させる クレートはコンパイルの単位で、ライブラリにも実行プログラムにもなります。パッケージはCargo.tomlで管理され、複数のクレートを含む場合があります。モジュールはクレート内の名前空間と公開範囲を整理します。 cargo new module-pract

0 0 0 0
投稿者: しゅりりん

Python実践講座 16:性能計測・ログ・安全な入力処理

到達点は、問題のある場所を測り、入力の境界で不正な値を止めることです。前提は第11〜15回です。 最適化の前に処理量を確認する 遅いからといって、すぐに並列化する必要はありません。全件比較を辞書検索へ変えるだけで、処理量が大幅に減る場合があります。cProfileで関数ごとの時間を調べ、timeitで小さな処理を繰り返し比較します。計測前後で入力と実行環境を

1 0 0 0
投稿者: しゅりりん

Python実践講座 15:デコレータとコンテキスト管理

到達点は、共通処理を関数へ付け加え、資源の利用範囲を明示することです。前提は第06・09回です。 関数も値として渡せる デコレータは関数を受け取り、別の関数などを返して振る舞いを包みます。ログや計測に便利ですが、何が起きるか読めないほど重ねると保守が難しくなります。まず手動で包む処理を理解します。 コードブロック。 main.pyでは、集計へ入る、total

1 0 0 0
投稿者: しゅりりん

Python実践講座 14:asyncio・スレッド・プロセスの選択

到達点は、待ち時間と計算時間を分け、並行処理の方法を選ぶことです。前提は第09・13回です。TaskGroupの例にはPython 3.11以降を使います。 awaitは待ちを他の仕事へ譲る async defで定義した関数を呼ぶとコルーチンができます。呼んだだけでは通常、処理は最後まで進みません。イベントループで実行し、awaitで他の仕事へ進む機会を渡し

1 0 0 0
投稿者: しゅりりん

Python実践講座 13:HTTPとJSON APIの境界を扱う

到達点は、通信期限、ステータス、本文、型を順に確認することです。前提は第07・10回です。 ネットワークには部分的な失敗がある 接続できない場合、接続できたがエラー応答の場合、成功応答だが本文が不正な場合は別です。すべてを「データなし」と扱うと障害に気付けません。次の例は外部サービスなしで、ローカルのJSON応答を確認します。 コードブロック。 main.p

1 0 0 0
投稿者: しゅりりん

Python実践講座 12:SQLiteとトランザクション

到達点は、SQLの値を安全に渡し、失敗した更新を取り消すことです。前提は第06・11回です。 検索できる形で保存する SQLiteは単一ファイルなどにデータを保存できるデータベースです。Python標準ライブラリのsqlite3から使えます。テーブルに型や制約を定義し、SELECTで取得、INSERTで追加、UPDATEで変更、DELETEで削除します。 コ

0 0 0 0
投稿者: しゅりりん

Python実践講座 11:unittestとデバッグで振る舞いを固定する

到達点は、正常系だけでなく境界と失敗を再現するテストを書くことです。前提は第06・10回です。 期待結果は仕様から選ぶ テストは実装をなぞるためでなく、利用者との契約を守るために書きます。「5000円以上なら送料無料」なら、4999と5000が重要です。実装と同じ式で期待値を計算すると、同じ誤りを見逃す場合があります。 次をtestfees.pyに保存します

1 0 0 0
投稿者: しゅりりん

Java実践講座 16:デバッグ・性能・入力境界の調べ方

到達点は、勘で直す前に再現条件と証拠を集めることです。前提は第11〜15回です。 小さな再現例から始める 不具合の報告には、期待した結果、実際の結果、入力、実行手順、環境を記録します。例外のスタックトレースでは、自分のコードが最初に現れる行を確認します。必要ならIDEのブレークポイントで、入力値と変化する直前の状態を観察します。 次のMain.javaは入力

1 0 0 0
投稿者: しゅりりん

Java実践講座 15:不変データと責務の分離で設計する

到達点は、変更が広がりにくいデータ構造と境界を選ぶことです。前提は第05・06・14回です。 変更できない値は推論しやすい 他の場所から勝手に書き換えられる値は、読む時点ごとに状態を考える必要があります。小さな値を不変にすると、比較、共有、テストが単純になります。ただしrecordを使うだけでは、内部にある可変のオブジェクトまで守れません。 コードブロック。

1 0 0 0
投稿者: しゅりりん

Java実践講座 14:スレッド・仮想スレッド・共有状態

到達点は、並行処理の必要性と競合の原因を説明することです。前提は第08・13回です。 同時進行と同時実行 並行とは複数の作業を進める構造、並列とは複数の計算を実際に同時実行することです。ネットワーク待ちの多い処理では、待っている間に別の仕事を進める価値があります。Java 21の仮想スレッドは、このような多数の待ちを伴う仕事で候補になります。CPUそのものを

1 0 0 0
投稿者: しゅりりん

Java実践講座 13:HTTPクライアントとAPIの失敗を設計する

到達点は、通信の成功を複数段階で確認することです。前提は第08・10回です。 接続できたことと成功したことは違う HTTPのリクエストにはメソッド、宛先、ヘッダ、必要に応じた本文があります。レスポンスにはステータス、ヘッダ、本文があります。接続できても404や500は返ります。さらに200でも、本文が想定した形式とは限りません。 次のMain.javaは外部

1 0 0 0
投稿者: しゅりりん

Java実践講座 12:SQLとJDBCでデータの整合性を守る

到達点は、値をSQLへ安全に渡し、複数の更新をまとめることです。前提は第08・11回です。 データベースにもルールを置く テーブルは同じ項目を持つ行の集まりです。主キーは行を識別し、NOT NULLやCHECKは保存できる値を制限します。アプリ側だけの検査では、別の書き込み経路から不正な値が入る可能性があります。 実習では第11回のpom.xmlのdepen

1 0 0 0
投稿者: しゅりりん

Java実践講座 11:MavenとJUnitで再現できるテストを作る

到達点は、必要なライブラリとテスト手順をプロジェクトに記録することです。前提は第08回です。 手作業を再現可能にする ファイルが増えたら、ビルド手順を人の記憶へ置かずMavenへ渡します。Mavenはpom.xmlに依存関係やプラグインを記録し、決まったディレクトリからソースをコンパイルします。本実習はJDK 21とMaven 3.9系を前提とし、依存は教材

1 0 0 0