SlideShare uma empresa Scribd logo
1 de 29
Software Anti-Patterns (uit de praktijk) André Boonzaaijer – aboonzaaijer@sogyo.nl
Agenda ,[object Object],[object Object],[object Object],SOFTWARE INNOVATORS
Wie ben ik?  ,[object Object],[object Object],[object Object],[object Object],[object Object],SOFTWARE INNOVATORS
[object Object],SOFTWARE INNOVATORS
Context SOFTWARE INNOVATORS   Software  leverancier Software  gebruiker
+ SOFTWARE INNOVATORS
Software levenscyclus SOFTWARE INNOVATORS   Lifecycle Revolutie Evolutie 10% 10 jaar Platform, Taal, Design Patterns, Proces, Tools 90%
Software leveranciers: tijdlijn SOFTWARE INNOVATORS   DOS 1990 2000 2010 Win32 Managed / Web
The ‘Sogyo’ of software systems SOFTWARE INNOVATORS   Delphi, C++, C, VB, Smalltalk, DSDM, RUP, Waterfall, RAD, JBF, (T/PL) SQL, Client/server, PHP Java SE / Java EE, C# / ASP.NET, SCRUM, XP, Issue tracking, Source control, Continuous Integration, AJAX / Comet, MDD, DDD, Architecture, O/R bridging, SOA, EDA, Requirements modeling
[object Object],SOFTWARE INNOVATORS
10-year RAD-Race SOFTWARE INNOVATORS   DOS 1990 2000 2010 Win32 Managed / Web
10-year RAD-Race User Interface ‘ Monoliet’ Database
10-year RAD-Race Presentation Layer Data Layer User Interface ‘ Monoliet’ Database
10-year RAD-Race Presentation Layer Data Layer Business logic
10-year RAD-Race Presentation Layer Data Layer Business logic
10-year RAD-Race: Conclusion? Presentation Layer Data Layer Business logic
Token-ring development ,[object Object],[object Object],[object Object],[object Object],[object Object]
Framework mania ,[object Object],SOFTWARE INNOVATORS   Source UI Fw Data Fw Logging Fw ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],Over-Generic Development “ Generic “ Code SOFTWARE INNOVATORS   ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Specific code
Let’s make it ourselves ,[object Object],[object Object],[object Object],[object Object],SOFTWARE INNOVATORS   ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Let’s make it ourselves SOFTWARE INNOVATORS
Ever-lasting service interface ,[object Object],SOFTWARE INNOVATORS   public class SuperGenericNeverBreakingService : System.Web.Services.WebService { [WebMethod] public string ProcessMessage(string xmlMessage) { return DoSomeMagicWithLotsOfDatabasesAndStuff(); } }
3NF business modeling SOFTWARE INNOVATORS   ,[object Object],[object Object],[object Object],[object Object],[object Object]
Who Built the Pyramids? ,[object Object],[object Object],[object Object],[object Object],SOFTWARE INNOVATORS
Inverse domain language ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],SOFTWARE INNOVATORS
DDD – the technologist’s way ,[object Object],SOFTWARE INNOVATORS   Persistency, Repositories, value objects, (re)hydration, identity, O/R mapping, Persistency Ignorance, decoupling, inversion of control, dependency injection, .... NEE! DDD gaat over: Begrijpen van  (ergo: modelleren van) de business van je klant. PUNT.
Conclusies ,[object Object],[object Object],[object Object],SOFTWARE INNOVATORS
Contact ,[object Object],[object Object],[object Object],[object Object],[object Object],SOFTWARE INNOVATORS
The ASP.Net Trap ,[object Object],[object Object],[object Object],SOFTWARE INNOVATORS

Mais conteúdo relacionado

Semelhante a Devnology Community Day

Moderne Software Engineering
Moderne Software EngineeringModerne Software Engineering
Moderne Software Engineering
guestf2fc08
 
Distributed Dispatching via Cloud Computing (main)
Distributed Dispatching via Cloud Computing (main)Distributed Dispatching via Cloud Computing (main)
Distributed Dispatching via Cloud Computing (main)
Dennis Degryse
 
Presentatie BE-ODL
Presentatie BE-ODLPresentatie BE-ODL
Presentatie BE-ODL
Vision
 
Oplijsting mogelijkheden open source
Oplijsting mogelijkheden open sourceOplijsting mogelijkheden open source
Oplijsting mogelijkheden open source
guesta83c7d
 
oplijsting_mogelijkheden_open_source
oplijsting_mogelijkheden_open_sourceoplijsting_mogelijkheden_open_source
oplijsting_mogelijkheden_open_source
guesta83c7d
 
EMS Ehsal - production in a digital world 2013
EMS Ehsal - production in a digital world 2013EMS Ehsal - production in a digital world 2013
EMS Ehsal - production in a digital world 2013
Hans Palmers
 
Waarom 42windmills
Waarom 42windmillsWaarom 42windmills
Waarom 42windmills
42windmills
 

Semelhante a Devnology Community Day (20)

Moderne Software Engineering
Moderne Software EngineeringModerne Software Engineering
Moderne Software Engineering
 
Sdb Presentatie
Sdb PresentatieSdb Presentatie
Sdb Presentatie
 
Distributed Dispatching via Cloud Computing (main)
Distributed Dispatching via Cloud Computing (main)Distributed Dispatching via Cloud Computing (main)
Distributed Dispatching via Cloud Computing (main)
 
Drupal 7 Architectuur
Drupal 7 ArchitectuurDrupal 7 Architectuur
Drupal 7 Architectuur
 
HTML 5, ASP.NET MVC & Windows Azure sessie voor Ivo Brugge
HTML 5, ASP.NET MVC & Windows Azure sessie voor Ivo BruggeHTML 5, ASP.NET MVC & Windows Azure sessie voor Ivo Brugge
HTML 5, ASP.NET MVC & Windows Azure sessie voor Ivo Brugge
 
Presentatie BE-ODL
Presentatie BE-ODLPresentatie BE-ODL
Presentatie BE-ODL
 
BiMserver
BiMserverBiMserver
BiMserver
 
Oplijsting mogelijkheden open source
Oplijsting mogelijkheden open sourceOplijsting mogelijkheden open source
Oplijsting mogelijkheden open source
 
oplijsting_mogelijkheden_open_source
oplijsting_mogelijkheden_open_sourceoplijsting_mogelijkheden_open_source
oplijsting_mogelijkheden_open_source
 
FlightCheck Online - Do More 2007
FlightCheck Online - Do More 2007FlightCheck Online - Do More 2007
FlightCheck Online - Do More 2007
 
EMS Ehsal - production in a digital world 2013
EMS Ehsal - production in a digital world 2013EMS Ehsal - production in a digital world 2013
EMS Ehsal - production in a digital world 2013
 
Drupal Ncrv
Drupal NcrvDrupal Ncrv
Drupal Ncrv
 
Android
AndroidAndroid
Android
 
PfCongrez 2007 Zend Studio Overview
PfCongrez 2007 Zend Studio OverviewPfCongrez 2007 Zend Studio Overview
PfCongrez 2007 Zend Studio Overview
 
Niet onderhoudbare software in 10 makkelijke stappen
Niet onderhoudbare software in 10 makkelijke stappenNiet onderhoudbare software in 10 makkelijke stappen
Niet onderhoudbare software in 10 makkelijke stappen
 
Oorsprong, Duiding en Toepassing van Open Source Software
Oorsprong, Duiding en Toepassing van Open Source SoftwareOorsprong, Duiding en Toepassing van Open Source Software
Oorsprong, Duiding en Toepassing van Open Source Software
 
DevOps presentatie
DevOps presentatieDevOps presentatie
DevOps presentatie
 
Waarom 42windmills
Waarom 42windmillsWaarom 42windmills
Waarom 42windmills
 
TOPdesk - Azure DevOps webinar maart2022.pdf
TOPdesk - Azure DevOps webinar maart2022.pdfTOPdesk - Azure DevOps webinar maart2022.pdf
TOPdesk - Azure DevOps webinar maart2022.pdf
 
RMM portfoliopresentatie CMS/CRM 2010-2011
RMM portfoliopresentatie CMS/CRM 2010-2011RMM portfoliopresentatie CMS/CRM 2010-2011
RMM portfoliopresentatie CMS/CRM 2010-2011
 

Devnology Community Day

Notas do Editor

  1. Waarom denk ik iets over dit onderwerp te kunnen vertellen? Wij komen graag bij de software bouwer thuis  . Vandaag gaat het trouwens over “echte” softwarebouw (dus geen sharepoint geneuzel ofzo) en de “leuke” kant daarvan (dus geen mainframe’s en bank/verzekeraar transactiesystemen).
  2. Enig idee hoe lang de (gemiddelde) levenscyclus van een softwaresysteem van een productbouwer is?
  3. Praktijkcijfers. Nu in deze context 2 grote overgangen gezien: Dos->Win32, en Win32->Managed.
  4. Praktijkcijfers. Nu in deze context 2 grote overgangen gezien: Dos->Win32, en Win32->Managed.
  5. Software ontwikkeling vroeger. ‘Monolieten’. Vgl Mainframes.
  6. Layering: Opdeling naar verschillende verantwoordelijkheden. Dit is een goede ontwikkeling. Layers versus Tiers. Waar laten we (business) logica?
  7. Jaren ‘90 -> nu: VB 1.0 (1991), Delphi, C++ windows development ‘ Click – and it works’ omgevingen
  8. Centraliseren van business logic: Stored procedures. T-SQL, wie kent het? Wat is het meest krachtige paradigma voor beschijven van (business) logic?  OO !
  9. Dus breng het onder in een apart onderdeel binnen je architectuur! Kort ingaan op de pijlen.
  10. Software ontwikkeling vroeger. ‘Monolieten’. Vgl Mainframes.