Обновить
46
0
Артем Андреев@aav

Пользователь

Отправить сообщение
Я почему-то под "непересечением слоев" понял непересечение границы, т.к. Model Вы и Fesor зачем-то на границу поместили.
(б) поскольку и контроллер, и представление знают о модели, они оба живут в одном слое (иначе будет нарушено правило непересечения слоев)

Я вот это не очень понял. Тут вот это подразумевалось?

поскольку и Controller, и View знают о Model, они оба (Controller и View?) живут в одном tier(?) (иначе будет нарушено правило непересечения tier(?))
И сразу в дополнение вот отсюда (предыдущее оттуда же было):

Figure 4-1. Building blocks of the Model-View-Controller architectural pattern. Solid
lines represent direct connections, dashed lines represent indirect connections

Figure 5-1. The VisualWorks version of MVC, which separated the concepts of domain
model and application model. (Bower & McGlashan 2000)

Если посмотреть сначала на первую, потому на вторую, то, на мой взгляд, получается, что есть разные интерпретации. И не очень понятно, почему Вы свою интерпретацию про слои и компоненты считаете единственно верной.
Вы бы хотя бы где-нибудь на что-нибудь сослались, чтобы понять, почему Вы считаете, что Ваша интерпретация — единственно верная.

4.1.1 Model
The model is a non-visual object containing all the data and behaviour other than that
used for its presentation to the user (Fowler 2003). Model represents the data and
state (Freeman et al. 2004) of an application and the domain logic that manipulates it
(Buschmann et al. 1996).

4.3.1 Separated Presentation or Model-View
The most fundamental principle in the Smalltalk MVC and all the others that followed,
is to separate the elements seen on the screen i.e. presentation or user interface, and
the set of classes that are concerned with the core of the application, i.e. the domain
objects or data management (Potel 1996; Fowler 2003). Fowler (2006b) refers to this
as Separated Presentation, while Sanderson (2010) names it Model-View (figure 4-
2).
Another strict rule is visibility: the presentation can call the domain objects, but not
vice-versa. The domain objects should be completely self contained and unaware of
any presentations. This is in fact a form of a layered architecture. The visibility rule can
even be validated with build-time tools. (Fowler 2006b)
Да в общем-то и там и там не проглатывает:
1.х: plnkr.co/edit/POgFi6FHZk1cyhf75NgA?p=preview
2.х: plnkr.co/edit/sQdCcD2tPrtEt4rBFst4?p=preview
В Angular тоже можем просто добавлять элементы в цикле, выбор то объекта вместо текстового значения как будет происходить?
«Это же простая итерация по массиву объектов! Зачем она вообще?» — спросит реактовод.
«А затем, что иначе вы не сможете в значение option передать что-то кроме строки!»
«Ну, знаете ли...»

А как это будет выглядет в реакте?
Это не мне — это документации React-а.

А чего там мощного, вы фактически и идете по пути ограничения всея мощи, чтобы if-ов не было (только тернарный оператор), switch-ей тоже, т.е. искусственно накладываете ограничения на используемый синтаксис.
Ну кому-то больше нравится собирать интерефейс из кусочков, разложенных по переменным:
var loginButton;
if (loggedIn) {
  loginButton = <LogoutButton />;
} else {
  loginButton = <LoginButton />;
}

return (
  <nav>
    <Home />
    {loginButton}
  </nav>
);


Не говоря уж о всей мощи JS:
return (
  <section>
    <h1>Color</h1>
    <h3>Name</h3>
    <p>{this.state.color || "white"}</p>
    <h3>Hex</h3>
    <p>
      {(() => {
        switch (this.state.color) {
          case "red":   return "#FF0000";
          case "green": return "#00FF00";
          case "blue":  return "#0000FF";
          default:      return "#FFFFFF";
        }
      })()}
    </p>
  </section>
);


Представляю, что там в render будет в сколько-нибудь больших проектах, если по рукам сильно не бить и искуственно не ограничивать «всю мощь JS в HTML».
Все же, наверное, стоило в Caps Lock жирным написать, что это туториал для БЕТЫ. В бете еще не все вылизано, потому требуется понимание, как все функционирует. К слову, это же понимание требуется при написании сколько-нибудь серьезного приложения.

В районе релиза это все будет выглядеть как-то так:
npm install -g angular-cli
ng new PROJECT_NAME
cd PROJECT_NAME
ng serve
ng generate component my-new-component

Для тех, кто хочет просто поиграться по-быстрому: plnkr.co/edit => New => AngularJS 2.0.x (ES6/ES5/TS — выбирайте сами)
А что касается Rx, то сейчас они и решают, в каком объеме его надо включить в ядро: github.com/angular/angular/issues/4390
Т.е. в данный момент может придется подключить отдельно, хотя зависит от того, что надо, можно попробовать просто импортировать из
"@reactivex/rxjs/dist/cjs/Observable"
В каком смысле «вместе»? AsyncPipe — вроде и есть пример non-pure Pipe. Т.е. он сам по себе пример.
Вы про stateful/stateless (pure: boolean в терминологии Angular2)? Если да, то и в первой то версии они могли быть stateful, просто не рекомендовалось.

Или что-то типа одноразоваго stateful?
К сожалению, Вы не очень удачно выбрали время для публикации статьи. В том смысле, что Вы рассматриваете немного устаревшую версию, а именно в эти дни (вчера и сегодня) на AngularConnect представляют гораздо более актуальное состояние.

Самую актуальную информацию в данный момент проще всего получить в твиттере twitter.com/AngularConnect — там выкладывают ссылки на презентации, выступления и т.п.

Вот в частности keynote: g.co/ng/ac-keynote

По самому содержанию:
  • для двухстороннего связывания уже есть синтаксический сахар [()]
  • новый Angular не просто поддерживает TypeScript — он на нем написан, соответственно и свое приложение на Typescript писать очень удобно
  • не очень понял, как теневой дом помогает собирать готовые страницы на серверной части. Кому интересны изоморфные приложения на Angular, тому сюда github.com/angular/universal
  • про роутинг: docs.google.com/presentation/d/1bGyuMqYWYXPScnldAZuxqgnCdtgvXE54HhKds8IIPyI
  • директивы есть, куда же без них
  • фильтры тоже, просто называются теперь Pipe


Лучший способ получать последнюю информацию: gitter.im/angular/angular. Там же постоянно выкладывают ссылки на репозитории, с которых лучше начать, посмотреть, например:
github.com/pkozlowski-opensource/ng2-play
github.com/mgechev/angular2-seed
У John Papa тоже чего-то есть: github.com/johnpapa (в принципе вроде его Tour of Heroes и выкладывается на angular.io)
Вы как-то определили граничные условия подобной деавтоматизации? Когда начнете обратно автоматизировать? :) Или это специфика Вашего бизнеса, что есть определенные ограничения, до которых вы можете вырасти, и этот уровень вы можете себе позволить обрабатывать с использованием только человеческих ресурсов?
Вам впору статью писать о плюсах/минусах AngularJS и React/Flux с точки зрения архитектуры приложения. Наконец-то может получиться интересный обзор от того, кто более-менее глубоко работал и с тем и с тем. А то обычно какой-то перекос, когда обзор пишет человек, который с одним инструментом работал долго и глубоко, а второй попытался освоить за недельку.
Разница в понимании/непонимании происходящего. А потом трансляции заблуждений другим людям. С мифами надо бороться, по мере возможностей.

plnkr.co/edit/XuFKYjo9Wxi9aPKO7dQk?p=preview
Что там у вас не обновлялось?
Я не знаю, зачем вы все в кучу начали валить.

Я не просто отрицаю, я вам и пруф дал на основе вашего же плунка. Ваша изначальное обобщенное высказывание некорректно. Не вводите людей в заблуждение. Не каждая статья в интернете — это истина в последней инстанции. Максимум — это повод углубить и расширить свое понимание о работе фреймворка, а не зазубрить мифы.
Измените содержимое — это и есть то, что я первый раз в англоязычном варианте процитировал. Вы мой-то плунк посмотрели? Можете тоже самое сделать в своих новых.
Итого: по-умолчанию ничего не копируется. Когда вы пытаетесь каким-либо образом поменять переменную, у которой в имени нет точки, AngularJS просто не делает поиск по иерархии и устанавливает (создает) переменную с таким именем на текущем scope.

P.S. все также непонятно, какое это отношение имеет к getter-свойству?..

Информация

В рейтинге
Не участвует
Откуда
Таганрог, Ростовская обл., Россия
Зарегистрирован
Активность