- Видео 17
- Просмотров 55 624
Worst Practices
США
Добавлен 20 янв 2023
What are the *worst* practices in software development that you follow? On this channel we ask many people this question. The truth is that programming is hard, so we all do what works best for us, even if it goes against what's commonly seen as the right thing to do. Along the way, we'll try to have a few laughs and not take it too seriously.
More about the host, Brett Slatkin: I'm the author of the book Effective Python. I'm a software engineer at Google (currently in the Office of the CTO) where I've worked for the past 17 years. See links below to find me on Twitter. This show is in no way affiliated with my employer. Thanks for watching!
*You can also subscribe to this show as a podcast via*
Apple Podcasts:
podcasts.apple.com/us/podcast/worst-practices-in-software-development/id1682107107
Spotify:
open.spotify.com/show/18ECfofpRkjnz4nYL3Mr2k
RUclips Music Podcast:
music.ruclips.net/p/PLuEaGyxs022H3Ki0bB8i043xLjsZ44_Hg
More about the host, Brett Slatkin: I'm the author of the book Effective Python. I'm a software engineer at Google (currently in the Office of the CTO) where I've worked for the past 17 years. See links below to find me on Twitter. This show is in no way affiliated with my employer. Thanks for watching!
*You can also subscribe to this show as a podcast via*
Apple Podcasts:
podcasts.apple.com/us/podcast/worst-practices-in-software-development/id1682107107
Spotify:
open.spotify.com/show/18ECfofpRkjnz4nYL3Mr2k
RUclips Music Podcast:
music.ruclips.net/p/PLuEaGyxs022H3Ki0bB8i043xLjsZ44_Hg
Worst Practices in Software Development: David Fowler has trouble with code templates
In this episode, we hear from David Fowler about his *worst* practice in software development: he can't use a template, scaffolding, or snippets without spending countless hours understanding why every line of code needs to be there. You can find him online at davidfowl
Hosted by: haxor
Thanks for watching!
Hosted by: haxor
Thanks for watching!
Просмотров: 5 136
Видео
Worst Practices in Software Development: Sean Taylor's notebooks are a mess
Просмотров 1,3 тыс.Год назад
In this episode, we hear from Sean Taylor about his *worst* practice in software development: writing data science Jupyter notebooks that he's ashamed to show to other people. You can find him online at seanjtaylor.com. Hosted by: haxor Thanks for watching!
Worst Practices in Software Development: Pamela Fox won't quit vi
Просмотров 5 тыс.Год назад
In this episode, we hear from Pamela Fox about her *worst* practice in software development: not taking the time to learn how to use her tools well. You can find her online at www.pamelafox.org. Hosted by: haxor Thanks for watching!
Andreas Kling is sure it'll work this time
Просмотров 618 месяцев назад
In this episode, we hear from Andreas Kling about his *worst* practice in software development: being sure all the bugs will be fixed in the latest iteration, so there's no need to improve a complex testing setup. You can learn more about SerenityOS at serenityos.org and find him online at awesomekling
Worst Practices in Software Development: Andreas Kling is sure it'll work this time
Просмотров 6 тыс.Год назад
In this episode, we hear from Andreas Kling about his *worst* practice in software development: being sure all the bugs will be fixed in the latest iteration, so there's no need to improve a complex testing setup. You can learn more about SerenityOS at serenityos.org and find him online at awesomekling. Hosted by: haxor Thanks for watching!
Worst Practices in Software Development: Thea Flowers doesn't use package managers
Просмотров 3,1 тыс.Год назад
In this episode, we hear from Thea Flowers about her *worst* practice in software development: copying dependencies directly into projects instead of using package managers. You can learn more about Thea's synthesizer company at winterbloom.com and find her online at thea.codes. Hosted by: haxor Thanks for watching!
Thea Flowers doesn't use package managers
Просмотров 158 месяцев назад
In this episode, we hear from Thea Flowers about her *worst* practice in software development: copying dependencies directly into projects instead of using package managers. You can learn more about Thea's synthesizer company at winterbloom.com and find her online at thea.codes
Worst Practices in Software Development: Mitchell Hashimoto uses a simple code editor
Просмотров 23 тыс.Год назад
In this episode, we hear from Mitchell Hashimoto about his *worst* practice in software development: Using a code editor without "smart" features. You can find Mitchell online at mitchellh.com Hosted by: haxor Thanks for watching!
Mitchell Hashimoto uses a simple code editor
Просмотров 1098 месяцев назад
In this episode, we hear from Mitchell Hashimoto about his *worst* practice in software development: Using a code editor without "smart" features. You can find Mitchell online at mitchellh.com
Worst Practices in Software Development: Mahmoud Hashemi edits system libraries
Просмотров 1,6 тыс.Год назад
In this episode, we hear from Mahmoud Hashemi about his *worst* practice in software development: Modifying system libraries to help with debugging. You can find Mahmoud online at sedimental.org and mhashemi Hosted by: haxor Thanks for watching!
Mahmoud Hashemi edits system libraries
Просмотров 108 месяцев назад
In this episode, we hear from Mahmoud Hashemi about his *worst* practice in software development: Modifying system libraries to help with debugging. You can find Mahmoud online at sedimental.org and mhashemi
Worst Practices in Software Development: Julia Evans doesn't read the documentation
Просмотров 4,6 тыс.Год назад
In this episode, we hear from Julia Evans about her *worst* practice in software development: Not reading the documentation. Be sure to check out Julia's programming zines at wizardzines.com and her website jvns.ca Hosted by: haxor Thanks for watching!
Julia Evans doesn't read the documentation
Просмотров 348 месяцев назад
In this episode, we hear from Julia Evans about her worst practice in software development: Not reading the documentation. Be sure to check out Julia's programming zines at wizardzines.com and her website jvns.ca
Worst Practices in Software Development: Termie doesn't save logs
Просмотров 1,4 тыс.Год назад
In this episode, we hear from Termie about his *worst* practice in software development: Not saving or aggregating server logs. You can find Termie online at termie Hosted by: haxor Thanks for watching!
Termie doesn't save logs
Просмотров 78 месяцев назад
In this episode, we hear from Termie about his *worst* practice in software development: Not saving or aggregating server logs. You can find Termie online at termie
Worst Practices in Software Development: Leah Culver debugs with print statements
Просмотров 3,4 тыс.Год назад
Worst Practices in Software Development: Leah Culver debugs with print statements
Leah Culver debugs with print statements
Просмотров 208 месяцев назад
Leah Culver debugs with print statements
That is not a bad practice , rejecting the defaults that are trying to fit to too many peoples needs is a good idea as a developer
Yeah I used vim primarily up until like 6 weeks ago when I decided to really give cursor a shot. For the first week I really didnt like it because the workflow was so different it felt bad. In the second week of my trial I started grudgingly admitting it might be a bit faster for some types of work. And now six weeks on I really don't think I would ever go back. It took a while to update my workflow and learn to effectively use the LLM (and when to ignore it) but I would say I am probably a reasonable 30% faster with cursor than without, and most of that is to do with the chat session integration rather than the autocomplete which I'm still a little sceptical about tbh. And the thing is these tools are still somewhat in their infancy. They will only get better so I figure I may as well just get used to it now.
Why would that freak anybody out? I like autocomplete only when it doesn't get in my way. AstroNVim is so damned pretty it is hard for me to pass up, but I generally do not miss it when it is missing. In some ways the thing that bothers me the most is autoformat. Honestly it is probably the only thing I would turn off.
What I see is that people aren't that into iterating stuff - especially when many people are involved. They can build something very quick that they know they will not touch in a long time. So they don't build with refactoring in mind because they don't think about doing the maintenance. In other words, they don't see it as they own what they produce. Having no responsibility to make sure there code is clean. For example, if the code to them is shit, then they blame management for not giving them the opportunity.
I love the empty template!
That’s so funny. I assumed because he started programming young that he had hours and hours of programming in front of the computer at a young age - but he only had 2 hours of screen time per week. Jaw dropping.
Reference manual + sample code = best introduction. Long-form discussions of what the thing does are not easily digestible for me. Just show me some stuff that works and I can modify to get my feet wet, along with something I can refer to if I don't know what something I see is.
Print debugging is just a primitive form of a debug/trace log. Nothing wrong with that! Sometimes it's the easiest and fastest way to get oriented vs. the bug, if nothing else, and then you know where to set a breakpoint and step. Source: Many, _many_ years of debugging both my and others' code at work.
When the senior dev takes you on a comedic show 🤣 bruh, what in seven hells is that?
I've gotta second the comment asking for longer episodes. If you really just want to focus on worst practices then this length does still get your point across, but it feels a bit rushed. It feels like you really cut a lot out to get the choice moments condensed into such a short video. It leaves me wishing i could hear more from each guest, because just talking about their workflow in general is way more interesting than I would have thought.
I felt seen and on-notice as soon as he said "sudo <editor> in `site-packages`"
where is the full episode?
This short length is the format I'm aiming for. But if you'd like something longer please tell me more about what you're imagining! Thank you
@@WorstPractices 20-30 minutes would be awesome!
@@RomanBMW +1 to that. Maybe have seperate videos (short and long version) would be great :)
100% agree
This is actually a best practice 😂
This stresses me out because half the business I work at runs on this sort of thing
Messy notebooks, hmm. Joel Grus would like to have a talk with Sean.
The fact that he is a billionaire but still codes is pretty awesome. The mark of a true engineer.
To be honest using the / or ? is sometimes the real fastest way to move to the mid of a line... not worst practice at all.
LOL amazing. I think this is the very first time I heard anybody blaming their parents of all people that they used the wrong programming language to raise their kids. lol Absolutely bloody fucking brilliant.
Okay so to be honest, my VERY first language was Perl - my dad and I co-wrote a perl script to celebrate New Years one year. But I mostly just used enough Perl to get stuff working in my cgi-bin, whereas Java was the first language I really dived into and tried to understand. I once asked my dad to help me with some Java, and he said "No, that's what the web is for." And thats why I try to put so much of my learnings online these days, to help other kids trying to teach themselves. :D
... Im not a software engineer, but doesnt have Vi have numbered lines?
I don't have much in my vimrc these days, just syntax highlighting (so fancy!). I saw my colleague uses vim with *relative* line numbers, which would make SO much sense with yy and p, but I only saw that last week. That's why pair programming is a good thing, learn more editor tricks :)
describes how I edit system files on machines I have to take care of if I can, I just sshfs moutn them and open some UI editor.. maybe, one day I'll learn to how use vim properly
This was great! Took me back to the Editor Wars of a previous job (circa 2000). I commend you for NEVER mentioning the tool half the other coders used--religiously.
Oh I did actually use *that* tool during my college years, and I used it with an equal amount of expertise, if I recall correctly. :-)
Fun video! The effect on the cuts is a bit jarring.
Thank you for the feedback! Yes, I need to figure out a smoother way to cut.
@@WorstPractices Just do straight cuts, in my opinion. Anything else will probably just distract from the content itself.
Thanks. Yeah, I tried that and it ends up looking like Max Headroom. Not sure what to do.
@@WorstPractices Could you make the fade transition super short, like 100ms, where it's just the smooth fade from one clip to another?
this time it works, classic!
That last part on dynamic typing helping with correctness threw me. Would like to hear more on that
I thought that was really interesting, too! I'd love to hear more of his thoughts on this. I'll ask him if there's more he could share on that (like blog posts, etc).
How long does a clean build of your products take? Do you have enough explicit dependencies that you can run incremental builds and be confident everything that should’ve been rebuilt was rebuilt? I worked on a project where the official build system pulled every piece of source code that went into it from the internet, including compilers and other tools, on every full build. It pulled the same git commit every time; it wasn’t like they wanted the latest updates or bug fixes. A full build took 12+ hours, and usually failed several times due to one host or another being offline. In spite of impressive dependency metadata, incremental builds frequently were not accurate. The other teams on the project used a variety of unofficial build systems for their components in order to avoid this monstrosity.
Do other developers work on the same repository that you work on? Do you ever reconcile each others’ changes into a common version? Or do you work in eternally-separate branches and use the remote repository as merely backup storage?
I love Andreas and what he does. I've been following him for quite some time now and his content is pretty great. So I love that you interviewed him. Great stuff! I actually just finished binge watching all your vids. Love them! Great idea for a video series. Here is a list of a bunch of people I'd love to see you interview about worst practices: - Systems with JT www.youtube.com/@SystemsWithJT (since you already got Andreas on your show, might as well get JT!) - Daniel (The Coding Train) www.youtube.com/@TheCodingTrain - ThePrimeagen ruclips.net/video/PHvbLmLPX6s/видео.html - Tantan www.youtube.com/@Tantandev - Dave's Garage www.youtube.com/@DavesGarage - One Lone Coder (aka javidx9) www.youtube.com/@javidx9 - Casey Muratori (MollyRocket) www.youtube.com/@MollyRocket - Jonathan Blow www.youtube.com/@jblow888 - Jon Gjengset www.youtube.com/@jonhoo - fasterthanlime www.youtube.com/@fasterthanlime - Let's Get Rusty www.youtube.com/@letsgetrusty - No Boilerplate www.youtube.com/@NoBoilerplate - The 8-Bit Guy www.youtube.com/@The8BitGuy (I mean, he did, after all, program his own C64/Atari/DOS game) - MVG (Modern Vintage Gamer) www.youtube.com/@ModernVintageGamer - Dave Farley (Continuous Delivery) www.youtube.com/@ContinuousDelivery - Tom Scott www.youtube.com/@TomScottGo ... There are probably more, but those are the channels and videos that showed up in my youtube history of the past 2 years. So there you go. I hope those suggestions keep you busy and will help produce good content for your channel. Subscribed! 😁😁😁😁😁
Thanks!
I just checked Julia's website and blog. I had to open up 10+ tabs of her past blog posts because all those titles sounded interesting to me and relevant to my actual job and interests. Great job introducing her to me! Thank you. I already subscribed 20 minutes earlier when watching all your other vids, so there is that as well lol
Great to hear it! Thanks for watching
"Oh no I need 2.5 have to go in between the two and the three" - LOLOLOLOL Ain't that the freaking truth?! Ha! Same age here as well, still doing printf debugging like nothing ever changed from 30+ years ago. 😆 "Sometimes it is printing a row of stars to see it in my messy logs" - STOP IT! I feel seen!!!! lol😆😆
I can relate to that. Sometimes I just don't even add the print and just take a stab in the dark. And then again. And after couple attempts I just sigh and start using the tools and thinking about how to approach the problem and corner the bug. I don't think it's just laziness. It feels more like I am hesitant to add another "proper" task to my internal backlog. Also, you really should get yourself an USB to serial adapter. Just make sure to check the voltages.
This is why running the program with a debugger can be helpful. If you run into an error (e.g. exception, panic), the debugger will stop, tell you where it happened and allow you to do debug things. If your "stab in the dark" fixed it, it will run till completion and exit. Beats running the program, having it fail, and re-run the program with the debugger every time you make a change.
@@maleldil1 I rarely run into exceptions. And if I do, I usually fix it right away. Logic bugs are more insidious.
This guy is amazing humble 👏👏👏
The quality of guests you get is amazing. Love the channel!
Resisting the urge to not mention obscure ladybird bugs
I'll read docs when they aren't awful.
Good questions, and I think it would have been even better if you explored it deeper. Why do you check in your compiler? Do you build it? If it's for reproducible builds why is that important? For the dependencies you do take on how do you manage a now forked copy if there are security issues?
This sounds like my coding practice. I use vim because it’s faster than any IDE I’ve tried, and because I loved ex/vi in college. I use the bang command extensively to run sed commands and auto formatters on blocks of code.
Thanks for sharing these videos. They are very relatable. Would you mind giving an intro of the speaker in the future videos? Thanks again
I had asked the person to introduce themselves in the beginning. Could you let me know what else you'd like to know? Thanks!
@@WorstPractices No you actually ask them to do. But most of their intros do not actually help some other interesting topics like what their accomplishments are and what they are known for. Because I don't know any of these speakers so I had to google their names even after their intro. Thanks for the great videos.
Gotcha - maybe I could put even more information in the description. Would that work? I'm trying to keep the video super short and I worry about spending half the time on prologues.
@@WorstPractices That works perfectly.
Valgrind + printf is enough for 99.5% of bugs. Fully fledged debuggers is just a waste of time. Not even mentionning that they may not be available on embedded platforms.
Pleasantly surprised to see Julia on here. Fantastic zines!
Vim is king.
In Rust we tRust to pretty print thus: #[derive(Debug)] println!("{:?}", x);
I'm probably way out of touch with modern text editors, but I missed out on when vim became considered a simple one. Kindda wish Mitchell would be using a simple code editor like sam, or something.
What else would you say is a simple code editor for programmers?
ed
@@WorstPractices i use notepad++ for everything and the other day I got called out a criminal by using it 😂 No idea why...it has minimalistic features I got to actually open docs if I forgot something. For me it is my best practice which is considered the worst practice by most programmers these days.
i agree, i do the same now, its awesome, advanced code editors, complex ides, sometimes unnecessary
I do that all the time too, also in Python. I find it weird that he has to sudo modify the code, though, since you'd probably always be working on a virtual environment, so it's just a regular file. Other than that, my workflow is basically the same. When something breaks or I can't understand the code flow, I'll open the function definition in the site-packages and add some prints and breakpoints. It beats cloning and telling pip to use your local copy instead of the PyPI version.
site-packages is owned by root on many systems, so if you're trying to debug a globally installed Python module in there you might need to use sudo to edit it.
Based "Just use vim" take, kek
No comment 🍰
Terrible advice lol
Didn’t sound like advice to me. It’s framed as “worst practice”. Seems like a 1x developer habit.
@@tropicaljupiter Oh wow, my reading comprehension must be terrible lol
i code in ubuntu gedit, theres built-in syntax highlighting for many languages and formats, focus more on coding, just write then pass it through formatters and linters.
when you started this idea prompt/writing prompt of "your worst practice" I noodled on it to come up with a good one and "don't use an IDE" was the best I could come up with. It is hard to answer the question without restoring to a humblebrag - the people you are going to interview are effective, so how bad can their worst practice really be?
I totally see your point, but I think you'd be surprised! I'm hopeful that's the fun part of this series. So let me know what you think of the next few episodes.