SlideShare a Scribd company logo
1 of 115
The Art of Clean Code
= The Next Chapter =
victor.rentea@gmail.com ♦ ♦ @victorrentea ♦ VictorRentea.ro
This is a sequel. Check out the first episode:
“The Art of Clean Code” at Devoxx Poland 2017
When something is painful
but you can't avoid doing it…
postpone it
When something is painful
but you can't avoid doing it…
delegate it
When something is painful
but you can't avoid doing it…
Do It More Often!
"Bring The Pain Forward!"
Continuous Integration
Pair Programming
Continuous Refactoring
Test-First
"Bring The Pain Forward!"
eXtreme
Are you Agile ?
Software Craftsmanship
ProfessionalismTechnical Practices
Code of EthicsDeliberate Practice
Victor Rentea
Clean Code Evangelist
VictorRentea.ro/#playlist
best talks on:
Lead Architect
Internal Coach
Software Craftsman
Pair Programming, Refactoring, TDD
Java Champion
Founder
C#
VictorRentea.ro @victorrentea victor.rentea@gmail.com
Independent
Technical Trainer & Coach
HibernateSpring Java 8
Architecture, DDDDesign Patterns
Clean Code Unit Testing, TDD
Java Performance more…Scala
240+ days1500 devs6 years
VictorRentea.rovictor.rentea@gmail.com
30 companies
Posting daily on
+Live-Trainingon
30K 3K 2K
VictorRentea.ro
…does one thing well
…reads like well written prose
...was written by someone who cared
...when each method you read turns out to be
pretty much what you expected
Any fool can write code that a computer understands,
but few programmers know how to write
Introduction
Clean Code …
14
Bjarne Stroustrup
inventor of C++
Grady Booch
inventor of UML
Michael Feathers
Working Effectively with Legacy Code
Martin Fowler
author of Refactoring
Ward Cunningham
inventor of Wiki, eXtreme Programmingpretty much what you expected
code that a human can understand
MOV AX, BX
VictorRentea.ro15
pretty much what you expected
Unit of Measure
The code is
wtf/min
code quality meter
VictorRentea.ro
code rot
True cost of software = its maintenance
Why so much !?!
Cause we get slower, as the code degrades
Introduction
Why Clean Code ?
16
80% of the total
Code smel
VictorRentea.ro
We READ 10x more time than we WRITE
 Make it more readable
Boy scout rule
Always check in cleaner code than you found
17
Why Clean Code ?
VictorRentea.ro
Simplify* existing code
without changing its external behavior
Refactoring?
18
safe moves
tiny steps
tests
Copy > Make old=useless
Cut > Fix compilation
Built along the way
Use the IDE, Luke!
* simple ≠ easy -> watch “Simple made easy” talk by Rick Hickey
Write down your next
commit message
VictorRentea.ro
US-134
Unit Tests
US-134
Refactoring
US-134
Develop
19
THE Refactoring
Sprint
Unit TestingCoding
VictorRentea.ro
20
US-134
Unit Tests
US-134
Refactoring
US-134
Develop
⊂ ⊃
Never Separate Them
VictorRentea.ro
21
VictorRentea.ro22
VictorRentea.ro
What do you do
After the D-day?
VictorRentea.ro
After the D-day?
VictorRentea.ro
26
After the D-day?
Mob Refactoring
1h
VictorRentea.ro
Emotions Team
29
Clean Code
is about
Attitude
VictorRentea.ro
30
VictorRentea.ro
31
What Will You Choose?
My trigger was cleancoders.com
VictorRentea.ro
Introduction
Names The power that YOU have
Functions
Classes
Formatting & Comments
33
Agenda
VictorRentea.ro
Names
34
With Great Power
Comes Great Responsibility
- SpiderMan
 real author is Uncle Ben
VictorRentea.ro
36
Broca’s Area
VictorRentea.ro
Classes are nouns
Customer, OrderDetails, OrderFacade
Avoid meaningless names
OrderInfo, OrderData vs Order
Delete the interfaces
ICustomerService, OrderServiceImpl
37
Delete the Interfaces
OrderServiceImpl
OrderDetails OrderSummary
Seek 3-5 options
for any name
VictorRentea.ro
… with ONE implementation
in the same module
38
Delete the Interfaces
except:
Remoting/API
your-app-api.jar
Strategy® Pattern
Pick implementation dynamically at runtime
Dependency Inversion
Implemented in lower-level modules
or Decorator®
tomorrow
VictorRentea.ro
40
Have you ever blamed some code?
... then find out
YOU were the author?
VictorRentea.ro
41
VictorRentea.ro
42
You Forget
VictorRentea.ro
45
You try to understand some code
90% of your work life
(in average)
VictorRentea.ro
46
Then, you get it!
You change only one line
2 hours
1 minute
How do you feel?
You try to understand some code
VictorRentea.ro
47
VictorRentea.ro
You found a better name.
48
Make the name speak for itself
It takes seconds with an IDE
(and rarely fails: XMLs, reflection,…)
Rename it !
OMG! It’s impossible!
I CAN’T be smarter
than The Elders!!
VictorRentea.ro
Keep Code Close to Domain
51
the gap
VictorRentea.ro
52 Read it for free on: https://leanpub.com/ddd_first_15_years/c/dddeu
VictorRentea.ro
53
More Functions,
Less Names!
VictorRentea.ro
54
VictorRentea.ro
VictorRentea.ro
Discover Value Objects
privateMethod(α, β)
Util1.publicHelper(α, β)
VO vo = new VO(α, β);
vo.method();
General-purpose?
Never mocked?
VictorRentea.ro
Deepen
your Domain Language
VictorRentea.ro
Introduction
Names
Functions
Classes
Formatting & Comments
61
Agenda
𝑓(𝑥)
VictorRentea.ro
A function should do one thing,
it should do it well,
and it should do it ONLY
Functions
62
They should be
Uncle Bob
VictorRentea.ro
wtf/min
How small ?
Functions
Functions Should be Smal !!
63
5 lines*
(by any means, smaller than a page of your IDE !)
To be sure that they do just 1 THING
What CAN you do in 5 lines ??
So you CAN find a good name for it
SMALL
Why so small ?!!
* Actually, Uncle Bob now says 5 is too much => extract ‘till you drop
VictorRentea.ro
66
EXTRACT METHOD
https://www.dailymail.co.uk/home/moslive/article-1198326/TOM-PARKER-BOWLES-How-I-got-caught-Jamie-Olivers-new-cook-food-emporium.html
VictorRentea.ro
67
Performance vs Clean Code
Smaller methods run faster !
(get faster)
Google “Just-In-Time Compiler Optimizations”
Performance
VictorRentea.ro
Instead of one familiar landscape,
You’re juggling with dozens of small functions
You can’t even recall all their names
but,
The Team will thank you!
69
else
for if
Scared of small functions?
71
Richard Feynman
https://www.atomicheritage.org/history/security-and-secrecy
VictorRentea.ro
72
How to fully redesign
well factored code?
inline everything back
refractor/optimize/redesign
extract again
73
VictorRentea.ro
Overengineering?
a) does too many things ?
 Try to introduce a Parameter Object/DTO/VO
Max 3 parameters
74
myBadMethod("John", "Michael", "Paris", "St. Albergue");
address.setStreetName("Paris");
…
myBadMethod(address);
b) just passes down the args ?
?!
… and see how much
code it simplifies
c) common params -> fields [OOP]
VictorRentea.ro
No boolean params
75
removeOrders(customer, false, true);
No nullable params
=> 4
(usually 3)
if (customer != null) {…} else {…}
= laziness/fear/rush = legacy
=> 2
What about
invalid data?
,nor Optional<>
VictorRentea.ro
Avoid returning null
Throw exception
Wrap it in an Optional<>
Functions
76
Queue
DB
Defensive Programming
Thoroughly check data
only at the boundaries
exception
(corrupt data)
Web
Service
File
null with biz meaning?
Optional<>
VictorRentea.ro
Entity getters
returning Optional<>
Game Won!
78
Customer.getMemberCard(): Optional<MemberCard>
Optional<>
VictorRentea.ro79 https://blog.overops.com/the-top-10-exceptions-types-in-production-java-applications-based-on-1b-events/
VictorRentea.ro
checkCustomer(customer, order);
Make them obvious
wtf/min
customer.setActive(true);
Side Effects are Evil
80
checkAndActivateCustomer(customer, order);
but necessary
Because they can
surprise the reader
VictorRentea.ro
do side-effects
return void sendEmail(Email):void
Command-Query Separation
81
setActive(true):void
return results
pure functions
getPrice():int
computePrice(movie):int
More of a guideline than a rule
in 1994, by Bertrand Meyer
VictorRentea.ro
No side effects
No INSERTs, JMS, file, fields, WS,…
Idempotent
Same result for same inputs
No random, time, WS, DB…
Pure Functions
82
𝑓 𝑥, 𝑦 = 𝑥2
+ 𝑦
VictorRentea.ro
83
So many guidelines!
VictorRentea.ro
When I write functions, they come out long and complicated.
They have lots of indenting and nested loops.
They have long argument lists.
The names are arbitrary, and there is duplicated code.
I then massage and refine that code, splitting out functions,
changing names, eliminating duplication.
I don’t write them clean from the start.
I don’t think anyone could.
84
~Uncle Bob, in Clean Code
VictorRentea.ro
The Hat Metaphor
86
Writing
Make it Work
Cleaning
Make it Readable
- Kent Beck
Unit Testing
Crack it
Copy Pasta What can I delete? How can I break it?
VictorRentea.ro
Introduction
Names
Functions
Classes
Formatting & Comments
92
Agenda
VictorRentea.ro93
struct(C language)
Do you ever miss
VictorRentea.ro
FP
=classes that expose all their state
Data structures
94
public class ImmutableStruct {
private final String firstName;
private final String lastName;
public ImmutableStruct(
String first, String last) {
this.firstName = first;
this.lastName = last;
// validation ...
}
public String getFirstName() {
return firstName;
}
public String getLastName() {
return lastName;
}
}
We Immutable Objects:
- If created valid, remain so
- Easier to debug
- Thread safe
- Safe as keys in Tree*/Hash*
struct
≈ Value Object
Pure Function is what
you want to do,
Side Effects are what
you’re being paid to do.
~ “Functional Programming in 40
Minutes” by Russ Olsen at GOTO’18
VictorRentea.ro
=classes that expose all their state
Data structures
97
public class PhoneBookEntryDTO {
private String firstName;
private String lastName;
private String phoneNumber;
public String getFirstName() {
return firstName;
}
public void setFirstName(String first) {
this.firstName = first;
}
public String getLastName() { … }
public void setLastName(…) { … }
public String getPhoneNumber() { … }
public void setPhoneNumber(…) { … }
}
public class ImmutableStruct {
private final String firstName;
private final String lastName;
public ImmutableStruct(
String first, String last) {
this.firstName = first;
this.lastName = last;
// validation ...
}
public String getFirstName() {
return firstName;
}
public String getLastName() {
return lastName;
}
}
public class PhoneBookEntryDTO {
public String firstName;
public String lastName;
public String phoneNumber;
}
≈
struct
"Object-Oriented
Assembly Language"
VictorRentea.ro98
OOP
VictorRentea.ro
Expose Behavior, not data
Data is an implementation detail
OOP
99
car.engineStarted=true
car.setEngineStarted(true)
car.startEngine()
Information Hiding
Even when asked
car.getGasolineInLiters()
car.getPercentageFuelLeft()
car.getEstimatedRemainingKm()
Implementation can evolve
without breaking your clients
VictorRentea.ro
100
Protect client code from future changes in implem of a
Library or (mini) Framework
mycorp-commons- .jar
Decompose complex logic into separate objects
Divide-et-impera on Complexity
API
CsvWriter
VictorRentea.ro
101
But at work
we don’t do much OOP, do we ?
In our Enterprise Apps,
we write procedural code
VictorRentea.ro102
Existing procedures.
(usually)
We automate existing business processes.
Procedural Code
VictorRentea.ro103
Lots
Procedural Code
and lots and lots and lots and lots of it…
How do we organize it, to
Keep It Short & Simple ?
VictorRentea.ro104
Procedural Code
We distribute logic in many classes:
Keep It Short & Simple
Classes as containers of logic
(in enterprise applications)
!!
VictorRentea.ro
105
Procedural
OOP FP
VictorRentea.ro
106
VictorRentea.ro107 Icon made by ‘freepik’ from www.flaticon.com
Procedural
FP
OOP
Encapsulate State
Decompose Side-Effects
Concise
Scalable
Debuggable
VictorRentea.ro
110
Introduction
Names
Functions
Classes
Formatting & Comments
Agenda
VictorRentea.ro
112
VictorRentea.ro
113
VictorRentea.ro
114
You're not Neo
It’s all about Team Work
WAKE UP!
VictorRentea.ro115
Don’t Code!
Communicate !
VictorRentea.ro
Respect your readers
Details matter: 10x more reading, remember ?
Write Literature
The simplest code that works.
Never obfuscate
Don’t Code! Communicate !
Simplicity is the ultimate sophistication
- Leonardo da Vinci
VictorRentea.ro
117
VictorRentea.ro
118
Master your IDE
Sharpen reflexes for real races
Learn those shortcuts !  Key Promoter X
(IDEA plugin)
VictorRentea.ro
120
When it's red, yellow, blue or gray,
Alt-Enter will save your day.
Ctrl-1
Ctrl-.
VictorRentea.ro
Comments
123
VictorRentea.ro
public List<int[]> getFlaggedCells(){
List<int[]> flaggedCells = new A…L…<…>();
for (int[] cell : gameBoard) {
boolean isFlagged= cell[STATUS]==FLAGGED;
if (isFlagged)
flaggedCells.add(cell);
}
return flaggedCells;
}
Readable Constants
- Instead of magic numbers
Explanatory Variables
- Name intermediary results
- if (multiline &&
(conditions ||
formulas))
Explanatory Methods
- "Encapsulate Conditionals"
Rename & Extract
- descriptive names
124
public List<int[]> getCells() {
List<int[]> list1 = new ArrayList<int[]>();
for (int[] x : theList)
if (x[0] == 4) list1.add(x);
return list1;
}
public List<Cell> getFlaggedCells(){
List<Cell> flaggedCells = new A…L…<Cell>();
for (Cell cell : gameBoard) {
if (cell.isFlagged())
flaggedCells.add(cell);
}
return flaggedCells;
}
VictorRentea.ro
Opinions?
129
// Register user
// Loop over all entries and remove nulls
// Avoids memory leak
DUH!!extract
VictorRentea.ro142
Clean Code + Java8
Try some lib?
jOOL, vavr,…
For more, check-out the screen cast of my Clean Lambdas workshop
at Voxxed Bucharest 2017, on my website 
VictorRentea.ro
Pair Programming
143
Peer Review!
VictorRentea.ro144
Peer Review!
Pair Programming
VictorRentea.ro
147
Introduction
Names
Functions
Classes
Formatting & Comments
Java 8+
Agenda
VictorRentea.ro
Key Points
148
Introduction
Names
Functions
Classes
Formatting & Comments
Clean Lambdas
Agenda
Refine Expressive Names
Stop Refactor = Start Legacy
Short methods
Structs, Objects or Logic Containers ?
Comments are Failures. Expressive code.
Pair Programming is the way
VictorRentea.ro
149
What can I do
to make refactor happen
each day
in my team?
Shamelessly taken from the Effective Refactoring workshop of my friend Wlodek  http://refactoring.pl/
150
How to apply
all this in my
legacy code
??
Where
can I read
more ?
LET’S
PRACTICE
!!!
Pragmatic
+
Professional
©
VictorRentea.ro
152
VictorRentea.ro
153
Clean Code
Requires Discipline
VictorRentea.ro
154
Coding Kata
155
Coding Kata
No rush
Safe environment
Perfection
Reflect on HOW you work
VictorRentea.ro
156
Pair Programming
Refactoring
TDD
VictorRentea.ro
157
Topics
Refactoring
TDD
Legacy Code
Time
1-1.5 h
timeboxed
People
4-10
Coding Dojo
Synthetic
Exercises
NOT
prod code!!
VictorRentea.ro
159
Blamestorming
Retro
Some learning key points
VictorRentea.ro
Rename
&
Extract Method
VictorRentea.ro
When you cannot find a satisfying name for a variable or a method,
Choose a Welsh one.
You won't forget to change it later
- Mario Fusco
VictorRentea.ro
Extract Method
Selection
to Extract
variable
expression
Extract Variables
to generify/reuse
… then extract method
…then inline var back
Expand Selection
for less parameters
VictorRentea.ro
Feature Envy
method(α, …)
α.method(…)
“Move” refactor
“Keep Behavior next to State”[OOP]
VictorRentea.ro
3. Ctrl-
2. Revert
1. Reader
Most Powerful Forces in Universe
VictorRentea.ro
Do you love switches?
VictorRentea.ro
Switch Hygiene Rules:
is the only instruction in a method
default: throw new
One-line per case
: return func();
: func(); break;
Coming soon:
return switch …
JEP 325: Switch Expressions
Java 14… soon… 
JDD
VictorRentea.ro
I'm available
a statement of seniority
I use both hemispheres
Tough meetings?
Abused estimates?
Purpose of code:--Uncle Bob
1. Maintainable
2. Does its job!
Functional Party
Activist
Stay into
The Light
Trainings, talks, goodies
@VictorRentea
Follow me for quality posts:
Clean Code
needs strength
and determination
Thank You!
me take 1 sticker or shortcuts sheet
+
victorrentea.ro/comm
unity
Speaking Romanian? join me
https://github.com/victorrentea/clean-code-dive
Download and customize from victorrentea.ro#stickers
Hunt me for questions!
This talk was a sequel of the first episode:
“The Art of Clean Code” at Devoxx Poland 2017

More Related Content

What's hot

Integration testing with spring @snow one
Integration testing with spring @snow oneIntegration testing with spring @snow one
Integration testing with spring @snow oneVictor Rentea
 
The tests are trying to tell you something@VoxxedBucharest.pptx
The tests are trying to tell you something@VoxxedBucharest.pptxThe tests are trying to tell you something@VoxxedBucharest.pptx
The tests are trying to tell you something@VoxxedBucharest.pptxVictor Rentea
 
Software Craftsmanship @Code Camp Festival 2022.pdf
Software Craftsmanship @Code Camp Festival 2022.pdfSoftware Craftsmanship @Code Camp Festival 2022.pdf
Software Craftsmanship @Code Camp Festival 2022.pdfVictor Rentea
 
Clean architecture - Protecting the Domain
Clean architecture - Protecting the DomainClean architecture - Protecting the Domain
Clean architecture - Protecting the DomainVictor Rentea
 
Unit Testing like a Pro - The Circle of Purity
Unit Testing like a Pro - The Circle of PurityUnit Testing like a Pro - The Circle of Purity
Unit Testing like a Pro - The Circle of PurityVictor Rentea
 
Clean Code I - Best Practices
Clean Code I - Best PracticesClean Code I - Best Practices
Clean Code I - Best PracticesTheo Jungeblut
 
Extreme Professionalism - Software Craftsmanship
Extreme Professionalism - Software CraftsmanshipExtreme Professionalism - Software Craftsmanship
Extreme Professionalism - Software CraftsmanshipVictor Rentea
 
SOLID Design Principles
SOLID Design PrinciplesSOLID Design Principles
SOLID Design PrinciplesAndreas Enbohm
 
Design functional solutions in Java, a practical example
Design functional solutions in Java, a practical exampleDesign functional solutions in Java, a practical example
Design functional solutions in Java, a practical exampleMarian Wamsiedel
 
Javascript Clean Code
Javascript Clean CodeJavascript Clean Code
Javascript Clean CodePetra Barus
 
Domain Driven Design with the F# type System -- F#unctional Londoners 2014
Domain Driven Design with the F# type System -- F#unctional Londoners 2014Domain Driven Design with the F# type System -- F#unctional Londoners 2014
Domain Driven Design with the F# type System -- F#unctional Londoners 2014Scott Wlaschin
 

What's hot (20)

Integration testing with spring @snow one
Integration testing with spring @snow oneIntegration testing with spring @snow one
Integration testing with spring @snow one
 
Clean Code
Clean CodeClean Code
Clean Code
 
The tests are trying to tell you something@VoxxedBucharest.pptx
The tests are trying to tell you something@VoxxedBucharest.pptxThe tests are trying to tell you something@VoxxedBucharest.pptx
The tests are trying to tell you something@VoxxedBucharest.pptx
 
Software Craftsmanship @Code Camp Festival 2022.pdf
Software Craftsmanship @Code Camp Festival 2022.pdfSoftware Craftsmanship @Code Camp Festival 2022.pdf
Software Craftsmanship @Code Camp Festival 2022.pdf
 
Clean architecture - Protecting the Domain
Clean architecture - Protecting the DomainClean architecture - Protecting the Domain
Clean architecture - Protecting the Domain
 
Unit Testing like a Pro - The Circle of Purity
Unit Testing like a Pro - The Circle of PurityUnit Testing like a Pro - The Circle of Purity
Unit Testing like a Pro - The Circle of Purity
 
Clean Code
Clean CodeClean Code
Clean Code
 
Clean Code I - Best Practices
Clean Code I - Best PracticesClean Code I - Best Practices
Clean Code I - Best Practices
 
Clean code
Clean codeClean code
Clean code
 
Clean code
Clean codeClean code
Clean code
 
Clean coding-practices
Clean coding-practicesClean coding-practices
Clean coding-practices
 
Clean code: SOLID
Clean code: SOLIDClean code: SOLID
Clean code: SOLID
 
React Hooks
React HooksReact Hooks
React Hooks
 
Extreme Professionalism - Software Craftsmanship
Extreme Professionalism - Software CraftsmanshipExtreme Professionalism - Software Craftsmanship
Extreme Professionalism - Software Craftsmanship
 
Optional in Java 8
Optional in Java 8Optional in Java 8
Optional in Java 8
 
SOLID Design Principles
SOLID Design PrinciplesSOLID Design Principles
SOLID Design Principles
 
Design functional solutions in Java, a practical example
Design functional solutions in Java, a practical exampleDesign functional solutions in Java, a practical example
Design functional solutions in Java, a practical example
 
SOLID principles
SOLID principlesSOLID principles
SOLID principles
 
Javascript Clean Code
Javascript Clean CodeJavascript Clean Code
Javascript Clean Code
 
Domain Driven Design with the F# type System -- F#unctional Londoners 2014
Domain Driven Design with the F# type System -- F#unctional Londoners 2014Domain Driven Design with the F# type System -- F#unctional Londoners 2014
Domain Driven Design with the F# type System -- F#unctional Londoners 2014
 

Similar to The Art of Clean Code - The Next Chapter

Extreme Professionalism - Software Craftsmanship
Extreme Professionalism - Software CraftsmanshipExtreme Professionalism - Software Craftsmanship
Extreme Professionalism - Software CraftsmanshipVictor Rentea
 
Clean Code @Voxxed Days Cluj 2023 - opening Keynote
Clean Code @Voxxed Days Cluj 2023 - opening KeynoteClean Code @Voxxed Days Cluj 2023 - opening Keynote
Clean Code @Voxxed Days Cluj 2023 - opening KeynoteVictor Rentea
 
Day1 - TDD (Lecture SS 2015)
Day1 - TDD (Lecture SS 2015)Day1 - TDD (Lecture SS 2015)
Day1 - TDD (Lecture SS 2015)wolframkriesing
 
Refactoring 2TheMax (con ReSharper)
Refactoring 2TheMax (con ReSharper)Refactoring 2TheMax (con ReSharper)
Refactoring 2TheMax (con ReSharper)DotNetMarche
 
Refactoring, 2nd Edition
Refactoring, 2nd EditionRefactoring, 2nd Edition
Refactoring, 2nd Editionjexp
 
Writing clean code in C# and .NET
Writing clean code in C# and .NETWriting clean code in C# and .NET
Writing clean code in C# and .NETDror Helper
 
How I Learned to Stop Worrying and Love Legacy Code.....
How I Learned to Stop Worrying and Love Legacy Code.....How I Learned to Stop Worrying and Love Legacy Code.....
How I Learned to Stop Worrying and Love Legacy Code.....Mike Harris
 
Refactoring blockers and code smells @jNation 2021
Refactoring   blockers and code smells @jNation 2021Refactoring   blockers and code smells @jNation 2021
Refactoring blockers and code smells @jNation 2021Victor Rentea
 
Refactoring - An Introduction
Refactoring - An IntroductionRefactoring - An Introduction
Refactoring - An IntroductionGiorgio Vespucci
 
The Power Of Refactoring (PHPCon Italia)
The Power Of Refactoring (PHPCon Italia)The Power Of Refactoring (PHPCon Italia)
The Power Of Refactoring (PHPCon Italia)Stefan Koopmanschap
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Developmentjakubkoci
 
Code refactoring workshop (in Javascript)
Code refactoring workshop (in Javascript)Code refactoring workshop (in Javascript)
Code refactoring workshop (in Javascript)Ilias Bartolini
 
AN EXERCISE IN CLEANER CODE - FROM LEGACY TO MAINTAINABLE
AN EXERCISE IN CLEANER CODE - FROM LEGACY TO MAINTAINABLEAN EXERCISE IN CLEANER CODE - FROM LEGACY TO MAINTAINABLE
AN EXERCISE IN CLEANER CODE - FROM LEGACY TO MAINTAINABLEGavin Pickin
 
AN EXERCISE IN CLEANER CODE - FROM LEGACY TO MAINTAINABLE - CFObjective() 2017
AN EXERCISE IN CLEANER CODE - FROM LEGACY TO MAINTAINABLE - CFObjective() 2017AN EXERCISE IN CLEANER CODE - FROM LEGACY TO MAINTAINABLE - CFObjective() 2017
AN EXERCISE IN CLEANER CODE - FROM LEGACY TO MAINTAINABLE - CFObjective() 2017Ortus Solutions, Corp
 
Stop wasting-time-by-applying-clean-code-principles
Stop wasting-time-by-applying-clean-code-principlesStop wasting-time-by-applying-clean-code-principles
Stop wasting-time-by-applying-clean-code-principlesEdorian
 
Testing, Learning and Professionalism — 20171214
Testing, Learning and Professionalism — 20171214Testing, Learning and Professionalism — 20171214
Testing, Learning and Professionalism — 20171214David Rodenas
 
Refactor your code: when, why and how?
Refactor your code: when, why and how?Refactor your code: when, why and how?
Refactor your code: when, why and how?Nacho Cougil
 
How to become a .net debugging jedi (Microsoft R&D Center, Nazareth, Israel)
How to become a .net debugging jedi (Microsoft R&D Center, Nazareth, Israel)How to become a .net debugging jedi (Microsoft R&D Center, Nazareth, Israel)
How to become a .net debugging jedi (Microsoft R&D Center, Nazareth, Israel)Moaid Hathot
 

Similar to The Art of Clean Code - The Next Chapter (20)

Extreme Professionalism - Software Craftsmanship
Extreme Professionalism - Software CraftsmanshipExtreme Professionalism - Software Craftsmanship
Extreme Professionalism - Software Craftsmanship
 
Clean Code @Voxxed Days Cluj 2023 - opening Keynote
Clean Code @Voxxed Days Cluj 2023 - opening KeynoteClean Code @Voxxed Days Cluj 2023 - opening Keynote
Clean Code @Voxxed Days Cluj 2023 - opening Keynote
 
Day1 - TDD (Lecture SS 2015)
Day1 - TDD (Lecture SS 2015)Day1 - TDD (Lecture SS 2015)
Day1 - TDD (Lecture SS 2015)
 
Refactoring 2TheMax (con ReSharper)
Refactoring 2TheMax (con ReSharper)Refactoring 2TheMax (con ReSharper)
Refactoring 2TheMax (con ReSharper)
 
Refactoring, 2nd Edition
Refactoring, 2nd EditionRefactoring, 2nd Edition
Refactoring, 2nd Edition
 
Writing clean code in C# and .NET
Writing clean code in C# and .NETWriting clean code in C# and .NET
Writing clean code in C# and .NET
 
How I Learned to Stop Worrying and Love Legacy Code.....
How I Learned to Stop Worrying and Love Legacy Code.....How I Learned to Stop Worrying and Love Legacy Code.....
How I Learned to Stop Worrying and Love Legacy Code.....
 
Refactoring blockers and code smells @jNation 2021
Refactoring   blockers and code smells @jNation 2021Refactoring   blockers and code smells @jNation 2021
Refactoring blockers and code smells @jNation 2021
 
Refactoring - An Introduction
Refactoring - An IntroductionRefactoring - An Introduction
Refactoring - An Introduction
 
The Power Of Refactoring (PHPCon Italia)
The Power Of Refactoring (PHPCon Italia)The Power Of Refactoring (PHPCon Italia)
The Power Of Refactoring (PHPCon Italia)
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Code refactoring workshop (in Javascript)
Code refactoring workshop (in Javascript)Code refactoring workshop (in Javascript)
Code refactoring workshop (in Javascript)
 
AN EXERCISE IN CLEANER CODE - FROM LEGACY TO MAINTAINABLE
AN EXERCISE IN CLEANER CODE - FROM LEGACY TO MAINTAINABLEAN EXERCISE IN CLEANER CODE - FROM LEGACY TO MAINTAINABLE
AN EXERCISE IN CLEANER CODE - FROM LEGACY TO MAINTAINABLE
 
AN EXERCISE IN CLEANER CODE - FROM LEGACY TO MAINTAINABLE - CFObjective() 2017
AN EXERCISE IN CLEANER CODE - FROM LEGACY TO MAINTAINABLE - CFObjective() 2017AN EXERCISE IN CLEANER CODE - FROM LEGACY TO MAINTAINABLE - CFObjective() 2017
AN EXERCISE IN CLEANER CODE - FROM LEGACY TO MAINTAINABLE - CFObjective() 2017
 
Tdd is not about testing
Tdd is not about testingTdd is not about testing
Tdd is not about testing
 
Stop wasting-time-by-applying-clean-code-principles
Stop wasting-time-by-applying-clean-code-principlesStop wasting-time-by-applying-clean-code-principles
Stop wasting-time-by-applying-clean-code-principles
 
Testing, Learning and Professionalism — 20171214
Testing, Learning and Professionalism — 20171214Testing, Learning and Professionalism — 20171214
Testing, Learning and Professionalism — 20171214
 
Refactor your code: when, why and how?
Refactor your code: when, why and how?Refactor your code: when, why and how?
Refactor your code: when, why and how?
 
How to become a .net debugging jedi (Microsoft R&D Center, Nazareth, Israel)
How to become a .net debugging jedi (Microsoft R&D Center, Nazareth, Israel)How to become a .net debugging jedi (Microsoft R&D Center, Nazareth, Israel)
How to become a .net debugging jedi (Microsoft R&D Center, Nazareth, Israel)
 
Coding Standards
Coding StandardsCoding Standards
Coding Standards
 

More from Victor Rentea

Microservice Resilience Patterns @VoxxedCern'24
Microservice Resilience Patterns @VoxxedCern'24Microservice Resilience Patterns @VoxxedCern'24
Microservice Resilience Patterns @VoxxedCern'24Victor Rentea
 
Distributed Consistency.pdf
Distributed Consistency.pdfDistributed Consistency.pdf
Distributed Consistency.pdfVictor Rentea
 
Testing Microservices @DevoxxBE 23.pdf
Testing Microservices @DevoxxBE 23.pdfTesting Microservices @DevoxxBE 23.pdf
Testing Microservices @DevoxxBE 23.pdfVictor Rentea
 
From Web to Flux @DevoxxBE 2023.pptx
From Web to Flux @DevoxxBE 2023.pptxFrom Web to Flux @DevoxxBE 2023.pptx
From Web to Flux @DevoxxBE 2023.pptxVictor Rentea
 
Test-Driven Design Insights@DevoxxBE 2023.pptx
Test-Driven Design Insights@DevoxxBE 2023.pptxTest-Driven Design Insights@DevoxxBE 2023.pptx
Test-Driven Design Insights@DevoxxBE 2023.pptxVictor Rentea
 
Profiling your Java Application
Profiling your Java ApplicationProfiling your Java Application
Profiling your Java ApplicationVictor Rentea
 
Vertical Slicing Architectures
Vertical Slicing ArchitecturesVertical Slicing Architectures
Vertical Slicing ArchitecturesVictor Rentea
 
Unit testing - 9 design hints
Unit testing - 9 design hintsUnit testing - 9 design hints
Unit testing - 9 design hintsVictor Rentea
 
Hibernate and Spring - Unleash the Magic
Hibernate and Spring - Unleash the MagicHibernate and Spring - Unleash the Magic
Hibernate and Spring - Unleash the MagicVictor Rentea
 
Integration testing with spring @JAX Mainz
Integration testing with spring @JAX MainzIntegration testing with spring @JAX Mainz
Integration testing with spring @JAX MainzVictor Rentea
 
The Proxy Fairy and the Magic of Spring @JAX Mainz 2021
The Proxy Fairy and the Magic of Spring @JAX Mainz 2021The Proxy Fairy and the Magic of Spring @JAX Mainz 2021
The Proxy Fairy and the Magic of Spring @JAX Mainz 2021Victor Rentea
 
Pure functions and immutable objects @dev nexus 2021
Pure functions and immutable objects @dev nexus 2021Pure functions and immutable objects @dev nexus 2021
Pure functions and immutable objects @dev nexus 2021Victor Rentea
 
Definitive Guide to Working With Exceptions in Java - takj at Java Champions ...
Definitive Guide to Working With Exceptions in Java - takj at Java Champions ...Definitive Guide to Working With Exceptions in Java - takj at Java Champions ...
Definitive Guide to Working With Exceptions in Java - takj at Java Champions ...Victor Rentea
 
Pure Functions and Immutable Objects
Pure Functions and Immutable ObjectsPure Functions and Immutable Objects
Pure Functions and Immutable ObjectsVictor Rentea
 
Definitive Guide to Working With Exceptions in Java
Definitive Guide to Working With Exceptions in JavaDefinitive Guide to Working With Exceptions in Java
Definitive Guide to Working With Exceptions in JavaVictor Rentea
 
Engaging Isolation - What I've Learned Delivering 250 Webinar Hours during CO...
Engaging Isolation - What I've Learned Delivering 250 Webinar Hours during CO...Engaging Isolation - What I've Learned Delivering 250 Webinar Hours during CO...
Engaging Isolation - What I've Learned Delivering 250 Webinar Hours during CO...Victor Rentea
 

More from Victor Rentea (18)

Microservice Resilience Patterns @VoxxedCern'24
Microservice Resilience Patterns @VoxxedCern'24Microservice Resilience Patterns @VoxxedCern'24
Microservice Resilience Patterns @VoxxedCern'24
 
Distributed Consistency.pdf
Distributed Consistency.pdfDistributed Consistency.pdf
Distributed Consistency.pdf
 
Testing Microservices @DevoxxBE 23.pdf
Testing Microservices @DevoxxBE 23.pdfTesting Microservices @DevoxxBE 23.pdf
Testing Microservices @DevoxxBE 23.pdf
 
From Web to Flux @DevoxxBE 2023.pptx
From Web to Flux @DevoxxBE 2023.pptxFrom Web to Flux @DevoxxBE 2023.pptx
From Web to Flux @DevoxxBE 2023.pptx
 
Test-Driven Design Insights@DevoxxBE 2023.pptx
Test-Driven Design Insights@DevoxxBE 2023.pptxTest-Driven Design Insights@DevoxxBE 2023.pptx
Test-Driven Design Insights@DevoxxBE 2023.pptx
 
Profiling your Java Application
Profiling your Java ApplicationProfiling your Java Application
Profiling your Java Application
 
OAuth in the Wild
OAuth in the WildOAuth in the Wild
OAuth in the Wild
 
Vertical Slicing Architectures
Vertical Slicing ArchitecturesVertical Slicing Architectures
Vertical Slicing Architectures
 
Unit testing - 9 design hints
Unit testing - 9 design hintsUnit testing - 9 design hints
Unit testing - 9 design hints
 
Hibernate and Spring - Unleash the Magic
Hibernate and Spring - Unleash the MagicHibernate and Spring - Unleash the Magic
Hibernate and Spring - Unleash the Magic
 
Integration testing with spring @JAX Mainz
Integration testing with spring @JAX MainzIntegration testing with spring @JAX Mainz
Integration testing with spring @JAX Mainz
 
The Proxy Fairy and the Magic of Spring @JAX Mainz 2021
The Proxy Fairy and the Magic of Spring @JAX Mainz 2021The Proxy Fairy and the Magic of Spring @JAX Mainz 2021
The Proxy Fairy and the Magic of Spring @JAX Mainz 2021
 
Pure functions and immutable objects @dev nexus 2021
Pure functions and immutable objects @dev nexus 2021Pure functions and immutable objects @dev nexus 2021
Pure functions and immutable objects @dev nexus 2021
 
TDD Mantra
TDD MantraTDD Mantra
TDD Mantra
 
Definitive Guide to Working With Exceptions in Java - takj at Java Champions ...
Definitive Guide to Working With Exceptions in Java - takj at Java Champions ...Definitive Guide to Working With Exceptions in Java - takj at Java Champions ...
Definitive Guide to Working With Exceptions in Java - takj at Java Champions ...
 
Pure Functions and Immutable Objects
Pure Functions and Immutable ObjectsPure Functions and Immutable Objects
Pure Functions and Immutable Objects
 
Definitive Guide to Working With Exceptions in Java
Definitive Guide to Working With Exceptions in JavaDefinitive Guide to Working With Exceptions in Java
Definitive Guide to Working With Exceptions in Java
 
Engaging Isolation - What I've Learned Delivering 250 Webinar Hours during CO...
Engaging Isolation - What I've Learned Delivering 250 Webinar Hours during CO...Engaging Isolation - What I've Learned Delivering 250 Webinar Hours during CO...
Engaging Isolation - What I've Learned Delivering 250 Webinar Hours during CO...
 

Recently uploaded

How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 

Recently uploaded (20)

How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 

The Art of Clean Code - The Next Chapter

Editor's Notes

  1. Salut! Eu sunt Victor si am 14 ani… de lucru cu Java, desi in ultimii ani am fost impins sa invat si PHP, Scala si C#. Lucrez la IBM ca Lead Archirect, in Bucuresti. Stiati voi ca aveti un IBM chiar aici in Cluj, intr-un sediu nou-nout. In…. De fapt, cu ajorul IBM sunt astazi aici cu voi. Stiu deja ce ganditi… aa.. E architect. Sta undeva langa un ficus si deseneaza pe pereti diagrame UML.. -NU . Eu bag la cod. Lucrez pe cele mai dificile proiecte pe care le avem. La sfarsh:Sala mare -
  2. nu ne pierdem in detalii: ramanem focusati pe design
  3. nu ne pierdem in detalii: ramanem focusati pe design
  4. Mai mult de 3 parametrii – de unde stii ordinea ?
  5. Mai mult de 3 parametrii – de unde stii ordinea ?
  6. Mai mult de 3 parametrii – de unde stii ordinea ?
  7. Mai mult de 3 parametrii – de unde stii ordinea ?
  8. Mai mult de 3 parametrii – de unde stii ordinea ?
  9. Mai mult de 3 parametrii – de unde stii ordinea ?
  10. Acest curs nu a fost gandit ca un ghid comprehensiv in Design Patterns. Pentru referinte, nuante, clarificari --…
  11. Acest curs nu a fost gandit ca un ghid comprehensiv in Design Patterns. Pentru referinte, nuante, clarificari --…