ken1flanのブログ

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

Software Design 2023/09 メモ

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

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

softwaredesign.connpass.com

特に気になったこと

  • JavaScript非同期処理の記事、よかったです。
    • 普段あんまり考えずにやってましたが…裏側の話などもあって、理解が進んだ気がします。
    • 特に、2章のトラップ。
  • カオスエンジニアリング、みなさんやってますか?やろうとしてますか?
    • うちは…全くです…。
    • でも、実際に問題を起こして復旧させることを定期的にやったら、だいぶよさそうに思えました。
  • 国産RDBMSのTsurugiの評価バッチ、ざっとみたらホントに現実っぽくて、信頼できそうです…。
    • ちょっとリッチすぎてウチでは使えないですが…。
  • ひみつのLinux通信の先輩、かなりデキる感じですね!

表紙

  • うさぎ、しもぶくれだし、人参ほおばってるし…かわいいなw

第1特集 TypeScriptプログラマーも必見 JavaScript非同期処理の疑問を解き明かす 複雑な概念をひとつずつ腹落ちさせていこう

  • 変遷が書いてあるのありがたいかも。
    • 片手間でも長くやっているので、どれが古い手法で、どれが新しいのか…よくわからなくなっちゃうので…。
  • async/awaitってDartにもあって、まだよくわかっちゃなかったので、ありがたいかも。

第1章:JavaScriptの非同期処理の変遷 async/await登場までの模索と進化 ......suin

  • あー…言語自体が確かにシングルスレッド用でしたね…。これは非同期必須かも。
  • 4章、Promiseの自作…?そりゃちょっとおもしろそうです。
  • コールバック
    • 何重にもなると読みづらいですよね…。
    • あ…そうかぁ…書き方にバリエーションがあって、どの書き方が一番いいんだろうっていつも思ってました…。
  • Promise
    • 連鎖させるときに入れ子にしないで、thenを繋げて書けるんですね…。どうやって書くのかと思ってました…。
    • DartだとFutureだったかも。
  • async/await
    • awaitで影響があるのは今実行しているタスクだけだそう。なるほど……。
    • asyncの書き方、わかりやすくていいですね。書き方も揃うし。
    • awaitを使えるのは非同期関数の内部だけ…。これ、結構大変な気もするんですが……。Dartで書いてましたが…まだ慣れてません…。
  • Promiseとasync/awaitについて、ちゃんと読んだの初めてかも。よかったです。

第2章:なぜ非同期処理は難しいのか? 初学者がハマらないための前提知識と用語の整理 ......PADAone

  • Promiseなどのシンタックスを理解するだけでも難しい…わかる……。
  • 環境の提供するAPIがあり、Node.jsやDeno独自のものもある……。結構混乱していて、これのせいでNode.jsをあまり使いたくなかったのを思い出しました。区別の仕方がわかれば怖くないのかも。
  • async関数と非同期関数……うへぇ…違うのか…。歴史を感じます…。
  • タスクとマイクロタスクの違いがよくわかりません…。
    • 仕組みが違うから、意識して区別しろ!ということでしょうか…。難しい><
    • developer.mozilla.org
  • 並行と並列…区別してませんでした。javascriptはシングルスレッドだから、並行なんですね。
  • この章のトラップの解説、よかったです…!

第3章:Promiseとは? コールバック関数の問題点とPromiseの使い方 ......小田島 太郎

  • コールバック版関数をPromise版に変換するの、結構いい説明ですね…。少しピンときた気がしました。
  • Promiseチェーン…たしかによさそう。
  • DartのFutureで困ってたところが、なんとなく解決しそう…。
  • Flutter、またやりたい…!

第4章:Promiseを深掘りする 「オレオレPromise」を実装して構造を理解しよう ......小田島 太郎

  • オレオレPromise!
  • なんとなく流れがわかった気がします…。

第5章:async/awaitを深掘りする Promiseと比べてわかる挙動の違い ......小田島 太郎

  • async/awaitが楽すぎて、非同期処理なのに全部待ち合わせるような処理を書いてを挫折した感…。入門し直そう…。
  • Promiseを返す関数はめっちゃ書きやすいですね…。asyncキーワードつけるだけ!
  • ううむ…なんかわかってきた感…。DartのFutureとasync/awaitをまた試したい…。

第6章:AbortSignalとAsyncLocalStorage 本格的な非同期処理で求められる機能 ......うひょ(鈴木 僚太)

  • あ…中断かぁ…。もう一レベル高い話ですね。
  • 使いたくなったらまた見ます…!

第2特集 複雑性から逃げない カオスエンジニアリングの始め方 システムを安定運用するための技術

第1章:原則を正しく理解しよう カオスエンジニアリング超入門 ......小杉山 拓弥

  • 本番をランダムにシャットダウン…衝撃的でしたが、それに耐えられるようにしてある、というのも更に衝撃的かも。
  • カオス実験を始める前に、まずは定常状態をちゃんと観測できるようにしとけって…なるほどです。
    • うちはまだこの段階じゃないですね……。
  • 「十分複雑か?」
    • うちはまだこの段階じゃないですね……。
  • 結構よい記事でした。

第2章:不確実性に立ち向かうための段取り カオスエンジニアリングの進め方 ......立見 祐介

  • 開発環境で計画した障害に対応できることを確認して、本番で対応できることを確認する形でしょうか。
    • たしかにこれをやっておくと、心強い感じがしました。
    • 検知できるか、復旧できるか…。
  • うちなんかそんなに規模がないんだから…やってみてもいい気がしてきました。
  • 継続的に繰り返すのもいいですね…。

第3章:「継続」こそ成功の鍵 カオスエンジニアリングの効果と学び ......立見 祐介

  • 「定期的に」
    • インフラのアップデートがあっても、ちゃんと機能してるか見れてよさそうです。
  • 緊急作業じゃなくて、地味な普通の運用作業に…。たしかにそうなるようにしてるはずですし…なるほどです。
  • 社内にちゃんと報告しておくと、ちゃんと理解してもらえているようです。

一般記事

[特別企画]国産リレーショナルデータベースTsurugi 潤沢なCPU/メモリを使い倒すため一から開発 ......神林 飛志

  • CPU、メモリを使い倒す…必要あるの?コンテナで共有してるけどどうなんだろう…?
    • このあたりにスッと回答が来るようなら、結構いいかも。
  • NEDO国立天文台…!ウチと親和性がありそう感…。
    • …とはいえ、さすがに面倒見きれない感もある…。
  • 互換性圧力が深海1万メートル…w
  • 評価用のバッチ、実用っぽい…。いいですね。
  • …Lockベースじゃない?
    • MVCC/Timestamp/Memory/Epoch based CC
    • マルチバージョン?Epoch base CC?
    • 既存のDBMSの技術らしい…。
  • バッチとオンラインで、辻褄が合わなかったらオンライン側をabort…。優先順位があるのかな?
  • やばい…難しすぎる……。
    • 以前からある理論、現代的なハードで再構成している感じでしょうか…。
    • ちゃんと速そうです。
  • PostgreSQLインターフェイスがある…!
  • 案外、スッと導入できそう感あります。楽しみ!

[特別企画]マルウェア対策とエンドポイントセキュリティ【後編】エンドポイントセキュリティの現実 ......佐々木 康介

  • 確かにあまり攻撃者のことを学ぶ機会はあんまりありませんね…。前回今回の企画はとてもありがたいです…!
  • セキュリティのアレを聴いてるおかげか、結構知っていることも多いかも…。
  • 世界情勢も…当然絡んできますよね…。
  • バグへの賞金も、犯罪行為で稼げる金額のほうがリスクと合わせても大きくなるのを防ぐ…ということなのかあ…。
  • 10大脅威に「犯罪のビジネス化」……マヂか……。
    • スキルがないけど、容易に実行できるソリューションを提供するRaaSみたいなものが目立ってきたってことですよね…。
    • www.ipa.go.jp
  • 防ぐ手段は…
    • 結局こまめなアップデート。既知の脆弱性を突いてきますよね…。企業化してて、手順書とかスクリプトとかが充実してたりすると、もう……。これがDXか……。
    • エンドポイントプロテクション…ってウィルス対策ソフトのことだったのか…。まぁ、そっちのほうがしっくりくる名前かも。
    • EDR/NDR…XDRともなると…もう面倒見きれなそう……。
  • バックアップ…たしかに潜伏期間があったりすると、マルウェアごと復旧…つらい…。たしかに検知が必須ですね…。
  • バックアップソリューションがランサムを検知・自動復旧…たしかにやってもらえたら心強い…。
  • リテラシーの足りないエンジニアによる設定ミス……これは自動レビューが効きそう…。一応入れました…!
    • 脆弱性診断ツールも入れたい…。

連載:Column

平林万能IT技術研究所 2ndシーズン【16】マリー・アントワネットの「暗号」を解く――秘密のコードで記された「フェルセン伯爵への手紙」 ......平林 純

  • 一体この二人はこの暗号を使ってどんな会話を……。

  • 人間が暗号化/復号化するってなかなか…。本人たちがやっていたのかなあ…。

    • 消しゴムもないだろうし……すごい。

ハピネスチームビルディング【18】自分の考えたオリジナルの手法で楽しい振り返りに ......小島 優介

  • そういえば前回、すごいたくさんの振り返り手法をみたんでした。そのうえで…オリジナル…!!
    • 相当高レベルな…
  • こういう、持ち回りのファシリテーターにオリジナルで考えてもらえるっていうのは、心理的安全性がめっちゃ高い気がします。
    • チームづくり=心理的安全性とも言える…?

エンジニアのためのやる気UPエクササイズ【13】疲れ目で生産性が最大28%低下!? 疲れ目を予防する3つの方法 ......えくろプロテイン

  • 20フィート→6メートル…割りと現実的な距離かも。
  • 肩こりくらいかなぁ…。(集中していない疑惑…)

ひみつのLinux通信【115】簡単詐欺 ......くつなりょうすけ

  • わかるw
  • なんとなく道筋が見えていると、そういうふうにいってしまうかも。
  • 先輩、かなりできるひとですね…。
    • プロジェクト全体をうろうろして、遅くなりそうなところを潰して回ってる…。

あなたのスキルは社会に役立つ~エンジニアだからできる社会貢献~【141】AI技術と国会議事録が融合した「国会議事録検索(The Diet Search)プラグイン」 ......小泉 勝志郎

  • え…スゴい画期的…!こんなんめっちゃ反対されそうなのに…。
    • すでに公開データだからかな…?
  • 使ってみようと思ったら、4でした…。
  • 街頭演説をしている人が何をアピールしてたのかわからない…。
    • 自分が背景情報を知らなかったということでしたか…。なるほど。
  • がんばっていることを見える化するのは大事かも。
  • 議事録の改ざん、隠蔽、破棄は結構ご法度な気がしてきました。(当たり前)
  • 地方議会の議事録…!むしろ、こっちのほうがスゴいことかも。生活に密着してるし、視聴者・読者も限られるのでメディアも取り上げにくいし…。やってほしい…!
  • AIでハッカソンで実装できる量が変わるかも…は納得。たしかにスゴいことかも。

連載:Development

Stable Diffusionで学ぶ画像生成AIのしくみ【4】画像生成器のしくみ ......國田 圭佑

  • 圧縮器、元の画像にちゃんと戻せる必要がないと割り切ってるから圧縮率がスゴいのかな…?
    • 512x512 -> 64x64
    • 気になる…。
  • 各処理の中の工夫の仕方が、自分がこれまでやってきた考え方と違うような…。なんかすごい…。

オンラインホワイトボード「Miro」徹底活用術【最終回】おすすめプラクティスとMiroの新機能 ......橋本 憲洋、山川 宏賢、今村 恭子、三浦 茜、室木 梨沙

  • 遣り続けたことを可視化するって、かなりいいですよね…!
    • しかもちょっとカラフルだし、ちゃんと見返すまでしなくても、時間を感じられていいかも。
  • miro、よさそうだけど、個人で長期間使おうと思うと、高いんだよな―…。
  • 長期間の蓄積に耐えられる広いボードってないかなぁ…。
    • Google図形描画…広いけど、UIが…。
    • SpreadSheetか?!
  • これにもAI…。便利なのかなぁ…?
  • 毎回、金額を見て悩んでる……。使い心地、めっちゃいいんだよなー…。

MLOpsのすすめ【2】MLOpsのためのチームとスキルセット ......澁井 雄介

  • 機械学習でも、自分の行っているアプリケーション開発と同じように、いろいろ必要なスキルのひとが集まってやってる感じでしょうか。
  • プロジェクト開始前の企画時が結構大変そう…と思ったけど、結局機械学習を使っている企業なら、それを含めた幅広い領域にそれなりに詳しいテックリードがいるか…。
    • 自分もそろそろ機械学習に手を出しておきたい…。

位置情報エンジニアリングのすすめ【2】位置情報に触れる・加工する(前編)......鈴木 祐亮

  • おさらいが入ってる…!
    • 著者交代があったからかな…?
    • とりあえず、忘れちゃってたのでありがたいw
  • ポリゴン、線が交差しちゃうような書き方もできちゃいますね…。検出するツールとかあるんでしょうか…。結構怖いです。
  • これ、あとでやってみたいかも。

新時代の分散型SNS Nostr【3】3Nostrの関連サービスを見てみよう ......鎌倉 光臣

  • 分散したサービスでどうやってパーマネントリンクとかやるのかと思ったら…「多くのリレーに問い合わせて可能な限り待つ」ですって。間違っててもいいやというスタンス、結構いいですね。
  • あー…プロフィールやフォロー情報もリレーかぁ…。こりゃ大変ですね……。
  • 本当に玄人好み感がスゴいですね。結構いろんなサービスが作られているみたい。
  • ブラウザもあるのか…!

Google Cloudを軸に実践するSREプラクティス【6】Renovateによる依存関係の更新 ......山田 圭一、(監修)小森 裕介

  • スゴく脱線して、プルリクエストに自動でラベルをつける話を見てました……。
  • Renovateはdependabotに比べて…
    • 柔軟性が高いようです。
    • セキュリティアラートはあるけど…この記事ではアテにしていなそう…。
  • オートマージ入れてもいいかも…。結構面倒だし…。
    • docs.github.com
    • チームならPRのリストをSlackに表示して、各人に振って対応、みたいなのは大変よさそう。
    • オートマージしていいのとしてよくないのを分けられるかな…。うちではテストが甘いjsはやりたくない感。

なるほど納得Go言語【8】インターフェース(後編)......崎原 晴香(H.Saki)

  • 継承がない、というのを聞いて前回だいぶ驚きました。で、かわりにインターフェイスが定義できて、そのインターフェイスがあれば使える、ようです。(動かしてない)
    • ダックタイピングの静的版?
  • 命名のアイデア、推奨事項が紹介されるのはありがたいです!
  • まだ使ってない言語でも、こうやって雰囲気を事前に知っていくのは、結構いいかも…。

AWS活用ジャーニー【12】AWS CloudFormation ......武田 隆志

  • Terraformにしちゃったからなぁ…
  • ただ、裏側が多分これだと思うのでざっくり、見ておこう…。
  • ステージング環境と本番環境…AWSのアカウント分けたいなぁ…。
    • やったら、謎アカウントとかが判明していきそう…。
  • テンプレート、スタック、スタックセット…。言葉の解説がありがたい…。

連載:OS/Network/Security

現場から学ぶAWSクラウドセキュリティ【新連載】クラウドセキュリティと責任共有モデル ......花塚 亮祐、(監修)株式会社サイバーエージェント システムセキュリティ推進グループ

  • おおお…こういう情報発信、助かります…!
  • 責任共有モデル
    • そうそう、ちゃんと設定したら守ってもらえるっていうのが、クラウドのいいところ。オンプレはもっと守備範囲が広いですもんね…。
  • 意外とシンプルで共通した原因のインシデントが起きてる……
    • そりゃ、それが一番可能性が高いですもんね。突飛な脆弱性を探すより、よくある凡ミスを探す方が確率が高そう。
    • 診断ツールをちゃんと入れておくと、結構利きそう。
  • IAM、整理しなくちゃな―…。

魅惑の自作シェルの世界【10】 パイプライン処理の実装(その2)......上田 隆一

  • 行中のコメントは…空白のあとなんですね。はっきりした定義を知らず、雰囲気で使ってました。。。
  • バックスラッシュ+改行、結構大きい変更ですね…。
  • グループコマンドのこの挙動…難しいですね…。スクリプト書いたときに不具合に気づかなそう…。
  • この連載、実装しながらシェルの挙動を教えてくれて、斜め読みでもだいぶ勉強になりますね…。

[Ansible]現場を支えるPlaybook【10】正常性確認用Playbookの実装テクニック ......岡田 淳

  • 「はじめに」の前提がすごすぎる…。「プライベートクラウドを1,000以上の複数拠点において」
    • たしかに目視はありえない…。
  • この自動化した試験はどうやって正常に動いていることを確認したんでしょう…?
  • ああ…Serverspec…。インフラのテスト、ずばりのものがあったはずだけどなあ…と思ってました。
  • とにかく大規模過ぎて、うおお…ってなってます。

アラカルト

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

  • このあたりのいろんなプラットフォームで動かせる系ってあとなにありましたっけ…?
  • 通化するためのものが乱立する時代…?

SD BOOK REVIEW

  • JavaScript Primer 改定2版
    • 昔気になっていた本だったような…。
    • 現在でも使えるがあまり適切でない記法 … めっちゃ知りたい…。
      • 歴史、長いですもんね…。
  • システム設計のセオリーII
    • これも前著があっての刷新みたい。
    • 進化に対応すべきところと普遍なところを明確にしながら…結構よさそう。
  • ソフトウェア開発にChatGPTは使えるのか?
    • 気になっている話題ではありますが…。
    • ちょっと読むには結構ページ数があるかな…。悩ましい…。

SD NEWS & PRODUCTS

  • U-22プログラミングコンテスト応募受付開始
    • おもしろそうだなぁ…。
  • Vectra Match
    • ここもAI…。ちょっとおもしろそう。
    • 未知のものに対して、多少なりとも反応するのであれば、よさそう。
  • 正規表現を自動修正
    • …どうやって?
    • (修正提案ならありがたいけど…。)
  • MV Shield
    • CentOS、サポート終了後もサポート…!
    • なるべく世話にならずに済むようにしたいですが、こういうのがあることを知っておけてよかったです。
  • GCP CloudSQL
    • フルマネージドのMySQLPostgreSQL…。
    • ありがたいですね。
  • TwitterがXになったけど、また戻るかも
    • たしかにw
    • 場所が悪いとバツボタンに見えるので、ホント、戻してもらえるほうがありがたいです…。

次号のお知らせ

  • セキュリティの話題が2つもある…!継続的に知識をざっくり更新するのに、ホント、雑誌はありたがいです…。
    • いまさら聞けないネットワークセキュリティ
    • クラウドネイティブセキュリティ入門
  • HTTP/3
    • 自分が直接使うことはないけれども…インフラとか設定変わってくるかな。
    • ざっくり見ておきたいです。
  • LLMアプリケーション開発
    • Large Language Modelですよね…?
    • どんなだろう…。ちょっと気になります…。