ken1flanのブログ

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

2024年04月

4月何したっけ…?というまとめ。

以前のまとめ

Special Thanks

第56回Software Design (2024年5月号) 輪読&座談会 に参加してきました

いつもおせわになっている第56回Software Design (2024年5月号) 輪読&座談会に参加してきました。

softwaredesign.connpass.com

  • 表紙
    • 毎年この月はテーマ動物が変わることが多くて、猫と犬の販売部数差の話が出たりなんだり、盛り上がりましたw げっ歯類、割とファンが多そうですが、どうですかねえ?
  • TypeScript
    • 組み込みでjsを使っている話が出て…おおってなりました。
    • ECMAScriptに入れたかった先進的な機能がTypeScriptに?!あたりの裏話がおもしろかったです…。
    • 各バージョンECMAScriptとTypeScriptコンパイラ、各環境用バイナリとCMakeの関係性が似てるかも?
  • Ubuntu
    • 20周年の話からSlackwareTurboLinux…ちょっと懐かしい話が出てきて、ちょっと盛り上がりました。
      • その場では告白しなかったですが、めっちゃその頃、FreeBSDでいろいろ遊んでた世代です。
    • パッケージ?ソースからビルドするんだ!という方もいて、おお…!となりました。
    • ディストリビューションのシェアの話、用途や業界などで違うとのことで、参考になりました。
  • シニアプログラミング
    • 老眼との向き合い方で盛り上がりました。
      • デカいディスプレイ + デカいフォントサイズ で見ても、見上げることになって疲れちゃうので、適切なものをちゃんと選ぼうという話は為になりました。
  • ZOZOTOWN リプレイス
    • 当時、SQLServerに詳しい人が勉強会で発表してくれていたという話が出ていました。
  • V8
  • MLOps最終回
    • いいまとめになってるので、読むといいですよ!という話が出てました。自分も同意です。
  • Lightsail
    • 初心者がAWSあんまよくわからないんだけど使いたい、というのを叶えるために使われているそうです。
    • ますます気になります…。

今回も刺激的な会でした。 また次回も行こうっと。

Software Design 2024/05 メモ

Software Design 2024年05月号を読んで、ちょこっとずつ感想を書いてます。

gihyo.jp

表紙

  • ハムスターになった…?!(これはこれでかわいい)
  • 猫からうさぎに変わったのも、5月だったっけ…?
  • 今年はげっ歯類…!ということは、そのうちにヌートリアとかカピバラとかも?

第1特集 型を制する者はTypeScriptを制す もっとTypeScriptの力を引き出そう 設計を変革するUnion型、構造的部分型

  • 型についてガッチリやってくれそうで、この先読むのが楽しみ…!

第1章:TypeScriptの力を引き出すための基本 普及した理由とメリット、学習の戦略 ......雫石 卓耶

  • 最初の問い、なぜAltJSを使うの?なぜTypeScript?はめっちゃ知りたいです…!
  • コンパイラによる解析・変換の際に詳しく見てくれるのは、助かりますよね…。
  • TypeScriptコンパイラ、静的解析ツールだと思って使ってもいいかも…。
  • なるほど、有効なjsは有効なts…これだと移行しやすいですね。
  • Union型、割といいかも…。
  • 構造的な型システム…なるほど、そういうものでしたか。

第2章:TypeScriptの型を正しく扱う JavaScriptと比べて学ぶ型表現 ......鹿野 壮

  • 連想配列を型エイリアスで使うと便利そうです。
  • コード補完とか、LSPのおかげかも。そうすると、これもMSのおかげかあ…。スゴイかも。
  • const myName = "鈴木" は鈴木型w
  • satisfies、ほしいのはわかるけど、書くのが面倒そう…。

第3章:Union型でより正確に設計する 型の表現力を高める使い方と設計パターン ......うひょ(鈴木 僚太)

  • Union型は便利そうですが…たくさんをUnionしちゃうと混乱しそうです。
  • リテラル + Unionは入力できる値を限定できて便利そう!
    • 鈴木型が活きてるんですね…!笑ってごめんなさい🙏
    • switchのnever型も、書き忘れが検知できてよさそう。
  • うーん、なんでクラスを使わないんでしょう🤔

第4章:構造的型付けで型同士の関係を操る TypeScript独自の型の考え方を知ろう ......suin

  • typescriptbook.jp
    • 確かにこのページ、つまみ食いっぽい…!
  • 構造的型付け……これが勘違いしやすいポイントなんだと思います…。気をつけます…。
    • うまく使うとなんかできそう感はあります。
  • Goも構造的型付け…たしかに採用しそう感あります。(なんでだろう?)
  • extends、あるにはあるんですね。やっぱ書きにくいですもんね…。
  • なるほど、構造的型付けを採用している理由、納得です。
  • テクニックで名前的型付けも使えるのは確かに魅力かも。

第5章:実践Mapped Types TypeScriptの型表現の真髄 ......mizchi(竹馬 光太郎)

  • 複雑なのか…やっぱり。
  • テスト駆動で進めてくれるのはありがたいかも。
  • …型を普段使っていないせいで、まったくピンときません…。
  • TypeScript使いだしたら、また読み直します 💦
    • 用法用量を守って…というのは、TypeScriptをやっている人たちでも難しいということですか…。
    • 慣れてきたら再チャレンジ!

第2特集 WSL、コンテナ、選択肢はいろいろ Ubuntuで開発環境を整備 現代的な使い方&24.04 LTSレポート

  • WSL2、気になってるんですが…今MacOS使ってるしなぁ…。
  • …にしても、楽しみな特集です。

第1章:開発環境としてのUbuntu Ubuntuの種類と活用方法をふりかえる ......水野 源

  • え…もう20年? さすがにそのときは使ってませんでした。
  • 「人にやさしいLinux」…そういうテーマだったんですね。たしかに最初からすんなり使えた気がします。
  • そうそう、タイムベースリリースとLTS。定期的なところがありがたく感じてます。
  • パッケージの分類、知りませんでした。サーバ用途のときには気をつけるようにします…。
  • Ubuntu Pro、個人で無償で5台…なるほど、試しやすそうです。
  • Ubuntu Core、知りませんでした。
  • あとでDev Containerをやってみます…。

第2章:Ubuntu 24.04 LTS Serverの変更点 AIや5G、自動運転などに活躍の場が広がる ......柴田 充也

  • Rustサポートが入ったんですね。メモリ安全性が動機…たしかに。
  • Ubuntu Pro、知らないと思ったら今回リブランドだったんですね。
  • LXDとIncus……使うときにはよく検討します💦

第3章:Ubuntu 24.04 LTS デスクトップの変更点 現代的な使いやすさを追求し大きく進化 ......あわしろいくや

  • インストーラ
    • Flutter…!なんかちょっとうれしい。
    • yamlで省力化…へええ!
  • アプリセンターもFlutterでリニューアル…。おお…。
  • フレーバーの存在を始めて知りました。
    • 軽いubuntuとして、lubuntuは使ったことがあったのですが…これがフレーバーだったんですね。

連載:Column

万能IT技術研究所【24】若者が作る新曲を聴きに未来の世界に行ってみる――バンド演奏動画から「~風楽曲」を機械学習で作り出す ......万能IT技術研究所

  • へええ……こんなことが機材ナシでできてしまうんですね……。
  • スコアも出ちゃうのか…そりゃたしかにできそうですが……。
  • うわあ…なんかスゴイですね…。

ハピネスチームビルディング【26】コミュニティに背中を押されてチャレンジする ......小島 優介

  • ちょっとわかる…。でも社外発表まではなかなかできませんね…。
    • 資料を作る時間がない…。
  • 気軽に読書会を公開で始めるくらいはできるようになりましたw
    • 人が集まりすぎずコンパクトで、割とよい刺激をもらえています。

エンジニアのためのやる気UPエクササイズ【21】エンジニアにおすすめの健康スナック3選 ......えくろプロテイン

  • 超加工食品……言い方はモヤモヤしますが、よくよく考えれば、加工をしてエネルギーを取り出しやすくしているわけであって…まぁ、普通ですよね…。
  • それを考えれば、加工が少なめのものなら、カロリーが低く抑えられるのも、また道理かも。

あなたのスキルは社会に役立つ~エンジニアだからできる社会貢献~【149】シニアでもプログラミングができる! シニアプログラミング発表会#5 ......大菊 健太

  • senior-programming.net
  • うわ…SwiftUIでリニューアル…!リニューアルはスゴイ……。作って満足じゃないところがスゴイ…。
  • 88歳でプログラミングの旅を楽しむ…この方もスゴイ…。
    • あ、老眼とどうやって付き合ってるんでしょう?
  • マルチモーダル、結構スゴそう…
  • え…多言語化もやってる方がいる…!マヂかあ…!
  • 毎回シニアプログラミングの記事は驚かされて、元気をもらってる気がします…!

連載:Development

レガシーシステム攻略のプロセス【新連載】ZOZOTOWNリプレイスプロジェクトの全体アーキテクチャと組織設計 ......高橋 智也、瀬尾 直利

  • VBScript…そうだったんですね!
  • 目的が…いいですね。
    • 技術のモダン化が採用強化に……なりますよね。
    • いくらなんでも、VBScriptよりJavaやGoのほうが扱えるひとが多そうですもん。
  • リプレイスの歴史を辿ると……
    • 商売がちゃんとうまく行くのが、まずは一番ですよね…という感じがしました。
    • その後はいい感じに目的を定めてリプレイスしていて、さすが…という感じに見えます…。
  • 事業開発を行ってきたチームがリプレイスをやりたいと何度もトライして挫折…。スゴイ気持ちがわかります…。
    • 前職もリプレイス専属チームで始めて、方向性が定まってきたところで、新しい機能を入れるときに一部ずつリプレースしてました。
      • 前職で、なかなか完了しなかったのですが…人数がいなかったからですね。
  • チームの担当マイクロサービス数を1…現実的なサイズ感に感じました。
    • 分割されている機能もなんか分かる感じです。
  • マイクロサービスに合わせた組織の変更も徐々にしていったというのは…なるほどですφ(・
  • コミュニケーション、今うちの会社もよくやるようにしてます。
    • 若干ポカーンとすることもありますが、なんとなく伝えることで、ふわっとでもわかってもらえている感があります。
    • テックブログ的なのもなんとかしたいところですが…明らかに無理>< 体がもっとほしい。
  • ADR、たしかによさそう…!
  • こうやってうまくいっているところから、かかっている期間や進め方の共有があるのが、本当にありがたいです :pray:
  • この先もたのしみ!

Databricksで勝つデータ活用【2】データエンジニアリングを実装する〜メダリオンアーキテクチャと探索的データ分析 ......宇田川 聡

  • バックエンドはApache Spark
  • Notebookに接続して使うとのことで、分析しやすそうです。
  • メダリオンアーキテクチャは参考になりそう…。
  • 各出力テーブルを作るときにバリデーションを設定できたり、エラー件数が出したりできるのはとてもやりやすそうです。

あなたの知らないChromeの世界【4】JavaScriptエンジンのしくみとV8 ......小河 亮

  • jsの歴史…。
  • 世代別GCRubyにもありますね。
    • ja.wikipedia.org
    • 結構昔からあるみたい…?
    • RubyKaigiを聴いててよかったかも。
  • V8も言語処理系だから、RubyKaigiでよく出てくる技術とかぶるのは当然かもです。
  • やっぱりここもV8以外がほとんどない…。やっぱ、大変ですよねぇ…。

Google Cloud流クラウドネイティブなシステムデザインパターン【4】MLOps機械学習パイプライン ......江藤 弘、監修:髙鳥 智正

  • まだMLOpsについて明るくないので助かります :pray:
  • 品質の監視が入っているのがよさそうです。
  • レベルごとにモデル化されていると、現在地の確認になっていいですね…。
  • システムの要件次第で必要なレベルも変わる…たしかに。

ぼくらの「開発者体験」改善クエスト【5】誰でもできる技術的負債の段階的な解決方法:Android編 ......石井 幸次

  • あんまり「開発者体験」という言葉自体は好きじゃないんですが……
    • この言葉だけを聞くと、開発者以外はナニソレ?って思われてそうだし…。
    • 実際は…
      • 開発はプロダクトやサービスにつながっている
      • 開発者は開発したいんだという気持ちが強いことが多いから、それを妨げるような状態は好ましくない。
    • 「生産性」とか「開発容易性」とかのほうが、開発者以外にもわかってもらえるかなぁ…。
    • …でも本当は、プロダクトや開発に関わっているひとみんな、開発者だっていう風に思ってもらいたいような…。
  • ブログ…!
    • tech.uzabase.com
    • 自分にも最近ようやくその役割がぼんやりとわかってきました…。
  • 役立った主な知識を挙げてくれるの、ありがたい…。
    • 依存性逆転の原則、ストラングラーパターン、Humble Objectパターン
    • 依存性逆転の原則
      • techracho.bpsinc.jp
      • …テスト書いててやりづらくなって、入れていることが結構あるような…。
      • でも、ダメなところもいっぱいあるので、気をつけます。
    • ストラングラーパターン
    • Humble Object
      • これも自然に使っているような…。
    • 見てきたけど…自分だけじゃなくて、みんなとなると結構たいへんだぞ……。
    • 置き換え対象に一律、legacy〜という名前に変えちゃうのは割といいかも。名前を見ただけで使わないようにしてほしい、という意図が伝わります。
  • 非常に興味深かったです、ありがとうございます!

実践データベースリファクタリング【6】書き込みの負荷を抑える ......曽根 壮大

  • とにかくスケールアップって……まぁ、お金があるならできますか……。
  • スケールダウンが怖い…これはわかります……。
  • ライフサイクルの違うデータを垂直分割…。これは確かにそうですね。構造もきれいになるし、めちゃくちゃよさそうです。
  • 水平分割、地域を使うという手もあるんですね…なるほどです。ほかにもいろいろ考えられそう。

Cloudflare Workersへの招待【6】エッジとHTTP Caching ......井手 優太

  • CDNのエッジコンピューティングでキャッシュ……複雑な話でした……。

実践LLMアプリケーション開発【8】マルチエージェントシステム開発ライブラリ「LangGraph」 ......西見 公宏

  • 複数のAIエージェントが協力して…?なんかすごいですね…。
  • モデル図を見ると、ワークフローなのか、なんか面白い感じがしてきました…。
  • 実装をみても、なんか不思議な感じ…。ちょっと遊んでみたい気持ちになってきました。

MLOpsのすすめ【最終回】機械学習の使い道と運用 ......澁井 雄介

  • 最後、ざっとAI関連の現状やMLOpsのまとめでざっと振り返れて、よかったです。
  • 門外漢なりに少しわかってきたような気がしました。
  • 連載、ためになりました、ありがとうございました!

位置情報エンジニアリングのすすめ【最終回】防災マップの作成 ⑤ 避難所の検索 ......小松 聖

  • 動いているのを見たら…すごいですね…。
  • 作るときにまた読み直そうと思います。
  • 位置情報の扱い方をやんわりと知れてためになりました、ありがとうございました!

AWS活用ジャーニー【20】Amazon Lightsail ......杉金 晋

  • Lightsail!!
  • ちょうど気にしていたところでした😃
  • Wordpress、どうしようかなぁ……。
    • 機能的にはS3+CloudFrontでもいいんだけども…移行が大変そう……。

連載:OS/Network/Security

ドメイン解体新書【4】ドメイン管理におけるセキュリティ ......谷口 元紀

  • 初っ端、ドメインの支払いが個人のものになってませんかって……ありそうでコワイ((((;゚Д゚))))ガクガクブルブル
    • 管理のスキマ的なところがいっぱい上がってて、うわあ…的な。
  • …しかし、たしかにここがもっともヤバいところですね…。
  • ドロップキャッチとバックオーダリング…うはあ…こんなのもあるんですね…。
    • 空いたらすぐ取りたいって、ロクな用途がないと思いますが……違法じゃないし……。
  • 今回、これ、めっちゃためになりました…!

魅惑の自作シェルの世界【18】ジョブの制御――ジョブテーブル ......上田 隆一

  • ゾンビだらけにしないぞってなったら、やっぱりテーブルを作って管理しますよね。

アラカルト

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

SD BOOK REVIEW

  • 面倒なことはChatGPTにやらせよう
    • www.kspub.co.jp
    • 評判がよいので気になってて、でもまだ買ってませんが…迷うなぁ…。
  • Flutter実践開発

    • gihyo.jp
    • ハンズオンがよさそうなんですよね……。まよう……。  

      SD NEWS & PRODUCTS

  • Hinemosのシステム運用AIアシスタント

    • …めっちゃ気になります。AWSにつけてくれんかなあ…。
    • あ、監視しているログとかの異常検知とかじゃないのかな…。
    • でも、おもしろい試みなので、楽しみです。

次号のお知らせ

  • RDBMSの実行計画とインデックス…気になります。
  • Bun?これも面白そうですね…。j

STORES.rb RubyKaigi 2024 直前スペシャル に参加しました

今年のRubyKaigiは事情で行けないけど、あとで動画を觀るときに参考にしようと思ってSTORES.rb RubyKaigi 2024 直前スペシャルに参加しました。

hey.connpass.com

言語や言語実装の話が多く、やっぱりついていけないのですが…RubyKaigiと同様、なにか感じるものがあり…行きたくなりました。

動画の公開を楽しみに待つことにします…!

Web Designinig 2023/12 メモ

book.mynavi.jp

  • Web+DB Pressが休刊になってしまったので、他の情報源を探していました。
  • Webデザインだと若干専門から外れる気もするのですが、周辺の情報を得るという意味では今の仕事の延長でもあるし…。
  • ちょうど見かけた号が苦手な法律の話だったので、手に取った次第です。

Introduction【AIと著作権のリアルな関係】

1章 核心

  • 著作権は人に与えられるので、AIには…
    • 実際作業をすると、プロンプトであれやこれや指示して試行錯誤するけれども…
  • そういえば、本などの編集者に著作権って認められていましたっけ?
    • チーム制作して、そのチームが後日解散したときってどうなるんでしょう…?
  • AI、学習させた人と使用してコンテンツを作る人が違うから、学習しただろと言われてもしてないと言い切れず、使っちゃうと避けきれず…今のところは難しいのか…。
  • コンテンツの説明で、アイデアの立ち位置がちょっとわかりました…!
  • あ…うーん…結局難しい><

2章 活用

  • Adobeは学習元が許可されているところがアドバンテージかあ…。
  • あくまでも、AI生成物をインスピレーションのもとに留めて、オリジナルを作るのも無難、みたい。なるほど。
  • …記録の習慣。これはプロならたしかに必要かも……。難癖をつけられたときに、どういう由来で…ときっちり答えられるようにしておく、と。
  • Photoshopに創作のログを改ざんできないように残せる機能が載ってる…?

特集:Webビジネスの【法律相談書】

  • 著作権フリー」の判断って難しいですよね…。一応商用利用とか見ますが…怖くて怖くて…。
  • 結構事例がよいかも…。
  • 法律リストもいい感じ。構造や概要が載ってました。

1章_クリエイティブに関わる【知的財産権の世界】

PART1 著作権の基本と知的財産権の骨格

著作権」とその財産権的側面
  • 譲渡できるものとできないものがあるのはなんとなく抑えてました…!
著作者人格権」と「著作隣接権
  • 著作隣接権に「レコード製作者」?レコードはCDとかもそうですよね?
商標や意匠は「先に登録したもの勝ち」
  • 著作権が早いもの勝ちじゃないのは、少し安心しました。
「パクり」問題を議論する上での注意点
  • 議論している場所の図がめちゃくちゃいい…。
  • たまにはてブで見かけますが、論争が噛み合ってないと思ったら、舞台が違うんですね。
  • トラブルになったときに、法律だけではなくて、感情まで考慮に入れていければいいなと思います。

PART2 具体例で学ぶ知的財産権と制作における注意点

「著作物」とは何か
  • 「思想または感情」、「創作性」、「表現」が揃っていること…φ(・
  • 例外の説明がわかりやすいかも。
1 コンテンツ制作
  • 「著作物」の定義が先にあったのでだいぶわかりやすかったです。
  • ラーメンブログの話は参考になりました。
    • ネタは同じなら、似ちゃいますよね…。
    • 法律的には問題なさそうですが、感情論的にはどうなんでしょう…?
2 撮影
  • 今まで写り込み、大変だったんですね…。改正されてよかったです。
  • 著作権的には意図してなんかしない限り大丈夫そうですが…肖像権やプライバシー権には注意したほうがよさそうです。
3 素材の利用
  • 自社用の素材でも、利用用途が決められている場合があるので、契約を見ておいたほうがいいのか…φ(・
  • フォントは気をつけてます…!
4 音声・動画配信
  • CDは…そうなりますよね。わかります…!
5 商品開発
  • 実物をイラスト化して使用…ダメだと思ってたんですが、グレーっぽいですね。いずれにしてもちゃんと話を通すのがよさそう。
  • 鬼滅の刃の着物の柄の話、著作権的には問題ないけど…。
    • 事実誤認させて売ろうというのはNGだそうですが、そもそもそれでいいと思う…。
自社の権利が脅かされたらどうすればいいですか?
  • 侵害された箇所をちゃんと説明できるようにしておくために、スクショは大事かも…。
  • 価格感も書いてあって、この記事ありがたいかも…。
  • 誹謗中傷の特定はだいぶやりやすくなったはずですが…それでもやっぱり大変ではありそう…。

2章_必須の知識をQ&Aで紹介! ジャンル別で押さえる【Webビジネスと法律 基礎知識】

個人情報保護法

  • そもそも3年ごとの見直し規定が…全然知りませんでした。
  • 個人情報は…個別の項目だけじゃなくて、組み合わせも。
    • これ、結構判断が難しいですよね…。
    • ちゃんとわかんないように!…と思って処置していますが…。
先生に聞くQ&A
  • これもいい感じ…。
  • 三者提供は…どう加工するか、よりも、提供先が持っている情報で個人を特定できるか否かかも?気をつけないと…。

特定商取引法

  • …売るときに騙そうとする行為が禁止されているみたいに見えます。
  • 最終確認画面で分量と価格が義務付け…知らなかったんですが、ちゃんとやってましたね…。
    • やー…こういうの、どうやって知ったらいいの…?
COLUMN 法律は難しいけれど…弁護士費用の捻出が難しい場合は?

特定電子メール法

  • メルマガやるなら、いいこと書いてあるかも…。
  • 同意にデフォルトチェックは…意思を示したのかという議論が、とか。

薬機法

  • 国に承認されていない効能・効果は謳えない…。
    • うまく効果が出てないのも多そうですが…。
    • 自分たちがやるときには気をつけねば…。
  • アフィリエイターかぁ…。

EC事業者にとっての法律の悩みと助け

  • あー…しょっちゅう法改正があるから、随時追従しようとすると大変かぁ…。
    • そういう意味でECプラットフォームに出して、ある程度任せてしまうというのもひとつの手なんですね…。
  • あ…なるほど、プラットフォームと出店者の力の不均衡を是正するのに「透明化法」というのがあるのか…。
    • ひどい噂も聞こえてきてたし…。

景品表示法

  • 不当表示…気をつけないとなぁ…。
  • 優良誤認、有利誤認…マーケティングに間違った力がかかると起きそう…。
    • うちは今のところ大丈夫そうだけど。
  • 「個人の感想です」…ダメですよねw そのほうがいいです。

ステマ規制

  • これ、難しいです…。
  • なにげに会社の情報を自分の個人アカウントでコメントつけて拡散したときって、どうなるんでしょう?

不正競争防止法

  • 有名企業のドメインに似せたヤツがダメなのは知りませんでした。

職業安定法

  • 職業安定法が出稿者にも及ぶのは知りませんでした…。多少は気をつけないとダメそうです。
  • 自社サイトは求人サイトとは違う、別のルールが適用されるようですが…書いてありません…!
    • とはいえ、誤認させるようなことを避けるようにするのが基本なんじゃないですかね…わからんですが…。

電気通信事業法

  • 外部送信規律…!
  • もう少し読みたいです…!

各種ポリシーや規約を適切に設置すべき理由

  • 外部に表明することで、結果、自身を守る盾🛡に…なるほどです。
  • 弁護士に頼む費用が…という方向けに、質問に答えるだけで規約ができるサービスを作ったって…?!

仕事で使える生成AI「Adobe Firefly」は権利問題とどう向き合っているのか

  • 著作権の問題がなさそうなところが一番いいですよね…。
  • 画像を広げてもらったりとか、普通にツールとしてよくできていそう…。
  • デザイナー以外でも、センスのいいひとは使えるかも…?

Point of View~制作会社の【社内業務と新しい法律】

フリーランス新法

  • 今年の秋から…?
  • 当たり前のことが並んでますね…。
  • 育児介護への配慮とか、ハラスメント対策、中途解除の事前予告が入っているのはいいですね…。
なぜ必要?[新法成立の背景を知る]公正な取引のために
  • …こういうのなかったんですね。よくぞ勝ち取ってくれました…。
  • 当たり前の対等の扱いがあるなら、働き方を選びやすくなりますね。
    • 副業もですね…。めちゃいい…!
  • www.freelance-jp.org
    • スポットワークは含まないんですね…。
      • これはこれで何か必要な気もしますが…何かあるんでしょうか…。

電子帳簿保存法

  • タイトルのQを「この記事のポイント」ですぐ拾ってて、読みやすいかも。
  • うち、ほとんど電子でやっているはず。
  • 真実性…ハッシュ値!みたいなことまでは求められないんですね…。

制作会社経営者のための法律相談ガイド

  • 弁護士もアウトリーチ活動…!たぶんこの本の記事もそういった活動のひとつなのかしら…。ありがたや🙏
  • 弁護士の強みはトラブルを知っていること …なるほど、これはたしかに…。
  • 結構いろんなところで相談会をやってるんですね。覚えておきます…φ(・

連載

Personalization X オムニチャネル

  • あ…なるほど…みんなすぐに情報を確認できるスマホを持った時代だから、チャネル別で考えることががあんまり意味をなさなくなってきてると…。
  • 顧客体験として考えていったほうがいい、というのはちょっと納得です。
    • 説明や追跡がしづらいけれども…わかる…。
  • うまいことやってるなーというところは、たしかにチャネル別っぽくないですね…。
    • オンライン・オフラインがミックスしているイメージ…。
  • 連続した体験の提供、時間の短縮、情報の付加、店舗での認知率の向上…複数のチャネルで接触することを前提にしてるから、表現?の幅を広げられるってことですかね…。
    • うまく使ってるところはたしかにこうだなぁ、と感じました。
  • ポイントの整理のシート、結構いいかも。

文章力を上げる鉄板ルール 生成AI時代に問われる文章技術、それは適切な「接続詞」の活用だ

  • 接続詞は分岐案内…たしかに。ちょっと覚えておきたい感じでした…!

どうする要件定義 技術要件への向き合い方

  • ひどい例だw でもありえそう……。
  • 技術用語は使わざるを得ないので、それの用途とかを説明しながらやる、みたいなことはよくやりますね…。
  • ただ、相手に聴いてもらえないといけないので…受諾とかだと……大変そう……。
  • 自分の場合は社内での開発だったから、ここまで大変にはならなかったですが…制作会社とクライアントだと、もっと大変でしょうね…。
  • 案件最初で、協力してよいものを作っていきましょう、的な合意をなんとか作れるといい感じなのでしょうか…。
  • この記事、おもしろいかも。
    • クライアントサイドと制作者サイドでそれぞれこの問題の解決策を模索してる!

ECサイト業界研究 ECと法律

  • うわあ…生々しい……。事件簿、いいかも…。

ど根性ディレクションコンプライアンスの重要性

  • 法令遵守はわかりますが……意識を高める、というだけだと難しそう……。
  • 法令遵守」とか「コンプライアンス」という言葉をことあるごとに出して、つい、数字に追われてしまうようなときでも、ちゃんと考慮する雰囲気を会社内に作っておこう、みたいな感じでもあるのかな…。

データのミカタ ステマに関する景品表示法改正は誰もが無縁ではない

  • なるほど、割と依頼してくるんですね……。
  • グラフを見てると、たしかに人ごとじゃない感じがスゴイですw

知的財産権にまつわるエトセトラ 法的な問題がないのに叩かれるコンテンツ

  • この号の特集にあった最初のほうの図のとおりかも。
  • 法律、契約、職業倫理、感情
    • どこで問題にしているかを意識したほうがちゃんと話せそう感。

コラム「Webと法律」

  • デザインデータ…うーん、なるほど…。
    • 事前にちゃんと話しておきましょう、というのが一番ですね。
  • GDPR……大事だとは思う……。
    • 罰金がすげーのは………ううむ………。

その他

  • 広告がきれいですね…。
  • 記事の前に目次に載っていない関連のコンテンツもある…?
  • この本、紙で読むようにデザインされてそう。
    • 電子だと、結構読みづらい…。

「良いコード/悪いコードで学ぶ設計入門」読書会 第22回を開催しました

「良いコード/悪いコードで学ぶ設計入門」読書会 第22回 を開催しました。

academist-reading.connpass.com

みんなで書いたホワイトボード

「良いコード/悪いコードで学ぶ設計入門」読書会 第22回 ホワイトボード

感想・気づいたことなど

  • 設計しないと…と何度も書かれてましたが…この章で初めて「変更容易性の工場のための」が省略されていたことが明かされて、自分はびっくりしてたんですが…本の最初のほうでガッツリ品質特性を書かれると、読み始めることが困難だったんじゃないかという意見が出て、これはなるほど、と思いました。
  • 「木こりのジレンマ」のたとえ、あんまりビシッとハマってない気がするんですが…。
    • チームメンバーに説明するときによく使ってますという方もいて、なるほど…と思いました。
      • 中で説明したいことについては、自分もよくわかるので、やっぱり自分も使いますかね…。
  • 技術的負債は、問題としても顕在化してないので、工数を確保しにくい…と切実な声が出ました。自分もめっちゃそう思ってます…。
    • この章の後半(次回予定の箇所)にめっちゃ期待してます!
      • (すでに読んだので、めっちゃやる気になってたりしますがw)
  • 今回読んだところ、全体的になにかの発表のときのスライドだったかな?という印象でした。
    • 本でよく読むと、説明の仕方や図がイマイチなところがあったりと…。
    • とはいえ、説明したいことはわかるので…よいのかな、と思いました。

運営としてのふりかえり

KPT方式で。

Keep

  • 時間前に会場を開けておけました。
  • 常連の方がきてくれました!
  • リピートしてもらえてます…!常連になってもらえるとうれしい…。
  • あんまり話すことにかな…と思ってたのですが、案外いろいろしゃべれて、盛り上がったと思います。
  • GWで、次回をいつにするのか迷っていたのを、最後に相談できてよかったです。

Problem

  • ちょっと時間をオーバーしてしまいました。
    • 5分程度だったので、まぁヨシとさせてください…。
    • またでした…。

Try

  • 引き続きがんばります…!

おわりに

参加してくれたみなさん、ありがとうございました! あとでざっと見直しても、一人で読むより圧倒的に気づくことが多いので、今後も継続してやっていきたいと思います!

参照

良いコード/悪いコードで学ぶ設計入門 15章のメモ

gihyo.jp

良いコード/悪いコードで学ぶ設計入門読書メモです。

長いので章ごとにしてます。

15 設計の意義と設計への向き合い方

15.1 本書はなんの設計について書いたものなのか

  • 設計とだけずっと書いてあったけど、その設計変更容易性の向上を目的としたものだったのか…。
    • 本のタイトルに入れてもらいたい気持ちもあります…。
    • はじめにを見直したけど、そこにも書いていなかったです。

15.2 設計しないと開発生産性が低下する

  • セクションタイトル、設計しないとだけだと足りない気持ち。本文のように変更容易性がほしいような…。

15.2.1 要因1:バグを埋め込みやすくなる

  • 漏れやすい、勘違いしやすい…わかります><

15.2.2 要因2:可読性が低下する

  • うーん…15.2.1と同じことをいっているような……?

15.2.3 木こりのジレンマ

  • これ、刃を研ぐ時間がどれくらいかによると思うんです…。
    • 研師に出して、1週間かかるとか言われたら、場合によっては待てないかもしれない…。
    • 自分で30分研ぐだけなら、やりそうだし…。
  • 木こり、そんなに急いで仕事をしているイメージがないし、自分の成果が収入に直結してるから、研ぐだろっていう違和感が…。
  • 木こりを雇っている
  • あんまこのたとえ、好きじゃないや…。

15.2.4 一生懸命仕事した感覚だけが残って生産性は悪いまま

  • 言いたいことはわかりますが………。

15.2.5 国家規模の経済損失

  • 1人1日3時間…!例えが極端過ぎません…?
    • 8時間労働のコードをどれくらい書いてるかって言ったら…6時間あったらいいほうでは…?
    • とすると、コードを書いている時間の半分以上持っていかれている……。
    • …でも、おそらく……技術的負債が蓄積しているときは、測れていないし、測れないと思います…。
    • …と書いてきて、ちょっと大げさだけど、最終的には案外あってるのかもなぁ…と思えてきました。
  • 複雑で混乱したロジックがあると、もっと混乱した…
    • わ、わかる (T_T)
  • 国家規模で集計すれば、国家規模の損失になるのは…

15.3 ソフトウェアとエンジニアの成長性

  • ソフトウェアの成長性
    • 生産性の言い換えな気もしますが、ちょっとワクワク感を感じるかも?

15.3.1 エンジニアにとっての資産とは何か

  • アレなコードをなんとか使うためにアレな工夫をしても…ということでしょうか。
    • わかる(T_T)

15.3.2 レガシーコードに人は引きずられやすい

  • 既存の動いているものがエライと思っていて、再検討なしにコピーしちゃうときありますもんね…。
  • ああ、たしかにレガシーコードと気づくのにはスキルが要りますね…。

15.3.3 レガシーコードは高品質設計を妨げる

  • レガシーコードは極めてアンバランスでトリッキー
    • これはたくさん向かい合ってきての実感でしょうか。
    • 自分も実感はありましたが、こんなにしっくりくる言葉に…!

15.3.4 レガシーコードは開発工数を減少させる

  • タイトルを見て、? ってなりました…。
    • 必要な作業量のことを工数だと思ってて、思ってたことと反対のタイトルでした。
  • レガシーコードのお守りのせいで、本来の開発に割ける時間が減っちゃうって意味でした。これはめっちゃわかります…!
    • これのせいで、スキルを伸ばせなくなる!というのも、まぁ、なるほど…。

15.4 課題を解決する

15.4.1 課題が見えないとそもそも設計する意識が生まれない

  • 「知覚できなければ」と言いたいのはわかりますが……ううむ……。

15.4.2 知覚容易な課題と知覚困難な課題がある

  • 技術的負債は見えないマイナスの価値…。
    • わかる…。どうやって説得したもんか、みたいな位置ですよね。

15.4.3 理想形を知ってはじめて課題を知覚できる

  • 突然の空手ですが…いいこと言ってますね!
    • 理想的な形をちゃんと描いてみるのは、やったほうがよさそうです。
  • クソリプかもですが…
    • 矢印の長さは揃えてほしいですね…。
      • 数学とか物理では長さが値の大きさを表してたりしますから…。
    • 相手を地面に対して平行に、自分より遠ざけようとしている前提をちゃんとしたほうが…。
      • 殴った威力だったら、接触面に垂直ならよさそうですし。
        • 空手の正拳突きは、押し返されないように足腰も使ってたりしてそうなので、結局まっすぐ打つのがいいと思ってますが、ここの図ほど簡単じゃないのではないのかなって思いました…。

15.4.4 変更容易性を比較できないジレンマ

  • せやな…。うまく表現するのが難しいですよね…。

15.5 コードの良し悪しを判断する指標

  • メソッド行数とかいろいろありそうですが…みんな、普段どんなものを指標にしているんでしょう…?
    • 静的解析ツールを入れていますが…可視化まではやってません。
    • 見てたら結構rubocopにありますね…。全体を対象にした警告数をメトリクスにしてもいいかも。
  • 整地部…!この活動いいですね…。

15.5.1 実行可能コードの行数

  • スコープごとに上限を設定するとたしかに良さそうです。
  • rubocopにありました!

Column クラスを分割すると読みにくくなる?

  • なるほど…分割した先が信頼できなければ、分割した先を気にしなくてはならず、それならファイルがまとまってたほうが読みやすいだろ?と…。
  • 適切に小さく、ちゃんとした名前で分割して、十分にテストしとけってことですね。そうすれば忘れちゃえるよ、と!

15.5.2 循環的複雑度

  • rubocopにありました!

15.5.3 凝集度

  • 度とはついていますが…
  • ABCでもいいかしら…。これならrubocopにあるし。

15.5.4 結合度

15.5.5 チャンク

  • rubocopのMetrics/MethidLength、Metrics/BlockLength、reekやflayの警告でも出るようです。
    • flayは知らなかった。コードの類似性を見てくれるんだって。めっちゃ、よさそう!

      github.com

15.6 コード分析をサポートする各種ツール

15.6.1 Code Climate Quality

- - 自分たちで揃えるより楽かなぁ、入れてみようかなぁ…。 - codeclimate.com

15.6.2 Visual Studio

  • Rubyで使えるのかなぁ…。だったら試してみたいところだけれども…。

15.6.3 Understand

  • 初めて聞きました。品質改善に集中的に取り組むときにだったら入れてもいいかも…。

Column シンタックスハイライトを品質可視化に利用する

  • なるほど…コードレビュー用にシンタックスハイライトの色合いを変えるとかしてみたい気持ちになりました。
    • 普段この色だとどうなんだろう…?

15.7 設計対象と費用対効果

15.7.1 パレートの法則(80:20の法則)

  • どうやってあぶり出し方たもんか……。
    • 変更が多いところを改善するとか、変更に合わせて少し改善を入れるとか、そういうことですかね…。

15.7.2 サービスの中心的領域、コアドメイン

  • 時間、有限ですしね。

15.7.3 重点設計対象の選定にはビジネス知識が必要

  • うーん、何をすればいいとか書いてあるわけではないんですね…。
  • 自分がやってるのは、運用してるひとにいろいろ訊いて、自分が詳しくなることとか、かなあ…。
    • ドメインエキスパートがいないことが多かったので…。

15.8 時間を操る超能力者になろう

  • おもしろい言い方…!
    • 操るための工数は…コードのメトリクスの悪化とかよく言われている値からの乖離とかから説明して得る感じですかねえ…。
    • 操るぞ!という気概を持って、事に取り組むのはいいことな気がしてきました!