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部切开,顺序看的是被推荐跨越了多少个月,不是播放量。每条标题下面那一句是这部片子自己的内容说明,用来区分它在讲定义、过程、演示还是观点。点进去能看到推荐原话、原文链接和适合谁看。看的时候把强烈推荐当成有人明确叫你去看,把引用当成只是拿来举例,把批评留下来对照,不要把每条评论都当成同一力度。

RailsConf 2014 - All the Little Things by Sandi Metz
Sandi Metz takes an ugly section of conditional code and refactors it into a few simple objects, bridging object-oriented theory and practice.

"Simple Made Easy" - Rich Hickey (2011)
Rich Hickey's Strange Loop 2011 keynote distinguishing 'simple' (not intertwined) from 'easy' (familiar or near at hand).

"Making Impossible States Impossible" by Richard Feldman
Richard Feldman's elm-conf talk on designing models so that bugs from impossible application states cannot occur, using Elm's compiler and types.

How To Design A Good API and Why it Matters
Joshua Bloch's Google Tech Talk on how to design good APIs and why it matters, with concrete principles and examples.

The Value of Values with Rich Hickey
Rich Hickey's JaxConf 2012 keynote examines what values are and why immutable values matter as information systems grow more complex and data gets bigger.

Overwatch Gameplay Architecture and Netcode
Blizzard's Timothy Ford explains in this 2017 GDC session how Overwatch uses an Entity Component System architecture for layered gameplay.

Solving Problems the Clojure Way - Rafal Dittwald
Rafal Dittwald's Clojure/north talk shows how to move from writing Java-style code in Clojure to thinking in data-driven, functional terms.

Lecture 1A: Overview and Introduction to Lisp
The first lecture of MIT's 6.001 (SICP) with Abelson and Sussman, giving an overview of the course and an introduction to Lisp.

Alan Kay - Normal Considered Harmful
Alan Kay's 2009 UIUC talk arguing that computing is more a pop culture than a science and that ignoring history and fundamentals leads to inferior solutions.

A Philosophy of Software Design | John Ousterhout | Talks at Google
John Ousterhout, Stanford professor and creator of Tcl, presents the ideas of his book A Philosophy of Software Design in a Talks at Google session.

"Uncle" Bob Martin - "The Future of Programming"
Robert C.

Effective Programs - 10 Years of Clojure - Rich Hickey
Rich Hickey's talk at Clojure's tenth anniversary on the kind of programs Clojure is designed for.

Brian Goetz - Stewardship: the Sobering Parts
Java Language Architect Brian Goetz talks at a Clojure conference about the challenges of evolving a mature language like Java while preserving compatibility with existing code and developer expectations.

Ruby Midwest 2011 - Keynote: Architecture the Lost Years by Robert Martin
Robert C.

RustConf 2018 - Closing Keynote - Using Rust For Game Development by Catherine West
Catherine West's RustConf 2018 closing keynote on building a game in Rust and organizing a large codebase.

Hammock Driven Development - Rich Hickey
Rich Hickey's philosophical talk from the first Clojure Conj in 2010.

Jonathan Blow - How to program independent games - CSUA Speech
Jonathan Blow speaks at UC Berkeley's CSUA about how to program independent games.

Ruby Conf 12 - Boundaries by Gary Bernhardt
Gary Bernhardt's RubyConf 2012 talk on testing in isolation without mocking everything.

The Only Unbreakable Law
Casey Muratori's lecture, originally given at the Technical University of Madrid, arguing that Conway's Law is the only viable candidate for a true law of software architecture.

"Simple Made Easy" - Rich Hickey (2011)
Rich Hickey's Strange Loop 2011 keynote separates 'simple' (not intertwined) from 'easy' (familiar or near at hand) and argues that software complexity comes from complecting things.

Spec-ulation Keynote - Rich Hickey
Rich Hickey's keynote on software versioning, arguing that breaking changes are the real problem and that libraries should only grow by providing more and requiring less.

CppCon 2014: Mike Acton "Data-Oriented Design and C++"
Mike Acton of Insomniac Games argues that a program's purpose is transforming data, and shows how common C++ approaches work against that in performance-critical game development.

How I program C
Eskil Steenberg's two-hour talk on his personal approach to writing C, covering code style, structure, naming, pointers and large-project organization.

Object-Oriented Programming is Bad
Brian Will makes the case for procedural programming over object-oriented programming, arguing that OOP's promised encapsulation and decoupling are largely illusory.