ENGLISH

Mastering Delphi Programming: A Complete Reference Guide

Book information

Publisher
Packt
Year
2019
ISBN
9781838989118
Language
english
Format
PDF
Filesize
6 MB (6280918 bytes)
Pages
\668
Time added
2021-02-25 11:31:54

Description

Delphi is a cross-platform Integrated Development Environment (IDE) that supports rapid application development for most operating systems, including Microsoft Windows, iOS, and now Linux with RAD Studio 10.2. If you know how to use the features of Delphi, you can easily create scalable applications in no time. This Learning Path begins by explaining how to find performance bottlenecks and apply the correct algorithm to fix them. You'll brush up on tricks, techniques, and best practices to solve common design and architectural challenges. Then, you'll see how to leverage external libraries to write better-performing programs. You'll also learn about the eight most important patterns that'll enable you to develop and improve the interface between items and harmonize shared memories within threads. As you progress, you'll also delve into improving the performance of your code and mastering cross-platform RTL improvements. By the end of this Learning Path, you'll be able to address common design problems and feel confident while building scalable projects. This Learning Path includes content from the following Packt products: Delphi High Performance by Primož Gabrijelčič Hands-On Design Patterns with Delphi by Primož Gabrijelčič About Packt Contributors Table of Contents Preface Chapter 1: About Performance What is performance? Different types of speed Algorithm complexity Big O and Delphi data structures Data structures in practice Mr. Smith's first program Looking at code through the Big O eyes Don't guess, measure! Profiling with TStopwatch Profilers AsmProfiler Sampling Profiler AQTime Nexus Quality Suite Summary Chapter 2: Fixing the Algorithm Responsive user interfaces Updating a progress bar Bulk updates Virtual display Caching Dynamic cache Speeding up SlowCode Summary Chapter 3: Fine-Tuning the Code Delphi compiler settings Code inlining control Optimization Record field alignment Assertions Overflow checking Range checking Extracting common expressions The helpful CPU window Behind the scenes A plethora of types Simple types Strings Arrays Records Classes Interfaces Optimizing method calls Parameter passing Method inlining The magic of pointers Going the assembler way Returning to SlowCode Summary Chapter 4: Memory Management Optimizing strings and array allocations Memory management functions Dynamic record allocation FastMM internals Memory allocation in a parallel world Replacing the default memory manager ScaleMM TBBMalloc Fine-tuning SlowCode Summary Chapter 5: Getting Started with the Parallel World Processes and threads When to parallelize the code? Most common problems Never access UI from a background thread Simultaneous reading and writing Sharing a variable Synchronization Critical sections Other locking mechanisms A short note on coding style Shared data with built-in locking Interlocked operations Object life cycle Communication Windows messages Synchronize and Queue Polling Performance Third-party libraries Summary Chapter 6: Working with Parallel Tools TThread Advanced TThread Setting up a communication channel Sending messages from a thread Implementing a timer Summary Chapter 7: Exploring Parallel Practices Tasks and patterns Variable capturing Tasks Exceptions in tasks Parallelizing a loop Thread pooling Async/Await Join Join/Await Future Parallel for Pipelines Creating the pipeline Stages Displaying the result and shutting down Summary Chapter 8: Using External Libraries Using object files Object file formats Object file linking in practice Using C++ libraries Using a proxy DLL in Delphi Summary Chapter 9: Introduction to Patterns Patterns in programming Patterns are useful Delphi idioms – Creating and destroying an object Gang of Four started it all Don't inherit – compose! Pattern taxonomy Creational patterns Structural patterns Behavioral patterns Concurrency patterns Criticism Anti-patterns Design principles SOLID Don't repeat yourself KISS and YAGNI Summary Chapter 10: Singleton, Dependency Injection, Lazy Initialization, and Object Pool Singleton NewInstance Lateral thinking Dependency injection From classes to interfaces Using a factory method Wrapping up Lazy initialization Using Spring Object pool Stock quote connection pool Summary Chapter 11: Factory Method, Abstract Factory, Prototype, and Builder Factory method Painter Modernizing the factory method pattern Abstract factory Prototype Cloning records Cloning objects Delphi idioms – Assign and AssignTo Serialization Builder Idioms – Fluent interfaces Summary Chapter 12: Composite, Flyweight, Marker Interface, and Bridge Composite Child management Flyweight String interning A practical example Delphi idioms – comparers and hashers Marker interface Delphi idioms – attributes Markers and attributes Bridge Bridged painting Summary Chapter 13: Adapter, Proxy, Decorator, and Facade Selecting an appropriate structural pattern Adapter Wrapping a class Wrapping an interface Implementing a queue with a list Proxy Delphi idioms – replacing components in runtime Smart pointers Unit testing with mock objects Decorator Decorating streams Delphi idioms – helpers Facade Summary Chapter 14: Nullable Value, Template Method, Command, and State Null object Template method Calculating the average value Inversion of control Command Command-based editor Creating commands Commands Invoker Client Macros Cloning State Unquoting a string Summary Chapter 15: Iterator, Visitor, Observer, and Memento Iterator Delphi idioms – iterating with for..in Implementing custom enumerators Using an iterator interface Visitor Observer Observing with Spring Memento Summary Chapter 16: Locking Patterns Delphi idioms – parallel programming Lock Custom locking mechanism Lock striping Single bit locks Delphi idioms – bitwise operators Double-checked locking Optimistic locking Readers-writer lock Comparing reader-writer implementations Summary Chapter 17: Thread pool, Messaging, Future and Pipeline Thread pool Idiosyncrasies of Delphi's TThreadPool Messaging Windows messages Queue and Synchronize Polling Future Pipeline Web spider Filter stage Downloader stage Parser stage Summary Other Books You May Enjoy Index

Similar books