Цитата:
Сообщение от
mazzy
Тут у меня такое соображение. По мотивам выступления Макса Белугина.
Может разница в восприятии сложности диктуется namespace'ами?
Кошелек Миллера - чтобы чем-то комфортно оперировать надо иметь это в количестве 7+-2.
Чтобы иметь это в таком количестве надо делать крупные кусочки из мелких. Причем кусочки люого уровня должны иметь "снаружи" и "внутри" и снаружи быть проще чем внутри.
PHP код:
PS E:\RainMain\Source\AppIL\Metadata\ApplicationSuite> ls -Recurse -Include *.xml | measure
Count : 78843
Это количество объектов в ApplicationSuite чтобы их равномерно разбить на кусочки по 8 надо
X++:
[Math]::Log(78843, 8)
5.42223168398599 уровня. НАД уже существующими объектами приложения.
Но существующие объекты тоже достаточно жирные. Если посчитать строчки кода, то:
X++:
PS E:\RainMain\Source\AppIL\Metadata\ApplicationSuite> ls -Recurse -Include *.xml | %{ (gc $_.FullName).Length }| measure -sum | % sum
24284376
PS E:\RainMain\Source\AppIL\Metadata\ApplicationSuite> [Math]::Log(24284376, 8)
8.17784169341017
Цитата:
получается, что в неймспейсах класс - это что-то вроде группы свойств и методов, которые предназначены делать какую-то одну задачу.
Это называется
Single Responsibility Principle
Цитата:
в традиционной аксапте нет возможности группировать методы, а список классов бесконечный...
В традиционной аксапте можно использовать префиксы для того, чтобы отделять модули. В 2012 появились модели, в 7 появились модули.
То есть у нас есть объекты приложения, модели, модули, причем отличить внутренне от внешнего можно только на уровне объектов приложения (да и то не всех). У модулей есть ключевое слово internal, но оно не работало для нас, например год назад полностью - не поддерживалось в VS и не было InternalsVisibleTo (что надо для юниттестов).
Под классами есть методы, функции (которые не рекомендуется использовать).
То есть нужно ~9 уровней а есть пять, причем, последние два воявились в 2012 и 7 и внутренности нельзя спрятать выше уровня класса.
На уровне модуля хотя бы контроллируются зависимости и их нецикличность.
Но мне кажется разница в восприятии в большей степени из-за разницы условий в которых работаем и бекграунда.