Показать сообщение отдельно
Старый 23.12.2016, 14:43   #11  
Predatore is offline
Predatore
Участник
 
163 / 17 (1) ++
Регистрация: 29.09.2010
Ну что ж, давайте по пунктам.
Цитата:
хм. Вот вы утверждаете в 2-3 раза увеличивает. А я говорю, сокращает в 2-3 раза, особенно, если вы пишете код функции или объекта который не помещается на одной странице
Во-первых, не нужно писать функции не помещающиеся на одной странице, а в объектах по возможности не нужно использовать глобальные переменные. В c#, к слову, вообще отсутствует понятие глобальной переменной, ну это так, к слову.

Цитата:
Ctrl-G (Ctrl-L), F3, имя переменной, тип. Готово к использованию. Курсор при этом ни на секунду не изменил своего положения. Продолжаешь писать код в том же месте.
Да, справедливости ради, Ctrl-G появился в NAV2016. Раньше была магическая комбинация alt-V + 3-4 клавиши вверх.
Я не против рассматривать NAV2016, хотя по сути большинство до сих пор сидит на 2009. Но давайте посмотрим на магические комбинации в Студии. Только давайте ещё затронем объявление функций, так веселее будет.
И так, как это выглядит в Студии? В Студии я просто пишу код и если в нём у меня появляется не объявленная ранее переменная, то я нажимаю магическую комбинацию "Ctrl+." и выбираю лишь где мне нужно создать переменную, в 99% случаев мне даже тип не нужно указывать, т.к. он вычисляется из контекста. Таким же способом объявляются и функции. Т.е. просто пишется вызов, передаются параметры, а потом Ctrl+. и функция создана! В неё ещё заботливо помещается Error, на случай если Вы вдруг забудете её реализовать. Не только курсор не двигается, Вы вообще не покидаете места где кодите, ни на долю секунды нет отвлекаетесь от кода.

Цитата:
Чтобы объявить переменную в студии, извините, но во избежание бардака вам придется идти в начало метода/функции и объявлять ее там. А потом возвращаться обратно. Все равно выделяется место где эти переменные объявляются (обычно, в начале). А объявлять переменные вперемежку с кодом в большинстве случаев не комильфо, даже если язык программирования вам это позволяет. И пусть это тоже можно сделать без мышки, но потеря фокуса - при разработке - это как потеря концентрации.
Частично выше я про это уже написал. Никаких хождений туда-сюда, просто пишем код. Про место для переменных - это отдельная тема, которую нет смысла поднимать, т.к. AL не шарп, нам не дадут объявлять переменные где угодно.

Цитата:
Стандарты разработки, хотите вы того или нет, будут всегда, если вы не работаете один. Правильное именование объектов, все-таки, позволяет читать код без проблем. SalesInvHeader - это, извините, таблица 112. А если какой-то нехороший человек написал, что это boolean, то конечно это факап, и расстрелять надо такого нехорошего человека.
Я не против стандартов, я вовсе даже за, но стандарты в NAV, это как в анекдоте про 15 стандартов, давайте придумаем единый стандарт, теперь у нас 16 стандартов. Но и к правильному именование Вы как-то однобоко подошли. Вот Type это что, поле или переменная? А IsActive, это поле, переменная или функция?

Цитата:
Вопрос в частоте. Вам часто приходится править определение типа переменных?
Выгрузите объект в текст - ищите, правьте там.
Вопрос с подвохом В Студии я часто меняю имена переменных, в NAV почти никогда. А всё потому что изменить имя переменной или функции в Студии это Ctrl+R+R. Во что превращается переименование в NAV я думаю не надо рассказывать. Выгружай в текст и танцуй с бубном. А ещё в Студии я могу отсортировать переменные по типу, по имени, по типу и имени, ну и ещё по уровню доступа, что не актуально в NAV. Могу даже drag'n'drop-ом переставлять местами как переменные так и функции.

Цитата:
А насчет "быстро и легче поддерживать". Каждому - свое.
Вот тут-то Студия и ставит шах и мат. Давайте опять вспомним про стандарты. В них ведь прописано где и как ставить BEGIN END, как писать комментарии и многое другое из оформления. И если Вы не согласны со стандартом, у Вас всего 2 варианта: 1 - быть упёртым бунтарём; 2 - смириться. Студия же предлагает 3-ий вариант. Я открываю Ваш код, нажимаю волшебную комбинацию Ctrl+M+Space и магия, код отформатирован так как МНЕ удобно. Есть и возможность отформатировать его в соответствии со стандартом команды. Поработал в том виде, как тебе удобно, перед тем как вернуть, отформатировал по стандарту.

Цитата:
Кстати, могли бы просто добавить к текущему виду кода возможность просмотра/правки объекта в текстовом виде, не выходя из редактора кода - и вашим и нашим.
Т.е. смотришь на стандартное окошко с кучей триггеров на таблице onValidate, 99% из которых - пусты, щелкаешь какой-нибудь Ctrl-T, и рядышком открывается этот же объект, но в тексте
Возможно так и будет, мы пока не знаем как всё это будет выглядеть. Будет хорошо если и вашим и нашим.

Цитата:
Я полагаю, что все когда-то да кодили в студии.
Написать Hellow World в Студии и работать в Студии не одно и тоже, иначе все бы знали о тех плюшках о которых я толкую.

Цитата:
Меня пугает, что появляется возможность ручного набора там, где было все жестко фиксировано, и меня,например, эта жесткая фиксация устраивала - она увеличивала мою производительность. И сильно.
Там где можно руками набрать, можно руками и не набрать, или набрать неправильно.
Что будет, если я не напишу в codeunit из примера триггер OnRun? или назову его OnWalk?
Мне вот больше пугает что в NAV в кодеюните я могу назвать функцию OnRun и это, чёрт побери, скомпилится! И даже работать будет! Возможно не так как ожидается, но будет! А хуже нет греха в программирование, чем когда код делает не то, что в нём написано.
Ну ладно, давайте по теме, что если я в шарпе не правильно напишу имя конструктора? Ммм... наверное у меня не будет конструктора. А чем это грозит? Ну наверное я не смогу его вызвать, потому что его нет. Так? Нет, не так, Студия не даст мне ошибиться в имени конструктора. Ну ладно, а что если я вообще не напишу конструктора? Да и пожалуйста, будет конструктор по умолчанию. Ну вот так всё просто на самом деле.
И мне правда интересно, каким образом жёсткая фиксация увеличивала Вашу производительность? Уже прописанные триггеры? Серьёзно? Ну тогда Студия тоже так умеет, кодогенерацию никто не отменял, только возможностей больше.

Цитата:
Триггер OnRun может быть написан в середине КЮ из ста функций? Мне его искать надо будет? он не всегда будет в начале?
Там выше про сортировку и форматирование найдите пожалуйста.

Цитата:
что будет, если я напишу (CODEUNIT.RUN(70051001, Customer) а триггера OnRun нет? Runtime error?
Зачем Runtime error? Во-первых триггер OnRun есть, даже если его не написали, хотя бы потому что это триггер, а не обычная функция (вспоминаем историю с конструктором). Во-вторых, если его вдруг не окажется, всё зависит от реализации вызова. В любом случае, либо триггер будет, либо будет ошибка компиляции.

Цитата:
Меня пугает то, что предлагают в замен. Красивую студию, но работать придется сугубо с текстовичком? Посмотрим, конечно.
Среда разработки устарела, это безусловно, я с этим и не спорил.
Посмотрим, пока ещё совсем ничего не ясно, но то что это будет лучше чем есть сейчас, я практически не сомневаюсь.

Цитата:
И вот интерфейс объявления переменных - это как раз то, чему Студии надо Учиться у навика, а не наоборот.
Чур меня, чур меня! Самое главное достижение перехода, это отказ от интерфейса объявления!
За это сообщение автора поблагодарили: artkashin (1).