SlideShare a Scribd company logo
1 of 178
Download to read offline
RENÉ CACHEAUX • MOBILE ARCHITECT • ATLASSIAN • @RCACHATX
Coding for Humans
not computers
It’s not easy,
we don’t teach it,
it’s not natural.
What’s the
big deal?
Readable = Fun
Code is Hard to Read
Time is Money
We can get time back to do all the
things we love.
Code reviews, fixing bugs, adding
new features all require reading.
Easy to read code is fun to work
with and who doesn’t want fun?
🤐
• Big cool statistic
• 2,56
9
• Add-Ons in Marketplace
Tabs vs Spaces
• Big cool statistic
• 2,56
9
• Add-Ons in Marketplace
Prototypes
• Big cool statistic
• 2,56
9
• Add-Ons in Marketplace
• Big cool statistic
• 2,56
9
• Add-Ons in Marketplace
Let’s Dive In
CODING FOR HUMANS
STATE OF AFFAIRS
PUTTING INTO PRACTICE
Agenda
CODING FOR HUMANS
STATE OF AFFAIRS
PUTTING INTO PRACTICE
Agenda
State of
Affairs
We get Acclimated
It works! Done 😌
Fast, Faster…
We are under constant pressure to
deliver fast.
Difference between problem solving
and building production code.
After years and years we get used
to things and don’t see an issue.
State of
Affairs
We Read A Lot
Smart Compilers
Like, really smart.
When developing, we spend most
time reading.
Indeed, the ratio of time spent reading versus
writing is well over 10 to 1. We are constantly
reading old code as part of the effort to write
new code. ...[Therefore,] making it easy to
read makes it easier to write.
ROBERT C. MARTIN,
CLEAN CODE: A HANDBOOK OF AGILE SOFTWARE CRAFTSMANSHIP
“
”
Opening a
Project
Someone,
somewhere is
reading your code
from 5 years ago…
CODING FOR HUMANS
STATE OF AFFAIRS
PUTTING INTO PRACTICE
Agenda
• Big cool statistic
• 2,56
9
• Add-Ons in Marketplace
So what can we do about it?
Design Great
Reading
Experiences
Humans are complex
We all come from different
cultures, different backgrounds,
and different skill levels.
We ❤ Patterns
CODING FOR HUMANS
STATE OF AFFAIRS
PUTTING INTO PRACTICE
Agenda
CODING FOR HUMANS
STATE OF AFFAIRS
PUTTING INTO PRACTICE
Agenda
Coding for
Humans
Writing Code
Structuring Code
Building Projects
Finding code quickly and
welcoming newcomers.
Dividing code up to make code
easy to understand.
Writing code that’s easy to read.
Coding for
Humans
Writing Code
Structuring Code
Building Projects
Finding code quickly and
welcoming newcomers.
Dividing code up to make code
easy to understand.
Writing code that’s easy to read.
• Big cool statistic
• 2,56
9
• Add-Ons in Marketplace
On-boarding
README.md
Provide a high level overview of
how things are structured and
leave the details out.
PatternsArchitectureOrganization Vocabulary
What should go in a README?
• Big cool statistic
• 2,56
9
• Add-Ons in Marketplace
Organizing Source
Before you can read
something you have to
find the code.
Tell a Story Mapping View Controllers as
Packages
Organizing Source
Robert Martin,
‘Uncle Bob’
Screaming
Architecture
Example
Welcome
Twitter
Sign Up
Log In
User’s Journey
Follows user’s journey,
topmost being earliest and
bottommost being latest.
Each view controller has its
own group, acts like a
package.
Callout
App Tab Bar
Callout
App Tab Bar
Nav Bar
Tabs
Follows vertical placement
on screen.
Callout
App Tab Bar
Nav Bar
Search Compose Search Compose Search Compose
Global nav bar screens are
placed at the root, follows
placement left to right.
More examples of view
controllers as packages.
Callout
App Tab Bar
Tabs
Follows left to right
positioning of tabs.
Callout
App Tab Bar
Home Tab
Nav Bar
Nav Stack
Home Tab Actions
Home tab navigation based
group organization.
Connect
Nav Bar
Home tab’s nav bar
connect item.
Open Tweet Detail
Nav Stack
Home Tab Navigation
Tweet List Tweet Detail
Groups organized by
nav stack order.
Mapping App to Source Organization
Temporal Physical
Re-usable Code
Re-usable code
organized separately.
Screaming
Architecture
What app is this?
What app is this?
Organize by domain
instead of by
technology.
Why use this?
Easier to manageEasy to Find CodeEasy to Read Cleaner Diffs
Why use this?
Side Tip
We read code outside of Xcode, so
make sure to mirror Xcode project
group structure with file system.
Coding for
Humans
Writing Code
Structuring Code
Building Projects
Finding code quickly and
welcoming newcomers.
Dividing code up to make code
easy to understand.
Writing code that’s easy to read.
6666
UNDERLYING PRINCIPLE
Make it easy for you and your team to find code.
Coding for
Humans
Writing Code
Structuring Code
Building Projects
Finding code quickly and
welcoming newcomers.
Dividing code up to make code
easy to understand.
Writing code that’s easy to read.
Coding for
Humans
Writing Code
Structuring Code
Building Projects
Finding code quickly and
welcoming newcomers.
Dividing code up to make code
easy to understand.
Writing code that’s easy to read.
• Big cool statistic
• 2,56
9
• Add-Ons in Marketplace
View Controllers as
Components
Component-based software engineering
… is a reuse-based approach to defining,
implementing and composing loosely
coupled independent components into
systems.
WIKIPEDIA
“
”
View controllers are the foundation of your
app’s internal structure … Because they play
such an important role in your app, view
controllers are at the center of almost
everything you do.
VIEW CONTROLLER PROGRAMMING GUIDE FOR IOS,
APPLE
“
”
Independent Loosely Coupled
Life of a Typical View Controller
🙈
Instead
View
Controller
Package
Dependencies
Anything not inside the view
controller’s group is an external
dependency. Try to inject.
Break it Down
Child View
Controller
Child View
Controller
Break it Down
Cell Actions
Cell Actions
Break it Down
Each Cell as a
View Controller
View controller
containment is your
friend 😍!
Why use this?
Easy to Read Single
Responsibility
Incremental &
Parallelize
Why use this?
• Big cool statistic
• 2,56
9
• Add-Ons in Marketplace
Use Cases
… a use case is a list of actions or event
steps, typically defining the interactions
between a role [user] and a system, to
achieve a goal.
WIKIPEDIA
“
”
Like TweetRefresh Tweet ListLog In Create Tweet
Twitter Use Cases
How can I use this?
Use Case + Command Pattern
Object-Oriented Software
Engineering: A Use Case
Driven Approach
Robert Martin,
‘Uncle Bob’
Use Case + Command Pattern
Use Case + NSOperation
💑
Check out Apple’s
‘Concurrency
Programming Guide’
• Big cool statistic
• 2,56
9
• Add-Ons in Marketplace
Think of them as a recipe
Types of NSOperations
Sync (default) Async
Like TweetRefresh Tweet ListLog In Create Tweet
Twitter Use Cases
Twitter
Use Cases
What typically goes
into a Use Case
NSOperation?
Notify to ReactNSData -> ModelsHTTP Get Persist Models
Typical Refresh Use Case
View controllers create
& schedule use cases.
Cell View Controller
Cell Actions
Cell Actions
Why use this?
TestableReusableEasy to Read Flexibility
Why use this?
Coding for
Humans
Writing Code
Structuring Code
Building Projects
Finding code quickly and
welcoming newcomers.
Dividing code up to make code
easy to understand.
Writing code that’s easy to read.
104104
UNDERLYING PRINCIPLE
Architecture plays a significant role.
Pick one and stick with it.
Coding for
Humans
Writing Code
Structuring Code
Building Projects
Finding code quickly and
welcoming newcomers.
Dividing code up to make code
easy to understand.
Writing code that’s easy to read.
Coding for
Humans
Writing Code
Structuring Code
Building Projects
Finding code quickly and
welcoming newcomers.
Dividing code up to make code
easy to understand.
Writing code that’s easy to read.
• Big cool statistic
• 2,56
9
• Add-Ons in Marketplace
Writing Code
Example
Negated condition.
Nested multiple levels.
Has to run at the end.
Positive condition &
removed one level of
nesting.
Will always run at the
end of the method.
Silly NSNotification user info access.
New KeyboardAnimation type with
failable initializer.
New KeyboardAnimation type with
failable initializer.
Animation looks very generic, not
specific to this method.
New method added to UIView
via extension.
New method added to UIView
via extension.
Still too many nested levels! 2 levels deep.
Removed one level with a guard.
Removed another level by moving logic into
updateComposeFeedbackViewBottomConstraintConstant()
Two lines look related. Guard is only making
sure there’s a window.
Simplified by extending UIWindow.
Simplified by extending UIWindow.
NSNotification is more of a distraction here.
Moved into new method that takes the
keyboard animation.
Moved into new method that takes the
keyboard animation.
Oh yea, and one last thing…
Before
After
The Art of
Readable Code
Stay PositiveReturn EarlyAvoid Nesting Create New Types
Best Practices we Used
{ return <T> +
Optional ChainingGuardFailable Initializers Defer
Swifty Things we Used
? g { d { .?
Tons of other
Swifty things…
Swift API
Design
Guidelines
Why use this?
Easy to Read
Why use this?
• Big cool statistic
• 2,56
9
• Add-Ons in Marketplace
Interface Builder 🙈
Coding for
Humans
Writing Code
Structuring Code
Building Projects
Finding code quickly and
welcoming newcomers.
Dividing code up to make code
easy to understand.
Writing code that’s easy to read.
163163
UNDERLYING PRINCIPLE
Writing is hard,
spend time researching and experimenting.
Coding for
Humans
Writing Code
Structuring Code
Building Projects
Finding code quickly and
welcoming newcomers.
Dividing code up to make code
easy to understand.
Writing code that’s easy to read.
Coding for
Humans
Writing Code
Structuring Code
Building Projects
Finding code quickly and
welcoming newcomers.
Dividing code up to make code
easy to understand.
Writing code that’s easy to read.
CODING FOR HUMANS
STATE OF AFFAIRS
PUTTING INTO PRACTICE
Agenda
• Big cool statistic
• 2,56
9
• Add-Ons in Marketplace
So those are just a few tips and
tricks, where to go from here?
CODING FOR HUMANS
STATE OF AFFAIRS
PUTTING INTO PRACTICE
Agenda
CODING FOR HUMANS
STATE OF AFFAIRS
PUTTING INTO PRACTICE
Agenda
Putting into Practice
Putting into
Practice
Automate
Code Review
Team Buy-in
The entire team needs to row
together on this.
Be nit-picky at first, the team will get
a rhythm going.
Automate as much as possible
using scripts. Help and detection.
Re-organizing
Make sure to stop development
while re-organizing Xcode projects.
CODING FOR HUMANS
STATE OF AFFAIRS
PUTTING INTO PRACTICE
Agenda
CODING FOR HUMANS
STATE OF AFFAIRS
PUTTING INTO PRACTICE
That’s It
We are all engineers
We want to build 😀 things and we
want to do it in a reasonable time
so we can enjoy other hobbies
even coding.
Less BugsFunDeliver Faster
Slow at first, lightning
fast once established.
It’s fun when it’s easy
to read and build.
More team members
will understand.
Benefits
• Big cool statistic
• 2,56
9
• Add-Ons in Marketplace
Shoot for the moon!
Thank you! 🍻
RENÉ CACHEAUX • MOBILE ARCHITECT • ATLASSIAN • @RCACHATX
Don’t forget to grab a handout.

More Related Content

What's hot

Intro to react native
Intro to react nativeIntro to react native
Intro to react nativeModusJesus
 
React Native in a nutshell
React Native in a nutshellReact Native in a nutshell
React Native in a nutshellBrainhub
 
React Native - Unleash the power of React in your device - Eduard Tomàs - Cod...
React Native - Unleash the power of React in your device - Eduard Tomàs - Cod...React Native - Unleash the power of React in your device - Eduard Tomàs - Cod...
React Native - Unleash the power of React in your device - Eduard Tomàs - Cod...Codemotion
 
Reverse engineering Java et contournement du mécanisme de paiement inapp Android
Reverse engineering Java et contournement du mécanisme de paiement inapp AndroidReverse engineering Java et contournement du mécanisme de paiement inapp Android
Reverse engineering Java et contournement du mécanisme de paiement inapp AndroidJUG Lausanne
 
Introduction to React Native
Introduction to React NativeIntroduction to React Native
Introduction to React NativeSambhu Lakshmanan
 
Optimizing React Native views for pre-animation
Optimizing React Native views for pre-animationOptimizing React Native views for pre-animation
Optimizing React Native views for pre-animationModusJesus
 
Appcelerator Titanium Intro
Appcelerator Titanium IntroAppcelerator Titanium Intro
Appcelerator Titanium IntroNicholas Jansma
 
Top Reasons Why Java Rocks (report preview) - http:0t.ee/java-rocks
Top Reasons Why Java Rocks (report preview) - http:0t.ee/java-rocksTop Reasons Why Java Rocks (report preview) - http:0t.ee/java-rocks
Top Reasons Why Java Rocks (report preview) - http:0t.ee/java-rocksZeroTurnaround
 
When to (use / not use) React Native.
When to (use / not use) React Native.When to (use / not use) React Native.
When to (use / not use) React Native.Bobby Schultz
 
Top Java IDE keyboard shortcuts for Eclipse, IntelliJIDEA, NetBeans (report p...
Top Java IDE keyboard shortcuts for Eclipse, IntelliJIDEA, NetBeans (report p...Top Java IDE keyboard shortcuts for Eclipse, IntelliJIDEA, NetBeans (report p...
Top Java IDE keyboard shortcuts for Eclipse, IntelliJIDEA, NetBeans (report p...ZeroTurnaround
 
Designing Forge UI: A Story of Designing an App UI System
Designing Forge UI: A Story of Designing an App UI SystemDesigning Forge UI: A Story of Designing an App UI System
Designing Forge UI: A Story of Designing an App UI SystemAtlassian
 
Introduction to React Native & Rendering Charts / Graphs
Introduction to React Native & Rendering Charts / GraphsIntroduction to React Native & Rendering Charts / Graphs
Introduction to React Native & Rendering Charts / GraphsRahat Khanna a.k.a mAppMechanic
 
Experiences building apps with React Native @UtrechtJS May 2016
Experiences building apps with React Native @UtrechtJS May 2016Experiences building apps with React Native @UtrechtJS May 2016
Experiences building apps with React Native @UtrechtJS May 2016Adrian Philipp
 
Spark: jsFiddle Meets Salesforce Lightning
Spark: jsFiddle Meets Salesforce LightningSpark: jsFiddle Meets Salesforce Lightning
Spark: jsFiddle Meets Salesforce LightningSalesforce Developers
 
Hands on react native
Hands on react nativeHands on react native
Hands on react nativeJay Nagar
 
Spark: jsFiddle Meets Salesforce Lightning
Spark: jsFiddle Meets Salesforce LightningSpark: jsFiddle Meets Salesforce Lightning
Spark: jsFiddle Meets Salesforce LightningScott Covert
 
Spring boot vs spring framework razor sharp web applications
Spring boot vs spring framework razor sharp web applicationsSpring boot vs spring framework razor sharp web applications
Spring boot vs spring framework razor sharp web applicationsKaty Slemon
 
Introduction to react native
Introduction to react nativeIntroduction to react native
Introduction to react nativeDani Akash
 

What's hot (20)

Intro to react native
Intro to react nativeIntro to react native
Intro to react native
 
React Native in a nutshell
React Native in a nutshellReact Native in a nutshell
React Native in a nutshell
 
React Native - Unleash the power of React in your device - Eduard Tomàs - Cod...
React Native - Unleash the power of React in your device - Eduard Tomàs - Cod...React Native - Unleash the power of React in your device - Eduard Tomàs - Cod...
React Native - Unleash the power of React in your device - Eduard Tomàs - Cod...
 
Angular
AngularAngular
Angular
 
Reverse engineering Java et contournement du mécanisme de paiement inapp Android
Reverse engineering Java et contournement du mécanisme de paiement inapp AndroidReverse engineering Java et contournement du mécanisme de paiement inapp Android
Reverse engineering Java et contournement du mécanisme de paiement inapp Android
 
Introduction to React Native
Introduction to React NativeIntroduction to React Native
Introduction to React Native
 
Optimizing React Native views for pre-animation
Optimizing React Native views for pre-animationOptimizing React Native views for pre-animation
Optimizing React Native views for pre-animation
 
AHOY FB Hack Day 2017
AHOY FB Hack Day 2017AHOY FB Hack Day 2017
AHOY FB Hack Day 2017
 
Appcelerator Titanium Intro
Appcelerator Titanium IntroAppcelerator Titanium Intro
Appcelerator Titanium Intro
 
Top Reasons Why Java Rocks (report preview) - http:0t.ee/java-rocks
Top Reasons Why Java Rocks (report preview) - http:0t.ee/java-rocksTop Reasons Why Java Rocks (report preview) - http:0t.ee/java-rocks
Top Reasons Why Java Rocks (report preview) - http:0t.ee/java-rocks
 
When to (use / not use) React Native.
When to (use / not use) React Native.When to (use / not use) React Native.
When to (use / not use) React Native.
 
Top Java IDE keyboard shortcuts for Eclipse, IntelliJIDEA, NetBeans (report p...
Top Java IDE keyboard shortcuts for Eclipse, IntelliJIDEA, NetBeans (report p...Top Java IDE keyboard shortcuts for Eclipse, IntelliJIDEA, NetBeans (report p...
Top Java IDE keyboard shortcuts for Eclipse, IntelliJIDEA, NetBeans (report p...
 
Designing Forge UI: A Story of Designing an App UI System
Designing Forge UI: A Story of Designing an App UI SystemDesigning Forge UI: A Story of Designing an App UI System
Designing Forge UI: A Story of Designing an App UI System
 
Introduction to React Native & Rendering Charts / Graphs
Introduction to React Native & Rendering Charts / GraphsIntroduction to React Native & Rendering Charts / Graphs
Introduction to React Native & Rendering Charts / Graphs
 
Experiences building apps with React Native @UtrechtJS May 2016
Experiences building apps with React Native @UtrechtJS May 2016Experiences building apps with React Native @UtrechtJS May 2016
Experiences building apps with React Native @UtrechtJS May 2016
 
Spark: jsFiddle Meets Salesforce Lightning
Spark: jsFiddle Meets Salesforce LightningSpark: jsFiddle Meets Salesforce Lightning
Spark: jsFiddle Meets Salesforce Lightning
 
Hands on react native
Hands on react nativeHands on react native
Hands on react native
 
Spark: jsFiddle Meets Salesforce Lightning
Spark: jsFiddle Meets Salesforce LightningSpark: jsFiddle Meets Salesforce Lightning
Spark: jsFiddle Meets Salesforce Lightning
 
Spring boot vs spring framework razor sharp web applications
Spring boot vs spring framework razor sharp web applicationsSpring boot vs spring framework razor sharp web applications
Spring boot vs spring framework razor sharp web applications
 
Introduction to react native
Introduction to react nativeIntroduction to react native
Introduction to react native
 

Similar to Writing Code for Humans, not Computers

Taming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard WorkTaming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard WorkJoseph Yoder
 
Data science tools of the trade
Data science tools of the tradeData science tools of the trade
Data science tools of the tradeFangda Wang
 
Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...
Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...
Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...André Goliath
 
DOES16 London - Jonathan Fletcher - Re-imagining Hiscox IT: A DevOps Story
DOES16 London - Jonathan Fletcher - Re-imagining Hiscox IT: A DevOps StoryDOES16 London - Jonathan Fletcher - Re-imagining Hiscox IT: A DevOps Story
DOES16 London - Jonathan Fletcher - Re-imagining Hiscox IT: A DevOps StoryGene Kim
 
Clean Code Part III - Craftsmanship at SoCal Code Camp
Clean Code Part III - Craftsmanship at SoCal Code CampClean Code Part III - Craftsmanship at SoCal Code Camp
Clean Code Part III - Craftsmanship at SoCal Code CampTheo Jungeblut
 
Building frameworks: from concept to completion
Building frameworks: from concept to completionBuilding frameworks: from concept to completion
Building frameworks: from concept to completionRuben Goncalves
 
(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects
(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects
(SPOT205) 5 Lessons for Managing Massive IT Transformation ProjectsAmazon Web Services
 
Great Technical Architects Must Be Great Organisation Architects
Great Technical Architects Must Be Great Organisation ArchitectsGreat Technical Architects Must Be Great Organisation Architects
Great Technical Architects Must Be Great Organisation ArchitectsNick Tune
 
Best Of Build: Durable fuctions + SignalR Service + Cognitive Search
Best Of Build: Durable fuctions + SignalR Service + Cognitive SearchBest Of Build: Durable fuctions + SignalR Service + Cognitive Search
Best Of Build: Durable fuctions + SignalR Service + Cognitive SearchMoaid Hathot
 
CQRS recipes or how to cook your architecture
CQRS recipes or how to cook your architectureCQRS recipes or how to cook your architecture
CQRS recipes or how to cook your architectureThomas Jaskula
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsAmazon Web Services
 
WordCamp Nashville: Clean Code for WordPress
WordCamp Nashville: Clean Code for WordPressWordCamp Nashville: Clean Code for WordPress
WordCamp Nashville: Clean Code for WordPressmtoppa
 
How to Embed Codeless Test Automation Into DevOps
How to Embed Codeless Test Automation Into DevOpsHow to Embed Codeless Test Automation Into DevOps
How to Embed Codeless Test Automation Into DevOpsPerfecto by Perforce
 
A sweet taste of clean code and software design
A sweet taste of clean code and software designA sweet taste of clean code and software design
A sweet taste of clean code and software designKfir Bloch
 
DevOpsDays Jakarta Igites
DevOpsDays Jakarta IgitesDevOpsDays Jakarta Igites
DevOpsDays Jakarta IgitesDevOpsDaysJKT
 
Guided Path to DevOps Career.
Guided Path to DevOps Career.Guided Path to DevOps Career.
Guided Path to DevOps Career.wahabwelcome
 
From prototype to production - The journey of re-designing SmartUp.io
From prototype to production - The journey of re-designing SmartUp.ioFrom prototype to production - The journey of re-designing SmartUp.io
From prototype to production - The journey of re-designing SmartUp.ioMáté Lang
 

Similar to Writing Code for Humans, not Computers (20)

Taming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard WorkTaming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
Taming Big Balls of Mud with Diligence, Agile Practices, and Hard Work
 
Data science tools of the trade
Data science tools of the tradeData science tools of the trade
Data science tools of the trade
 
Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...
Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...
Von JavaEE auf Microservice in 6 Monaten - The Good, the Bad, and the wtfs...
 
DOES16 London - Jonathan Fletcher - Re-imagining Hiscox IT: A DevOps Story
DOES16 London - Jonathan Fletcher - Re-imagining Hiscox IT: A DevOps StoryDOES16 London - Jonathan Fletcher - Re-imagining Hiscox IT: A DevOps Story
DOES16 London - Jonathan Fletcher - Re-imagining Hiscox IT: A DevOps Story
 
Clean Code Part III - Craftsmanship at SoCal Code Camp
Clean Code Part III - Craftsmanship at SoCal Code CampClean Code Part III - Craftsmanship at SoCal Code Camp
Clean Code Part III - Craftsmanship at SoCal Code Camp
 
Code detox
Code detoxCode detox
Code detox
 
Building frameworks: from concept to completion
Building frameworks: from concept to completionBuilding frameworks: from concept to completion
Building frameworks: from concept to completion
 
(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects
(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects
(SPOT205) 5 Lessons for Managing Massive IT Transformation Projects
 
Great Technical Architects Must Be Great Organisation Architects
Great Technical Architects Must Be Great Organisation ArchitectsGreat Technical Architects Must Be Great Organisation Architects
Great Technical Architects Must Be Great Organisation Architects
 
Best Of Build: Durable fuctions + SignalR Service + Cognitive Search
Best Of Build: Durable fuctions + SignalR Service + Cognitive SearchBest Of Build: Durable fuctions + SignalR Service + Cognitive Search
Best Of Build: Durable fuctions + SignalR Service + Cognitive Search
 
CQRS recipes or how to cook your architecture
CQRS recipes or how to cook your architectureCQRS recipes or how to cook your architecture
CQRS recipes or how to cook your architecture
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
 
WordCamp Nashville: Clean Code for WordPress
WordCamp Nashville: Clean Code for WordPressWordCamp Nashville: Clean Code for WordPress
WordCamp Nashville: Clean Code for WordPress
 
How to Embed Codeless Test Automation Into DevOps
How to Embed Codeless Test Automation Into DevOpsHow to Embed Codeless Test Automation Into DevOps
How to Embed Codeless Test Automation Into DevOps
 
A sweet taste of clean code and software design
A sweet taste of clean code and software designA sweet taste of clean code and software design
A sweet taste of clean code and software design
 
DevOpsDays Jakarta Igites
DevOpsDays Jakarta IgitesDevOpsDays Jakarta Igites
DevOpsDays Jakarta Igites
 
Guided Path to DevOps Career.
Guided Path to DevOps Career.Guided Path to DevOps Career.
Guided Path to DevOps Career.
 
Raising the Bar
Raising the BarRaising the Bar
Raising the Bar
 
From prototype to production - The journey of re-designing SmartUp.io
From prototype to production - The journey of re-designing SmartUp.ioFrom prototype to production - The journey of re-designing SmartUp.io
From prototype to production - The journey of re-designing SmartUp.io
 
Code Refactoring
Code RefactoringCode Refactoring
Code Refactoring
 

Recently uploaded

Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...VICTOR MAESTRE RAMIREZ
 
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2RajaP95
 
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...srsj9000
 
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfAsst.prof M.Gokilavani
 
Heart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxHeart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxPoojaBan
 
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort servicejennyeacort
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVRajaP95
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxJoão Esperancinha
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AIabhishek36461
 
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)dollysharma2066
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024Mark Billinghurst
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidNikhilNagaraju
 
Concrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxConcrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxKartikeyaDwivedi3
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girlsssuser7cb4ff
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130Suhani Kapoor
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionDr.Costas Sachpazis
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile servicerehmti665
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.eptoze12
 

Recently uploaded (20)

Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...
 
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
 
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
 
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
 
Heart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxHeart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptx
 
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
 
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
 
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AI
 
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfid
 
Concrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxConcrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptx
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girls
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile service
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.
 

Writing Code for Humans, not Computers