Я не рассматривал filter и ForEach как продукт. Это просто примеры возможного использования анонимных функций. Ну и само ядро работы с лямбдами уже сильно поменялось. В следующих публикациях останется и разовьется идея, но код поменяется
Вероятно. Но, кажется, я ответил. Если этот параметр ожидается именно, как параметр, то код будет: filter(массив, "_1 = _2", ПараметрОтЮзера). Это означает, что сравнение будет производиться со строкой, и инструкции инъекции не будут выполнены. А если программа спроектирована таким образом, что вставляет код, полученный из вне, то, извините, это не проблема технологии анонимных функций.
Я надеюсь, мы не будем сюда переносить всю историю с других ресурсов. В 1С нет функции Split в нормальном понимании (что строку обратно можно собрать командой Join). Но при необходимости все пишут функцию с нужным пониманием разделителя, а не уходят в среду, где все уже есть. Написать анонимные функции оказалось не прямо уж так сложно, когда мне понадобилось.
К тому же я в свободное время развиваю идею. Скорость работы теперь отличается в 3-6 раз, а не в 10-25. На счёт безопасности - вопрос архитектуры. Разработчику нужно как-то объяснить, что ждать на сервере с клиента код для выполнения - опасно. Предполагается, что лямбда-код выполнится в той среде, откуда вызван (клиент-клиент или сервер-сервер). Параметры используются, как есть. То есть, строки с инструкциями, переданные с клиента как параметры, останутся строками, а не инструкциями.
Я стараюсь трезво смотреть на эту идею. Она явно не привычна одинэсникам, и в то же время не считается интересной для адептов тех языков, где функции первого класса уже есть. Меня никто не понимает :(. Но это не означает, что я не могу опубликовать статьи. Кто-то расценит это как курьез из г и п, кто-то - как занятный прикол, кто-то может найти практическое применение. Но в любом случае вопрос будет рассмотрен,а это уже хорошо для сообщества.
Если этот ваш умный программист выносит в функции повторяющиеся код, а потом вызывает с параметрами, то перед вызовом функцией с текстом инструкции тоже не должен спасовать. Принципиальной разницы в чтении никакой.
Я вовсе не "продаю" это и не навязываю. Делюсь с коллегами идеей на тематическом сайте. Мне дальше интересно её развить. А кому нет - продолжат жить без неё, делая дело, как удобно им. Я просто хотел уточнить, что в конечном счёте планируются вызовы типа Filter в одну-строчки. Если это не читаем, то уж не знаю, что читаем.
Что тут скажешь? Используйте то, что понятно, а что не понятно не используйте.
Я исхожу из того, что написание и чтение Filter вполне прозрачны. На другом ресурсе коллега доказывал, что выгоднее писать цикл в лоб, как обычно. Но он в собственном примере из 20ти строк так и не смог найти ошибки. Меньше буков, меньше ошибок!
Такой код - первый вариант. Но не вижу проблем с оформленным комментариями кодом на сотню строк, если сравнивать его с сотнями тысяч строк "поддерживаемого" типового кода с запросами на 10 страниц прокрутки. Читать же можно, там по-русски почти все! Я - программист, делаю нужные инструменты. А менять работу из-за того, что чего-то в языке не достаёт, так где же работать тогда?! Но, повторюсь, конкретно этот код - эксперимент. И даже устарел за время модерации.
Уволить программиста за проектирование инструментов? Интересно тут.
Это похоже на извращение с точки зрения синтаксиса 1с или с точки зрения программирования?
Код, вынесенный в расширение или даже печатную форму, столь же смертоносен, что и написанный в конфигурацию.
Я не рассматривал filter и ForEach как продукт. Это просто примеры возможного использования анонимных функций. Ну и само ядро работы с лямбдами уже сильно поменялось. В следующих публикациях останется и разовьется идея, но код поменяется
Вероятно. Но, кажется, я ответил. Если этот параметр ожидается именно, как параметр, то код будет: filter(массив, "_1 = _2", ПараметрОтЮзера). Это означает, что сравнение будет производиться со строкой, и инструкции инъекции не будут выполнены. А если программа спроектирована таким образом, что вставляет код, полученный из вне, то, извините, это не проблема технологии анонимных функций.
И я так думаю.
Я надеюсь, мы не будем сюда переносить всю историю с других ресурсов. В 1С нет функции Split в нормальном понимании (что строку обратно можно собрать командой Join). Но при необходимости все пишут функцию с нужным пониманием разделителя, а не уходят в среду, где все уже есть. Написать анонимные функции оказалось не прямо уж так сложно, когда мне понадобилось.
К тому же я в свободное время развиваю идею. Скорость работы теперь отличается в 3-6 раз, а не в 10-25. На счёт безопасности - вопрос архитектуры. Разработчику нужно как-то объяснить, что ждать на сервере с клиента код для выполнения - опасно. Предполагается, что лямбда-код выполнится в той среде, откуда вызван (клиент-клиент или сервер-сервер). Параметры используются, как есть. То есть, строки с инструкциями, переданные с клиента как параметры, останутся строками, а не инструкциями.
Я стараюсь трезво смотреть на эту идею. Она явно не привычна одинэсникам, и в то же время не считается интересной для адептов тех языков, где функции первого класса уже есть. Меня никто не понимает :(. Но это не означает, что я не могу опубликовать статьи. Кто-то расценит это как курьез из г и п, кто-то - как занятный прикол, кто-то может найти практическое применение. Но в любом случае вопрос будет рассмотрен,а это уже хорошо для сообщества.
Вот честно не понимаю, почему люди мучаются? У меня получается игнорировать неинтересные лично мне темы.
Если этот ваш умный программист выносит в функции повторяющиеся код, а потом вызывает с параметрами, то перед вызовом функцией с текстом инструкции тоже не должен спасовать. Принципиальной разницы в чтении никакой.
Я вовсе не "продаю" это и не навязываю. Делюсь с коллегами идеей на тематическом сайте. Мне дальше интересно её развить. А кому нет - продолжат жить без неё, делая дело, как удобно им. Я просто хотел уточнить, что в конечном счёте планируются вызовы типа Filter в одну-строчки. Если это не читаем, то уж не знаю, что читаем.
Что тут скажешь? Используйте то, что понятно, а что не понятно не используйте.
Я исхожу из того, что написание и чтение Filter вполне прозрачны. На другом ресурсе коллега доказывал, что выгоднее писать цикл в лоб, как обычно. Но он в собственном примере из 20ти строк так и не смог найти ошибки. Меньше буков, меньше ошибок!
Я как раз и хотел узнать конкретику Кошмара) думал, хоть здесь объяснят
Два примера! Уже привёл. Если вы имеете в виду, рассказать, как на этом заработать, то пока не придумал)
Такой код - первый вариант. Но не вижу проблем с оформленным комментариями кодом на сотню строк, если сравнивать его с сотнями тысяч строк "поддерживаемого" типового кода с запросами на 10 страниц прокрутки. Читать же можно, там по-русски почти все! Я - программист, делаю нужные инструменты. А менять работу из-за того, что чего-то в языке не достаёт, так где же работать тогда?! Но, повторюсь, конкретно этот код - эксперимент. И даже устарел за время модерации.
Уволить программиста за проектирование инструментов? Интересно тут.