技術顧問の和田卓人さんと、技術調査レポートを利用した情報収集の仕方について話しました。 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)
技術顧問の和田卓人さんと、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)
技術顧問の和田卓人さんに、普段どのように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という書籍における軽量プログラミング言語の定義が元ネタ)
技術顧問の和田卓人さんと、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
技術顧問の和田卓人さんと、内部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
技術顧問の和田卓人さんと、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
技術顧問の和田卓人さんと、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
技術顧問の和田卓人さんと、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アクション」です。お詫びして訂正いたします。
技術顧問の和田卓人さんと、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を読んだ
技術顧問の和田卓人さんと、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
技術顧問の和田卓人さんと、次世代のフルスタックフレームワーク、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
技術顧問の和田卓人さんと、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 リソースベースのルーティング
技術顧問の和田卓人さんと、サービスオブジェクト、イミュータブルデータモデルなどについて話しました。 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
技術顧問の和田卓人さんと、表明(Assertion)と例外(Exception)の違いと重複について話しました。 Show Notes: Assertive Programming Design by contract precondition(_:_:file:line:) Programming With Assertions Effective Java 第3版 パーフェクトRuby on Rails【増補改訂版】 unassert-js/unassert power-assert-js/power-assert Mean time to repair Mean time between failures Fail-fast PHP7 で堅牢なコードを書く - 例外処理、表明プログラミング、契約による設計
技術顧問の和田卓人さんと、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の正体と向き合い方 コペルニクス的転回 ゴルディアスの結び目
技術顧問の和田卓人さんと、DDDとRDBの距離について話しました。 Show Notes: データベース設計論 T字形ER―関係モデルとオジブェクト指向の統合をめざして データ中心アプローチ Clean Architecture 達人に学ぶソフトウェアの構造と設計 Object-relational impedance mismatch Object database
技術顧問の和田卓人さんと、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