Тёмный

What Does Really GOOD CODE Look Like? 

Continuous Delivery
Подписаться 211 тыс.
Просмотров 7 тыс.
50% 1

What is the real meaning of good quality code, what does it look like and does the speed of production reduce code quality?
Adam Tornhill talks to Dave Farley about code quality in this clip taken from Adam's appearance on the Engineering Room podcast. You can listen to the full podcast HERE ➡️ open.spotify.c...
-
🗣️ THE ENGINEERING ROOM PODCAST:
Apple - apple.co/43s2e0h
Spotify - spoti.fi/3VqZVIV
Amazon - amzn.to/43nkkRl
Audible - bit.ly/TERaudible
-
🙏The Engineering Room series is SPONSORED BY EQUAL EXPERTS
Equal Experts is a product software development consultancy with a network of over 1,000 experienced technology consultants globally. They increase the pace of innovation by using modern software engineering practices that embrace Continuous Delivery, Security, and Operability from the outset ➡️ bit.ly/3ASy8n0
-
#softwareengineer

Опубликовано:

 

6 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 28   
@THE_NE0
@THE_NE0 14 дней назад
For the people wondering, he shows no piece of code
@ripwolfe
@ripwolfe 14 дней назад
I like that they're talking about making code _understandable_ instead of _readable_ . I keep seeing comments on various forums that some random code snippet or another isn't very "readable". What is readable to a junior dev might differ greatly from someone with a lot of experience using a variety of different software patterns and paradigms. I often find that junior-level readable code is less flexible and harder to change, comparatively speaking, so I encourage them to think more about the effort they'd have to put into adapting the code should a set of requirements change suddenly (which happens all the time, of course!).
@mehtubbhai9709
@mehtubbhai9709 14 дней назад
Easy to Change (TM) - Andrew Hunt, Dave Thomas
@t_gerface6257
@t_gerface6257 14 дней назад
Love Adam's work. Very interesting scientific approach to the challenge.
@Trenton-D-Adams
@Trenton-D-Adams 14 дней назад
A lot of times though, developers "refactor" by changing classes that work, to make them do something different, when they already did what they need. Now, this is a case of bad code quality. Instead of leaving the class mostly as is, and putting the new stuff in another class, because they really are two separate things, they decided to "integrate" the two, thereby violating the Single Responsibility Principle (SRP). When developers do that, they inevitably get stuck in a refactor loop. The longest refactor loop I've ever seen is 9 years to deliver a product that should have taken 1 year. In my mind, SRP is fundamentally the most important principle. If followed, the Open/Closed Principle (OCP) naturally follows. Combined, you find yourself not changing existing classes at all, you are just re-arranging them in potentially infinite different ways. But, the discipline of refactoring is something that is done badly more often than it's done well. I think that's why businesses get the idea that we shouldn't refactor, we shouldn't do TDD, etc.
@Trenton-D-Adams
@Trenton-D-Adams 14 дней назад
SRP is the wrong term. I always mix it with encapsulation, and coupling/cohesion. lol. The example I'm thinking of, is you don't have an SFTP class, who's responsibility is to upload to an SFTP server, also do aws s3 operations. It's better to have a class that aggregates those operations, but the SFTP class is purely about SFTP.
@RoamingAdhocrat
@RoamingAdhocrat 13 дней назад
if they rewrite a class and change its external behaviour, that's not a refactoring, that's a sparkling rewrite
@danielloth7601
@danielloth7601 14 дней назад
Hi Dave. I'm wondering if you'd care to talk about some of the ideas expressed in the Joe Armstrong (of Erlang fame) thesis. For example, the benefits of structuring code so as to keep the majority of it pure, and how this in turn might drastically improve testability of that code. For anyone interested, the thesis is titled 'Making reliable distributed systems in the presence of software errors'.
@Rick104547
@Rick104547 14 дней назад
I think that maintaining the ability to change your code is fundamental. It's the main goal. Other principles are just tools to achieve that.
@Monzy_
@Monzy_ 13 дней назад
The only thing I don't like about these interviews is that they are just a reinforcement of Dave's (and my) views about software development. Having watched hundreds of CD videos (and agreeing with Dave) I'm not really learning anything new from these interviews. Maybe it would but more interresting to see a discussion with someone that doesn't agree or reinforce Dave's views all the time. Hopefully some viewers gets something out of these interviews.
@hipvivid
@hipvivid 6 дней назад
I think the problem is what people perceive as fast. Many managers perceive quick initial delivery as being fast. Writing tests to ensure quality but delivering later on initial delivery is seen as slower because they don't factor in all the time lost to the bugs. In many teams I think they just expect bugs, but want to make sure they "delivered" to the customer "on time", even if this all results in slower overall team performance and more difficult to change software over time.
@Whyoakdbi
@Whyoakdbi 14 дней назад
Easy to change code implies the following qualities: - easy to read - well structured - good structure allows for easy extension and easy debugging (maintenance) - also a developer catches more potential bugs if the structure is good
@olge1355
@olge1355 14 дней назад
@@Whyoakdbi and what does „well structured“ mean exactly?
@Whyoakdbi
@Whyoakdbi 14 дней назад
@@olge1355 Humans internally know what good structure is because it begins to make their work easier. So you refactor until you can no longer optimize. Then you will often overdo it, but that's how you will find the sweet spot. Refactoring principes and techniques: DRY, KISS, separation of concerns, proper naming, refactoring by extraction, using pure functions, etc
@khana.713
@khana.713 14 дней назад
It'd be convenient to have guest's details in video description
@casybond
@casybond 14 дней назад
Yes, ease of understanding is most important in software [at every level]. Yet, few SWEs seem interested in the many human aspects of code/coding; often focus is on making it work inside some nicely looking structure. Many say code should read like a written text, but how many SWEs study effective writing: forming paragraphs, telling a story, use proper language constructs, putting sentences in most meaningful order, ...? Code I've come across is littered with 'style errors', different ordering of things in different places, blobs of code without any visual air, terrible formatting rules, ... Generally speaking, could it be that SWEs, leaning towards autistic, are happy in their own little world they control and don't seem too bothered too about the complex realities of being human?
@brookestephen
@brookestephen 14 дней назад
*People who pay for projects don't care to fund or organize software development properly.* there is so much research now, and it's ignored.
@gammalgris2497
@gammalgris2497 12 дней назад
I can only go fast if I can rely on what I've build yesterday. I can rely on things if they don't do too much at the same time and are tested.
@CallousCoder
@CallousCoder 13 дней назад
So us the actual code. A picture is like a 1000 words. And what softwares are we talking about?! Business systems are easier to structure that say time sensitive critical systems. Or heavy maths heavy simulation systems.
@jimiscott
@jimiscott 13 дней назад
@Dave - If you are trying to convey a professional approach to your videos, then probably the last thing you should do is film it in an empty, cavernous kitchen where the light is coming from behind you.
@RoamingAdhocrat
@RoamingAdhocrat 13 дней назад
tbh that kitchen says "this is a professional's home" to me. going for convenience over perfection for camera setup etc says "this is a senior professional" 😉
@peteobryan4650
@peteobryan4650 13 дней назад
I believe that small square of light on the back door behind Dave is a cat flap, and I was thoroughly disappointed that a cat never appeared.
@passerbyp8531
@passerbyp8531 14 дней назад
Bla-bla-bla…
@dixztube
@dixztube 14 дней назад
lol
@THE_NE0
@THE_NE0 14 дней назад
Yep…
Далее
The SECRETS Of Successful Software Architects
10:56
Просмотров 13 тыс.
3 Key Version Control Mistakes (HUGE STEP BACKWARDS)
15:08
Bro's Using 3 Weapons
00:36
Просмотров 3,6 млн
The Thing No One Tells You About Microservices
13:40
Просмотров 62 тыс.
5 Things That Waste Time & Money On A Software Project
15:26
Designing a Software Architecture from Scratch
32:32
Просмотров 12 тыс.
Microservices are Technical Debt
31:59
Просмотров 437 тыс.
How Senior Programmers ACTUALLY Write Code
13:37
Просмотров 1,5 млн
TDD Isn't Hard, It's Something Else...
16:22
Просмотров 17 тыс.
Jonathan Blow on Refactoring
7:10
Просмотров 133 тыс.