MS использует термин IT Pro примерно в этом значении. например, для девелоперов — MSDN, для IT pro — TechNet. К сожалению, не нашел формального определения.
Ну за версию экономики и модель атома не ручаюсь, а всякое типа — дать название группы полей в таблице или предложить названия поля получалось.
При формализации этого никак не избежать. Надо называть вещи которые ранее были смутным пятном в мозгу эксперта.
Если эксперт сам все отлично формализовал и вербализовал, я сомневаюсь, что у него будут «длинные методы» в описаниях.
Поэтому и прошу примера. То есть я согласен, на 100% сказать, что ВСЕ методы длинее, допустим, полэкрана плохие нельзя, но для длинных методов нужно хорошее осознанное обоснование и они являются исключением.
«аборигенский танец из ста хаотичных безсистемных действий» это не пример метода (нету кода). Хотелось бы понять зачем этот танец кодируют в виде метода, что ожидается в результате какие его подробности существенны, а какие нет (нельзя ли его заменить на sum(random(действие) for x in range(100))).
Разбор сайта пример понятный и я могу представить примерно что-там нужно а что нет, а аборигенский танец — не очень. Вы действиетельно занимались программированием аборигенов или пример нереалистичный?
«Сложить m между собой n раз» — это умножение. На его языке это звучит так:
«Прибавить к двум два. К результату еще прибавить два, потом еще раз прибавить два.»
При наличии такого метода, вам не придётся напрягать лишнюю извилину мозга, когда заказчик произносит: «и тут нужно сложить степень двойки этого полиномиального коэффициента между собой записанное в таком-то файле количество раз».
Я не думаю, что это реалистичная модель закачика, не знающего умножения. Это раз. Во вторых, программисты часто обладают более развитым абстрактным мышлением, чем заказчики. Нельзя ли предложить заказчику более эффективную теорию его предметной области и если он согласиться, использовать ее?
После перечисления этих 5ти методов написано… и ещё подобные методы, просто я не стал перегружать статью, отметив, что процесс торговли можно всё усложнять и усложнять, в результате чего количество сущностей на одном уровне абстракции разрастётся, разрастётся и метод, содержащий сейчас 5 строк кода. Можно наращивать метод неограниченно.
Тогда получается, что пример не подходит: для иллюстрации того, что может быть метод больше 50 строк приводится метод длинной в 5 строк.
Я думаю, человеку не свойственно оперировать длинными списками и он все равно его как-то классифицирует (помните правило 8+-2).
Не могли бы вы привести более длинный пример в комментарии?
1) Узнать информацию о поставщике;
2) Узнать информацию о лотах закупки;
3) Узнать информацию о аукционе закупки;
4) Узнать информацию о протоколах закупки;
5) Узнать информацию о последней дате изменения состояния закупки.
Я думаю, если подумать, такое можно вполне разбить на фазы: у нас есть данные, которые имеют структуру например
Аукцион
- лоты
- закупка
- дата изменения состояния
- протоколы
Соответственно эту иерархию можно перенести в код.
Вы сейчас назвали несколько сущностей: OneGet, NuGet, Chocolatey. Что из этого что?
Oneget — обший интерфейс для менеджеров пакетод для винды. Пока имеет единственный «драйвер» для chocolatey
NuGet — менеджер пакетов для Visual Studio — работает для библиотек и расширений IDE
Chocolatey — сторонний менеджер пакетов на основе Nuget. Обеспечивает комманданый интерфейс, набор примитивов для скачивания инсталляции и деинсталляции софта. Пользуется форматом nuget для описания зависимостей и свойств пакета, только для choco в состав пакета должны входить powershell скрипты для инсталляции и деинсталляции.
А. Я почему-то подумал, что двоичная. Правда, никогда не видел, чтобы использовали 8ричную запись — 16ричную сколько угодно, даоичную — бывало, но не восьми…
По ссылке написано про модули, а не по методы.
www.nothingbutsharepoint.com/sites/itpro/Pages/SharePoint-What-in-the-world-is-an-ITPro.aspx
sympmarc.com/2011/06/16/whats-the-difference-between-an-it-pro-and-a-dev/
При формализации этого никак не избежать. Надо называть вещи которые ранее были смутным пятном в мозгу эксперта.
Если эксперт сам все отлично формализовал и вербализовал, я сомневаюсь, что у него будут «длинные методы» в описаниях.
Поэтому и прошу примера. То есть я согласен, на 100% сказать, что ВСЕ методы длинее, допустим, полэкрана плохие нельзя, но для длинных методов нужно хорошее осознанное обоснование и они являются исключением.
Разбор сайта пример понятный и я могу представить примерно что-там нужно а что нет, а аборигенский танец — не очень. Вы действиетельно занимались программированием аборигенов или пример нереалистичный?
«Прибавить к двум два. К результату еще прибавить два, потом еще раз прибавить два.»
Я не думаю, что это реалистичная модель закачика, не знающего умножения. Это раз. Во вторых, программисты часто обладают более развитым абстрактным мышлением, чем заказчики. Нельзя ли предложить заказчику более эффективную теорию его предметной области и если он согласиться, использовать ее?
Тогда получается, что пример не подходит: для иллюстрации того, что может быть метод больше 50 строк приводится метод длинной в 5 строк.
Я думаю, человеку не свойственно оперировать длинными списками и он все равно его как-то классифицирует (помните правило 8+-2).
Не могли бы вы привести более длинный пример в комментарии?
Поставщик;
Закупка;
Аукцион;
Протокол;
Дата последнего изменения.
Имхо тут не последовательная связанность — так как часть шагов независимы (могут быть разбиты на параллельные таски)
Давайте пример на псевдокоде
Для меня красная тряпка когда добавляют комментарии в длинный метод разбивая его на части типа:
Вместо того, чтобы просто разбить на более короткие методы
Я думаю, если подумать, такое можно вполне разбить на фазы: у нас есть данные, которые имеют структуру например
Соответственно эту иерархию можно перенести в код.
Интересно было бы разобрать реальный пример.
Oneget — обший интерфейс для менеджеров пакетод для винды. Пока имеет единственный «драйвер» для chocolatey
NuGet — менеджер пакетов для Visual Studio — работает для библиотек и расширений IDE
Chocolatey — сторонний менеджер пакетов на основе Nuget. Обеспечивает комманданый интерфейс, набор примитивов для скачивания инсталляции и деинсталляции софта. Пользуется форматом nuget для описания зависимостей и свойств пакета, только для choco в состав пакета должны входить powershell скрипты для инсталляции и деинсталляции.