Pull to refresh

Comments 57

Так как в Native Api нельзя передавать объекты, то возвращается ссылка

//1С при передаче по ссылке свойства ВК Список.Current
// при выходе из метода присваивает  Список.Current значение переданное изначально
// Поэтому помечаем входной параметр как Знач
//Или же делать так, если методы изменить нельзя 
// То нужно присвоить значение переменной и вызвать метод передав в параметрах эту переменную
//Стр=Список.Current; 
//Зазача=ъ(Стр);
Функция Ъ(знач Ссылка)
	
	// Создаем объект по ссылке полученной из методов .Net классов
	//Физически это строка ёЁ<Ьъ>№_%)Э?&2 содержащее 12 символов для отделения их от других строк
	//и индекс в спике исполуемых объектов на стороне .Net
	
	рез = Новый("AddIn.NetObjectToNative.NetObjectToNative");
	// И установим ссылку
	рез.УстановитьСсылку(Ссылка);    
	возврат  рез
КонецФункции // СоздатьОбъектПоСсылке()

Как вообще это читать?
почему нельзя было назвать это не «ъ» а «ВернутьСсылку»?
А почему в JQuery используют $ вместо JQuery. Просто очень много используетя в том числе и ъ(ъ(ъ
Так удобнее для восприятия
Так удобнее для восприятия

на фкус и свет у фсех фломастеры расные :D
Это код на 1С. Для начала нужно прочитать все статьи с начала.
Да у вас и .net код на русском написан
А зачем отказываться от Русслиша?
Из статьи в статью только обращают на Русслиш. Что по теме понравилось, не понравилось.
Если бы ты повнимательнее почитал статью то увидел Ужас
 var данныеЭкселя = Данные.GroupBy(ё => ё.НомСтроки).Select(ъ => new { НомСтроки = ъ.Key, Ячейки = ъ.ToArray() }).OrderBy(ь => ь.НомСтроки);

И это по твоему нормально выглядит?
Я не вижу разницы между
var данныеЭкселя = Данные.GroupBy(i => i.НомСтроки).Select(n=> new { НомСтроки = n.Key, Ячейки = n.ToArray() }).OrderBy(j => j.НомСтроки);

Никакой смысловой нагрузки они не несут. Так ты и не ответил, что кроме Русслиша ты увидел?

Название переменной i хотя бы можно кратко произнести, в отличие от ъ.

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

Переменную нельзя а метод JQuery и все его прекрасно используют.
А насчет легче, то старое название еръ
значительно легче. Только вот смыл произношения при программировании? Особенно когда все поголовно используют сокращения. Смысл ъ как раз в том, что его никто практически не применяет и меньше конфликтов при одинаковом названии метода.
я произношу эту букву по-старому: «ер». То же самое, что «и» или «ай».

(ненене, сам я такие названия в коде не использую!)
Я увидел боль. Как эту кашу набирать-то…
Вот ты пишешь на форуме на русском, читаешь на русском. А примеры кода приводишь на английском. У тебя есть проблемы?
Кроме того есть Punto с автопереключением. Очень удобно
Очень точное сравнение: что код писать, что в комментарии срать (или наоборот?) Пунто свитчер, как первейший инструмент программиста, да ещё с пометкой «очень удобно», это что-то новенькое. Но я не осуждаю, нет. Я как бы ошеломлён происходящим.
Посмотри сколько у меня статей, и в комментариях одно и тоже. И главное, что суть статей то никто не обсуждает.
Потому что статьи хорошие, а обсуждальщики плохие.
Потому что 90% статьи это код, а код похож на результат какого-то «генератора» для приколов. Лично я не могу этот код читать иначе как по-диагонали, смысл в нём найти очень сложно
Спасибо. Буду стараться писать, что бы затронуло. Но проблема в том, что это статьи в основном для 1С ников. Хотя по динамическая компиляции в .Net Core очень мало информации.
И это мы ещё не обсуждали смысловую нагрузку коротких именований. Для 'i' я могу придумать хоть какую-то смысл, это обычно первая буква от «index», или (реже) «iterator» Для ваших «ё» и «ъ» я тоже могу кое-что придумать, но это никак не относится к самой программе, тут, скорее всего, будет переход на личности.
Да, не несут. Именно поэтому так тоже не стоит писать. Бессмысленные названия переменных — это плохо. Для того, чтобы понять, что такое j придётся читать всю строку и осмысливать каждый метод.
А в Linq ты и так знаешь какой делегат от тебя ждут. Например
public static IEnumerable<TSource> Where<TSource>(
	this IEnumerable<TSource> source,
	Func<TSource, bool> predicate
)

Но никто не пишет
 Where(ЭлементМассива =>ЭлементМассива >0)


Все сокращают, так как и так понятно, что это за переменная. И искать особый смысл в них никто не ищет.
> Все сокращают, так как и так понятно, что это за переменная.

ЕСЛИ понятно, что это за переменная. Переменная «ё» или «ъ» не даёт никакого понятия об этом.

То есть
products.Where(p => p.Name == "Chair");

выглядит понятно, а
Данные.GroupBy(ё => ё.НомСтроки)

уже не очень.
Все таки лучше идентификаторам давать осмысленные имена. Это признак хорошего программерского тона.
И в чем «p» осмысленнее «ё»? Две буквы. Причем р еще можно читать и по русски
Осмысленные — это типа «product».

До одной буквы сокращают, когда из контекста очевидно, что за элемент мы используем.
Например, у нас есть список products, productsArray, productsList и т.п. Соответственно, один элемент этого списка — product, сокращаем до первой буквы p. Как-то так

Но я не могу придумать ни одной причины, почему список ячеек нужно сокращать до «ё». А когда идёт что-то типа «ё => ё.foo()» я читаю это как «ё моё».
А можно и ёпрст или на ё бывает и за ё бывает
Самое главное еще иметь чувство меры и баланса и не впадать в крайности давая идентификаторы типа: «ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент», при использовании таких даже широкоформатного монитора не хватает :)
Зато понятно. Я кстати не против названия классов, особенно когда IntelliSense работает. И не нужно долго набирать или копировать.

можно, только читабельность нулевая…
Здесь не правильно отображает. Мне как раз глазастик понравился. Ооочень выразительный.
Я с вами согласен, в комментариях к прошлой статье об этом говорил. Большинство думает, что понятные имена — это «слишком длинно, и затрудняет чтение».

PS: А сколько раз меня выручали осмысленные наименования, когда приходится возвращаться к коду годичной давности!
PS: А сколько раз меня выручали осмысленные наименования, когда приходится возвращаться к коду годичной давности!

Воистину так!
Вот и я даю осмысленные имена. Только на русском. Я его значительно лучше понимаю англицкого
Еще раз спрошу, в чем осмысленность «ъ»?
О, а я смотрю Вы как раз на javascript программите, вот и расскажите нам в чем смысл $…
Спасибо за поддержку. А то народ не интересует вызов управляемого кода из натива.
Динамическая компиляция, рефлексия с выводом типа в дженериках и максимальная итд.
Всех волнует только Руслиш и ъ.
Еще раз отвечу. ъ позаимствован из JQuery от $
Смысл тот же. Краткость и мало конфликтность. А конструкций типа ъ(ъ(ъ( много
и на каждом шагу к сожалению этот ъ нужно использовать. Просто давать что то осмысленное типа
ПолучитьОбъект(ПолучитьОбъект(ПолучитьОбъект(Объект.ВызватьМетод(Параметр.ПолучитьСсылку())))
Вот зачем прикручивается кроссплатформенный С#, который все равно обращается к кроссплатформенному С++, если можно сразу на С++ все написать? Есть от этого какая-то выгода?
А можно на ссылочку на
который все равно обращается к кроссплатформенному С++,


Смысл в том, что можно использовать .Net сборки напрямую без дополнительного написания ВК. С С++ тебе нужно под каждую задачу делать ВК, знать С++.
Здесь ты используешь уже готовые классы, либо пишешь сборку на .Net без всяких заморочек с ВК.
То есть одна ВК через которую ты можешь использовать любые сборки. Не нужно знать C#, VB.NET,F#. Нужно знать только классы методы и свойства. Это аналог COM.
Почему бы не написать одну ВК на С++, а не С#? Тем более платформа 1С написана на С/С++, ОС-и тоже на нем же. Будет нативное взаимодействие. Зачем использовать прослойку в виде .Net?
ВК то написана на С++ но внутри используется доступ к статическим методам .Net библиотеки. А там через рефлексию можно вызвать методы объекта и статические методы. Почитай мои первые статьи.
В C++ там не то, что рефлексии (динамический доступ к информации о методах и свойствах, но и вызов соответсвующих методов) нормальной информации о типе сложно получить.
А почему все не пишут на с/с++, если операционная система написана на с/с++? Вот и тут тоже самое…
Я еще могу понять использовать отличный от С/С++ язык для разработки какого-либо ПО, но вот использования виртуальных машин в виде .Net и Java я все равно до сих пор не могу понять. Явных преимуществ, сколько не пытался себя заставить, ну не вижу.
Кто тебе наплел про виртуальную машину? MSIL код компилируется в натив. Другое дело, что компилятор не оптимизирует код из-за наличия рефлексии. Сейчас есть .Net Native Компиляция приложений с помощью машинного кода .NET

Так создай мой аналог компоненты которая из 1С будет использовать любую библиотеку написанную на С++ без дополнительных телодвижений. В том числе и события.
Так создай мой аналог компоненты которая из 1С будет использовать любую библиотеку написанную на С++ без дополнительных телодвижений. В том числе и события.

Мне это не нужно. И я ничуть не хотел принизить твоих заслуг по написанию ВК. Но мне не понятно зачем Микрософт сделало прослойку .net, а потом все равно компиляцию в нативный код.
Я не про заслуги, а про возможности. Зачем прослойка?
1. Компоновка библиотек. Есть полная информация о типах и версиях.
При этом библиотеки написанные под .Net 2.0 можно использовать под 4.5
2. Независимость от процессора (AnyCPU)
3. Рефлексия. За счет которой и создана данная ВК
4. Динамическая компиляция.
Да еще компилируется лишь, то, что используется
Sign up to leave a comment.

Articles