
texta.fm
By Design and Engineering team at PIXTA
本ポッドキャストに関するご意見・ご感想は、ハッシュタグ #textafm にお寄せください。

texta.fmOct 26, 2020

11. Favorite Technology Surveys
技術顧問の和田卓人さんと、技術調査レポートを利用した情報収集の仕方について話しました。
Show Notes:
- ピクスタ技術ブログ「てくすた」
- パーフェクトRuby on Rails【増補改訂版】
- 10. Server-side JavaScript (2022年7月配信)
- 経営とソフトウェアエンジニアリングの接続
- Technology Radar (Thoughtworks)
- State of CSS
- State of JavaScript
- State of DevOps Report (Puppet)
- State of DevOps Report (Google Cloud/DORA)
- A Brief History of the State of DevOps Reports
- ソフトウェアデリバリーパフォーマンスに関する考察(前編) - State of DevOps 2022では何が示されたのか
- ソフトウェアデリバリーパフォーマンスに関する考察(後編)- Four Keysと向き合うとはどういうことか
- Stack Overflow Annual Developer Survey
- The State of Developer Ecosystem 2022 (JetBrains)
- The Top 100+ Developer Tools 2022 (stackshare)
- The State of Serverless (Datadog)

10. Server-side JavaScript
技術顧問の和田卓人さんと、ECMAScriptの検討中の仕様、サーバーサイドJavaScriptにおける技術選定について話しました。
Show Notes:
- ピクスタ技術ブログ「てくすた」
- パーフェクトRuby on Rails【増補改訂版】
- 8. Class-based Programming
- tc39/proposal-call-this (Stage 1)
- Function.prototype.call()
- tc39/proposal-bind-operator (Stage 0)
- JavaScript Primer
- ECMAScript
- Holistic JavaScript dataflow proposals v2
- JavaScriptを大きく変えうる Dataflow Proposals の概要と論点(Call-this, Pipe Operator)
- tc39/proposal-pipeline-operator (Stage 2)
- F#のPipe operator
- HackのPipe operator
- UniformAccessPrinciple
- Bertrand Meyer (プログラミング言語Eiffelの作者、「オブジェクト指向入門 第2版 原則・コンセプト」の著者)
- tc39/proposal-extensions (Stage 1)
- Sideshow 4. Worse is Better
- Active Recordから考える次の10年を見据えた技術選定
- TypeORM
- Prisma
- Table Data Gateway
- Transaction Script
- GraphQL と Prisma から考える次のN年を見据えた技術選定
- tc39/proposal-decorators (Stage 3)
- tc39-transfer/proposal-function-pipe-flow (Stage 0)

Sideshow 9. Master of Writing Test Code
技術顧問の和田卓人さんに、普段どのようにTDDを実践しているのかを伺いました。
Show Notes:
- 守破離
- CheckingとTesting(cf. Michael Boltonによるブログエントリ)
- 付録C = テスト駆動開発(Kent Beck 著、和田 卓人 訳)収録の訳者解説
- 今回のSoftware Design = Software Design 2022年3月号
- UNIX哲学
- REPL
- さっき未知と既知の話をした = 9. The 20th Anniversary of TDD
- JUnit
- Learning Test(cf. テスト駆動開発の14章、26章)
- 内部品質(cf. 質とスピード)
- プログラマーは怠惰で傲慢で短気 = Larry Wall氏が提唱したプログラマーの三大美徳
- オレってばスゲー(Lightweight Language MAGAZINEという書籍における軽量プログラミング言語の定義が元ネタ)

9. The 20th Anniversary of TDD
技術顧問の和田卓人さんと、Software Design 2022年3月号の第2特集「そろそろはじめるテスト駆動開発」について話しました。
Show Notes:
- ピクスタ技術ブログ「てくすた」
- パーフェクトRuby on Rails【増補改訂版】
- 「自動テストとテスト駆動開発、その全体像」を執筆しました(Software Design 2022年3月号)
- Software Design 2005年2月号
- CVS - Concurrent Versions System
- TDDの勉強会に参加したらSoftware Designに寄稿することになった話
- テスト駆動開発(TDD)とは何か。コードで実践方法を解説します
- テスト駆動開発の過去・現在・未来
- Kent Beck
- Erich Gamma
- OOPSLA
- WEB+DB PRESS Vol.35(2006年10月紙版発売、特設ページ)
- 新訳版『テスト駆動開発』が出ます
- Test Driven Development: By Example
- WikiWikiWeb(C2 Wiki)
- Extreme Programming Explained
- SemanticDiffusion
- Agile Testing Quadrants
- ソフトウェア・テストの技法
- Testing vs. Checking(Michael Boltonによるブログエントリ)
- 5. Accelerate
- Exploratory testing
- xUnit Test Patterns

Sideshow 8. Writing Your Internal DSL
技術顧問の和田卓人さんと、内部DSL、2010年代のプログラミング言語について話しました。
Show Notes:
- Put chubby models on a diet with concerns
- メタプログラミングRuby 第2版
- InternalDslStyle
- 普通のやつらの上を行け(「ハッカーと画家」に収録されているエッセイの1つ)
- Annotation(Java)
- Decorators(Python)
- Cross-cutting concern
- Aspect-oriented programming
- Robert Griesemer, Rob Pike, Ken Thompson(Go言語の作者たち)
- Law of Demeter
- Structural type system
- Nominal type system
- Bundle Side Optimization in Future JavaScript - JSConf JP 2021
- Rome Toolchain

8. Class-based Programming
技術顧問の和田卓人さんと、Observerパターン、オブジェクト指向プログラミングにおけるクラスについて話しました。
Show Notes:
- ピクスタ技術ブログ「てくすた」
- パーフェクトRuby on Rails【増補改訂版】
- チームトポロジー 価値あるソフトウェアをすばやく届ける適応型組織設計
- module Math
- ActiveSupport::Concern
- ActiveSupport::Callbacks::ClassMethods#set_callback
- Rails 7.0: Fulfilling a vision(収録後リリースされた)
- rails/rails-observers
- Observer pattern
- Publish–subscribe pattern
- The Node.js Event emitter
- ロードマップ指向とエコシステム指向
- Trailblazer
- コーディングを支える技術――成り立ちから学ぶプログラミング作法
- Traits: Composable Units of Behaviour
- Matzにっき(2010-11-13)
- Module#mix のアイディアは放棄されました
- 二つのオブジェクト指向とそれぞれのメリット
- Classes - JavaScript

Sideshow 7. Jbuilder was Right
技術顧問の和田卓人さんと、Data Transfer ObjectとDomain Payload Objectについて話しました。
Show Notes:
- 本編 = 7. Fat Controllers and Models
- DTO (Data Transfer Object)
- DPO (Domain Payload Object)
- LocalDTO
- Remote Method Invocation
- Metaprogramming
- Reflection
- DDD_Aggregate
- drapergem/draper: Decorators/View-Models for Rails Applications
- Forwarding
- DAO (Data Access Object)
- Expression Language
- Performance and N+1 Queries: Explained, Spotted, and Solved
- The Open Session In View Anti-Pattern
- ActiveRecordのjoinsとpreloadとincludesとeager_loadの違い
- Plain old Java object
- AnemicDomainModel
- Decorator/Presenter
- The Onion Architecture : part 1
- rails/jbuilder: Jbuilder: generate JSON objects with a Builder-style DSL

7. Fat Controllers and Models
技術顧問の和田卓人さんと、Fat Controller/Model問題とその向き合い方について話しました。
Show Notes:
- ピクスタ技術ブログ「てくすた」
- パーフェクトRuby on Rails【増補改訂版】
- Team Topologies book translated to Japanese
- 4. Not Just ORM
- 48. GoFデザインパターンとDI (前編) w/ twada
- Pattern-Oriented Software Architecture, Volume 1, A System of Patterns
- Service-oriented architecture
- PresentationDomainDataLayering
- Patterns of Enterprise Application Architecture
- Model View Controller and "Model 2"
- PresentationDomainSeparation
- 3. Low-Code Development
- Changes to test controllers in Rails 5
- TestPyramid
- 質とスピード(2020秋100分拡大版)
- Action Domain Responder
- LaravelでのADR(Action-domain-responder)実装
- V1.3: Request & Response | Hanami Guides
- The Form Component (Symfony Docs)
- 2. The Power of Constraints
- 後藤さんの前の講演
[お詫びと訂正] 本エピソードにて、Ruby on Railsにおけるコントローラーの標準のアクション数について誤りがありました。正しくは「7アクション」です。お詫びして訂正いたします。

6. 1on1 in Public
技術顧問の和田卓人さんと、Four key metricsの計測、技術と経営の接続、Team Topologiesなどについて話しました。
Show Notes:
- ピクスタ技術ブログ「てくすた」
- パーフェクトRuby on Rails【増補改訂版】
- LeanとDevOpsの科学
- 2020 State of DevOps Report
- CTOとして招聘されて1年でDX Criteriaを大幅改善するために追求した唯一の成果指標
- Agile & Lean Metrics: Cycle Time
- Backlog
- Pivotal Tracker
- Jira Software
- DORA joins Google Cloud
- https://cloud.google.com/devops
- Nicole Forsgren
- Insights: Engineering Leader and Organizational DORA Reports · Issue #127
- Four Keys 〜自分たちの開発レベルを定量化してイケてる DevOps チームになろう〜
- CTOの頭の中:技術投資を最適化する
- 財務3表一体理解法
- カナリアリリース
- MTTD vs MTTF vs MTBF vs MTTR
- Service-level objective
- PRINCIPLES OF CHAOS ENGINEERING
- Chaos Engineering に向けてレシピサービスの Steady State を追求する
- d/d/d
- Full Cycle Developers at Netflix — Operate What You Build
- Team Topologies
- QRC Team Topologies-ja
- Value stream
- Team Topologiesを読んだ

5. Accelerate
技術顧問の和田卓人さんと、LeanとDevOpsの科学(原題: Accelerate)について話しました。
Show Notes:
- ピクスタ技術ブログ「てくすた」
- パーフェクトRuby on Rails【増補改訂版】
- LeanとDevOpsの科学
- Accelerate
- Nicole Forsgren
- Jez Humble(「Continuous Delivery」「The DevOps Handbook」などの著者)
- Gene Kim(「The DevOps Handbook」などの著者)
- The Lean Startup
- ヘロヘロScrum
- Jolt Awards
- Jolt Awards の 22年(受賞本リスト)
- Dr. Dobb's Journal
- ITエンジニア本大賞2021
- DORA joins Google Cloud
- 2020 State of DevOps Report
- ajitofm 42: You must unlearn what you have learned
- 質とスピード(2020秋100分拡大版)
- 組織にテストを書く文化を根付かせる戦略と戦術(2020秋版)
- ブランド・エクイティ
- Agile & Lean Metrics: Cycle Time
- d/d/d
- DevOps tech: Trunk-based development
- Feature toggle
- フロー効率性とリソース効率性について XP祭り2017で発表してきた #xpjug
- 稼働率100%をねらってはいけない
- Mob Programming – A Whole Team Approach by Woody Zuill
- Inner source
- Why Software Is Eating the World
- CTOとして招聘されて1年でDX Criteriaを大幅改善するために追求した唯一の成果指標
- DX Criteria

Sideshow 4. Worse is Better
技術顧問の和田卓人さんと、次世代のフルスタックフレームワーク、2020年のピクスタにおける技術的な取り組みについて話しました。
Show Notes:
- Next.js
- PIXTAオンデマンド
- RailsのAPIモード
- GraphQL
- Prisma(謎のDSL、差分マイグレーション)
- Railsのマイグレーション
- Is Prisma an ORM?
- Data Mapper
- Table Data Gateway
- Domain Model
- Prisma ClientにおけるCRUD操作
- 本編 = 4. Not Just ORM
- 過去を知り、未来に備える。技術選定の審美眼 2019 edition
- Lisp: Good News, Bad News, How to Win Big(Worse is Betterの原典)
- イノベーションのジレンマ
- Vercel
- Tailwind CSS
- winebarrel/ridgepole
- k0kubun/sqldef

4. Not Just ORM
技術顧問の和田卓人さんと、Ruby on RailsのActive Recordについて話しました。
Show Notes:
- ピクスタ技術ブログ「てくすた」
- パーフェクトRuby on Rails【増補改訂版】
- レイヤードアーキテクチャ - kawasima
- Pattern-Oriented Software Architecture, Volume 1, A System of Patterns
- Design Patterns: Elements of Reusable Object-Oriented Software
- Hexagonal architecture
- Clean Architecture
- OSI参照モデル
- Alistair Cockburn(「アジャイルソフトウェア開発宣言」の提唱者の1人)
- なぜ六角形なのか: “The hexagon is not a hexagon because the number six is important, but rather to allow the people doing the drawing to have room to insert ports and adapters as they need, not being constrained by a one-dimensional layered drawing.”(https://alistair.cockburn.us/hexagonal-architecture/ より引用)
- Patterns of Enterprise Application Architecture
- Floyd Marinescuのレイヤリングパターン(cf. EJBデザインパターン)
- Kyle Brownのレイヤー(cf. IBM WebSphereエンタープライズJavaプログラミング)
- CoreJ2EEのレイヤーのパターン(cf. J2EEパターン―明暗を分ける設計の戦略)
- Transaction Script
- Domain Model
- Table Module
- Record Set(PoEAA)
- ResultSet, RowSet(Java)
- Service Layer
- Ivar Jacobson(UML設計者の1人)
- ユースケース駆動開発実践ガイド
- Alistair Cockburnの書いたユースケースの良い本
- Table Data Gateway
- Row Data Gateway
- Active Record
- Data Mapper
- リソースベースのルーティング

3. Low-Code Development
技術顧問の和田卓人さんと、サービスオブジェクト、イミュータブルデータモデルなどについて話しました。
Show Notes:
- ピクスタ技術ブログ「てくすた」
- パーフェクトRuby on Rails【増補改訂版】
- Service Layer
- Web Applicationを綺麗に設計するためのMVACという考え方
- Domain-Driven Design: Tackling Complexity in the Heart of Software
- Patterns of Enterprise Application Architecture
- Transaction Script
- Remote Facade
- Inversion of Control Containers and the Dependency Injection pattern
- Dependency injection is not a virtue
- TDD is dead. Long live testing.
- イミュータブルデータモデル(Scrapbox、入門編、世代編)
- 羽生章洋さん(著書に「楽々ERDレッスン」「SQL書き方ドリル」など)
- 佐藤正美さん(著書に「T字形ER データベース設計技法」など)
- データと情報の違い(cf. SQLアンチパターン「監訳者まえがき」)
- Rails is omakase
- 論理設計と物理設計(cf. Database design)
- Single Table Inheritance
- Class Table Inheritance
- SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
- Active Record
- Row Data Gateway

Sideshow 2. Testing Programmers' Loyalty
技術顧問の和田卓人さんと、表明(Assertion)と例外(Exception)の違いと重複について話しました。
Show Notes:

2. The Power of Constraints
技術顧問の和田卓人さんと、Value Object、Immutability、契約による設計、バリデーションなどについて話しました。
Show Notes:
- ピクスタ技術ブログ「てくすた」
- パーフェクトRuby on Rails【増補改訂版】
- ValueObject
- ActiveRecord::Aggregations::ClassMethods
- テスト駆動開発(Kent Beck 著、和田 卓人 訳)
- Functional programming
- 世代別ガベージコレクション
- Understanding Clojure's Persistent Vectors, pt. 1
- 過去を知り、未来に備える。技術選定の審美眼 2019 edition
- Design by contract
- PHP7 で堅牢なコードを書く - 例外処理、表明プログラミング、契約による設計
- オブジェクト指向入門 第2版 原則・コンセプト
- unassert-js/unassert
- Fail-fast
- Defensive programming
- 「かもしれない運転」とは?「だろう運転」がおこす動静不注視の事故
- SelfEncapsulation
- Ruby on Railsの正体と向き合い方
- コペルニクス的転回
- ゴルディアスの結び目

Sideshow 1. The School of OOP
技術顧問の和田卓人さんと、DDDとRDBの距離について話しました。
Show Notes:

1. Software Development in 2003
技術顧問の和田卓人さんと、DDD、データソースのアーキテクチャに関するパターンなどについて話しました。
Show Notes:
- PIXTA技術ブログ「てくすた」
- パーフェクトRuby on Rails【増補改訂版】
- Domain-Driven Design: Tackling Complexity in the Heart of Software
- エリック・エヴァンスのドメイン駆動設計
- Rails 1.0: Party like it's one oh oh!
- Extreme Programming Explained: Embrace Change
- Manifesto for Agile Software Development
- Analysis paralysis
- What is Continuous Delivery?
- オブジェクト指向分析設計
- ピアソンの技術書は書店在庫限りとの見通し。ピアソン桐原社がピアソングループ離脱で(追記あり)
- Patterns of Enterprise Application Architecture
- Table Data Gateway
- Row Data Gateway
- Active Record
- Data Mapper
- Repository
- https://github.com/hanami/model
- https://github.com/typeorm/typeorm
- Convention over configuration