Ремесло программиста

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Ремесло программиста » OneScript, 1С:Предприятие » Что можно узнать об 1С из интернета при первом просмотре


Что можно узнать об 1С из интернета при первом просмотре

Сообщений 1 страница 27 из 27

1

http://1c-uroki.ru/articles/konstrukcii … yka_1C_8.3

Перем ФИО;
var initials;

английский вариант компактнее
В 1C нет жёсткой типизации переменных. В системе есть типы значений, но для переменных нет строгих правил по типизации. Переменная, хранившая ссылку, может через пару строчек кода уже хранить число или строку.

Процедура РассчитатьЦену (Товар)
КонецПроцедуры

void EstimatePrice(IGood good)
      ;

английский вариант современных языков - тоже компактнее. Причём с указанием типов, компактнее чем русский без указания типов
И это не просто так случилось, а потому что люди много думали, как такой компактности добиться, пробовали разные варианты.

Если Доход > 20000 Тогда
    Результат = "Жить можно";
Иначе
    Результат = "Так жить нельзя!";
КонецЕсли;

Важен ли в 1С регистр букв в ключевых словах? Нет. Например, слово Процедура можно писать как с большой, так и с маленькой буквы. Более того, большие и маленькие буквы можно чередовать внутри слова.   Курсы по 1С

Результат = ?(Доход > 20000, "Жить можно ", "Так жить нельзя!");
var result = income > 20000 ? "nice to have" : "requires increasing!";
| = ?(| > 20000, "|", "|");
var | = | > 20000 ? "|" : "|";

синтаксис всё равно в английском варианте для меня выглядит "чище", хотя он длиннее. Тут надо подумать, как обосновать - почему.
в русском варианте 5 служебных символов - ? ( , , )
а в английском два - ? :
английский длинее на счёт объявления переменной и пробелов, в то время как в русском перед запятыми пробелы пропущены.

Для каждого  СтрокаТаблицы Из Таблицы Цикл
КонецЦикла;

foreach (var СтрокаТаблицы in Таблицы) {
}

foreach - более короткое слово, зато в русском нет лишних знаков препинания. И мне кажется это больше приближает к естественному языку (только не знаю, хорошо или нет малое разнообразие знаков препинания).

Прервать;
break;
Продолжить;
continue;

Оба английских слова - более компактные.

---

Ниже в комментариях написано:

Единственная нормальная литература по языку 1С - Это руководство разработчика часть 1 и 2. Эти книги входят в поставку продуктов 1С и их часто называют ЖКК  (желто-красные книги, или "жёлто-красная камасутра").
ЖКК - это профессиональный жаргон специалистов по 1С. ЖКК означает желто красная книга. Эта аббревиатура появилась еще во времена версии 1С:Предприятие 7.7. Тогда книги по 1С имели желтые и красные цвета, в отличие от последних книг, которые имеют преимущественно желтый цвет. Тем не менее эта аббревиатура актуальна и по сей день и ее очень часто можно встретить в частном осуждении или на форуме по 1С.
в любой коробке с продуктом 1С Предприятие идут 4 книги, в том числе и в версии для обучения. Они трудно читаемые, но там описано все по языку 1С и системе вообще.

Если поискать, то, наверное их можно скачать в какой-нибудь retroshare

По книгам что идут в комплекте поставки ни учиться программировать, ни начать эксплуатировать программу нельзя.
Для 0 желающих начать писать в 1с надо купить комплект .. "версия для обучения программированию" - стоит на рубли примерно 600.
нужны либо люди с опытом, либо правильная литература(надо знать какая).

форум 1С программистов:
http://forum-1c.ru/

"система не умеет оптимизировать разыменовывания, поэтому следует стремиться выносить их наружу из всевозможных из циклов."
https://habrahabr.ru/post/247657/

Нет классов, наследования, инкапсуляции, полиморфизма;
(уууу, как всё плохо-то...)

Отредактировано ВежливыйЛис (2016-12-23 22:52:48)

2

http://v8.1c.ru/edu/platform_training.htm
Программный продукт "1С:Предприятие 8.3 Версия для обучения программированию"
Рекомендованная розничная цена – 978 руб.

3

все просто 1С преследует другие цели.

1 -

Перем ФИО;
var initials;
английский вариант компактнее

это честно говоря старая басня. и она не заслуживает даже места на обсуждение, но если уж об этом упомянули то

я пишу:
     class ImageHandler {
         private int id;
         private String guid
     }

мой коллега пишет
    class GeneralScreenCRUDOperationImageHandler{
          private int identifier;
          private int globallyUniqueIdenifier;
    }

исходя из книги Стива Макконела "Совершенный код"  второй вариант предпочтительнее - как минимум потому что не нужно писать комментарии и т.д. и т.п.
Мне нравится второй вариант также, ибо он отражает реальную суть вещей. Сам я так не пишу потому, что : 1 ленивый 2 плохо знаю английский 3 раньше писал на системных языках и потому люблю краткость (хотя в данном случае о ней вообще говорить не приходится)

на мой взгляд компактность это бред. в двоичном коде оно будет смотреться одинаково, а код программиста пишется и должен читаться людьми, так что 5 там символов или 25 не суть важно.

В 1C нет жёсткой типизации переменных. В системе есть типы значений, но для переменных нет строгих правил по типизации. Переменная, хранившая ссылку, может через пару строчек кода уже хранить число или строку.

это проблема-преимущество многих языков, особенно не компилируемых. для меня это  бред, а кому-то как раз то, что нужно. о вкусах не спорят.

Рекомендованная розничная цена – 978 руб.

не читал за что конкретно эта сумма но если за то что бы писать на этом языке программки бухгалтерские - то думаю цена завышена на 987 руб.

Важен ли в 1С регистр букв в ключевых словах? Нет. Например, слово Процедура можно писать как с большой, так и с маленькой буквы. Более того, большие и маленькие буквы можно чередовать внутри слова.

когда писал на паскале думал что это нормально, сейчас же, нахожу это каким то уродством. язык в котором есть правила - эстетически красивее, понятнее, чище. и здесь речь не о венгерская нотация си.

Для каждого  СтрокаТаблицы Из Таблицы Цикл
КонецЦикла;

вот эти вот : "конец цикла,  если тогда конецесли" - видимо и придумали потому, что не знали как без переключения раскладки, поставить спец символы.

Нет классов, наследования, инкапсуляции, полиморфизма;
(уууу, как всё плохо-то...)

новый и успешный язык golang продвигаемый "корпорацией Зла" специально отказался от некоторых перечисленных решений и тому есть много причин.
да и функциональное программирование все же работает на порядок быстрее.
Странно что для своего удобства мы используем понятия присущие живым видам когда работаем с машиной. не спорю я увяз в ооп, но это не значит что без него лучше или хуже.
без него просто по-другому.

4

английский вариант компактнее

Русский выполнен переводом ключевых слов из Бейсика ранней версией Промта.

с продуктом 1С Предприятие идут 4 книги, в том числе и в версии для обучения. Они трудно читаемые, но там описано все по языку 1С и системе вообще.

Весь учёт трудночитаем - определения тянутся из законодательства, а его перевелисостряпали во времена, когда и Промт ещё не освоили, просто кириллицей записали на слух.

Мне нравится второй вариант также

Мне не нравится постоянно писать и тем более читать private. Слишком большой избыток букв. И тем более public смотреть вот так, вместо одного заголовка.

исходя из книги Стива Макконела "Совершенный код"  второй вариант предпочтительнее - как минимум потому что не нужно писать комментарии и т.д. и т.п.

Все знают что такое id, и большинство как пишущих, так и читающих плохо знает английский, поэтому лучше id.

Важен ли в 1С регистр букв в ключевых словах? Нет. Например, слово Процедура можно писать как с большой, так и с маленькой буквы. Более того, большие и маленькие буквы можно чередовать внутри слова.

когда писал на паскале думал что это нормально, сейчас же, нахожу это каким то уродством.

Уродство в среде, которая не может сразу приводить всё в красивый вид.
Куча сущностей, отличающихся заглавностью одной буквы - это тоже уродство, неудобное зажатие клавиш и ошибки, если не придерживаться дополнительных формально не проверяемых правил. Лучше не плодить потребность в таких правилах.

новый и успешный язык golang продвигаемый "корпорацией Зла" специально отказался от некоторых перечисленных решений и тому есть много причин.

В go ООП в самом первозданном виде, каким его и придумали. ООП в духе С++ это наколенная поделка тупым расширением структур данных с вытекающими косяками.

Отредактировано MihalNik (2016-12-24 04:53:39)

5

В go ООП в самом первозданном виде, каким его и придумали. ООП в духе С++ это наколенная поделка тупым расширением структур данных с вытекающими косяками.

я читал его коментарии на эту тему. в действительности, все же, это один из вариантов, не лучше и не хуже.

про private и public  не особо понял какую альтернативу вы предлогаете?

про id это просто пример того что пишутся полные и длинные названия. не стоит заострять внимание конкретно на этом понятии.

про регистр букв - это как  в школе сначала пишешь как получается а потом пишешь так чтобы тебя понимали. это не просто неформальное правило.
я открываю код на github и чаще всего можно сразу распознать студента или " фрилансера".
это как нельзя своей ложкой есть общий салат. вроде как бы и можно но нельзя )

6

Яр написал(а):

про private и public  не особо понял какую альтернативу вы предлогаете?

Вообще неимоверно деревянное дублирование кода до которого не понятно каким путём докатились.
Не более 1 заголовка в каждой "единице пр-ва", где всё перечисленной с соответствующей видимостью.
И чтобы среда сворачивала, открыл только public - видишь с чем работать извне. Надо внутрь - развернул private.

про регистр букв - это как  в школе сначала пишешь как получается а потом пишешь так чтобы тебя понимали. это не просто неформальное правило.

Когда одно слово пишется разными буквами это зло в любом случае. Компилятор должен посылать на фиг, ни каких разных букв, никаких разных сущностей в зависимости от заглавности/строчности буквы.

это один из вариантов, не лучше и не хуже.

Тупое расширение линейно не масштабируется ни при множественном пересечении ни при наследовании.
Т.е. по-хорошему его вообще можно использовать в редких частных случаях.

Отредактировано MihalNik (2016-12-24 05:22:52)

7

.    Вообще неимоверно деревянное дублирование кода до которого не понятно каким путём докатились.
Не более 1 заголовка в каждой "единице пр-ва", где всё перечисленной с соответствующей видимостью.
И чтобы среда сворачивала, открыл только public - видишь с чем работать извне. Надо внутрь - развернул private.

Прошу прощения, но не могу представить то что вы описали. Можно кратенький пример для наглядности?  Как вы предлогаете разделять личный внешние и наследуемые методы и данные?

.  ни каких разных букв, никаких разных сущностей

Вы предлогаете все именовать одним словом? Или писать через нижнее подчеркивание? Какой разделитель?

имяПеременнойДляРаботы
ИмяПеременнойДляРаботы
имяпеременнойдляработы
имя_переменной_для_работы
?

8

имяПеременнойДляРаботы
ИмяПеременнойДляРаботы
имяпеременнойдляработы

Я предлагаю выплёвывать попытки их смешения в одной видимости.

Прошу прощения, но не могу представить то что вы описали. Можно кратенький пример для наглядности?

//public
//какие-то сущности
protected
//...
private
//...

очевидно объявлять public вообще лишнее, можно просто считать всё сверху открытым до protected или private

Отредактировано MihalNik (2016-12-24 05:39:21)

9

С областью видимости согласен. подход как в делфи вроде.  Вообще по "java enterprise codestyle" методы например и должны идти по секциям. Вверху личные по-моему внизу общие и статические. Но редко кто следует даже етим правилам.

Про переменные с разными регистрами- надо быть очень изощренным пакостником что бы плодить переменные с одинаковыми именами и отличным регистром.

10

Яр написал(а):

надо быть очень изощренным пакостником что бы плодить переменные с одинаковыми именами и отличным регистром.

постоянно так делаю. Переменные-члены с маленькой буквы, а названия соответствующих свойств - с большой. Ну и параметры конструктора вообще добуквенно совпадающими, а различаю их от переменных-членов при помощи дописывания к последним префикса this.

Отредактировано ВежливыйЛис (2016-12-24 05:48:28)

11

Яр написал(а):

Про переменные с разными регистрами- надо быть очень изощренным пакостником что бы плодить переменные с одинаковыми именами и отличным регистром.

Просто не нужно такой возможности и не нужно будет придумывать "enterprise codestyle"

постоянно так делаю.

Предлагаю расстрелять Лиса. Ему не привыкать :D

Отредактировано MihalNik (2016-12-24 05:56:50)

12

У меня уже утро так что я отключаюсь на сегодня.
Выключить такую возможность просто и легко. А значит сделаем

13

Мало кто знает, но в английской издании фамилия автора писалось с большой буквой К - МакКонналл.

Яр написал(а):

исходя из книги Стива Макконела "Совершенный код"  второй вариант предпочтительнее - как минимум потому что не нужно писать комментарии и т.д. и т.п.

Вообще-то МакКоннал в своей книги упоминает что есть исследование которые говорят что в программах меньше ошибок где длина имени от 8 до 16 букв. И рекомендует использовать не маленькие и не большие имена. а средние.
Средняя длина слова в естественном языке составляет 8 букв. Вот и получается, что имя должно состоять из 1 максимум 2-х слов.

Более того при правильной структуре программы когда вы продумываете время жизни и видимости переменных длина имен стремиться к уменьшению.

14

.  МакКоннал

Не знаю. В русском языке я такого не видел.
Салтыков-Щедрин - это я согласен, а тов. Макки пусть и так радуется.

Код:
.  Вообще-то МакКоннал в своей книги упоминает что есть исследование которые говорят что в программах меньше ошибок где длина имени от 8 до 16 букв. И рекомендует использовать не маленькие и не большие имена. а средние.
Средняя длина слова в естественном языке составляет 8 букв. Вот и получается, что имя должно состоять из 1 максимум 2-х слов.
Более того при правильной структуре программы когда вы продумываете время жизни и видимости переменных длина имен стремиться к уменьшению.

В корне не согласен. Уменьшать имена что бы уменьшать имена-нет. Код должен быть читаемым.
2слова средней длины-16 букв
И это только на переменные. А имена методов должны именноваться так чтобы была без комментариев ясна суть.

Краткость это хорошо но в меру.

Int i1=2;
Int i2=5;
И руки за такой код поодбивать.

15

Яр написал(а):

Выключить такую возможность просто и легко. А значит сделаем

Разумеется, выключить такую возможность потом невозможно, потому что куча кода просто сломается, а переписать потребуются огромные трудозатраты.

16

Есть "безплатный 1С".

http://oscript.io/

17

budden написал(а):

Есть "безплатный 1С".

http://oscript.io/

Там открытые исходники или закрытый интерпретатор с набором примеров?

18

MihalNik написал(а):

Там открытые исходники или закрытый интерпретатор с набором примеров?

MPL, git clone https://github.com/EvilBeaver/OneScript
инфа со страницы http://oscript.io/dev/sources

На гитхабе там рядом ещё лежит веб-сервер и платформа для создания сайтов

Отредактировано ВежливыйЛис (2016-12-26 18:01:33)

19

Сейчас уже никто не делает новых языков программирования с закрытыми исходниками. С открытыми-то и с разрешительной лицензией дай Бог убедить хоть кого-нибудь пользоваться именно твоим языком. А у закрытых исходников шансов вообще практически нет.

Отредактировано budden (2016-12-26 21:42:49)

20

budden написал(а):

Сейчас уже никто не делает новых языков программирования с закрытыми исходниками.

Совсем недавно видел как делают, то ли "Глагол", то-ли "Концепт" называется (на старом форуме). Закрытые исходники, только под Windows

21

Ну, отстать от времени никогда не поздно :)

22

Павиа написал(а):

Вообще-то МакКоннал в своей книги упоминает что есть исследование которые говорят что в программах меньше ошибок где длина имени от 8 до 16 букв.

Интересное заявление. С одной стороны, похоже на правду чисто интуитивно. С другой, раньше было много ограничений на длину идентификатора. Со временем идентификаторы становятся длиннее, т.е. программы с идентификаторами от 8 до 16 букв - более старые, а значит, если они дожили до сего дня, то ошибок в них мало ввиду почтенного возраста. Либо нужно было проводить какое-то специальное исследование - сажать много людей писать одни и те же программы с разными ограничениями на длину идентификаторов и мерять ошибки.

23

Совсем недавно видел как делают, то ли "Глагол", то-ли "Концепт" называется (на старом форуме). Закрытые исходники, только под Windows

Исходники Глагола давно выложены, а Концепта - нет, но последний интерпретатор.

Либо нужно было проводить какое-то специальное исследование

Всё гораздо проще - слишком длинные имена - программа неструктурирована, слишком короткие - не вычитана.

Отредактировано MihalNik (2016-12-26 23:10:33)

24

MihalNik написал(а):

Исходники Глагола давно выложены

куда выложены? не могу найти.
и я не вижу, чтобы исходники собирали для linux - http://gpo.zugaina.org/Search?search=glagol

25

ВежливыйЛис написал(а):

куда выложены? не могу найти.
и я не вижу, чтобы исходники собирали для linux - http://gpo.zugaina.org/Search?search=glagol

http://ruscomp.24bb.ru/viewtopic.php?id=5
Правда:

Приложения, написанные на Глаголе, работают под управлением ОС Windows на ПК и КПК.

26

MihalNik написал(а):

http://ruscomp.24bb.ru/viewtopic.php?id=5

Это ссылка на ветку форума. Хотелось бы ссылку на репозиторий или архив с исходными текстами компилятора/интерпретатора.

MihalNik написал(а):

работают под управлением ОС Windows на ПК и КПК

Хотя нет, не нужно. Всё равно они не скомпилируются...

Отредактировано ВежливыйЛис (2016-12-27 00:46:24)

27

Это ссылка на ветку форума.

В самом первом посте несколько ссылок, включая с исходниками, и на сайты,  ему посвященные.

Всё равно они не скомпилируются...

А зачем? Это перевод Оберона с несколькими поправками. Разве что можно посмотреть тексты программ на нём и его устройство, если такое вообще интересует.

Отредактировано MihalNik (2016-12-27 01:35:04)


Вы здесь » Ремесло программиста » OneScript, 1С:Предприятие » Что можно узнать об 1С из интернета при первом просмотре