Posts of category: Web development
2021-2
In the future I would collect the best and most useful articles/websites collect in a list to hold on the one side my list of read articles small and maybe it helps someone on the other side. If anyone even reads my blog. Which I am not assuming.
So let’s start:
- Xdebug or actually the sponsoring page from Derick, who is the maintainer and inventor of the best debug tool for PHP. Go! Support! Because also developer want to earn money.
- TYPO3 Rector: actually I wanted to use my vacation for a lot of learning and looking about things over the holidays, but sometimes it happens different. I will use it for the next refactoring/migration and will report about it.
- Laragon: I am a strong advocate of DDEV for a server environment for local development with TYPO3. Laragon apparently wants to be something like that. Unfortunately I haven’t seen it yet, because I’m more than satisfied with DDEV.
- A nice “Everything was better (different) before” article about OpenSource development: The Golden Age of Open Source is Over
Everything must leave
In the last year which is not allowed to be called by name, I had so many plans and really achieved only a little bit of it. Because I'm doing something wrong (or different) than everyone else who was also in the home office and felt had have always leisure time or at least were so deeply relaxed, that I have started with meditation in the later summer to get to the same level. The meditation I've given up fast because that is a thing that just doesn't work for me. Apparently you have to believe in it just like with homeopathy, and that's just not what my brain is made for.
I didn't get into blogging as I had planned. Just write texts. For me. And put them on the Internet. For whatever reason. Because that's how it was done in the early times of the Internet. Where the internet wasn't quite as broken as it is today.
Maybe I'll even publish a blogroll here soon, because it there is it still there! The little blogosphere and also the tech bloggers. But I will start with a selection of articles and websites that I saved in Pocket last year and forgot. Of the almost 300 entries I will left these here, maybe one or the other will find something that will help them.
Web design
- patternlab.io: Pattern library for the documentation of design elements in web design- storybook.js.org: Pattern library for React, Vue and Angular, as well as other frameworks
- Design-Systeme mit Fluid umsetzen: Blog article on using Fluid to represent a design system
TYPO3
- Frontend File upload: File upload in the frontend for TYPO3 8 and 9
- Error management mit Sentry: Application monitoring with sentry.io, Integration in TYPO3
- Rector für TYPO3: Automated migration of legacy code, actually indispensable, Rector auf GitHub
- PSR-14 Events in TYPO3: Nice post about using events and listeners in TYPO3
- ddev für TYPO3 anpassen: there you will definitely find a few delicacies to look at
- 20 Most Common TYPO3 Errors (And How to Fix Them): Who doesn't know the error messages that TYPO3 can throw at you
- The Best Guide to TYPO3 Composer: no idea why you should even set up TYPO3 without composer
- Fully integrate DDEV and PHPStorm - including Unit Tests with Coverage: I've wanted to try it out for a long time, fire tests directly in PhpStorm in DDEV
- Validating site config of TYPO3: proof of concept validating the TYPO3 site configuration
- Integrating PHPStan in PHPStorm / PHPStan Pro
DevOps
- Deploy TYPO3 with Surf and GitLab CI: Base of my script that I am currently using for deployment
- OWASP ZAP: Scanner to check web apps for various vulnerabilities
- From Dev to Prod with GitLab CI - Stephan Hochdorfer - PHP UK Conference 2019: Prasentation about the use of GitLab CI (unfortunately not yet seen myself)
- GitLab CI for building and deploying TYPO3 websites with deployer: Deployment receipt from spoonerweb to get TYPO3 onto the target system using a deployer
- TYPO3-Projekt Buildchain mit Gilab-CI: a lot of cool stuff to check out
- TYPO3: Migrate fluid pagination widget to paginator API
- Data Transfer Objects in Extbase
PHP
- Rector: Automated migration of legacy code
- blackfire.io: PHP application performance testing
- Is Your Code Up To Sniff?: Blog article about using PHP CodeSniffer and PHP CS Fixer
Programming in general
- Develop, Debug, Learn? A time to re-think our tooling.: interesting article about using our everyday tools
- Learn regex the easy way: I hate regular expressions
- Softwarequalität wird nicht bezahlt: Blog article about who should pay the extra work for good code
- Let's Program Like It's 1999 | Lee Byron: Nice to watch lecture on how web development has (not) changed
Speed is everything
There are investigations for everything. Also for how the loading time of a website affects the possible bounce rate of the visitors. And it's hard to believe, but the bottom line is that the longer it takes a website to load, the higher the chance that the visitor will close the tab. Incredible.
So you should do everything possible to ensure that a website is delivered and, above all, displayed as quickly as possible. Apart from the fact that you should make sure that elements in the visible area are rendered first and certainly not flip back and forth while loading, another factor that can be easily influenced is keeping the number and the size of the required resources like stylesheets and JavaScript as small as possible.
The AssetCollector has been integrated with TYPO3 10.3. With this, scripts and stylesheets in Fluid files can be added to the rendering process with the ViewHelpers f:asset.script and f:asset.css. They behave similar to the renderAssetsForRequest already added in 8.6, with which you could render the corresponding code via the two Fluid sections HeaderAssets and FooterAssets.
The key difference is that, as the name suggests, the AssetCollector first collects the stylesheets and scripts and then only includes them once in the rendering. This means that I can reference the same JavaScript file in various Fluid files with the same name, which I need for example for a slider, but which is then only stored once in the document using a script tag at the end of the document.
Another advantage is that in this way you can ensure that only required resources are sent to the browser and not a JavaScript plugin for an accordion, which is not rendered on the page. Of course, this negates the concept that you always send the same resources to the browser so that it no longer requests them on the second page because it then takes them from its cache.
But with the simultaneous use of HTTP/2, which ensures that the resources for rendering the website are delivered to the browser before it even knows that it needs them, a speed advantage is still achieved in conjunction with the small data size and is especially noticeable in a faster rendering of the page. It is not at all bad that the resources are not integrated into the concatenation or compression process of TYPO3, as you were used to when you integrated your resources using TypoScript.
And so you have already made a few more visitors to your website happier.
And yes, I know, I have unfortunately not yet activated HTTP/2 on this page. It's not me. I'm sorry.