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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.02.2008, 00:56   #1  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Цитата:
Сообщение от kashperuk
...
И если код получается более читабельным
...
А еще иногда код приходиться править (для расширения функциональности). А еще бывает задача переноса на более свежий СП модифицированного кода. Именно поэтому рекомендуется ставить после IF скобки, даже если за ним следует один оператор всего. Чтобы свой кусок кода можно было просто и быстро вставить, нормально при этом откоментировав. Это не я придумал. Просто взял на вооружение. Видел нелепые и обидные ошибки на невнимательность, связанные именно с этим примером при модификации чужого кода. А не ошибается только тот, кто ничего не делает. Значит это просто лишний повод.

Сравните.

X++:
...
if (x < 0) throw error ("Error");
if (x == 0) return true;
...
и

X++:
...
    
// GLIBS: Some modification -->
// if (x < 0) throw error ("Error");
if (x < 0)
{
    this.doSomething();
    throw error ("Error");
}
// GLIBS: Some modification <--
if (x == 0) return true;
...
И следующие два примера.


X++:
...
if (x < 0)
{
    throw error ("Error");
}
if (x == 0)
{
    return true;
}
...
и

X++:
...
    
if (x < 0)
{
   // GLIBS: Some modification -->
   this.doSomething();
   // GLIBS: Some modification <--
   throw error ("Error");
}
if (x == 0)
{
   return true;
}
...
Если не комментировать — крышу сорвет при попытке разобраться в изменениях в коде (при том же переходе на новую версию, например, или при изучении чужих модификаций).

Если комментировать, то очень тяжело пользоваться функцией сравнения кода.

Так что mono прав, IMHO. А ВР нужно соблюдать.
__________________
С уважением,
glibs®
За это сообщение автора поблагодарили: oip (4).
Старый 25.02.2008, 01:05   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Вот ведь тема эволюционировала...
Цитата:
Сообщение от mazzy Посмотреть сообщение
Поэтому без-else-овую оптимизацию, по-моему, рационально делать только в простейших случаях, когда в каждой ветке делается return.
Цитата:
Сообщение от mono Посмотреть сообщение
Eсли не нравятся Best Practices - напишите свою Аксапту, с блекджеком и шлюхами.
Цитата:
Сообщение от glibs Посмотреть сообщение
А ВР нужно соблюдать.
BP нужно расширять и делать более интеллектуальным.

glibs, я же написал "только в простейших случаях, когда в каждой ветке делается return.". Если вставляется оператор до return'а, а программист не проконтролировал скобки, то... это скорее говорит о неопытности программиста, нежели о Best Practice.

Цитата:
Сообщение от glibs Посмотреть сообщение
Если не комментировать — крышу сорвет при попытке разобраться в изменениях в коде (при том же переходе на новую версию, например, или при изучении чужих модификаций).
А чтобы было легче разбираться с проапгрейдженным кодом, то пиши вот так:
X++:
...
if (x < 0) { this.doSomething(); throw error ("Error"); } // GLIBS: Some modification --
if (x == 0) return true;
...
Если у тебя длинное выражение, не помещающееся в одну строку, то пиши в несколько строк, как ты показал.
И в этом случае очень хорошо, что сравнение покажет значительные изменения.


Обсуждение обязательности скобок идет еще со времен появления структурного программирования, С и Паскаля. Сколько копий было сломано в свое время. Вот уж не ожидал, что эта "священная война" разгорится снова.

Ок. Перехожу в режим чтения этой ветки.
__________________
полезное на axForum, github, vk, coub.
Старый 25.02.2008, 01:17   #3  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Цитата:
Сообщение от mazzy
...
я же написал "только в простейших случаях, когда в каждой ветке делается return.".
...
А я писал, что любой изначально задуманный как простейший код может со временем усложниться.
Цитата:
Сообщение от mazzy
...
я же написал
...
Если вставляется оператор до return'а, а программист не проконтролировал скобки, то... это скорее говорит о неопытности программиста, нежели о Best Practice.
...
А я писал, что люди не машины. И даже у очень хорошего программиста могут быть запарки при запуске, недосыпание, проблемы в личной жизни...

Например, ERP системы внедряют для снижения человеческого фактора и зависимости от личностей... я склонен к чему-то подобному в кодировании.
Цитата:
Сообщение от mazzy
...
Перехожу в режим чтения этой ветки.
...
У меня экономическое образование. Так что программирование воспринимаю как умею. Тоже с удовольствием послушаю более опытных коллег, если откликнутся.
__________________
С уважением,
glibs®
Старый 25.02.2008, 01:21   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от glibs Посмотреть сообщение
А я писал, что люди не машины. И даже у очень хорошего программиста могут быть запарки при запуске, недосыпание, проблемы в личной жизни...
тема блога как раз о том, что чем проще написан код, тем проще его читать человеку. Следить за скобками - это должно быть на уровне рефлексов, по-моему.

Цитата:
Сообщение от glibs Посмотреть сообщение
А я писал, что любой изначально задуманный как простейший код может со временем усложниться.
ну, дык. Усложни код, когда он усложнится. Заранее то зачем?
__________________
полезное на axForum, github, vk, coub.
Старый 25.02.2008, 01:25   #5  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Цитата:
Сообщение от mazzy
...
Ок. Перехожу в режим чтения этой ветки.
...
Цитата:
Сообщение от mazzy
...
тема блога как раз о том
...
Я так и знал, что ты опять всех обманешь .
__________________
С уважением,
glibs®
За это сообщение автора поблагодарили: mazzy (2).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
mfp: Do you want to write more secure code? Blog bot DAX Blogs 0 26.03.2008 18:05
mfp: Anyone interested in developer documentation of X++ code? Blog bot DAX Blogs 0 19.02.2008 18:50
mfp: Sneak preview - Code Upgrade Enhancements Blog bot DAX Blogs 0 02.03.2007 20:46
mfp: Writing Secure X++ Code Blog bot DAX Blogs 0 28.10.2006 16:47
при построении перекрёстных ссылок выдаётся сообщение об ошибках mmmax DAX: Программирование 10 21.01.2005 12:42

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

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

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