When someone writes as much code as you do, it is important to make sure you are getting the most productivity for your time. This webinar focuses on tools, tips, and techniques to supercharge your effectiveness. Get your work done quicker. It is up to you what you will do with your free time after that.
Check back for the full replay
Table of Contents
- Developer productivity – Really the main goal is getting things done quickly
- Maintainability – Code is easy to read and understand with good encapsulation
- Fast compiled native apps – Compiles fast, and native applications run fast
- Database access – Always includes a rich set of database access components
- Platform API access – You don’t need to call platform APIs, but can if you want
- Property-Method-Event – General model for working with components
- Visual designers – WYSIWYG with drag and drop interface
- Reliable applications – Exception handling and component owner model
- Backwards compatibility – Even with all the updates most code is compatible
- Rich component ecosystem – There is usually a component for everything
GDK Software Tips
- Delphi plugins
- Delphi IDE Shortcuts
- Live Templates (or Code templates)
- Various useful links
MMX, ModelMaker Code Explorer
- More structured way of programming; code searching; improved refactoring
- Check out out Uwe Raabe CodeRage 2018 demo here
CodeRage Deutschland 2018 – Session 07 – Effizient arbeiten mit MMX Code Explorer – YouTube
- Details about productivity tool or tip
Read the Book
- “Code Faster in Delphi”, from Alister Christie
- lots of useful tips for improving development productivity
- Details about productivity tool or tip: IDE shortcuts; blind typing training
- Link to more information:
- Learn some general and specialized component libraries
- Why use it? because it’s far more productive to not reinvent the wheel; because it’s far more safe to use a thoroughly tested library than using its own code.
- Details about productivity tool or tip: learn, learn, learn; play with them in building little sample projects.
More on Spring4D
- Introduction to Spring4D Taking Delphi Development to the Next Level with Stefan Glenke
- Dependency Injection with Spring4D by Nick Hodges
The lightweight, full-featured, open-source Python IDE for Windows.
- Syntax Highlighting Editor
- Integrated Python Interpreter
- Full Python debugging with support for remote debugging
- Integrated Unit testing
- Integration with Python tools like PyLint, TabNanny, Profile etc.
When setting up new development machine:
- Use Delphi IDE Theme Editor
- Associate a theme with each version of Delphi
- Use the same root path for projects
- Create VHD or use SUBST
- Sync your Code Templates
- e.g. OneDrive or DropBox
- Sync your web browser’s bookmarks
https://corneliusconcepts.tech/delphi-productivity-tips-environment-consistency or just CorneliusConcepts.tech – this new blog is the top entry
Automate your builds
Using MSBuild, a build script can be as simple as a short batch file.
This gives a consistent, reproducible build every time without the IDE.
It’s a trivial example, but as you add projects, unit tests and other tasks and dependencies to your build, it saves more time and avoids repetitive tasks.
You can even automate builds that use multiple versions of Delphi.
Don’t use “WITH”!
David I.’s Top 10 Tips
1) write less code – use components, existing code (open source?), or previously created projects as a start to get work done faster.
2) write/find programs that generate/automat the code for you – wizards, project/code templates, IDE add-ins, refactoring tools, etc.
3) watch Alister Christie’s videos about being a more productive Delphi developer, use IDE short-cuts
4) think before you start writing code – make sure tasks are clear in your designs, documents, thoughts and lists
5) write unit tests to find problems early in your development
6) take breaks away from the keyboard to rest, reflect, think, give your eyes a break, …
7) avoid distractions, block out time away from mobile phones, TV, etc and ensure that your work space is set up for you to get more done.
8) Make sure you get a good night’s sleep. I’ve often solved/found bugs or cemented thoughts while I was sleeping.
9) Run ideas by fellow developers and/or team members before you launch into development – they might give you suggestions, tips, techniques and links.
10) Use modern development tools – IDEs with great programmable editors, GitHub, Team/Channel systems, background compiles/builds/tests/docgen, bug tracking, etc.
David I’s Resource Links
Know your keyboard shortcuts (Some of my favorites…)
- Ctrl+Shift+C: Class Completion
- Ctrl+Shift+Down Arrow: Jump between interface and implementation of a method
- Ctrl+Shift+J: Sync Edit
- Ctrl+Shift+R: Start keyboard macro recording
- Ctrl+Shift+P: Playback recording
- Use GExperts to manage multiple recordings and save them across Delphi sessions
- Or use a keyboard with programmable keys for your favorite macros (also works outside of Delphi!)
- Ctrl+O,C: turn on column select mode
- Ctrl+O,K: turn off column select mode
- Bonus Blog post on Column Select Mode from Ray Konopka delphibydesign.com/column-selection-trick/
Related Grijjy Blog Articles
- Decrease Your Build Time by pre-compiling common libraries to DCUs:
- Use inline variables and type inference to reduce the amount of code you write:
- Improve mobile compilation speeds by adjusting project options:
DelphiCon 2021 – Catch the replays
- Framework for creating routes between screens in Delphi VCL and FMX inspired by React.JS Router
- Framework for user access control based on the RBAC (role-based access control) concept, with it you create access rules based on JSON and perform validations in a simple way in the framework
- Mini DB with key value structure to perform local application data caching
- Framework for performing Bind via Attributes notation in form components.
- Bind4D aims to facilitate the data transition between the view layer and the other layers of your system, automatically converting data from a form to JSON using notation, assigning styles to components, performing field validation, dataset display configuration in a DbGrid and much more.
- Simple ORM to perform CRUD on all Databases supported by Firedac, its goal is to perform only CRUD without needing much configuration.
Dalija’s Productivity Slide
- Reduce distractions
- Focus on work you know you can do at a given moment
- Take breaks
- Understand the problem well before coding the solution
- Don’t be afraid to discard code and start over
- Write unit tests
- Essential tools:
- rubber duck – helps to understand the problem
- paper and pencil – helps to sketch code flow
- Git – committing often helps to revert back to a good point
- What is it? A debug value visualizer
- Why use it? When a human readable form is hidden in the value.
- How use it? Create and install plugin – see sample and docwiki.
- Details about productivity tool or tip
- Link to more information: https://docwiki.embarcadero.com/RADStudio/en/Visualizers
Live Templates – add your own
- What is it? Code Templates
- Why use it? Minimize typing and add your own favorites snippets
- How use it? Invoked by Ctrl-J or Ctrl-space just like the others
- Link to more information: https://docwiki.embarcadero.com/RADStudio/en/Live_Templates
The Pomodoro technique
- Use it to focus your efforts in timed chunks of work
- Invented by Francesco Cirillo
- You can use a physical timer, an app or a web app
- I personally like tomato-timer.com which is free!
Tomato Timer – What is good about it?
- It’s a bit of a “brain hack” which helps encourage you to really zone in on a task
- Encourages you to take regular – but managed – breaks
- Can be used to ‘gamify’ your work rate by trying to get a high score of completed Pomodoros (work sessions)
- I use 40 minute work sessions, 5 minute breaks which means 2 work sessions with the breaks equals 90 minutes. I found this better for me as a developer than 20 minute sessions
Other tips that work for me
- Wherever possible, have a regular start time, lunch time, end time especially if you work from home
- Use a “to do” list app like Microsoft ToDo, Trello or AnyList so you off-load and declutter your short-term memory
- Ask people to communicate by email – so you can deal with it when it’s an appropriate moment
- NEVER have a TV, video, talk radio or audiobook playing while you work – music only
- Walk your dogs/kids/yourself, and you will automatically solve problems with your subconscious
- What is it? Full features Markdown editor
- Why use it? It is the only WYSIWYG editor. It supports mermaid diagrams (https://mermaid.live/). It is fantastic for explain a concept to a customer. Notes and diagram in the same place. Using markdown you can do all the fancy stuff you can do with Git because it’s just text. Exports in PDF, HTML and other formats. If you need, you can export in odt or docx too.
- How use it? To get notes, write documentation, write book… really anything. It’s fast, looks nice, themeable.
- Details about productivity tool or tip: It isn’t free but is cheap
- Link to more information: https://typora.io/
- What is it? A dual-pane file manager like Total commander but it’s free.
- Why use it? Fast, maintained, full features, lots of plugin
- How use it? Just open it and navigate through you folders using the configurable shortcuts
- Details about productivity tool or tip: Supports “Explorer” like selection os[sic] other kind of selection/interaction.
- Link to more information: http://multicommander.com/
Everything – Search files by name
- What is it? A blazing fast engine to search over your drives
- Why use it? It is fast, supports regex, can be installed on a file server to provide a web UI to search files
- How use it? Just install it. It stays in the tray eating very low memory.
- Details about productivity tool or tip: You will be addicted to it, believe me.
- Link to more information: https://www.voidtools.com/
Agent Ransack – Search in files
- Let’s you bind complex macros to any keyboard shortcut
- Free, open-source scripting language for Windows that allows users to easily create small to complex scripts for all kinds of tasks such as: form fillers, auto-clicking, macros, etc.
- Super flexible and powerful
- What is it? a Pythonic task runner
- Why use it? Very fast to graps, easy to use. If you like Python you’ll love it.
- How use it? Just create a tasks.py file in your project root and start to define your “command” as Python function decorated with the @task attribute. I’m planning to write a Delphi task runner with the same approach.
- Details about productivity tool or tip: read the examples. DMVCFramework, LoggerPro and lot of other projects uses invoke to handle build, testing, release and other day-by-day task.
- Link to more information: https://www.pyinvoke.org/
- What is it? The curl of the 3rd millennium
- Why use it? Testing JSON API is easier and automatable
- How use it? Command line
- Link to more information: https://httpie.io/
THE DELPHI PARSER’S CODE MIGRATION & ANALYSIS TOOLS
- What is it?
- Automatic software utility robots specializing in code refactoring & static code analysis.
- Quickly modernize huge legacy Borland Delphi & C++ Builder software systems to latest RAD Studio 11
- Run a deep code dependencies analysis into huge legacy Delphi code
- Quickly migrate old BDE code (or alike) to work with newest FireDAC
- Migrate legacy clientserver architecture to cloud-based app with web-services
- Migrate obsolete VCL components to newest technology
- Convert Desktop Application using VCL to Web using UniGUI technology
- Why use it?
- Quickly scans, analyzes & rewrites millions of lines of code
- No man-made bugs!
- Reduce 90% of workload & development cost
- Speed up production & time to market
- Built to serve top industry enterprises, governments & defense forces
- Fully customizable wizard with a simple editable scripting tool
- An open framework with developer’s full Kit & wizard’s source code
- 100% pure Delphi
- Works like Magic!
- How use it?
- To watch the Delphi Parser tools in action on your own code download free evaluation tools at: www.DelphiParser.com
- More information
- Compare & Merge
- Files & Folders
- Syntax Aware
- Image Compare
- FTP Support
- Synchronize Folders
AI Code Completion
- VS Code CoPilot
- TMS WEB Core
- TabNine – Multi-IDE/Multi-Language
- Start a RAD Studio trial embarcadero.com/products/rad-studio/start-for-free
- Get Community Edition embarcadero.com/products/delphi/starter
- Upgrade Today! embarcadero.com/app-development-tools-store/rad-studio
- Read the whitepaper embarcadero.com/resources/white-papers
- See special offers embarcadero.com/radoffer
- Subscribe on YouTube youtube.com/c/EmbarcaderoTechnologies
- Follow us on Twitter twitter.com/embarcaderotech
- Like us on Facebook facebook.com/embarcaderotech
- Follow us on LinkedIn linkedin.com/company/embarcadero-technologies
- Read our blog blogs.embarcadero.com
Up next: whether you’re a beginner or a professional, this compiler explorer tutorial will help you remember the language features essential in C++ programming.