967 karma · joined January 14, 2012
Our main focus with this product is generating deep insights into PHP applications. Much of our experience with different frameworks, shops systems and libraries is automated here to help developers fix performance problems quickly.
I would appreciate all kinds of feedback and will answer all your questions.
https://profiler.qafoolabs.com/
We are still in closed beta but not for long anymore. You can sign up for our waiting list if you are interested to hear more.
As for the pricing, we are working on a model that is not per server/host.
phpBB and Drupal have their problems, but they both improved their code-base alot, moving from legacy PHP software to software that is much more maintainable. The road to "high quality software" is long, but throwing software out of the window instead of slowly improving it is not the right solution either.
Both projects have high numbers of unit-tests and can guarantee backwards compatibility and regression free releases in a much better way than most of the software out there in any company, written in any language.
The article obviously uses Drupal as an example, PHPBB and Wordpress as comparison because they are all in the off-the-shelf, customizable category of PHP applications.
Both Drupal and phpBB (contrast to Wordpress) have massively modernized their code bases in the last years and improved the quality of their code. Coming from their original level, this is obviously a huge undertaking and still far away from being "high quality code" as an absolute measure. However their efforts in this space are remarkable.
Given that they have so huge installed code-basis that they have to take backwards compatibility seriously (which is also something that contributes to quality of software), explaining why it takes so long to improve the quality of truly old legacy software.
Compare this with many companies that use PHP, that still don't know what automated testing and quality assurance is. The article tries to highlight how PHP open source software use tools for quality assurance, what tools exist and that you should use them in your PHP projects.
about that national development team, IMHO developers don't want to work for the government or on government jobs for a very good reason, hence the good ones are normally in the position to skip such jobs. Quality and management of IT projects is much worse in government projects vs private sector from my limited experience.
1. the value types are not immutable, which will make it very hard to work with them on larger scale. You should create new instances instead of modifying the original ones, keeping the originals intact.
2. The object hierachy is borked. You are exposing way to much information. Instead of generically allowing to save values and options in the Object, you should specialize the types much more and hide the actual value.
3. You should convert the value when creating the type, using (int) for example, or throw an exception if not convertable. The current converts the values at many places, which increases the complexity of the code unnecessarily.
How about as a next step adding revisions to formulas and making them commentable, working sort of like gists?
Additionally you are not bootstrapping the Symfony cache correctly, you need to run "php app/console cache:clear --warmup --env=prod --no-debug" before running the tests, it might cause cache slams in your benchmarks.
Refactoring tests is as important as refactoring "production" code. Following the four elements of simple design (http://www.jbrains.ca/permalink/the-four-elements-of-simple-...) you can use test refactorings to find better names and detect need for abstractions.
Tests with lots of duplication, for example in the test setup, get hard to maintain and developers tend to abandon them more easily (my own experience).
Edit: Also see the screenshot here for a more complex extract method refactoring: http://qafoolabs.github.io/php-refactoring-browser/
But still there are some potential problems:
1. The variable already exists in the class. 2. You accidently mark to much or to few lines with ":<,>%"
For refactorings such as extract method the number of preconditions and information to gather is much bigger, such as input and output variables, existance of return statement etc.
We plan to integrate the tool into vim as well, so that you can call the refactorings through vim directly.
We know that PHP Storm has many refactorings implemented very well, but a command line tool is much more flexible and useable for everyone, not just PHP Storm users.
But this would be even cooler if it would be a timeline of all the projects, organizations I am part of. Sort of the Github Dashboard as a timeline, but with additional logic to group certain events (commits for example) per project to reduce the clutter and with all the organizations in one dashboard (currently you have to use the dropdown to switch between them).
Historically it was the same and these companies still benefit from their competitive advantage (or were crushed by the state) just to name Standard Oil, Bell/AT&T, BASF, Ford. Just over time did competititors take market share from them, because they became huge beurcratic monsters (as all monopolies do).