Pull to refresh
8
0
Send message

Отдельный модуль, но при этом является частью фреймворка:
https://guides.emberjs.com/v2.11.0/models/
http://emberjs.com/api/data/

Так Вы про "мое определение фреймворка" и спрашивали =)
В "моем определении", если нет встроенного способа работы с данными (в довесок ко всему остальному) — значит не фреймворк.


Но все же, появился ли универсальный способ организации модели данных в Angular 2?

Meteor как раз фреймворк, но не фронтенд, а гибридный. Из коробки он для рендеринга на фронтенде предлагает Blaze. Но конечно под слово "платформа" тоже подходит =)

Потому что фронтенд это не только формочки, но и данные (и их связи). В Angular 2 уже появился встроенный универсальный способ организации модели данных? (на сколько я помню нет, могу ошибаться. Поправьте если что)

Стильно, модно, молодежно =)

Из пяти "фреймворков", настоящих только два — Meteor и Ember. Остальные даже не знаю как сюда попали.

Во-первых не "уже может", а 15 лет уже как может с момента появления фреймворка Twisted (NodeJS еще и в помине не было).
Во-вторых, будет работать даже быстрее, но есть несколько "но".


Вот пример (мой личный бенчмарк на DigitalOcean):


ОС: Ubuntu 14.04
Результаты не с первого, а с 3-4 запуска. Тест банальным ab -n10000 -c100 http://127.0.0.1:8080/


NodeJS 6.9.1
Requests per second: 4286.70 [#/sec] (mean)
Requests per second: 4498.13 [#/sec] (mean)
Requests per second: 4377.65 [#/sec] (mean)
Requests per second: 4446.08 [#/sec] (mean)


Python 2.7.6
Requests per second: 1449.34 [#/sec] (mean)
Requests per second: 1290.49 [#/sec] (mean)
Requests per second: 1392.39 [#/sec] (mean)
Requests per second: 1381.58 [#/sec] (mean)


PyPy 5.4.1 (Python 2.7.10)
Первый запуск:
Requests per second: 1675.07 [#/sec] (mean)


Последующие запуски
Requests per second: 5051.65 [#/sec] (mean)
Requests per second: 4724.00 [#/sec] (mean)
Requests per second: 5120.28 [#/sec] (mean)
Requests per second: 5441.70 [#/sec] (mean)


Код JS:


var http = require('http');

function handleRequest(request, response){
    response.end('Hello World!');
}

var server = http.createServer(handleRequest);

server.listen(8080, function(){
    console.log("Server listening on: http://localhost:%s", 8080);
});

Код на Python (Twisted)


from twisted.web import server, resource
from twisted.internet import reactor, endpoints

class Root(resource.Resource):
    isLeaf = True

    def render_GET(self, request):
        return "Hello World!"

endpoints.serverFromString(reactor, "tcp:8080").listen(server.Site(Root()))
print "Server listening on: http://127.0.0.1:8080/"

reactor.run()

И вот здесь начинаются всевозможные "но":


  1. Тестируется производительность только HTTP сервера
  2. Используется фреймворк Twisted — кто юзал, знает что это не самый быстрый и легковесный способ гонять такие тесты на Python
  3. Как видно из теста, Python напрямую не может конкурировать с NodeJS, поскольку тут нет JIT-компиляции. Поэтому сравнивать надо определенно с PyPy (кастомный интерпретатор Python с JIT-компиляцией)
  4. Видно что PyPy уделывает NodeJS в тесте. Другая сторона медали — инстанс NodeJS при множественном прогоне разрастается почти до 50Mb памяти (значение RSS), а PyPy до 100Mb при тех же условиях
  5. PyPy не совсем production-ready (может крашиться при определенных настройках)
  6. В тесте не используется Python 3.6 (т.е. к теме статьи не относится, просто решил ответить на Ваш вопрос)
  7. Для Python есть огромное количество реализаций event-loop'ов и всяких асинхронных вкусностей. К примеру реализация HTTP-сервера на C: FAPWS. С этим веб-сервером даже стандартный интерпретатор Python уделывает и NodeJS и PyPy (over 9000 RPS).

В общем и целом жить можно, но NodeJS все-таки занимает свою нишу и иногда удобнее взять его

А какой уровень этой ORM? С Hibernate сравнится? А по каким параметрам сравнивать?..
Вот интересный вы человек… как оценивать-то?

Вообще-то Doctrine во многом вдохновлялась именно Hibernate. Вы не знали этого?


А по каким параметрам сравнивать?

По реализованным паттернам и поддерживаемым фичам. Непонятно даже откуда такой вопрос взялся.


PS пренебрежительное отношение к PHP и девелоперам на нём связано с несколькими факторами

Пренебрежительное отношение к PHP в большинстве случаев возникает именно из-за вопиющего непонимания области его применения, а также из-за комплекса превосходства некоторых разработчиков из других областей.


И да, на PHP не пишут серьезный банковский софт, т.к. PHP для этого не создавался и в этой нише есть свои лидирующие технологии.

Что бы не городить ворох колбэков и промисов. Да, есть корутины, можно строить на них (пример — amphp) но это все же не так вкусно. В php internals дискуссия о том что надо вводить async/await не так давно была и к версии 8 надеюсь реализуют.

Вы неправильно поняли. Вопрос мой был в том, зачем в PHP вообще использовать асинхронную модель, когда сам PHP по своей сути реализует другую парадигму?


Я-то прекрасно понимаю зачем это нужно, и более того могу напомнить что к примеру во фреймворке Twisted (Python), паттерн reactor (наряду с Deferred) был реализован еще тогда, когда того же jQuery даже в проекте не было, уж не говоря о NodeJS (14 лет назад).


И все кому надо было этим пользовались (синтаксиса async/await еще тогда не было, но была возможность использовать синтаксис генераторов — yield).


Чтобы было понятно, это не DSL ни разу. Это General-Purpose Language. GPL с ограниченной областью применения не делает этот GPL DSL-ем.

Именно понимание и осознание того факта что PHP исторически начинался как DSL, или того проще — как набор CGI скриптов, снимает весь баттхерт у людей, которые считают PHP полноценным языком программирования а потом негодуют когда пытаются на нем писать демонов, или многопоточные приложения.


Конечно формально это язык общего назначения, но по факту это самый настоящий DSL.
И он идеально подходит для своего набора задач, в которые как раз-таки асинхронность/многопоточность и прочее не входят.


Тот факт, что язык развивается под давлением сообщества и в него добавляются эти фичи, говорит лишь о том, что люди ленивы — они не хотят учить новые языки, а также не хотят использовать зоопарк технологий (что в принципе не лишено здравого смысла).


Но здесь нужно понимать, что задачи все-таки бывают разными, и молотком бревна не распилишь: осознание этого факта почему-то не ввергает плотников в ужас =)


а что нужно? для сайтиков нода неплохо справляется. Да и сегодня намного проще бывает заставить на сервере рендрить какой-нибудь react app вместо того чтобы городить php+twig. Это банально эффективнее с экономической точки зрения

Однако PHP судя по графику все еще не только не умер, но и живее всех живых


TypeORM для TypeScript (мы же хотим быть type safe на бэкэнде, чего php нам к слову не дает).

Когда будет production-ready и будет поддерживать, к примеру, Table Inheritance, тогда можно будет о чем-то разговаривать (напомню что сегодня почти 2017 год на дворе).
К тому-же это не JavaScript, а TypeScript.


Но большинство проектов писать надо уже сейчас, а не тогда когда настанет светлое будущее.

Можете пояснить зачем разработчику на современном PHP конструкции типа async/await? PHP сам по себе работает основываясь на совершенно другой парадигме.


Как сказал предыдущий комментатор, действительно очень много людей понятия не имеют не то что про современный PHP, но и про предметную область PHP в целом.


Чтобы было понятно, PHP — это DSL, который идеально подходит для своей ниши, но возможностей при этом дает даже больше чем нужно (расскажите, есть ли в "современном JavaScript", например, ORM уровня Doctrine2?)

Разумеется, идет постоянная интернет-война.
И совсем не круто, что контроль над интернетом имеет только США.

А какие могут быть у юридического лица причины не сообщать свой IP, если он не занимается ничем не законным?

https://www.youtube.com/watch?v=XMtKi9PJZr4

Действительно странно что ни слова про искусственное образование, ведь это оно и есть.
Обыкновенная маскировка.
А вот и сам источник
image
У вас есть PHP.

Вы берете свой меч, доспехи, садитесь на коня и скачете спасать принцессу.
После того как вы вынесли принцессу из замка, она дарит вам прощальный поцелуй и умирает на ваших руках.
Замок рушится, земля уходит из под ног, свет гаснет и вы теряете сознание…

Вы просыпаетесь, берете свой меч, доспехи, садитесь на коня и скачете спасать принцессу…
Где тут троллинг?

Вот в этом месте:
но для меня факты, что с 2011 года в Москве небыло ни одного теракта, в то время как в Европе за последний год произошло уже около 5 страшных терактов

И внезапно в 2013 году теракт в Волгограде (аж целых несколько)

То есть для Вас факты в том, что если теракт совершен не у Вас в подъезде (утрирую конечно), то значит система работает четко и 100% предотвращает десятки различных терактов.

А то что не в Москве происходит (а в других городах той же страны) оно значит не считается =)

В общем-то, на мой взгляд, уже на этом нашу дискуссию можно завершать)
Список терактов, совершенных в России
Особо отмечу 2013 год теракт 29 декабря в Волгограде и теракт там же на следующий день.

Сударь, Вы либо толстый тролль, либо Вам платят за такие комментарии =)
Ну и конечно важно понимать что Москва — это не вся Россия.
И только вы не представляете, сколько было предотвращено возможных терактов этими мерами. Мы не знаем, потому-что их и не было. Значит ли это, что эти меры работают?
Как минимум, ничего давно не громыхало, поэтому можно считать, что такой «театр безопасности» работает. Я бы так сказал. А вот если бы громыхало и взрывалось, тогда да, можно было бы ТОЧНО сказать, что нифига не помогает.

Вот как в реальности работают Ваши «меры безопасности»:


Предваряя Ваш ответ о том, что ФСБ работает по-другому, что они руководствуются агентурной информацией для предотвращения терактов и так далее, но факты, к сожалению, говорят о том, что вся эта агентурная информация работает только задним числом.
Причем не только в России (вспомним США — 11 сентября и т.д.).

На мой взгляд это наглядное и достаточное подтверждение полной несостоятельности теории о том, что теракты нужно предотвращать подавлением и притеснением большинства населения.

солидарен одновременно с тем, что наши гражданские права тихонько ущемляются, и с тем, что спецслужбам нужны такие доступы, хотя бы для того, чтобы они успешно ловили нехороших людей, чтобы я и моя семья жили в безопасности. Уж лучше пусть читают мою переписку, чем жить в страхе, что где-то в общественном месте что-то рванёт.

На это могу лишь ответить цитатой Бенджамина Франклина:
«Те, кто готовы пожертвовать насущной свободой ради малой толики временной безопасности, не достойны ни свободы, ни безопасности.» — официальное письмо от Ассамблеи Пенсильвании губернатору Томасу Уортону, 11 ноября 1755
Чем Ваше решение принципиально отличается от Taskwarrior?
Здесь есть один интересный момент, основанный на простой логике.
Зачем террористам ехать в Россию и совершать теракты против мирного населения?

Возможные мотивы:
1. Заставить правительство прекратить военные действия в Сирии путем давления на общество
2. Продемонстрировать возможности (правительству и спецслужбам)
3. Тупо отомстить

И вот тут просто задайте сами себе вопрос — насколько целесообразна будет реализация подобных мотивов? К каким результатам приведут подобные акции (приведут ли)?

Первый вариант — абсолютно нереалистичен. Люди в России не имеют права голоса, поэтому сколько давление не создавай, оно все время стравливается через полное игнорирование проблем.

Второй вариант — уже более похоже на правду, но опять же какова итоговая цель? Посеять панику среди мирного населения? Как это приведет к прекращению военных действий в Сирии?

Третий вариант — вот тут не зря я подчеркнул фразу «мирное население». По идее мстить-то надо тем, кто прямо или опосредованно участвует в военных действиях в Сирии, не?

Таким образом можно прийти к мысли, что «настоящие» теракты, они, как бы, должны совершаться не в отношении мирного населения, а в отношении тех социальных групп, которые непосредственно влияют на события, против которых выступают «террористы».

На простом примере — Ваш сосед по даче самозахватом отнял кусочек Вашего участка (поставил забор). Вы, убедившись, что уговоры не помогают, решаете совершить против него теракт. Все продумываете, затем приступаете к реализации: наливаете в канистру бензина и… идете поджигать лесополосу, которая находится в 10км от дачного кооператива.

Вечером сосед увидел в новостях что горит лесополоса. Посмотрел, попил чайку и пошел дальше высаживать помидоры на Вашем участке. Целесообразно?)

Надеюсь за мной еще не выехали…
Голубиная почта, курьеры и зашифрованный бой тамтамов.

Видимо депутаты ознакомились с RFC 1149 и RFC 6214.

Но вы держитесь там. Счастья вам, хорошего настроения!
Спасибо, интересная информация, правда пока что успел только мельком пройтись.

Но правильно ли я понял, что Redux по сути реализует шаблон EventAggregator (http://martinfowler.com/eaaDev/EventAggregator.html)?
Если так, то почему бы не сделать то же самое в Backbone? К тому же в Marionette уже это есть.

Если я все правильно понял, то в чем еще преимущества Redux?

Information

Rating
Does not participate
Registered
Activity