Prefixes and Suffixes Do Not Belong in Interface Names
Using the I prefix or Interface suffix for interfaces, and Abstract for abstract classes, is an antipattern. It doesn't belong in pure code. Distinguishing interface names actually blurs OOP principles, adds noise to the code, and causes complications while developing. Here are the reasons.
I-prefixes disappear from interface names
In Nette, interfaces were named with the letter I at the beginning (e.g. IRequest). A couple of years ago, an extremely slow and long term process began, which quietly while maintaining backwards compatibility is getting rid of these prefixes. How exactly is this happening and why?
Dependent selectboxes elegantly in Nette and pure JS
New plugin NEON Nette Support
IDE plugins bring comfort to your development and simplify your work. I enjoy developing plugins for the IntelliJ platform and would like to deliver the best products possible. Today I'm going to introduce a new plugin NEON Nette Support for PhpStorm that is lightning fast even in large projects…
Tracy 2.9 and evolution of the iconic screen
Tracy's distinctive red screen has barely changed in the 15 years of its existence, and it's an exaggeration to say that the evolution has been in search of the ideal shade of red. In fact, there have been plenty of minor visual improvements, but not until version 2.9 has something major been…
News in PhpGenerator 3.5
PhpGenerator has learned all the language features of PHP 8. Let's see how you can start using them right away.
News in Nette Forms 3.1
The vulnerability of a CSRF is based on the trick that the form is spoofed by an attacker and sent from his site, ie from another domain, against which Nette has always had protection, which is turned on by the method addProtection(). This protection is gradually being replaced by a new and fully…
News in Nette Database 3.1
With an elegant way of working with a transaction comes a new method transaction(). You pass in a callback that runs in the transaction. If any exception is thrown, the transaction is rolled back. If everything goes well, the transaction will be committed.