Software Design 2023年6月号を読んで、ちょこっとずつ感想を書いてます。 gihyo.jp
いつも参加しているSoftware Design輪読会に向けての予習でもあります。 softwaredesign.connpass.com
第1特集 正しく理解したい クリーンアーキテクチャとは何か? 開発に活かせる設計のエッセンスを探る
第1章:クリーンアーキテクチャの背景 ブログ記事、書籍、時代背景から用語の意味を押さえる ......田中 ひさてる
- 有名な円の絵ですが…わかるようなわからないような…でした。
- 依存関係をユースケースから外側へ…というのが主張らしいです。
- MVC、そんなふうに理解されてたの…?とちょっと驚き。(Windowsアプリ作ってたころからあったので…)
- プレハブと注文住宅のたとえはよくわかる気がします。
- アジャイル…「個人と現実を尊重」…たしかにそういうもんですよね。
- DDDのほうもまた読み直さないと…。
第2章:クリーンアーキテクチャの実体に迫る 関心の分離、あの有名な同心円状の図、SOLID原則の要点 ......田中 ひさてる
- ユーザはファットになりやすいですよね…。「〜は〜できる」構文にしたつもりでも集まっちゃいますよね…。
- 依存の向きは結構気をつけているつもりです…。
- 水平方向の結合性…たしかに厄介な感じがします…。
- 「おわりに」は同意です。
- …とはいえ、もう少しクリーンアーキテクチャへの理解を深めないと…。
- まだあんまりピンときてません…。
第3章:ソースコードから理解する 典型的なシナリオからクリーンアーキテクチャのエッセンスを抽出しよう ......成瀬 允宣
- リポジトリパターンで何度か実装を試みたけど、知らなすぎてうまく扱えなかったんですよね…。またトライしようっと…。
- またFlutterで…。
- DIコンテナ
- DIコンテナとは - 意味をわかりやすく - IT用語辞典 e-Words
- RubyとDependency Injectionについてまとめる - Qiita
- Railsで書いててあんまり見かけないのは、Rubyでは言語レベルで依存性の注入が容易だからみたい。
- Railsで学ぶSOLID(5)依存関係逆転の原則(翻訳)|TechRacho by BPS株式会社
- このあたりからSOLID原則を見てってもいいかも。
- DIコンテナ…と使いたくなる場面をちょっと見ておきたい。
- SOLIDの他の原則も。
- クリーンアーキテクチャの本質
- 「下位レベルの都合にビジネスルールが振り回されないようにしたい」
- たしかに繰り返しいわれてました…。
- Railsで普通にやってればそんなに気をつけなくてもいいのに、うちのソース…。
- そもそも「普通」という感覚が難しいのかも。自分もそれなりに苦労してきて、なんとなく体で知ってるのかな…。
第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】 ......小保田 規生
[短期連載]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グループ
- ドリフト、さんざん苦労したところです…。
- tfstateの暗号化ができるの…?
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にもプラグインマネージャが…???知らなかった…!
- GitHub - rossmacarthur/sheldon: Fast, configurable, shell plugin manager … zsh/bash兼用
- たくさん紹介されてましたが…デファクトスタンダードは……?まだそこまでのものまないのかな…?
リソースから考える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自動インストール ......宮下 悠生
- Kickstart ISO?
- …だけど、Kickstartだけでは手の届かないところが……そこでAnsibleで、という話なんですね。
- IaC以前、ホント大変そうでした…。
- テンプレートが多くなってしまうので、ちょっと前の方式のkickstartを上手に取り入れた感じですかね…。参考になります。
- 自動化の効果時間が書いてあるの、なにげにいいですね…。
Pythonでネットワーク自由自在【最終回】トラブルシューティングの自動化をPythonで実現してみよう(2) ......小澤 昌樹
- ログの扱い方、あちこちでいってくれるので、もうちょっとしたら覚えられそう…。
- バックアップ、自動収集、可視化、エラーメッセージ、正常なログを把握!
アラカルト
ITエンジニア必須の最新用語解説【174】Devbox ......杉山 貴章
- Devbox、速さはどうなんでしょう…?試した方がいれば感触を…。
- Dockerはこの間Macで試したときには、開発には使えそうにない速さでした…。
読者プレゼントのお知らせ
- <span style="font-size: 1rem;">土台からしっかり学ぶ──</span><br> ソフトウェアテストのセオリー|リックテレコム
- 気になる…。
- 自分が知っている本がだいぶ古いので、どうしたもんかなぁ、と思っていたりします。
SD BOOK REVIEW
SD NEWS & PRODUCTS
- U-22…いいなぁ。楽しそう…、
次号のお知らせ
- gRPCで始めるWeb API開発
- まだ入門してないんですよね…。
- じっくり読んでみよう…。
- はじめようSvelte
- Svelte • サイバネティクスで強化されたWebアプリ
- どこにもJamstackと書いてなかったけど、どういう関係なんでしょう…。
- ちょっと気になります。
- GoFデザインパターン歴史探訪
- 素直に見直したいので、よいかも。
特別広報
Web3の新時代を拓くココネのエンジニアリング力を探る【2】世界のプレイヤーを相手にじゃんけん対戦を楽しんでもらうために ......編集部
- ヒドくシビアではないけど、シビアですよね、リアルタイム。
- スマホだから、ネットワークも信頼できない感じ…。
- 描画はUnity、その他はピュアなC#。ちゃんと得意に分けて管理する。なるほど、たしかによさそうです。
その他
- 価格改定
- 電子版の定期購読は影響ナシなのか…!
- いずれにしても書い続けるつもりなので、長く続けてほしいです。