Best Software architecture & design Videos
「Software architecture & design」下面有177部被不同的人、在不同月份推荐过的视频。挑的时候先看对象:入门8部,适合还没学过的人;进阶132部,适合已经懂术语的人;普通向20部,按兴趣就能看;更硬的17部,留给想看推导或细节的人。这一类数量最多的是演讲,所以它们的共同点是一位讲者把一个判断讲完,例子是为了撑住这个判断。常出现的频道包括ClojureTV、Confreaks、Strange Loop Conference。目录给这个主题划的范围是:Software architecture and design: object-oriented programming, design patterns, clean architecture, API design, microservices vs monoliths, data-oriented design, versioning, abstraction, simplicity, Alan Kay, Uncle Bob.如果只看三部,就从《RailsConf 2014 - All the Little Things by Sandi Metz》开始,它负责把问题讲出画面;然后看《"Simple Made Easy" - Rich Hickey (2011)》,换一种讲法或例子;最后看《"Making Impossible States Impossible" by Richard Feldman》,留给已经有基础的人。页面按每页24部切开,顺序看的是被推荐跨越了多少个月,不是播放量。每条标题下面那一句是这部片子自己的内容说明,用来区分它在讲定义、过程、演示还是观点。点进去能看到推荐原话、原文链接和适合谁看。看的时候把强烈推荐当成有人明确叫你去看,把引用当成只是拿来举例,把批评留下来对照,不要把每条评论都当成同一力度。

Yehuda Katz - Why Rails is Hard (Railsberry 2012)
Yehuda Katz's Railsberry 2012 talk on why Rails is hard to learn and use.

Sebastian Markbage: Minimal API Surface Area | JSConf EU 2014
Sebastian Markbage explains how React is moving toward a minimal API surface by leaning on language features and patterns instead of dedicated framework APIs.

A Possible Future of Software Development
Sean Parent of Adobe argues that object-oriented frameworks ultimately fail to deliver scalable, high quality software and proposes combining generic and declarative programming instead.

GraphQL: The Documentary
A documentary on how GraphQL came to be at Facebook, featuring its co-creators Lee Byron, Dan Schafer and Nick Schrock.

Cory Benfield - Building Protocol Libraries The Right Way - PyCon 2016
Cory Benfield's PyCon 2016 talk on building protocol libraries that can be reused widely, using the Python Hyper HTTP project as the example.

Unconditional Code • Michael Feathers • GOTO 2018
Michael Feathers' GOTO Chicago 2018 talk on reducing error checks and conditional logic in code.

Why Web Filters Don't Work: Penistone and the Scunthorpe Problem
Tom Scott visits Penistone to explain the Scunthorpe problem, showing why naive web and profanity filters block innocent words.

Elm Europe 2017 - Richard Feldman - Scaling Elm Apps
Richard Feldman's Elm Europe 2017 talk on how to structure and scale large Elm applications, including when to nest messages.

Handmade Hero | Getting rid of the OOP mindset
A short clip of Casey Muratori from Handmade Hero explaining why he rejects the object-oriented mindset and how to move away from it.

The Maximal Graph - Wilker Silva
A Clojure/conj 2019 talk by Wilker Silva on how namespace-qualified keywords and context-free federated names can be used pragmatically for data modeling, drawn from his experience at Nubank.

CppCon 2014: Zaika Antoun "Microsoft w/ C++ to Deliver Office Across Different Platforms, Part II"
A CppCon 2014 talk by Microsoft engineers on how Office delivers a single-source C++ codebase across iOS, Android, Windows and Mac.

Keynote: Flutter (Dart Developer Summit 2016)
Keynote from the 2016 Dart Developer Summit introducing Flutter, Google's toolkit for building mobile apps from one codebase.

Mountain West Ruby 2012 Capability vs. Suitability by Gary Bernhardt
Gary Bernhardt argues that software history moves in reactions to earlier tools, and that new tools are not simply better in every way.

Seminar with Alan Kay on Object Oriented Programming (VPRI 0246)
A long recorded seminar in which Alan Kay discusses object-oriented programming, probably from the mid-1980s.

The Forgotten Art of Structured Programming - Kevlin Henney [C++ on Sea 2019]
Kevlin Henney revisits structured programming, from Go To Statement Considered Harmful to block-structured code and object orientation.

"Agility & Robustness: Clojure spec" by Stuart Halloway
Stuart Halloway shows how Clojure's spec library lets you build programs that are both agile and robust.

Scaling the Linear Sync Engine
A Linear engineer talks about scaling the company's sync engine, which keeps client data local and synchronized.

React Helsinki February 2020
React Helsinki meetup recording featuring a talk on lessons with Apollo GraphQL and Linear co-founder Tuomas Artman on real-time sync for web apps.

Three Beautiful Quicksorts
Jon Bentley walks through three implementations of Hoare's Quicksort, from a dozen-line C function to a series of systematic code transformations that make the program ever simpler and more powerful.

Avoiding Microservice Megadisasters - Jimmy Bogard
Jimmy Bogard presents a post-mortem of a real microservices migration that turned into a slow distributed monolith.

Nicholas Zakas: Scalable JavaScript Application Architecture
Nicholas Zakas of Yahoo discusses architecture for large, modular JavaScript web applications.

"Write a single library to handle all input devices, it'll be easy" they said...
Peter Hutterer's linux.conf.au 2020 talk on creating libinput, the unified userspace input library, and the difficulties of handling the many quirks of input devices.

Gopherfest 2015 | Go Proverbs with Rob Pike
Rob Pike presents Go Proverbs at Gopherfest 2015, a set of pithy aphorisms about Go design such as 'Clear is better than clever' and 'A little copying is better than a little dependency'.

Data-Oriented Demo: SOA, composition
A live-coded demo by Jonathan Blow showing how to get object-system-style expressiveness in a data-oriented way, covering structure-of-arrays layouts and composition.