AXForum  
Вернуться   AXForum > Прочие обсуждения > Курилка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 05.09.2012, 00:50   #1  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5813 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Все, что можно отделить и назвать — должно быть отделено и названо.
Я считаю, что здесь нужна мудрость. Ни практика принудительной экстракции всех алгоритмов, ни упаковка кода в один метод не дадут читаемый код сами по себе. Здесь нужно выработать вкус и тонкое чувство наития, подсказывающее, где стоит выделять код, а где нет.
Таким рефакторингом можно заниматься...
Я бы сказал, статье недостает элемента новизны Вместо того, чтобы сперва бросаться в крайности, а потом призывать к мудрости и выработке вкуса "по бразильской системе", можно было бы для начала почитать того же Макконнела - у него в "Совершенном коде" созданию высококачественных методов посвящена целая глава почти на 30 страниц. Затем можно почитать "Рефакторинг..." Фаулера, где тонкому чувству наития противопоставляется расписанная до мелочей "поваренная книга" методов рефакторинга с четким указанием, какой, где, когда и как применять. "Все уже придумано до нас".
Цитата:
Сообщение от mazzy Посмотреть сообщение
стоит отметить, что в аксапте методично применялся такой подход. по крайней мере в базовых классах (например, InventMovement и потомки. например, ledgerjournalengine). и я бы не сказал, что методичное применение такого подхода сильно облегчило жизнь при чтении кода.
Дык, помимо методичности нужна же мудрость! По-моему, InventMovement "слишком много на себя взял": это и механизм параметризации (методы-флажки canBeXX, mustBeXX), и поставщик разнообразных настроек разноски (accountXX, postingXX), и поставщик параметров проводки (transXX), и разного рода бизнес-логика (checkXX, updateXX). Класс должен выполнять четко очерченную роль, а не пытаться делать все и сразу. А LedgerJournalEngine мало того, что пытался заниматься всем подряд (как минимум, смешивал презентационную и бизнес-логику и в 3.0 зачастую не мог работать без ссылки на DS; в 2009-й хоть полегче стало), так еще и является "оберткой" для таблицы строк журналов с кучей полей и потому заведомо обречен на то, что численность его методов будет пропорциональна числу полей в LedgerJournalTrans. Тут уж не до облегчения жизни...
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Подумайте, чем вы можете мотивировать на переход хорошего квалифицированного аксаптовода pitersky Курилка 48 10.06.2012 21:11
Импорт "собственных" блогов не сохраняет форматирование кода X++ gl00mie Обсуждение форума 4 19.07.2011 21:52
Как распознать хорошего программиста raz Курилка 0 27.01.2009 22:00
"Синий" форум после вставки X++ кода. Maximin Обсуждение форума 1 02.08.2005 12:59
Может не стоит вводить практику вставки кода в виде картинок ? Андре Обсуждение форума 1 27.12.2004 17:49

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 01:27.