Player FM - Internet Radio Done Right
113 subscribers
Checked 4y ago
Added seven years ago
内容由iteration podcast, John Jacob, and JP Sio - Web Developers提供。所有播客内容(包括剧集、图形和播客描述)均由 iteration podcast, John Jacob, and JP Sio - Web Developers 或其播客平台合作伙伴直接上传和提供。如果您认为有人在未经您许可的情况下使用您的受版权保护的作品,您可以按照此处概述的流程进行操作https://zh.player.fm/legal。
Player FM -播客应用
使用Player FM应用程序离线!
使用Player FM应用程序离线!
Principles in Refactoring
Manage episode 230421565 series 1900125
内容由iteration podcast, John Jacob, and JP Sio - Web Developers提供。所有播客内容(包括剧集、图形和播客描述)均由 iteration podcast, John Jacob, and JP Sio - Web Developers 或其播客平台合作伙伴直接上传和提供。如果您认为有人在未经您许可的情况下使用您的受版权保护的作品,您可以按照此处概述的流程进行操作https://zh.player.fm/legal。
Chapter 2 Principles in Refactoring
A weekly podcast about programming, development, and design through the lens of amazing books, chapter-by-chapter.
- Define Refactoring
- “If someone says their code is broken for a couple days while they are refactoring =, you can be pretty sure they aren’t refactoring.
- Adding Features Vs Refactoring
Why should we refactor?
- Code rot - overtime the code decays - rushed or poorly executed changes
- Regular refactoring helps keep things in shape
- Makes things easier to understand
- (Delegating issues in clean codebase vs rough)
- Refactoring helps find bugs
- Refactoring helps us work faster long term - cleaning your workspace
- Over time adding new features is easier
Getting buy in for refactors:
- Don’t tell your manager / client
- Build it into your estimates
- You are being paid for your expertise
- be confident in somewhat hiding the implementation. (Depends on your role)
When to refactor:
- Prepatory Refactoring
- Comprehension refactoring
- Long term refactor - Ech small change leaves everything is a still working state, not just “up to date”
- In code reviews
When to not refactor:
- If the code is working fine and it doesn’t need to be changed
- If it works like an API
- When it will slow down an essential new feature.
Legacy Code
Refactoring Tools for future episodes?
- Writing Ruby Gems
- Renovate Bot
Picks
- JP: Free Event Tickets
- John: Eero wifi router
78集单集
Manage episode 230421565 series 1900125
内容由iteration podcast, John Jacob, and JP Sio - Web Developers提供。所有播客内容(包括剧集、图形和播客描述)均由 iteration podcast, John Jacob, and JP Sio - Web Developers 或其播客平台合作伙伴直接上传和提供。如果您认为有人在未经您许可的情况下使用您的受版权保护的作品,您可以按照此处概述的流程进行操作https://zh.player.fm/legal。
Chapter 2 Principles in Refactoring
A weekly podcast about programming, development, and design through the lens of amazing books, chapter-by-chapter.
- Define Refactoring
- “If someone says their code is broken for a couple days while they are refactoring =, you can be pretty sure they aren’t refactoring.
- Adding Features Vs Refactoring
Why should we refactor?
- Code rot - overtime the code decays - rushed or poorly executed changes
- Regular refactoring helps keep things in shape
- Makes things easier to understand
- (Delegating issues in clean codebase vs rough)
- Refactoring helps find bugs
- Refactoring helps us work faster long term - cleaning your workspace
- Over time adding new features is easier
Getting buy in for refactors:
- Don’t tell your manager / client
- Build it into your estimates
- You are being paid for your expertise
- be confident in somewhat hiding the implementation. (Depends on your role)
When to refactor:
- Prepatory Refactoring
- Comprehension refactoring
- Long term refactor - Ech small change leaves everything is a still working state, not just “up to date”
- In code reviews
When to not refactor:
- If the code is working fine and it doesn’t need to be changed
- If it works like an API
- When it will slow down an essential new feature.
Legacy Code
Refactoring Tools for future episodes?
- Writing Ruby Gems
- Renovate Bot
Picks
- JP: Free Event Tickets
- John: Eero wifi router
78集单集
所有剧集
×Welcome to Iteration, a podcast about programming, development, and design. John Intro — My name is John and I am a software developer for a home services startup. JP Intro — Hi, I'm JP and I am a software developer. What makes a good 1:1 (IC perspective)? JP a manager who listens JP clear action items for problems What makes a good 1:1 (Manager perspective)? John When reports are honest about motivations (I want more money, etc) John Clear feedback about my management What makes a bad 1:1? JP when 1:1s just become another medium for standup updates JP when 1:1s become a way for your manager to micromanage Format What do you talk about? Basic framework John follows: private running doc between manager and report, either party can always add to it, reviewed on a regular cadence. I've found every 2 weeks to be really effective. This meeting is for building trust, context, sharing progress on goals, professional development things like that. Principles / concepts Focus on the report — 1:1's are primarily for the report, the employee, not for the manager or the company. 70/30 — Manager should be 70% listening less than 30% talking. Honesty — be direct. Forbidden conversations. Objective — Do the work to find objective examples, provide numbers and letter grades. Flexible — Don't overthink or over structure, let it flow, let report guide conversation Moneyball firing clip Picks John: https://www.chia.net/ JP: Tailwind is coming out with official React support!…
Welcome to Iteration, a podcast about programming, development, and design. John Intro — My name is John and I am a software developer for a home services startup. JP Intro — Hi, I'm JP and I am a software developer. Context: John ran an agency for a couple years with a few developers + Designers, now runs a team of 12(ish) developers + Designers Few Topics IC vs Manager Code on the side only to show things Not coding for production Code outside of your core code Right sizing a team Systems Thinking "Stocks + Flows" (Slack) Mythical Man Month False premise: More heads = faster results Remove bottlenecks Break up the work Kitchen Metaphor Context + Documentation Safety + Empowerment Permission + Trust Access Leading by example "Law of the lid" Don't scar on the first cut Forbidden Conversations / honesty Picks John: https://handmirror.app/ JP: https://freezingcam.com/…
Welcome to Iteration, a podcast about programming, development, and design John has been asked: When I perform a google search, what happens? Be as specific and accurate as possible including every layer of technology. Can you tell me what Indexes are and what they do? What is CORS? Questions JP has been asked: What is the difference between something like SQL and Mongo - what are the trade offs? How does the JS bridge work in React Native? Describe what Redux is for and how you'd implement it in a React project Maybe some from our own? If you could add one feature or change to the Rails framework what would it be? How do feel about testing? How do you think about testing? When does it make sense to write tests? If I have a really huge model, let's say 500+ lines, how would you go about refactoring it? Example link: https://github.com/discourse/discourse/blob/master/app/models/post.rb Picks JP: https://tuple.app/ I used this to pair with Joe and it was SICK John: YNAB ( https://www.youneedabudget.com/ ) Different approach to budgeting that sucks less…
NOTE THIS IS A RE-UPLOAD AS THERE WAS ISSUES WITH OUR PREVIOUS UPLOAD > Welcome to Iteration, a podcast about programming, development, and design. * John Intro — My name is John and I am a software developer for a home services startup. * JP Intro — Hi, I'm JP and I am a software developer. # Questions * What is your testing philosophy? * Why work on that team specifically? Why are you interested in this job? * What kind of problems he like's to work on? * What are some challenges with maintaining a public api? * If I was your manager, what can I do to get the most out of your contribution? What do you need from me to succeed as a developer? ### Picks * John M1 MacBook — So throughly impressed * JP - [https://github.com/procore/handcuffs](https://github.com/procore/handcuffs)…
Welcome to Iteration, a podcast about programming, development, and design. https://www.planview.com/resources/guide/introduction-to-kanban/kanban-vs-scrum/ AGILE!!! SCRUM!!! KANBAN!!! Different Tools Jira Trello John Asana John Github (issues + projects) John Zenhub John Pivotal Tracker Notion John Special mention: Canny.io → https://main-street.canny.io/admin New Blood Linear App: https://linear.app/ Height App: https://height.app/ (private beta) Monday? I always see ads for this on youtube: https://monday.com/ BASECAMP Picks JP: https://martinfowler.com/articles/feature-toggles.html John: https://supabase.io/ (Open Source Firebase) https://elainewherry.com/2012/06/26/the-recruiter-honeypot/…
E-commerce Episode John: Welcome to Iteration, a podcast about programming, development, and design. John Intro — My name is John and I am a software developer for a home services startup. JP Intro — Hi, I'm JP and I am a software developer. What is e-commerce? Build vs. Buy (roll your own vs. e-commerce software) Nitty-Gritty How to model purchases Model Payments How to test payments Gotchas when building e-commerce Discounts Sales Coupons Refunds Inventory vs digital goods Headless vs “full stack” Stacks / Services Inventory and More (full stack) Shopify BigCommerce Magneto Solidus Spree Simple / digital only Instagram + Paypal Gum road Saas Solutions Stripe Checkout Paddle Fast Spring Chargify https://recurly.com/ Picks JP: https://hotwire.dev/ (hehe) John: https://linear.app/ References Acts as shoping cart gem Pay gem Foundation…
Approaches to Building Apps Severless (Lambda functions) PWA (progressive web apps) Headless (Ecom / cms) Contentful Shopify Tech Trending Upwards E-commerce (up 37% from last year) Artificial Intelligence (AWS sagemaker, GPT-3) Voice search 66million smart speakers - 1/3 27% of mobile searches are voice based AMP'd Apps will continue to ruin the internet Chatbots JP: I personally hate these things. Just get me to a customer service rep ASAP Picks JP: https://baratza.com/grinder/encore/ John: A conversation with GPT-3…
John: Welcome to Iteration, a podcast about programming, development, and design. John Intro — My name is John and I am a software developer for a home services startup. JP Intro — Hi, I'm JP and I am a software developer at a small analytics startup Our 2020 Goals Episode → Link ✅ 2020 Developer Goals 2020 Review JP Goal 1 (JP): Build Elixir App: (C+) I did build a really quick proof of concept Rust API that spits out some JSON I also followed a tutorial for a full stack Golang app Goal 2 (JP): System Design (F) Did not read the books that I wanted to read Goal 3 (JP): Algorithms - (C+) Just haven't had the time - but I have reviewed some array based algorithms FWIW John Goal 1 (John): Blog More (C+) (12+ posts) Goal 2 (John): (F) System Design (Nope) Goal 3 (John): JavaScript (B+) 2 Courses, built way more shit in JS Stimulus Mainly Goal 4 (John): Focus 💯 (Closed agency, no more clients, doubled down on what I am good at) Top 2020 Trends (From John) Remote Work 😷 Remote jobs used to have a requirement of having remote experience... now everyone has this experience Commercialization of Open source 🤑 "Open source" that's also a product / company https://www.gatsbyjs.com/ https://nextjs.org/ (Vercel) https://www.cypress.io/ https://www.sanity.io/ https://github.com/mperham/sidekiq Even Microsoft acquisition of Github and continued changes there VS Code → Atom "Niche" frameworks 🍾 https://svelte.dev/ https://github.com/alpinejs/alpine This is Tailwinds' go-to for a JS solution bridgetown "Hey" made server rendered sexy again 👋 JavaScript continued to eat the world 🍽️ Vue 3 added a composition API that's very similar to React Hooks Low Code / No Code ✨ https://bubble.io/ https://pipedream.com/ https://stacker.app/ Data warehousing 🤓 https://www.tableau.com/ https://mode.com/ https://looker.com/ Picks JP: https://www.rrauction.com/preview_gallery.cfm?Category=449 John: Rails starters: https://jumpstartrails.com/ — https://bullettrain.co/…
John: Welcome to Iteration, a podcast about programming, development, and design. John Intro — My name is John and I am a software developer for a home services startup. JP Intro — Hi, I'm JP and I am a software developer at a small analytics startup https://macwright.com/2020/05/10/spa-fatigue.html Topics / Guiding Questions What's a SPA? From the article The main UI is built & updated in JavaScript using React or something similar. The backend is an API that that application makes requests against. The more techincal one: https://developer.mozilla.org/en-US/docs/Glossary/SPA An SPA (Single-page application) is a web app implementation that loads only a single web document, and then updates the body content of that single document via JavaScript APIs such as [XMLHttpRequest]() and Fetch when different content is to be shown. This therefore allows users to use websites without loading whole new pages from the server, which can result in performance gains and a more dynamic experience, with some tradeoff disadvantages such as SEO, more effort required to maintain state, implement navigation, and do meaningful performance monitoring. Why do developers choose SPAs? Do end-users care about SPAs? What SPAs have you worked on / maintained? 0 — When should you reach for a SPA? That's the right use case: Desktop app to the web. Spotify, Figma, photopea.com Breaks REST might be a good time to consider Community What's wrong with this SPA's? Increased complexity — Development and deployment Often times: 2 repositories, 2 languages or frameworks (Rails + Vue) (Node + Angular) (Rails + React) SEO + Speed — Have to do "Server Side Rendering" This reminds me of the light switches for "Smart" light bulbs. You've increased the complexity by a factor of 10 to get the exact same results. Maintainability? Stability? If not a SPA then what? (Is this a different Episode?) What's good about server rendered? How much you get for free Async fetching State management URL's just work Strong Conventions Stable minimal maintenance What's bad about Server Rendered? Page Reload Can feel clunky Less Reactive Mobile App — Now what? SPA lays a stronger groundwork What's good about SPA's Benefits are for the user Developer Ego's Data foundations Breaks CRUD Community Pushing technology forward is a good thing. What's bad about SPA's How much of a pain in the ass it is to Manage URL's Complexity — Front end + Back end Authentication Image Upload Multiple API endpoints for a single page State is way harder in a SPA Debugging Closing Thoughts SPA's are great when you are breaking "REST / CRUD" SPA's are great when you need multiple consumers of the same data This is highly personal, you gotta go with what you love. WiFi Picks John — Distraction Free Phone from the book Make Time Mobile: Uninstall all "Infinity Pools" put "Parental controls" on for the rest. 3.5 hours down to 1 hour screen time. So much time back. Switched out twitter for Kindle. Other tip: Instagram Threads — only the shit you care about with no ads Desktop: https://selfcontrolapp.com/ — JP - https://railsnew.io/…
In this episode we dive deep on tech stack choices, why they matter, how to choose one, when tech stack doesn't matter and when it makes all the difference in the world.
Back from break: In this episode JP + John cover all kinds of topics. Balancing life with a baby, testing, API dependencies and more.
JP: Welcome to Iteration, a podcast about programming, development, and design. JP Intro — Hi, I'm JP and I am a software engineer at an analytics startup. Today, I am joined by John: John Intro — My name is John and I am a software developer based in Los Angeles CA Today's topic The "Codeless" movement, otherwise known as "Low Code / No Code" Said another way: Is Bubble and GPT-3 coming to take all of our jobs? We aren't talking about "Serverless" (Ex: Firebase / Aws Amplify / Parse) — Could be a good future episode. NOT tools like Auth0 or Twillio This is a "Full Stack" — No code app development framework in the cloud. WYSIWYG for "Apps" This isn't software! Popular Codeless tools Full "App" Development https://bubble.io/ (Most Powerful, widely used) https://www.appsheet.com/ https://www.glideapps.com/ https://thunkable.com/ Internal Tool replacements — Kind of mini-modern salesforce or filemaker clones Airtable Retool Smartsheet Notion Quickbase Domain Specific Codeless Shopify ← eCommerce Sharetribe ← Build a Marketplace App Substack ← Paid Newsletters Mighty Networks ← Paid Communities Podia ← Sell online courses So so many more Upsides of Low Code Low Code / No Code is an incredible tool for going from 0-1. All Notes Downsides of Low Code Low Code / No Code is most ideal for basic CRUD or internal simpler tools. Reading, updating and managing listings of data. Or — Very Domain specific (Shopify for eCommerce) It can be very hard to maintain, since you don't "own" your stack. Very very expensive to scale (Still cheaper than a team of Devs) Tons and tons of gotchas John's Opinion: Prototype + Build V1 of everything you can with no-code or off the shelf systems. Get things in customers hands. Biggest Issue — Low Code doesn't fix the Hard Part of Software Notes Other thoughts regarding of Low code Non tech sees code as "Barrier" not "Force Multiplier" Often times the time saved is actually due to the compromises made with a low-code / no code tool. Examples of compromises include: Recommendations for Using Low Code Tools Accept the limitations Spending too much time trying to solve for nit-picky edge-cases is likely to be a time suck here. Low-code / no-code will likely have rough edges and performance issues. Just embrace the hackyness. Don't ignore best practices of user interviews, research and domain design. Just because your not "coding" doesn't mean you shouldn't do your homework and have confidence before building. It's very easy to waste time building the wrong thing. Think about the data and lock in Where does data live? Is it secure? is it backed up? Is it in a silo? Can it be migrated / exported? Popular Codeless Resources https://www.nocode.tech/ (Community and resource list) https://zeroqode.com/ (Templates — Literally Buy an Airbnb clone for $300) Good Articles / Podcasts on Low code / no code Ryan Hoover: The Rise of No-Code Podcast: Going Codeless: Is this the way of the future? Forbes: The Low-Code/No-Code Movement: More Disruptive Than You Realize Picks John — Lighthouse Chrome Dev Tools JP - https://github.com/kelseyhightower/nocode…
Welcome to Iteration, a podcast about programming, development, and design. John's blog post on the topic Picks JP: Siema Slider John: Rough Notation JS
Welcome to Iteration, a podcast about programming, development, and design. This week we talk through the most common abbreviations in software. For a whole complete list and discussion — visit this link Picks John: Teladoc JP: https://github.com/scenic-views/scenic Links JP on Twitter John on Twitter…
Today's topic: Onboarding into a new codebase As a new hire / contractor for a freelance project From JP: Reviewing other people's PRs on a new codebase Submitting your first PR Understanding how data flows through the app I've found that the organization of the code and the quality of abstractions makes or breaks this point Ramping up complexity of feature stories that you can tackle. How do you get there? From John: First — Understand the domain, talk with team, read books, use competitor software, language in that domain. Then — Understand the software Read the Docs, all that you can get your hands on Review closed issues / tickets, try to understand the language /culture of the team Review the tests, this is a good place to start if there is any, especially integration or feature tests that are higher level Find the "God" objects if you can. Write docs as you go, great way to get it into your head Onboarding someone else onto a new codebase From JP Hiring contractors for a project Onboarding new hires Reviewing new hires' pull requests **it's own episode maybe? Code Review?** How do you onboard someone else? I think domain context is important From John Support the advise given above! It's just the reverse First: Domain Context Then — Provide Docs Tests Simple first issue Pair on the onboarding Dev's first PR VS sink or swim Try to demonstrate what tools and process you use in a project Picks JP: https://apps.apple.com/de/app/meeter-fast-call-initiation/id1510445899?l=en&mt=12 John: Rails View Components It's a new pattern in rails to produce reusable front end "Partials" but more abstracted and re-usable. This pattern plus stimulus.js is really magic.…
欢迎使用Player FM
Player FM正在网上搜索高质量的播客,以便您现在享受。它是最好的播客应用程序,适用于安卓、iPhone和网络。注册以跨设备同步订阅。