Comments 17
Чем не устраивает with?
-1
with — дурной тон, две лишних строки, хрупкость записи (удаление метода из класса под with и его присутствие в методе), а из своего опыта отмечу with значительно затрудняет отладку
-3
А с таким вариантом построковая отладка вообще не пройдет. Так как такую запись дебагер будет расценивать как одну строку. Плюс все те же недостатки как и у with
+2
Только не текучий, а «беглый», «лёгкий», «поверхностный», «не отяжелённый»
+1
ru.wikipedia.org/wiki/Fluent_interface (Текучий интерфейс), плюс пару статей на хабре с тем же переводом.
0
А .net reflection переводят как «отражение» (хотя его смысл — рефлексия), и чего теперь?
В Вики написано, говорите? Сейчас поправим
Кстати, обратите внимание на секцию «Огрехи перевода»: ru.wikipedia.org/wiki/Обсуждение:Fluent_interface
В Вики написано, говорите? Сейчас поправим
Кстати, обратите внимание на секцию «Огрехи перевода»: ru.wikipedia.org/wiki/Обсуждение:Fluent_interface
+3
На хабре тож поправите? А итератор? Всегда итератор иногда перечислитель, у программистов всё не как у людей )
С огрехами согласен, но вариантов нет, поймите )
С огрехами согласен, но вариантов нет, поймите )
0
Скажите, вы правда не чувствуете семантической разницы между («fluent» — «текучий») и («итератор» — «перечислитель»), раз привели вторую пару в качестве примера?
Вам знакомо понятие омонимов?
Вам знакомо понятие омонимов?
+2
хотя его смысл — рефлексия
Если честно, никогда не понимал, почему reflection в этом контексте переводят рефлексией. Имхо, «отражение» гораздо более точно передаёт суть этого явления — программа «видит» некое представление, отражение себя. Кстати, именно поэтому в Scala в новой reflection-библиотеке основные объекты, с помощью которых reflection и производится, называются зеркалами (mirror) — ClassMirror, MethodMirror и прочие.
+1
Потому что вот это ru.wikipedia.org/wiki/%D0%A0%D0%B5%D1%84%D0%BB%D0%B5%D0%BA%D1%81%D0%B8%D1%8F
Значение слова «рефлексия» — это самопознание.
Значение слова «рефлексия» — это самопознание.
0
CreateFluentStringWriter(Stream)
['Привет ']
['Мир']
['!'];
Выглядит, здорово! Но читать такой код очень неприятно.
Попытаюсь в мягкой форме сказать почему это плохо.
Во-первых getter для свойства изменяет состояние объекта — это ужасная практика. Это подстава.
Во-вторых, первый вариант читается проще.
Но выглядит прикольно!
p.s. А если заменить тип параметра на variant, то можно писать туда вообще всё что угодно.
p.p.s. В RTL библиотеке Delphi тоже есть примеры Fluent interface — например тот же TStringBuilder
0
> Во-первых getter для свойства изменяет состояние объекта — это ужасная практика. Это подстава.
Сам fluent интерфейс это подстава, но мы же эмулируем синтаксический сахар, а какими путями — не важно. Blackbox, зато работает.
Сам fluent интерфейс это подстава, но мы же эмулируем синтаксический сахар, а какими путями — не важно. Blackbox, зато работает.
0
«fluent interface» — это не что иное, как инфиксная запись выражений. Её с незапамятных времён использовали. Назвали так странно из-за того, что в некоторых языках (Delphi. C#) при описании используется ключевое слово «interface». И вообще, почти ни один язык не создан для определения инфиксных операторов (C++ — только перегрузка имеющихся; в Haskel что-то есть). Из-за этого — точки и скобочки.
0
Sign up to leave a comment.
Fluent interface и Delphi