惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Proofpoint News Feed
云风的 BLOG
云风的 BLOG
Apple Machine Learning Research
Apple Machine Learning Research
Hugging Face - Blog
Hugging Face - Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Google DeepMind News
Google DeepMind News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
雷峰网
雷峰网
B
Blog
月光博客
月光博客
博客园 - 【当耐特】
WordPress大学
WordPress大学
Microsoft Azure Blog
Microsoft Azure Blog
I
InfoQ
The GitHub Blog
The GitHub Blog
Engineering at Meta
Engineering at Meta
Jina AI
Jina AI
博客园 - Franky
MyScale Blog
MyScale Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Last Week in AI
Last Week in AI
B
Blog RSS Feed
H
Help Net Security

Full Stack Radio

153: DHH – Omarchy and Designing Your Own OS on Arch Linux | Full Stack Radio | Episode 153 152: Ben Orenstein - How to Stand Out When Applying for a Job at a Small Company | Full Stack Radio | Episode 152 151: DHH – Building HEY with Hotwire | Full Stack Radio | Episode 151 150: Secret Screencasting Tips & Behind the Scenes of Tailwind CSS 2.0 | Full Stack Radio | Episode 150 149: Choosing a Payment Processor, Radical Icons & W3C Hype | Full Stack Radio | Episode 149 148: Accessible Focus Styles, Tailwind Labs on YouTube, and Secret Projects | Full Stack Radio | Episode 148 147: Surviving GitHub Issues, the Statamic 3 Launch Aftermath, Tailwind 1.8, and Headless UI | Full Stack Radio | Episode 147 146: Launching Statamic 3, GitHub Sponsors, Tailwind CSS v1.7, and Preparing for Laracon | Full Stack Radio | Episode 146 145: Statamic 3.0 and Tailwind CSS 2.0 | Full Stack Radio | Episode 145 143: Rich Harris - Svelte and Defending the Modern Web | Full Stack Radio | Episode 143 142: Jason Cohen - Learning to Hire and Manage a Team | Full Stack Radio | Episode 142 141: Jason Fried - Running the Tailwind Business on Basecamp | Full Stack Radio | Episode 141 140: Evan You - Reimagining the Modern Dev Server with Vite | Full Stack Radio | Episode 140 139: Alex DeBrie - DynamoDB for Relational Database Diehards | Full Stack Radio | Episode 139 138: Tom Preston-Werner - Building Full-Stack JS Apps with Redwood.js | Full Stack Radio | Episode 138 137: Tim Neutkens - Continuing to Innovate with Next.js 9.3 | Full Stack Radio | Episode 137 136: Michael Chan - React Is Not a Rails Competitor | Full Stack Radio | Episode 136 135: Lessons Learned Building Tailwind UI | Full Stack Radio | Episode 135 134: Mark Dalgleish - You Should Be Using Layout Components | Full Stack Radio | Episode 134 133: Sam Selikoff - Building Production-Ready SPAs Fast with Mirage.js | Full Stack Radio | Episode 133 132: Caleb Porzio - Just Enough JavaScript with Alpine.js | Full Stack Radio | Episode 132 131: Ryan Singer - How Basecamp Builds Software | Full Stack Radio | Episode 131 130: David Khourshid - Building Better UI Components with State Machines | Full Stack Radio | Episode 130 129: Evan You - What's Coming in Vue.js 3.0 | Full Stack Radio | Episode 129 128: Alasdair Monk - Scaling CSS at Heroku with Utility Classes | Full Stack Radio | Episode 128 127: Jonathan Reinink - Building Modern Monoliths with Inertia.js | Full Stack Radio | Episode 127 126: James Long - Building Distributed Local-First JavaScript Applications | Full Stack Radio | Episode 126 125: Rob Walling - Choosing the Right Product Idea | Full Stack Radio | Episode 125 124: Leslie Cohn-Wein & Rafael Conde - Designing the User Interface at Netlify | Full Stack Radio | Episode 124 123: Ian Landsman - Marketing and Positioning a New Tailwind CSS Product | Full Stack Radio | Episode 123
144: Gary Bernhardt - TypeScript and Testing | Full Stack...
Adam Wathan · 2020-08-05 · via Full Stack Radio

In this episode, Adam talks to Gary Bernhardt about building Execute Program, why he chose to build it as a full-stack TypeScript application, and the implications using TypeScript has on what you need to test.

Show Notes

Topics include:

  • Why Gary decided to write Execute Program as a full-stack TypeScript application instead of using a Ruby or Python backend like he may have traditionally
  • Do you actually have to write less tests if you have a good type system?
  • What does a good type system give you that tests can't give you?
  • Using io-ts to type check incoming data
  • How to think about structuring your code to best take advantage of the benefits your type system gives you and minimize the need to write tests
  • Pushing conditional logic to the core of your system to reduce the number of tests you need to write at the edges
  • The correlation between type errors and behavioral bugs, and how a type system can help you catch mistakes you don't think to test for
  • Do type errors signal that you're missing a test?
  • Structural vs. nominal type systems, and the benefits of structural type systems like used by TypeScript and Go
  • Best practices for type-checking within a function in a structural type system like TypeScript
  • The power of supporting literal types like true or "active" in addition to traditional types

Links:

Supporting the show:
I decided to stop taking sponsors for the show because I think advertisements are annoying and no one wants to listen to them.

If you do want to support the show, the best way to do it is to purchase one of my products:

  • Tailwind UI, a collection of professionally designed, fully responsive HTML components built with Tailwind CSS.
  • Refactoring UI, a book and video series I put together with Steve Schoger on designing beautiful user interfaces, without relying on a designer.
  • Advanced Vue Component Design, a course on designing simpler, more flexible Vue components that are both more powerful and easier to maintain.
  • Test-Driven Laravel, a massive video course on designing robust Laravel applications with TDD. Learn how to build a real-world application from scratch without writing a single line of untested code.
  • Refactoring to Collections, a book and video course that teaches you how to apply functional programming principles to break down ugly, complex code into simple transformations — free of loops, complex conditionals, and temporary variables.

What is Full Stack Radio?

A podcast for developers interested in building great software products. Every episode, Adam Wathan is joined by a guest to talk about everything from product design and user experience to unit testing and system administration.