[wp-meta] [Making WordPress.org] #4160: Add to w.org plugin's directory the support of additional params from readme.txt - "Coding-Standards:" (like "Tags") and "Micro-Framework:"
Making WordPress.org
noreply at wordpress.org
Thu Feb 7 16:56:07 UTC 2019
#4160: Add to w.org plugin's directory the support of additional params from
readme.txt - "Coding-Standards:" (like "Tags") and "Micro-Framework:"
------------------------------+-----------------------------------
Reporter: KestutisIT | Owner: (none)
Type: enhancement | Status: new
Priority: normal | Milestone: Plugin Directory v3.0
Component: Plugin Directory | Keywords:
------------------------------+-----------------------------------
I'm suggesting an approach that could help to raise the plugin's code
quality at w.org plugins directory, as well as to improve filtering of
better code's quality plugins, and make the search more accurate and
precise by adding two more parameters to "**readme.txt**" and to parse
them with "Plugins-directory" plugin, that parses those "**readme.txt**"
files.
Those additional parameters are the following:
1. "**Compliant With:**" <LIST OF CODING STANDARDS> - similar to what we
have with "Tags" now.
2. **Micro-Framework:** - what was the 'boilerplate', on which plugin was
made, i.e. SolidMVC, Redux Framework, Unyson Framework.
----
== **HISTORY**
In the coding standards world there is nothing in "black-and-white" only.
There is so much of "gray". And what I heard from WordPress core
committers and team leads last year when I presented to all the the
“SolidMVC” micro-framwork, which is collection of coding standards, and
guideline to start in same day for a Software Architect that comes from
other programming languages (like C# or JAVA) or PHP frameworks (like
Symfony or Laravel). What they said, that:
> ''“The biggest issue about the coding standards, is not about “do you
use echo or print” - that’s none how impact the code quality or
readability. The biggest problem is that majority of WordPress plugin
developers still does not know what the S.O.L.I.D. Principle is, what
Model-View-Controller is, that they have to separate code from templates,
or what is PSR-2 or PSR-4 Autoloaders. If they would knew all that, we
would already live in a better world.”''
That is collective-quote from Dion Hulse (@dd32), Joost de Valk
(@joostdevalk), and few other team leads that sat by the table.
----
== **CODING STANDARDS ("Compliant With: <..>, <..>, <..>")**
Coding Standards list can be a similar to **tag cloud** in StackOverflow -
here defined tags can be added automatically, but the new tags has to be
approved by moderator:
[https://www.php-fig.org/psr/psr-2/ PSR-2] - created by PHP evangelists,
but is pretty much cross-platform, any C# or JAVA developer can pick-up
this.
[https://www.php-fig.org/psr/psr-4/ PSR-4 Autoloaders] - created by PHP
evangelists, but is also, pretty much cross-platform, as in C# or JAVA the
loading is done automatically as well.
[https://semver.org/spec/v2.0.0.html Semantic Versioning] - again, evolved
from PHP.net's `version_compare()`, and became a cross-platform
**dependency-hell** preventer.
[https://en.wikipedia.org/wiki/Boyce%E2%80%93Codd_normal_form BCNF
Database Structure] - there can also be a lower level definition of
[https://en.wikipedia.org/wiki/Third_normal_form Third Normal Form] or
more strict - [https://en.wikipedia.org/wiki/Fourth_normal_form Fourth
Normal Form]
[http://cldr.unicode.org/index Unicode CLDR KEY=>VALUE language package
support] - Open-Source “Unicode CLDR” is cross-platform KEY=>VALUE
translation-based solution for databases of GEO-CODING
([http://cldr.unicode.org/translation/country-names country names], city
names, ares, Airport Codes (IATA), phone regions etc.), and is largely
sponsored by Google.
_Notes: Google also developed Google AMP for WordPress (Accelerated mobile
pages) and was main sponsor of WordCamp Europe 2018. As well as this is
most popular language translation solution. Also it is the fastest
solution, as the language data gets to the memory right away without
parsing, can be edited by any editor, including Notepad++, and is suitable
for enterprise project with different extensions on same code-base, where
LANG_ITEM_TEXT in template, based on extension and loaded file might
describe a car or a boat._
**POT (Portable Objects Template) files** - popular only within WordPress
and WPML. The biggest drawback of it, that is is pretty-much commercial
tool - the only useful editor is [https://poeditor.com/pricing/ PO-
Editor], which is free to translate, but is paid for plugin developers to
generate those .PO/.MO files. It is not cross-platform, it's file has to
be parsed (is not native to the language) and is not suitable for
extensions and large enterprise projects that needs to run different
extensions on same code base.
----
== **MICRO-FRAMEWORK: <..>**
2 of 3 modern medium+ size plugins and themes runs on some kind of micro-
framework, developed by the company or MIT-open-sourced.
**None** - for the WordPress plugins, that are not based on some kind of
micro-framework.
**SolidMVC** - a GDPR-compliant micro-framework that based on collection
of most popular coding-standards (PSR-2, PSR-4 Autoloaders, Semantic
Versioning, Unicode CLDR support, BCNF Database Structure) and
Technologies (Font-Awesome) to allow any Object-Oriented Software
Architect from C# or Java, PHP Software Architects comming to WordPress
from Symfony or Laravel, to pick-up and start coding in WordPress withing
the same day, without any need to learn any new coding standards. I, as
software architect, developed the SolidMVC together with professors and
lectors from worlds TOP-500 universities, that are the creators of
Software Engineering Master Degree courses of Software Architecture and
Design courses. The SolidMVC was developed in 4 years (2015-2019) and is
licensed under almost unlimited - MIT-license, meaning that it can be used
for both - commercial and non-commercial use. The example MVP (Minimum
Viable Product) of SolidMVC is at w.org as "[https://wordpress.org/plugins
/expandable-faq/ Expandable FAQ]".
[https://reduxframework.com/ Redux Framework] - popular solution for
options for theme authors.
[http://unyson.io/ Unison framework] - also popular framework by theme
authors, it was also used by older versions of Avada.
So keeping in mind, that I put 4 years to develop a micro-framework to
create plugins, as well as there is many other micro-frameworks, as well
used by hundreds of authors, as a micro-framework author, I'd really love
to know who are enjoying and creating the plugins on given technology. As
well as that could be a perfect way to understand whose coding quality is
high enough and to develop the websites by using the "same-family" code-
base, which may prevent the mentioned "**dependecy hell**" as well as
"**updateness**".
--
Ticket URL: <https://meta.trac.wordpress.org/ticket/4160>
Making WordPress.org <https://meta.trac.wordpress.org/>
Making WordPress.org
More information about the wp-meta
mailing list