ken1flanのブログ

自己紹介・最近やってることなどを書くつもりです。

Software Design 2023/06 メモ

Software Design 2023年6月号を読んで、ちょこっとずつ感想を書いてます。 gihyo.jp

いつも参加しているSoftware Design輪読会に向けての予習でもあります。 softwaredesign.connpass.com

第1特集 正しく理解したい クリーンアーキテクチャとは何か? 開発に活かせる設計のエッセンスを探る

第1章:クリーンアーキテクチャの背景 ブログ記事、書籍、時代背景から用語の意味を押さえる ......田中 ひさてる

  • 有名な円の絵ですが…わかるようなわからないような…でした。
    • 依存関係をユースケースから外側へ…というのが主張らしいです。
  • MVC、そんなふうに理解されてたの…?とちょっと驚き。(Windowsアプリ作ってたころからあったので…)
  • プレハブと注文住宅のたとえはよくわかる気がします。
  • アジャイル…「個人と現実を尊重」…たしかにそういうもんですよね。
  • DDDのほうもまた読み直さないと…。

第2章:クリーンアーキテクチャの実体に迫る 関心の分離、あの有名な同心円状の図、SOLID原則の要点 ......田中 ひさてる

  • ユーザはファットになりやすいですよね…。「〜は〜できる」構文にしたつもりでも集まっちゃいますよね…。
  • 依存の向きは結構気をつけているつもりです…。
  • 水平方向の結合性…たしかに厄介な感じがします…。
  • 「おわりに」は同意です。
    • …とはいえ、もう少しクリーンアーキテクチャへの理解を深めないと…。
    • まだあんまりピンときてません…。

第3章:ソースコードから理解する 典型的なシナリオからクリーンアーキテクチャのエッセンスを抽出しよう ......成瀬 允宣

第4章:アプリケーションから理解する 密結合→疎結合→クリーンアーキテクチャを体感しよう ......中村 充志

  • はっとぺっぱーw
  • 「テストが大変」というのは、結合の強さの指標になりますね…。
    • うちもそういうのがいっぱいある…。整理しなおせるかな…。
  • 各レイヤー間で複雑な依存をさせるくらいなら、コンテナに管理させたほうが複雑さがなくなる…のは理解しました。
    • うちもやったほうがいいとこ、いっぱいあるなあ……。
  • 依存をユースケース側からにする…確かによさそうに見えます。

第5章:モバイルアプリ開発における実践 アプリアーキテクチャガイドを起点に現実的な方針を考える ......奥澤 俊樹

  • developer.android.com
    • へええ…こんなのがあったのは知りませんでした。あとで読もう…。
  • 推奨アプリアーキテクチャの依存方向は…おそらく、一般的に考えやすい方向なのかも。
    • まずは階層で。その後発展でドメインを中心に据えた形のクリーンアーキテクチャに、なのかも。
    • 開発者の理解度に合わせるのがよさそう。
  • モジュール化とモジュールの依存関係の記述で、依存方向の制御ができる…というのはなるほどです。
    • やったことないので、やってみたい…。
    • Flutterの例が欲しい…。
  • 気になる、作ってみたくなりました…。

第2特集 開発者にも知ってほしい 監視で終わらせない 改善につながるオブザーバビリティ

  • 細かいシステムをたくさん使っているので、上手に見て回りたい…。
    • 結構見落として、障害になってしまったりもしてるので💦

第1章:オブザーバビリティのねらいと導入・改善の進め方 あなたの可観測性はどのレベル? ......小林 良太郎

  • New Relicの方…。たくさん経験がありそう…!
  • 「〜とエンジニアの幸福」とあって、???となりましたが…トイルが減れば、それは確かに幸福ですね!
  • 気付ける/気づけない & 理解できる/理解できない の関係性、わかりやすいかも。
    • 「とりあえずの監視」が結構多い…。どこにあるのか?見方がわからんとか、アアッ!!
  • なるほど…監視とオブザーバビリティといえるためには、システムの最適化のための「洞察を得られる」必要がある…と。New RelicとかDatadogとか…そういうツールだったんですね…。
    • イベントをキーにいろんな監視データを見にいけることは、まさに洞察を得るための機能…。
  • うーむ…まずは「とりあえずの監視」になってしまっているところを減らしていかないと…。
  • デプロイマーカー…これはいまいい加減になってしまっているのを直さないと…。
  • …うちはまだいらなそうかなぁ…。
    • 改善のフェーズじゃない><

第2章:SRE・開発者一体で取り組むオブザーバビリティ モバイルアプリのUX向上に欠かせない開発者視点 ......永野 一馬

  • SREチームにモバイル開発者が入るの、いいですね。
  • クライアントの多様性は…大変そう…。
  • ダッシュボードを用途別に分けるのは、他のものでもそうしてます。
    • 混ぜると、わかりにくくなりますよね…。
    • 何でもできる = なんにも出来ない
  • ダッシュボード運用のポイントは、リードタイムの長いアプリらしくておもしろいかも。
  • 予測を立てて、引っ掛けて、話し合う…SREには開発に関わるチームの代表者がいたほうがよさそう。

第3章:UX向上につながるオブザーバビリティの導入と活用 どんなデータを集め、どう開発に活かすのか ......加我 貴志

  • TVerの話。リニューアルと内製化をきっかけに導入した話。
  • サポートが手厚いので、New Relicを選択。
    • 今回出てきてるの、New RelicとDatadogかな。
  • MELTは導入するかしないか関わらず、意識したほうがよさそう。
  • 監視は育てる…。
    • 見てるとだんだん意味がわかってくることもあるし、なんとなく同意です…!
  • 報告の場があるのは大事そうです。
    • 自分も半ばムリヤリ作ったかも…。
    • リクエスト数とかも出すようにしていこうかなぁ…。

一般記事

[短期連載]ソフトウェアのセキュリティ&品質管理の新要件SBOM SBOMの2大フォーマット、SPDXとCycloneDX【2】 ......小保田 規生

  • 2つもフォーマットあって、なんでだろうと思ったら、目的が違うのか…。
  • ツールだけじゃ足りなそうな雰囲気ですが…
  • GitHubJSONのSPDX形式でした。

[短期連載]Denoで始める サーバサイドTypeScript開発【4】Deno Deployを使ってみよう ......ゴリラ(監修:日野澤 歓也、田中 優亮)

  • DenoはAWSで動くのかなあ…と思って調べたら、Lambdaで動かしている例が多かったです。使い方はAPI的。
  • The Open Source Firebase Alternative | Supabase
    • 初めて知りました、Firebaseの代替品だそう。
  • deno.com
    • Nodeと違って、TypeScriptにデフォルト対応というのは、勉強するにはラクかもしれません。
    • …こうしてみると、たしかにおまじないの量が少なかったかも。

連載:Column

平林万能IT技術研究所 2ndシーズン【13】チは着陸船のチ。――スマホAR機能を使った「着陸船ゲーム」を作ろう! ......平林 純

  • こういうの、地味におもしろいですよね…。
  • これをARでやるって…おもしろいし、いいですね…。
    • iOS用かぁ…><

ハピネスチームビルディング【15】みんなで楽しく成長するペアプロ/モブプロのやり方(前編) ......小島 優介

  • モブプロ、5人だと多い…という「感覚」があるくらい長くたくさんやられたんだと思うと、スゴい…。
  • 知識共有のためのモブプロ、というのもあるのか…。
  • 数時間やる場合がある…?
    • これはチームが本当にペアプロ/モブプロに慣れてそう…。
    • 最初からこんなんやったらヘトヘトになってしまいそう。
  • 経験が少ないときの「設計のゆるさ」を完成してからではなくて、作っている途中で指摘・説明できるのは結構いいかも…。
    • 指摘のときにもちゃんと書いてくれないんですよね……。
      • …と思ったけど、自分がどうして指摘したかを細かく書きすぎていたかもしれません。
      • 細かいことがすでに書かれていたら、説明の余地がないのでは…。
      • 雑なコメントにしてみるか…。
  • この連載、いつも最高…。

エンジニアのためのやる気UPエクササイズ【10】忙しくても痩せられる! お勧めダイエットサプリ3選 ......えくろプロテイン

  • ダイエットピラミッドの厳しい現実…。
  • 食べ過ぎを防ぐプロテインは結構いいかも。

ひみつのLinux通信【112】童話 ......くつなりょうすけ

  • AIに書かせてもいいじゃないですか。ちゃんと人間が検証するならね…。
  • どうしてこんなに関数が大きいの?……恐怖しかない。

こんなときどうする? エンジニアも知っておきたい法律知識【22】個人情報漏洩が起きた際のシステム開発ベンダーの責任 ......弁護士 杉野 直子

  • ここでの例は…さもありなん…。

あなたのスキルは社会に役立つ~エンジニアだからできる社会貢献~【138】ITコミュニティ「エフスタ!!」3年ぶりの開催! ......及川 卓也、鎌田 篤慎

  • 横連携するような…。これをやるには……?
    • コラボレーションを促す何かをしたい…。
  • 12年も続けられるっていうのは本当にすごいです…。

連載:Development

Stable Diffusionで学ぶ画像生成AIのしくみ【新連載】画像生成AIの歴史 ......國田 圭佑

  • 紹介されている歴史の開始が2014年からで…スゴい進化具合…。びっくりです。
  • Software DesignやWeb+DBで何度か特集が組まれて読んできて、ようやく雰囲気がわかってきました。
  • 見ていると工夫されているのはニューラルネットワークのモデルそのものというよりは、学習方法とか計算量を減らす工夫とかみたい。

オンラインホワイトボード「Miro」徹底活用術【9】有料版で広がる機能 ......橋本 憲洋

  • 心地いいんですよね、miro…。
  • ただ、1100円/月分も使い切れない…。
  • 設計のときにも使ってみよう…。
  • ゲストに書いてもらう機能は絶対ほしいんだよなぁ…。

メールセキュリティ対策の現場【2】DMARC認証のしくみと現状 ......中村 成陽

  • 「はじめに」の連載の目的がわかりやすいかも。
  • DMARCもやったよ!
    • …が、中身は忘れてしまってた><
    • レポート先のメールアドレス、新しく作ったほうがいいかもしれない…。
  • ポリシーがnoneなんだよな…。rejectにしたほうがよさそうな気がしてきた…。
  • 次回、めっちゃ気になる…。いっぱい送られてくるDMARCレポート、うまく使いたい…!

Google Cloudを軸に実践するSREプラクティス【3】Terraformの基本とステート管理 ......小森 裕介、(監修)キャディ株式会社Platformグループ

three.jsでお手軽3Dプログラミング【4】マウスやスクロールに連動させる(1) ......可児 亘

  • OrbitControls、便利すぎですね…。
  • 三角比の公式!ちゃんと覚えてます!
  • 3Dプログラミングは三角関数だらけ。
    • 高校生のときにこういうのに出会ってたら楽しかったろうなあ。

なるほど納得Go言語【5】Goにおける変数宣言[後編]――Goらしい変数の作り方 ......崎原 晴香(H.Saki)

  • ゼロ値をちゃんと定義しておくと、コードがキレイになりますね!

最強の開発環境 探求の道【6】拡張機能プラグインを使う ......中山 慶祐

  • Language Serverの話もあるの?!よくVSCodeでCPU使用率が張り付くときにSorlarGraphだったりしたので、気になってました…期待…!
  • Vim、サーバ上でしか使わなくなっちゃったんですよね…。
  • Language Server Protocol、マイクロソフトが提唱したのか…。
    • Visual Studioとかで実績いっぱいありますもんね。
  • Vimの話を出したのは、自分で細かくインストールする必要があって、説明に繋げやすいからかなぁ…。
    • VSCodeだとLanguage Serverを入れた覚えがありません…。意識せずに入っちゃったっぽいです。
  • zshやtmuxにもプラグインマネージャが…???知らなかった…!

リソースから考えるBCPの手引き【最終回】BCP訓練の進め方 ......角道 淳平、中村 勝敏

  • BCM、BCMS … プランだけじゃダメですよね。
    • 定着活動…なるほど。
  • 訓練のパターンが書いてある…!BCP以外でも同じことが言えそうです。
  • 訓練の良し悪しは↓がちゃんとそれっぽく定義できてるかで決まりそう。
    • リソース、付与情報、期待する行動例
  • たしかにリソースのリストができていると、いろいろなものに考えが広がりやすいかもしれません。
  • 今回で最後でしたが、普段あまり意識の及ばない領域なので、大変に勉強になりました。

AWS活用ジャーニー【9】AWS CloudTrail、AWS Config ......武田 隆志

  • CloudTrail、入れたいかも…。
  • 指定アカウントでログインがあったときに、CloudWatch Logsへイベント送信、Slackへ通知をやりたい…。
  • Aws Config…構成の変更管理だと思ってましたが…確かに、それをトリガーに監視をするのもよさそうです。
  • む…一項目あたりで課金されるのか…。悩ましい…。
  • 構成変更が頻繁だと料金が嵩みそう……。悩ましい…。

連載:OS/Network

魅惑の自作シェルの世界【7】複合コマンドの実装(後編) ......上田 隆一

  • サンプルの中に書いてあった、nlコマンド、知りませんでした…、
    • line numbering filterだって。
  • 閉じカッコ、ちょっと面倒なんですね…。解釈する際にはない方がシンプルなコードになる気がしました。でも、読みにくいから絶対実装してほしいw

[Ansible]現場を支えるPlaybook【7】Kickstart ISOによるVMへのOS自動インストール ......宮下 悠生

Pythonでネットワーク自由自在【最終回】トラブルシューティングの自動化をPythonで実現してみよう(2) ......小澤 昌樹

  • ログの扱い方、あちこちでいってくれるので、もうちょっとしたら覚えられそう…。
    • バックアップ、自動収集、可視化、エラーメッセージ、正常なログを把握!

アラカルト

ITエンジニア必須の最新用語解説【174】Devbox ......杉山 貴章

読者プレゼントのお知らせ

SD BOOK REVIEW

  • ソフトウェアテストのセオリー
    • AIを使ったテストも含まれているのは、おもしろそうです。
  • Webアプリケーションアクセシビリティ
    • 改善がテーマで、現場の事例が豊富とのことでちょっと気になります…。

SD NEWS & PRODUCTS

  • U-22…いいなぁ。楽しそう…、

次号のお知らせ

特別広報

Web3の新時代を拓くココネのエンジニアリング力を探る【2】世界のプレイヤーを相手にじゃんけん対戦を楽しんでもらうために ......編集部

  • ヒドくシビアではないけど、シビアですよね、リアルタイム。
    • スマホだから、ネットワークも信頼できない感じ…。
  • 描画はUnity、その他はピュアなC#。ちゃんと得意に分けて管理する。なるほど、たしかによさそうです。

その他

  • 価格改定
    • 電子版の定期購読は影響ナシなのか…!
    • いずれにしても書い続けるつもりなので、長く続けてほしいです。