ではMagento 1、私たちは、これらのディレクトリに私たちのクラスを配置するために使用されました    
- ブロック
- ヘルパー
- モデル
- 資源
また、名前の中央に大文字を含まない単純なクラス名を使用します。
いくつかのケースを見てみると Magento 2 Core   
ヘルパー
場所:
- \Foo\Bar\Helper
名前:
- *.php
例:
- \Magento\ImportExport\Helper\Report
-\Magento\Cms\Helper\Wysiwyg\Images
   
オブザーバー
場所:
- \Foo\Bar\Observer
名前:
- *.php
- *Observer.php
例:
- \Magento\CustomerCustomAttributes\Observer\SalesOrderAddressAfterLoad
-\Magento\CustomerBalance\Observer\ProcessBeforeOrderPlaceObserver
   
プラグイン
場所:
- \Foo\Bar\Plugin
名前:
- *.php
- *Plugin.php
例:
- \Magento\Catalog\Plugin\Block\Topmenu
- \Magento\PageCache\Model\App\FrontController\BuiltinPlugin
出典:http://devdocs.magento.com/guides/v2.0/extension-dev-guide/plugins.html#declaring-a-plugin 
   
ConfigProvider
場所:
- \Foo\Bar\Model
名前:
- *ConfigProvider.php
例:
- \Magento\Tax\Model\TaxConfigProvider
-\Magento\Payment\Model\IframeConfigProvider
私の質問は:
- そのためのgood/bad/bestプラクティスがある場合はMagento 2?
- DataProviderたとえば、カスタムを作成する場合はどうなりますか?- \Foo\Bar\Provider\CustomDataProvider
- \Foo\Bar\DataProvider\Custom
- \Foo\Bar\Model\Provider\CustomDataProvider
- \Foo\Bar\Helper\Provider\CustomDataProvider
 
- クラス名と場所、モジュールのルート、フォルダー、モデル、ヘルパーなどの構成を決定する方法は?
- 取得したデータソース/データタイプに依存しますか?
- クラス名に接尾辞を追加する必要があるのはいつですか?
の応答の一部
Virtual Types:https : //community.magento.com/t5/Magento-DevBlog/Virtual-Types-Naming-Convention/ba-p/61510