SlideShare a Scribd company logo
1 of 32
Hi
My name is
Benjamin Erhart
I'm here tonight, because I love programming
Perl.
But... I actually don't want to talk about Perl, which
is, by the way, a great multi-purpose, multi-
paradigmatic, community driven, often
underestimated, mature programming language
usable for all sorts of things and especially great
for data centric web applications.
Instead I want to talk about things one level
higher.
Theses for Better Mobile and Web
Applications
Benjamin Erhart
berhart@netzarchitekten.com
or:
Various Rants about Programming
Topics
BTW:
If you want to learn about Perl, there's an
Austrian Perl Workshop coming up occurring
between November 2nd
to 3rd
at NCMs offices.
or
just ask me about a training!
whoami
Im self employed and partnered with friends at
die.netzarchitekten.com
I'm a passionate software engineer in the fields of web and
mobile with 10+ years experience and had worked my way up
to Head of Development of leading SMEs.
I'm available for hire to build your next application, consult
you and your team in the arts of proper version control and
build management, how to program Perl and JavaScript or
help with any security issues you might have application-wise!
1
Choose your tools depending on
your problems, do not try to solve
your problems with your favorite
tools.
Why?
Seems obvious when standing in front of a
toolbox.
In IT, tools are often chosen because of the wrong
reasons.
We already know them.
Sure, but: The average life of some technology
on the internet is shorter than 10 years. So you
better move on, if you don't want to fall behind!
We can't find people with knowledge
in better ones.
So what? Good programmers will program good
in any language. Just give them two weeks to
have a look around, maybe kickstart them with a
little training.
Your programmers are not so good, yet?
Well, looking beyond one's own nose is the first
step to become better. Let them explore new
stuff!
It's too expensive to do it with these
fancy new technologies.
The best fitting new technologies will save you
development time, bug fixing time, customer
care time and response time . Otherwise, they
wouldn't be best fitting. I guess, that will make up
for the extra costs...
The others use it, too!
Great! Then there's a perfect opportunity to get
an advantage. The same tools surely won't buy
you that.
2
Do not rewrite software from
scratch, but evolve it constantly!
This lesson is actually 13 years old*,
but worth repeating any time!
Everybody loves to start fresh, because:
It's harder to read code, than to write it.
*) www.joelonsoftware.com
Evolve it constantly
Environment changes constantly, even if you
don't recognize it for a while:
Server hardware breaks, old OS versions don't
run on new ones.
Libraries in use change APIs in new versions.
Documentation for old one vanishes.
If you stop development for ½ year, chances are,
your application will fall behind so much, you
can't catch up anymore.
Enhance the old code
– Put it in source control immediately if you haven't, yet!
– Start versioning, if you haven't, yet!
– Add a proper toolchain for continuous integration/deployment.
– Add documentation.
– Add unit tests.
– Add automated interface tests, if the products value allows it.
– Refactor, refactor, refactor.
– One step at a time, to allow for a continuously working product.
– Do not stick to old environments – don't be afraid of building new parts
with new technologies.
3
Avoid dependency hell for all it's
worth!
Wealth through self-restraint
– Avoid using other libraries in your own, which only
“make the language nicer”.
– Do not use libraries, which replicate behaviour of
another library you already depend on, just because
you think it's “cooler”.
– If you can't get it into your (and your colleagues) build
chain easily, don't use it!
Why?
– Keep resource usage low.
– Keep needed knowledge for new colleagues low.
– Keep build times low.
– Keep demands on IDEs and toolchain low. Not everybody loves your
fancy editor.
– Avoid unnecessary restraints and need to work around stuff which
turn out to be not as a good an idea as thought in the first place.
– Your going to pile up enough dependencies over time anyway!
4
API-ize your applications best as
you can! – restful
Testing
Complex MVC chains responding with HTML are
hard to test.
Web APIs returning data structures are way
easier.
Server off-load
Move business logic to the client, render client-
side.
Responsiveness
Viewer requests with shorter response times
obviously feel less sluggish to the user.
Interoperability
Reuse your APIs to integrate into other websites
or mobile applications.
Thanks for your patience!
Benjamin Erhart
die.netzarchitekten.com

More Related Content

Recently uploaded

SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 

Recently uploaded (20)

SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 

Featured

PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...DevGAMM Conference
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationErica Santiago
 

Featured (20)

PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
 

Theses for Better Mobile and Web Applications

  • 1. Hi
  • 3. I'm here tonight, because I love programming Perl.
  • 4. But... I actually don't want to talk about Perl, which is, by the way, a great multi-purpose, multi- paradigmatic, community driven, often underestimated, mature programming language usable for all sorts of things and especially great for data centric web applications.
  • 5. Instead I want to talk about things one level higher.
  • 6. Theses for Better Mobile and Web Applications Benjamin Erhart berhart@netzarchitekten.com
  • 7. or: Various Rants about Programming Topics
  • 8. BTW: If you want to learn about Perl, there's an Austrian Perl Workshop coming up occurring between November 2nd to 3rd at NCMs offices. or just ask me about a training!
  • 9. whoami Im self employed and partnered with friends at die.netzarchitekten.com I'm a passionate software engineer in the fields of web and mobile with 10+ years experience and had worked my way up to Head of Development of leading SMEs. I'm available for hire to build your next application, consult you and your team in the arts of proper version control and build management, how to program Perl and JavaScript or help with any security issues you might have application-wise!
  • 10. 1
  • 11. Choose your tools depending on your problems, do not try to solve your problems with your favorite tools.
  • 12. Why? Seems obvious when standing in front of a toolbox. In IT, tools are often chosen because of the wrong reasons.
  • 13. We already know them. Sure, but: The average life of some technology on the internet is shorter than 10 years. So you better move on, if you don't want to fall behind!
  • 14. We can't find people with knowledge in better ones. So what? Good programmers will program good in any language. Just give them two weeks to have a look around, maybe kickstart them with a little training. Your programmers are not so good, yet? Well, looking beyond one's own nose is the first step to become better. Let them explore new stuff!
  • 15. It's too expensive to do it with these fancy new technologies. The best fitting new technologies will save you development time, bug fixing time, customer care time and response time . Otherwise, they wouldn't be best fitting. I guess, that will make up for the extra costs...
  • 16. The others use it, too! Great! Then there's a perfect opportunity to get an advantage. The same tools surely won't buy you that.
  • 17. 2
  • 18. Do not rewrite software from scratch, but evolve it constantly!
  • 19. This lesson is actually 13 years old*, but worth repeating any time! Everybody loves to start fresh, because: It's harder to read code, than to write it. *) www.joelonsoftware.com
  • 20. Evolve it constantly Environment changes constantly, even if you don't recognize it for a while: Server hardware breaks, old OS versions don't run on new ones. Libraries in use change APIs in new versions. Documentation for old one vanishes. If you stop development for ½ year, chances are, your application will fall behind so much, you can't catch up anymore.
  • 21. Enhance the old code – Put it in source control immediately if you haven't, yet! – Start versioning, if you haven't, yet! – Add a proper toolchain for continuous integration/deployment. – Add documentation. – Add unit tests. – Add automated interface tests, if the products value allows it. – Refactor, refactor, refactor. – One step at a time, to allow for a continuously working product. – Do not stick to old environments – don't be afraid of building new parts with new technologies.
  • 22. 3
  • 23. Avoid dependency hell for all it's worth!
  • 24. Wealth through self-restraint – Avoid using other libraries in your own, which only “make the language nicer”. – Do not use libraries, which replicate behaviour of another library you already depend on, just because you think it's “cooler”. – If you can't get it into your (and your colleagues) build chain easily, don't use it!
  • 25. Why? – Keep resource usage low. – Keep needed knowledge for new colleagues low. – Keep build times low. – Keep demands on IDEs and toolchain low. Not everybody loves your fancy editor. – Avoid unnecessary restraints and need to work around stuff which turn out to be not as a good an idea as thought in the first place. – Your going to pile up enough dependencies over time anyway!
  • 26. 4
  • 27. API-ize your applications best as you can! – restful
  • 28. Testing Complex MVC chains responding with HTML are hard to test. Web APIs returning data structures are way easier.
  • 29. Server off-load Move business logic to the client, render client- side.
  • 30. Responsiveness Viewer requests with shorter response times obviously feel less sluggish to the user.
  • 31. Interoperability Reuse your APIs to integrate into other websites or mobile applications.
  • 32. Thanks for your patience! Benjamin Erhart die.netzarchitekten.com