AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX Blogs
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.10.2009, 13:45   #1  
konopello is offline
konopello
SAP
SAP
 
628 / 76 (4) ++++
Регистрация: 08.11.2005
Адрес: Минск
Цитата:
from mazzy И в цикле...
Инициализация - это не только обнуление. Инициализация - это еще и вызов конструктора.
Таким образом, объявление и инициализация максимально приближены друг к другу.
А вызов деструктора выполняется при выходе из области видимости.

В результате получается очень ожидаемое поведение.
И снижается риск использования неинициализированной переменной.
Даже в маленьких методах.
Добавлю свое мнение на примере SAP, в ABAP разрешено использовать объявление переменных в нутри других конструкций, но это приводит к большой путанице, в рекомендациях SAP сказано что объявление переменных необходимо выполнять только в начале метода, а большие тексты методов разбивать на подметоды где и делать новое объявление переменных.

Да конечно в некоторых местах AX такой способ даст преимущество, но данный способ объявления я бы строго регламентировал, без особой надобности и целесообразности не использовать.
Старый 13.10.2009, 14:09   #2  
Lemming is offline
Lemming
Участник
Аватар для Lemming
 
1,144 / 343 (14) ++++++
Регистрация: 20.04.2004
Адрес: Москва, Чайнатаун в Люблино
Записей в блоге: 10
Цитата:
Сообщение от konopello Посмотреть сообщение
Да конечно в некоторых местах AX такой способ даст преимущество, но данный способ объявления я бы строго регламентировал, без особой надобности и целесообразности не использовать.
И как в других языках живут!?! Не знаю как там в АБАП-е, ему уже годков не мало стукнуло, там может быть и неудобно, ИМХО вопрос привычки, недели полторы плотного использования и скорее всего даже замечать перестанете. Кстати, С. Макконнелл в своей книге "Совершенный код" называет идеальным вариантом ту возможность ЯП, когда переменную можно объявить и инициализировать непосредственно перед первым использованием.
Старый 13.10.2009, 15:05   #3  
konopello is offline
konopello
SAP
SAP
 
628 / 76 (4) ++++
Регистрация: 08.11.2005
Адрес: Минск
Цитата:
И как в других языках живут!?! Не знаю как там в АБАП-е, ему уже годков не мало стукнуло, там может быть и неудобно, ИМХО вопрос привычки, недели полторы плотного использования и скорее всего даже замечать перестанете. Кстати, С. Макконнелл в своей книге "Совершенный код" называет идеальным вариантом ту возможность ЯП, когда переменную можно объявить и инициализировать непосредственно перед первым использованием.
Тут дело не в привычке, тут все гараздо глубже... Когда приходиться анализировать большие методы и программист в нутри конструкции использует объявление переменных это делает код гараздо менее понятным. К примеру ты открыл код и посмотрел в шапке какие данные он использует и с большего уже понятно с какими наборами данных он работает. Когда объявление переменных происходит в нутри конструкции тебе приходиться просмотреть весь код, что бы понять какие данные он использует. Да и дело тут не среде программирования, просто с этой проблемой по настаящиму я сталкнулся в ABAP.
Старый 13.10.2009, 15:22   #4  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,448 / 1789 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Возможность объявлять переменные в середине кода упростит читаемость длинных методов. А кому они нужны эти длинные методы?
Цитата:
Сообщение от konopello Посмотреть сообщение
Большие тексты методов разбивать на подметоды где и делать новое объявление переменных.
Полностью согласен

P.S.: но в тоже время очень скучаю по for(int i = 1; i <= n; i++)
За это сообщение автора поблагодарили: denny (1).
Старый 13.10.2009, 21:16   #5  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Мне кажется, что судя по бессмысленности кусочка кода на скриншоте - это просто человек набрал некий лексически правильный код в редакторе для теста. Я бы не стал делать выводы о фичах X++ по этому скриншоту редактора. Хотя в целом с Маззи я согласен - хорошо бы.
За это сообщение автора поблагодарили: Lemming (4).
Старый 23.10.2009, 14:20   #6  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Цитата:
for(int i = 1; i <= n; i++)
а что, в AX6 можно будет так делать? Я эту ошибку 5 раз на дню делаю, потому что параллельно на c++ работаю - бесит неимеверно, когда приходится возвращаться вверх и объявлять переменную.

PS: розовый цвет - автор посмотрел Обитаемый остров

Последний раз редактировалось Eldar9x; 23.10.2009 в 14:23.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
CRM DE LA CREME! Configuring Microsoft Dynamics CRM 4.0 for Internet-facing deployment Blog bot Dynamics CRM: Blogs 0 18.08.2009 11:05
Developer for Microsoft Dynamics AX Certification Roadmap Blog bot DAX Blogs 1 13.05.2009 16:17
Microsoft Dynamics CRM Team Blog: List Web Part for Microsoft Dynamics CRM 4.0 Deployment Scenarios Blog bot Dynamics CRM: Blogs 0 30.01.2009 22:05
Microsoft Dynamics CRM Team Blog: Microsoft Dynamics CRM 4.0 Bookshelf Blog bot Dynamics CRM: Blogs 1 22.01.2009 04:46
axStart: Microsoft Dynamics AX 2009 Hot Topics Web Seminar Series Blog bot DAX Blogs 0 06.08.2008 12:05

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

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

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