[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