Показать сообщение отдельно
Старый 22.12.2016, 20:03   #10  
artkashin is offline
artkashin
Участник
MCBMSS
 
519 / 18 (2) ++
Регистрация: 06.12.2006
Цитата:
Сообщение от Predatore Посмотреть сообщение
Ну а теперь почему это так плохо. Начнём с того что это примерно в 2-3 раза увеличивает время объявления переменных.
хм. Вот вы утверждаете в 2-3 раза увеличивает. А я говорю, сокращает в 2-3 раза, особенно, если вы пишете код функции или объекта который не помещается на одной странице. Ctrl-G (Ctrl-L), F3, имя переменной, тип. Готово к использованию. Курсор при этом ни на секунду не изменил своего положения. Продолжаешь писать код в том же месте.
Да, справедливости ради, Ctrl-G появился в NAV2016. Раньше была магическая комбинация alt-V + 3-4 клавиши вверх.
В любом случае, при разработке, мышка не используется - если речь идет не об отчетах. Производительность без использования мышки, если что, обычно в разы выше чем с ней.
Чтобы объявить переменную в студии, извините, но во избежание бардака вам придется идти в начало метода/функции и объявлять ее там. А потом возвращаться обратно. Все равно выделяется место где эти переменные объявляются (обычно, в начале). А объявлять переменные вперемежку с кодом в большинстве случаев не комильфо, даже если язык программирования вам это позволяет. И пусть это тоже можно сделать без мышки, но потеря фокуса - при разработке - это как потеря концентрации.
Цитата:
Сообщение от Predatore Посмотреть сообщение
При этом не получается, как Вы выразились "просто читать код", потому что не понятно что за переменные, локальные они или глобальные, да и переменные ли? А может поля? Или даже функции? Именование частично решает это проблему, но порождает другую, имена становятся перегруженными, а хуже того, в коде плодится и множится винегрет из "стандартов разработки".
Стандарты разработки, хотите вы того или нет, будут всегда, если вы не работаете один. Правильное именование объектов, все-таки, позволяет читать код без проблем. SalesInvHeader - это, извините, таблица 112. А если какой-то нехороший человек написал, что это boolean, то конечно это факап, и расстрелять надо такого нехорошего человека. Это тоже самое, что в Cях
Код:
#define TRUE FALSE
В любом случае, стандартный код "читается" легко.
Цитата:
Сообщение от Predatore Посмотреть сообщение
И почему "смешивание"? Объявление переменных это тоже код, его тоже нужно читать, а ещё не плохо бы по нему искать и править его, что опят таки невозможно с такой "фишкой". И такой код, это не модно, это удобно, быстро и легче поддерживать.
Вопрос в частоте. Вам часто приходится править определение типа переменных?
Выгрузите объект в текст - ищите, правьте там. Ведь по-сути, весь этот новый AL - это объекты, выгруженные в текст. Отличий - минимум. Только, если раньше структуру этого текстовичка среда Нава поддерживала сама, теперь это предлагается переложить на мои плечи.
А в моей практике, изменить тип переменной требуется крайне редко и к подобной процедуре я прибегаю дай бог, раз в полгода.
А насчет "быстро и легче поддерживать". Каждому - свое.

Кстати, могли бы просто добавить к текущему виду кода возможность просмотра/правки объекта в текстовом виде, не выходя из редактора кода - и вашим и нашим.
Т.е. смотришь на стандартное окошко с кучей триггеров на таблице onValidate, 99% из которых - пусты, щелкаешь какой-нибудь Ctrl-T, и рядышком открывается этот же объект, но в тексте.
Цитата:
Сообщение от Predatore Посмотреть сообщение
А если Вас пугает ручной набор, так Вы видимо никогда не кодили в Студии. Я кроме прочего пишу и на шарпе тоже, так вот, в Студии я в ручную набираю на 70-80% меньше чем в НАВ. А на объявление переменных я трачу и того меньше времени.
Я полагаю, что все когда-то да кодили в студии.
Меня пугает, что появляется возможность ручного набора там, где было все жестко фиксировано, и меня,например, эта жесткая фиксация устраивала - она увеличивала мою производительность. И сильно.
Там где можно руками набрать, можно руками и не набрать, или набрать неправильно.
Что будет, если я не напишу в codeunit из примера триггер OnRun? или назову его OnWalk?
Код:
trigger OnRun();
Триггер OnRun может быть написан в середине КЮ из ста функций? Мне его искать надо будет? он не всегда будет в начале?
что будет, если я напишу (CODEUNIT.RUN(70051001, Customer) а триггера OnRun нет? Runtime error?
Цитата:
Сообщение от Predatore Посмотреть сообщение
Фантастика? Вовсе нет, просто редактор даже 2016-ого (2017 пока ничем не отличается, но держим кулачки) НАВа устарел ещё 20 лет назад. И слава Богу его отправляют на покой.
Меня пугает то, что предлагают в замен. Красивую студию, но работать придется сугубо с текстовичком? Посмотрим, конечно.
Среда разработки устарела, это безусловно, я с этим и не спорил.
Хотя меня, в большинстве случаев, она, на удивление, устраивала.
И вот интерфейс объявления переменных - это как раз то, чему Студии надо Учиться у навика, а не наоборот.

Последний раз редактировалось artkashin; 22.12.2016 в 20:12.
За это сообщение автора поблагодарили: DA_NEAL (1).