Your SlideShare is downloading. ×
Devnology Community Day
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Devnology Community Day

432
views

Published on

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
432
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • 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).
  • Enig idee hoe lang de (gemiddelde) levenscyclus van een softwaresysteem van een productbouwer is?
  • Praktijkcijfers. Nu in deze context 2 grote overgangen gezien: Dos->Win32, en Win32->Managed.
  • Praktijkcijfers. Nu in deze context 2 grote overgangen gezien: Dos->Win32, en Win32->Managed.
  • Software ontwikkeling vroeger. ‘Monolieten’. Vgl Mainframes.
  • Layering: Opdeling naar verschillende verantwoordelijkheden. Dit is een goede ontwikkeling. Layers versus Tiers. Waar laten we (business) logica?
  • Jaren ‘90 -> nu: VB 1.0 (1991), Delphi, C++ windows development ‘ Click – and it works’ omgevingen
  • Centraliseren van business logic: Stored procedures. T-SQL, wie kent het? Wat is het meest krachtige paradigma voor beschijven van (business) logic?  OO !
  • Dus breng het onder in een apart onderdeel binnen je architectuur! Kort ingaan op de pijlen.
  • Software ontwikkeling vroeger. ‘Monolieten’. Vgl Mainframes.
  • Transcript

    • 1. Software Anti-Patterns (uit de praktijk) André Boonzaaijer – aboonzaaijer@sogyo.nl
    • 2. Agenda
      • Voorstellen
      • Context
      • Anti-Patterns
      SOFTWARE INNOVATORS
    • 3. Wie ben ik?
      • André Boonzaaijer
      • Sogyo Academy
        • Trainer
        • Coach
        • Architect/Developer
      SOFTWARE INNOVATORS
    • 4.
      • Context
      SOFTWARE INNOVATORS
    • 5. Context SOFTWARE INNOVATORS Software leverancier Software gebruiker
    • 6. + SOFTWARE INNOVATORS
    • 7. Software levenscyclus SOFTWARE INNOVATORS Lifecycle Revolutie Evolutie 10% 10 jaar Platform, Taal, Design Patterns, Proces, Tools 90%
    • 8. Software leveranciers: tijdlijn SOFTWARE INNOVATORS DOS 1990 2000 2010 Win32 Managed / Web
    • 9. 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
    • 10.
      • Anti-Patterns
      SOFTWARE INNOVATORS
    • 11. 10-year RAD-Race SOFTWARE INNOVATORS DOS 1990 2000 2010 Win32 Managed / Web
    • 12. 10-year RAD-Race User Interface ‘ Monoliet’ Database
    • 13. 10-year RAD-Race Presentation Layer Data Layer User Interface ‘ Monoliet’ Database
    • 14. 10-year RAD-Race Presentation Layer Data Layer Business logic
    • 15. 10-year RAD-Race Presentation Layer Data Layer Business logic
    • 16. 10-year RAD-Race: Conclusion? Presentation Layer Data Layer Business logic
    • 17. Token-ring development
      • Heen en weer mailen sources
      • Geen tracking van changes
      • Veel communicatie-overhead
      • Source Control
      • CI oplossing
    • 18. Framework mania
      • “ Het bestaat al”: zoveel mogelijk hergebruiken
      SOFTWARE INNOVATORS Source UI Fw Data Fw Logging Fw
      • Veel afhankelijkheden (versies)
      • Stijle leercurve: veel fw’s leren
      • Neemt eplosief toe per geintroduceerd
      • framework: combinatorische effecten
      • Te strict werken met frameworks verstart
      • (4-GL achtig)
      • Te voorkomen door stricte selectie
      • (“architectuur”)
      • - Op te lossen door ontkoppeling
    • 19.
      • See also: Swiss army knife
      Over-Generic Development “ Generic “ Code SOFTWARE INNOVATORS
      • Bijvoorbeeld: uit de hand gelopen
      • “ Layer Supertype”
      • - Super generiek plug-in framework
      • Overdraagbaarheid...
      • Voorkomen door duidelijk
      • design, goed review/monitoring
      • proces
      • Oplossen door Refactoring:
      • overhevelen naar specifieke code
      Specific code
    • 20. Let’s make it ourselves
      • See also: Re-invent the wheel
      • Validatieframeworks
      • O/R bridge
      • Rule engine
      SOFTWARE INNOVATORS
      • Oorzaken: trots, onwetendheid
      • Per definitie slecht gedocumenteerd
      • Slechte overdraagbaarheid
      • Voorkomen door ervaring, kennis en
      • kunde
      • Is niet altijd slecht: heeft een
      • hoge educatieve meerwaarde en
      • geeft volledige controle
    • 21. Let’s make it ourselves SOFTWARE INNOVATORS
    • 22. Ever-lasting service interface
      • See also: Wolf ticket
      SOFTWARE INNOVATORS public class SuperGenericNeverBreakingService : System.Web.Services.WebService { [WebMethod] public string ProcessMessage(string xmlMessage) { return DoSomeMagicWithLotsOfDatabasesAndStuff(); } }
    • 23. 3NF business modeling SOFTWARE INNOVATORS
      • “ Mooi” genormaliseerd model
      • Wat gebeurt er als een bedrijf
      • verhuist?
      • Oplossing door modelleren:
      • “ Generieke” oplossing: Datavault
    • 24. Who Built the Pyramids?
      • (Over)-designed custom framework, 10 jaar oud
      • Geen of nauwelijks documentatie
      • De makers zijn weg
      •  10-year RAD Race.
      SOFTWARE INNOVATORS
    • 25. Inverse domain language
      • Babylon revisited
      • Bon
      • Regel
      • Post
      • Vracht
      • == Transportorder
      SOFTWARE INNOVATORS
    • 26. DDD – the technologist’s way
      • DDD gaat over:
      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.
    • 27. Conclusies
      • Modelleren is een vak
      • Expliciet zijn is belangrijker dan generiek zijn
      • Onderbouw en verifieer je keuzes
      SOFTWARE INNOVATORS
    • 28. Contact
      • André Boonzaaijer
      • [email_address]
      • 030 - 220 22 16
      • Web: www.sogyo.nl
      • Blog: www.software–innovators.nl
      SOFTWARE INNOVATORS
    • 29. The ASP.Net Trap
      • Windows development == ASP.NET development
      • Web is stateless, ASP.NET dus ook !
      • Minder transparante abstracties voor “echte” web developers (PHP, Servlet/JSP developers)
      SOFTWARE INNOVATORS