[2023年2月号] Software Design(技術評論社) サマリー+個人メモ

[2023年2月号] Software Design(技術評論社) サマリー+個人メモ
みるみ

Software Design の2023年2月号について、

  • ざっくり内容紹介
  • 個人的に気になった記事やポイント

をまとめている記事です。

サマリー記事の一覧はこちら

特集①:ドメイン駆動設計入門

  • ドメイン駆動設計とは?
    • ドメインとは「ソフトウェアが対象とする領域」
      • 業務系アプリケーションなら事業活動そのものがドメイン
    • V字モデルでいうところの最上部と最深部を強く結びつける考え方
    • めちゃめちゃ雑にまとめると、「作り方とか技術的なこととか細かいことはどうでもいいから、自分たちが取り扱うビジネスメインなものをちゃんと理解してそれを表現しよう」(だと思ってる(た))
      • 読んだ感じだいたい合ってたっぽい
    • 新しいプロジェクトに取り組むとき、仕様全体を聞いたらすぐに登場する要素の関係を整理してなおかつそれらを簡易的にモデル化したりするが、これもドメイン駆動設計と言っていいのだろうか
    • ユビキタス言語
      • 業務の専門家(ドメイン◯◯みたいな言葉なかったっけ…)とエンジニアがわかりあえるための共通言語
    • クリーンアーキテクチャ(よく一緒に語られる)
      • 関心の分離
      • 分離した構成要素の依存関係を単純にすること
      • 何度クリーンアーキテクチャについての記述を読んでも(ピンとこないせいなのか)興味を持てたことがなかったが、やはりあの同心円の図は全く理解したい気が起きない…
        • 上記2つの点が重要なポイントであるなら、普段からどこでもやっているよなという気持ちにもなる
  • ドメインモデルを理解しよう
    • 業務ロジックを記述する3つの方法
      • トランザクションスクリプト
        • 機能単位みたいな区切りで入出力的に表現する方法、重複しがちだし抜け漏れ多め
      • ドメインモデル
        • 名前の通りドメイン駆動設計が前提としている方式、入出力は明確に分離し(アプリケーションクラスとかユースケースクラスとか呼ばれる)て、内部の計算部分(ここで言う計算とはおそらく数値計算だけのことではなくビジネスロジック全般を指すと思われる)にのみ着目する
      • テーブルモジュール
        • CRUD操作の中に業務ロジックを埋め込む方法、テーブルが複数あると難しい
          • SQLで全部書きます派閥もこれ…なのか?
  • 分散アーキテクチャとドメイン駆動設計
    • 単一モデルと分散モデル
      • モノリシックとマイクロ
        • モジュラーモノリスもある
        • マイクロサービスアーキテクチャのところの定義に「データベースもわけるもの」とあった、そうなんだ
  • 残り2章分は文章ベースで実開発への取り組みノウハウなど、ここでは割愛

特集②:今さら聞けないログの基本

  • ログの基礎とログ出力のしくみ
    • ちょっと思っていたものとは違っていて、Linuxのログシステムの変遷から始まりログデーモンの動作、中身、API説明などだった、これはこれで面白かった
  • Webサーバログの読み方・調べ方
    • たしかに前章ではなんのログとも書いていなかったわけで章立てごとに全然性格の違う特集って感じでしたね(筆者も違う)
    • nginxとApache
  • ロギング設計の基本
    • ログの種類
      • アプリケーションログ(障害調査)
      • アクセスログ
      • エラーログ
      • セキュリティログ
      • 監査ログ
    • ログレベル
    • 注意事項とか
      • 機密情報を書かない
      • 不要な情報は除く
        • サンプリング…は書いてなかった

Extra Future

  • 画像生成AIのしくみ
    • これ自分がリクエストした気がする!!(これ何回目だ…)
    • 特集が組まれたのは十分早かったほうかもしれないが、皮肉かな、AI関連の異次元な技術発展スピードによっていまこのタイミングだと「GPT-3じゃないのかよ」感がすごい。いやでもほんとこれは人類の歴史で稀に見るシンギュラリティにいるからこそだと思うので雑誌はもちろん全く悪くない。
    • text-to-imageの処理過程
      • テキストエンコーダと画像生成器の2つから成る
        • この間は「低次元のベクトル」なるもので受け渡される
        • このあとの数段落は「おまえなにいってんだ」でした
      • DALL・Eの登場
        • ここで知っている言葉「Transformer」が登場する
        • テキストエンコーダがTransformerで、画像生成器はVQ-VAEというものらしい
        • この組み合わせ自体は全く珍しいものではなかったどころか、かなりシンプルなものなんだそう
        • 新規性は「モデルとデータ量の大幅な拡大」にあるらしい、なんだってばよ
      • 結局学習に使うデータセットの制限こそが足かせになっていたと考え、Web上にある画像をHTMLの代替テキストをクロールして2.5億ものペアを入手したとのこと
        • こんなのすごい簡単そうだし誰でも思いつけそうなもんだけど、なぜ誰もこれをやらなかったのかが不可解
      • 間違えやすいが2022年に出たのはDALL・E 2
      • ちょっとわかりやすい説明があったのでメモ:
        • ベクトルの生成←言語モデリング←文章をトークン分割し(形態素解析?違うらしいことが後日わかった)そのトークン列の確率分布をモデリング←ニューラルネットワークで近似(ここで果てる)

    OS/Network

    • 明後日のコンピューティングを知ろう「明後日の見つけ方」
      • 最終回だった、地味に好きなシリーズでした

      Software Design 2023年2月号

      この号の分のみ単品で読みたい方は、普通にAmazonで買うのがおすすめ。
      紙 or 電子書籍で選べます。

       

      みるみ
      みるみ

      ブロガー、ソフトウェアエンジニア。

      この「みるめも」というブログの筆者です。

      この記事へのコメント
      コメントはまだひとつもありません :)

      新しいコメントを書く

      • 必須項目はコメント本文のみですが、お名前はぜひご記入いただけると嬉しいです。
        ※メールアドレスを書いた場合も公開されることはないのでご安心ください。
      • 特定のコメントに返信したい場合は各コメントにある「返信する」ボタンからどうぞ。
      • コメントはこちらで承認の作業を行うまでは表示されません。ご了承ください。
        ※ここ数年スパムが激化しており、誤って削除されてしまうケースが増えてきました。スパムボックスも毎日自分の目で確認するようにはしているのですが、どうしても限界があります。確実に僕に連絡を取りたい方は メールTwitter からお願いします。