May 26th, 2021 × #Naming#Editors#Themes
Bike Shedding — Developer Opinions Explained
Wes Bos and Scott Tolinski discuss controversial developer opinions including naming conventions, code editors, themes, exports, and more.
In this episode of Syntax, Scott and Wes bike shed some common developer opinions.
Prismic - Sponsor
Prismic is a Headless CMS that makes it easy to build website pages as a set of components. Break pages into sections of components using React, Vue, or whatever you like. Make corresponding Slices in Prismic. Start building pages dynamically in minutes. Get started at prismic.io/syntax.
LogRocket - Sponsor
LogRocket lets you replay what users do on your site, helping you reproduce bugs and fix issues faster. It's an exception tracker, a session re-player and a performance monitor. Get 14 days free at logrocket.com/syntax.
Mux - Sponsor
Mux Video is an API-first platform that makes it easy for any developer to build beautiful video. Powered by data and designed by video experts, your video will work perfectly on every device, every time. Mux Video handles storage, encoding, and delivery so you can focus on building your product. Live streaming is just as easy and Mux will scale with you as you grow, whether you're serving a few dozen streams or a few million. Visit mux.com/syntax.
Show Notes
04:27 - Event params
- e, evt, ev, or event?
06:36 - CSS variables
- —red or —primary?
09:31 - CSS colors
- https://twitter.com/rem/status/1386694431710007298
- RGB, HSL, HEX?
11:52 - Default exports vs named exports
14:45 - JavaScript import ordering
17:09 - Foo / Bar / Baz in examples
21:18 - Light vs dark themes
24:00 - longVerboseNamesDescribingWhatItIsOrDoes vs x
26:54 - VScode vs WebStorm (IDE) vs Vim
31:12 - TypeScript Generics:
34:39 - Indentation-base syntax
37:37 - Max line length
40:21 - One reduce, vs multiple .map()/flat(),filter()
async function getStatus() {
const res = await sendCommand('AT!GSTATUS');
const result = res.result
.split('\n')
.map((x: string) => x.split(`\t\t`))
.flat()
.filter(Boolean)
.map((x: string) => x.trim())
.map((x: string) => x.split(` \t`))
.flat()
.filter((x: string) => x.includes(':'))
.map((x: string) => x.split(`:`))
.map(([prop, val]: [string, string]) => [prop, val.trim()])
return Object.fromEntries(result);
}
42:50 - index.js files
- https://twitter.com/sevilhelm/status/1386693971112562694
- ComponentName.js vs ComponentName/index.js
- https://twitter.com/rleggos/status/1386694773021552641
48:20 - Ligatures and fancy fonts
50:30 - Regular functions vs anon functions in a variable vs arrow functions
- function hey() {}
- const hey = function() {}
- const hey = () ⇒ {}
52:44 - Explicit return vs implicit return
××× SIIIIICK ××× PIIIICKS ×××
- Scott: Ego Mower
- Wes: Pass-Through Socket Set
Shameless Plugs
-
- Scott: 1: Level Up Tutorials Pro Spring Sale - 50% off annual subscriptions! 2: Github Actions with Brian Douglas
- Wes: All Courses - Use the coupon code 'Syntax' for $10 off!
Tweet us your tasty treats!
- Scott's Instagram
- LevelUpTutorials Instagram
- Wes' Instagram
- Wes' Twitter
- Wes' Facebook
- Scott's Twitter
- Make sure to include @SyntaxFM in your tweets