BESKRIVELSE |
Oktober workshop i 2018 er med Primo Gabrijelcic,
forfatter af Delphi High Performance og primus motor på Omnithread
Library, samt Stefan Glienke, primus motor på Spring4D.
Sammen vil de to tage os gennem en mængde teknikker og kodeeksempler på
hvordan man skriver hurtig og robust kode.
Dag 1 bliver en fælles introduktion efterfulgt af sessioner med hhv
Stefan og Primo hvor Stefan tager udgangspunkt i Spring4D, og Primo
tager udgangspunkt i bogen Delphi High Performance.
Dag 2 bliver fælles sessioner med Stefan og Primo, der gennemgår regler
og teknikker til at skrive solid kode. Undervejs benytter de libraries
som de selv har skrevet som Omnithread, TestInsight med mere.
Der kommer en close-up session de kalder Defensive Programming in
Delphi.
Buzzordene til workshoppen er SOLID, DRY, YAGNI, KISS, PFE, DI
Workshoppen bliver med et brag af eksempler.
Hvis du brænder efter at lære fra de bedste af de bedste er det helt
sikkert en workshop du ikke vil gå glip af.
Primo Gabrijelcic
Primo Gabrijelcic fra Slovenien har været taler ved masser af
konferencer, han har skrevet Omni Thread Library, et Open Source
bibliotek der kan hjælpe med trådprogrammering, samt bøgerne Delphi
High Performance og Hands On Design Patterns with Delphi.
Stefan Glienke
Stefan Glienke fra Tyskland er ligeledes et kendt navn ved
internationale Delphi/udviklings konferencer. Stefan er hjernen bag
Spring4D frameworket til Delphi, og har en særdeles tålmodig og
pædagogisk væsen når han tegner og fortæller for en forsamling.
|
PROGRAM |
DAY
1 (Tuesday)
8:00 |
Arrival and setup |
|
9:30 |
Welcome to
Stefan and Primo |
|
9:40 |
Introduction to fast code
- Stefan and Primo
Covers why one would want
to do it and presents two ways of approaching the same problem -
writing fast and optimized code or using fast and optimized
components. Contains short overview of other Day 1 sessions for both
presenters. |
10:40 |
Break |
|
10:50 |
Introduction into Spring4D
- the basics - Stefan
A high level overview of
the library and its content, introduction of base types like
Nullable |
About performance -
Primo
Defining performance, algorithmic complexity, Delphi RTL
functions complexity, profilers. |
12:00 |
Lunch |
|
13:00 |
Collection types with
Spring4D part 1 - Stefan
Looking into several
collection types that Spring4D offers |
Fixing the algorithm -
Primo
Responsive user interfaces, preventing updates, caching. |
14:00 |
Break |
|
14:10 |
Collection types with
Spring4D part 2 - Stefan
More collection types that
exceed those known from the RTL and advanced usages |
Fine tuning the code -
Primo
Delphi compiler settings, CPU window, hidden cost of using
complex data, pointers. |
15:00 |
Break |
|
15:10 |
Dependency Injection -
Stefan
How does DI help with a
good software architecture that is easy to extend, maintain and test |
Memory management -
Primo
Cost of memory allocation, hidden memory operations, FastMM tips
& tricks, replacing memory manager. |
16:00 |
A Word from Nohau |
|
18:30 |
Drinks before dinner in
Tranquebar |
|
19:00 |
Dinner |
|
DAY 2 (Wednesday)
Buzzwords to code by: SOLID, DRY, YAGNI, KISS, PFE, DI,
Unit Testing, Design Patterns
9:00 |
Introduction into Testing
and maintainable code - Stefan
Motivation for automatable
software testing - introduction to Unit and Integration testing with
DUnit, TestInsight and Mocks
Part 1 |
10:00 |
Break |
10:10 |
Introduction into Testing
and maintainable code - Stefan
Part 2
What it means to have a good
software architecture - Stefan
What makes a good software
architecture, what is this "clean code" and what does "testable" and
"maintainable" mean?
Part 1 |
11:00 |
Break |
11:10 |
What it means to have a good
software architecture - Stefan
Part 2
|
12:00 |
Lunch |
13:00 |
Design patterns and
principles - Primo
How design patterns can help
us design programs - and when do they hinder us
Part 1 |
14:00 |
Break |
14:10 |
Design patterns and
principles - Primo
Part 2
Defensive programming -
Primo
How to write code that will
stand tests of time.
Part 1 |
15:00 |
Break |
15:10 |
Defensive programming -
Primo
Part 2 |
16:00 |
Wrapup and evaluation |
Note! Day two consists of topics that
very much are related to each other, the speakers will throughout the
day interchange and supplement each other
|