Skip to content

Implemented bh.require#152

Open
blond wants to merge 1 commit into
masterfrom
issue-151
Open

Implemented bh.require#152
blond wants to merge 1 commit into
masterfrom
issue-151

Conversation

@blond

@blond blond commented Jun 6, 2015

Copy link
Copy Markdown
Member

Resolved #151

@mishanga

mishanga commented Jun 8, 2015

Copy link
Copy Markdown
Contributor

В документацию добавишь?

@blond

blond commented Jun 8, 2015

Copy link
Copy Markdown
Member Author

добавил

@mishanga

mishanga commented Jun 8, 2015

Copy link
Copy Markdown
Contributor

А теперь главный вопрос: зачем это всё? :) Какую задачу решаем?

@blond

blond commented Jun 8, 2015

Copy link
Copy Markdown
Member Author

А теперь главный вопрос: зачем это всё? :) Какую задачу решаем?

Вовремя ))

Причины 2:

  1. Консистентность с BEMHTML. Там будет или require('dep') или this.require('dep').
  2. Интуитивность. Кажется, что если в коде встретить bh.require('dep'), то будет очевидно что он делает.

@mishanga

mishanga commented Jun 9, 2015

Copy link
Copy Markdown
Contributor

Я в целом не против влить эти изменения, но хочу поговорить.
Мне не нравится неконсистентность: класть в lib можно только руками прямым присваиванием, а брать оттуда через require.

@qfox

qfox commented Jun 9, 2015

Copy link
Copy Markdown
Member

Как-то этот ваш lib попахивать начинает. ;-( Зачем вообще придумали require в шаблонизаторе?

p.s. в целом, это лучше, чем прямое присваивание, имхо, но действительно ли это нужно?

@blond

blond commented Jun 9, 2015

Copy link
Copy Markdown
Member Author

Мне не нравится неконсистентность: класть в lib можно только руками прямым присваиванием, а брать оттуда через require.

Я рассматриваю bh.lib как нечто служебное, нужное только в момент сборки / правильного получения зависимостей из разных модульных систем.

Есть какие-то мысли как это явно выразить в коде? Или хочется нормального интерфейса и для прокидывания зависимостей?

Как-то этот ваш lib попахивать начинает. ;-( Зачем вообще придумали require в шаблонизаторе?

Это вброс по поводу «А зачем кому-то использовать внешние зависимости?». Если так, то просто потому, что постоянно кому-то этого не хватает.

p.s. в целом, это лучше, чем прямое присваивание, имхо, но действительно ли это нужно?

Оно это подключение зависимостей или сахар в виде bh.require?

@qfox

qfox commented Jun 9, 2015

Copy link
Copy Markdown
Member

Это вброс по поводу «А зачем кому-то использовать внешние зависимости?». Если так, то просто потому, что постоянно кому-то этого не хватает.

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

Оно это подключение зависимостей или сахар в виде bh.require?

Сахар, конечно.

@blond

blond commented Jun 9, 2015

Copy link
Copy Markdown
Member Author

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

Это же просто агригатор (сахар) из модульных систем.

Тоже самое что подавать конфиг для broweserify или webpack и на выходе получать какую-то сборку. Только там инструмент для всего, а тут ENB-технология для конкретных случаев.

Сахар, конечно.

Так кому сахар может навредить?

@qfox

qfox commented Jun 9, 2015

Copy link
Copy Markdown
Member

Так кому сахар может навредить?

Дело же не в сахаре, а в возможности прокидывать всякую каку в шаблоны. С точки зрения require и, возможно, define, чтобы писать в .lib — сахар слишком сладкий, не?

Только там инструмент для всего, а тут ENB-технология для конкретных случаев.

Но мы же тут не в репе ENB-технологии, а в репе шаблонизатора...

@blond

blond commented Jun 9, 2015

Copy link
Copy Markdown
Member Author

Но мы же тут не в репе ENB-технологии, а в репе шаблонизатора...

Считай, что мы говорим о плагине к любому сборщику, ENB это часный случай.

От bh хочется возможности иметь одну точку входа для всякой каки, и одну точку выхода — всё как у людей ;)

Будет странным, если технология сборки будет доопределять BH так, чтобы у него появлялся новый API.

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

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

@mishanga

Copy link
Copy Markdown
Contributor

@dfilatov что думаешь?

@dfilatov

dfilatov commented Jul 1, 2015

Copy link
Copy Markdown
Member

Если уж так нужно это, то нельзя ли сделать, как обычно в bh, геттер/сеттер?

bh.lib(name, value);
bh.lib(name);

@blond

blond commented Jul 11, 2015

Copy link
Copy Markdown
Member Author
bh.lib(name, value);
bh.lib(name);

По мне норм. Но напомню, что в BEMHTML будет this.require: enb/enb-bemxjst#68

Может сделать геттер/сеттер + алиас?

bh.lib(name, value);
bh.lib(name);
bh.require(name);

@blond

blond commented Aug 18, 2015

Copy link
Copy Markdown
Member Author

ping?

@dfilatov

Copy link
Copy Markdown
Member

Я против алиаса. Не надо просто так делать несколько способов достичь одного и тоже результата.

@qfox

qfox commented Aug 19, 2015

Copy link
Copy Markdown
Member

We can do BH.prototype.require = BH.prototype.define = whatever = bh.lib; on the enb-bh level.

Так кому сахар может навредить?

Диабетикам же.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants