Pull to refresh
25
0
Екатерина Никитина @sferrka

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

Send message
Ожидаем.Что(5).ЭтоНе().Равно(7);


А так смысл сохраняется)
Вы ведь все равно запускаете код, во время написания, для проверки? Или сразу пишете целиком? В любом случае, конкретно TDD служит не столько для тестирования, сколько для описания будущего интерфейса, чтобы не двигаться вслепую, а видеть цель. Совершенно необязательно писать сразу полноценный тест, достаточно контрольные точки расставить.
React нужен не для скорости, он нужен из-за компонентов. А вот HTML — пережиток прошлого, когда большая часть интерфейса была простым текстом, сейчас же гораздо больше активных элементов на странице, а данные изменяются локально, а не при перезагрузке страницы. Именно поэтому рождаются web-компоненты, именно поэтому Angular 2.0 их содержит. Поэтому шаблоны Angular содержат JS и различные байндинги, отсюда идея JSX (по сути, отказ от HTML). Да, JS тоже слабо подходит в качестве языка разметки, но зато в нем уже есть объекты ({{user.name}}), вызовы функций, математические, логические операции и т.д., которые давно используются во всех шаблонизаторах (т.е. по сути сообщество признало эти вещи декларативными).
Возможно, когда (или если) HTML разовьется в более полноценный язык разметки интерфейса, с поддержкой наследования, привязки данных и др., JS для этого станет не нужен, но может быть появится и что-то новое, как JSX, только без смешения парадигм и языков.
Совершил бы другие, и? Вы обвиняете язык в его возможностях?
Вы рассказали реальный случай из жизни неквалифицированных работников (и видимо такого же отдела кадров и руководителя тех. отдела). Не понятно, причем тут PHP абсолютно, именно поэтому я привела пример с кавычками, а не типами.
И если вы не можете выставить элементарные требования к формату, то хоть кто вам будет слать JSON, и хоть с какими типами. А если формат есть, а работа выполняется некачественно, то можно обвинять язык, ОС, железо, ну вы поняли.
На работе сишники присылают нам в php xml, валидацию не проходит, даже кавычки расставлены неверно. Не хочу обижать никого, но c++ предрасположен к генерации невалидного xml. Проблемы они не видят, их собственноручная библиотека проходит все тесты. Надеюсь в версии c++ 15 эту проблему решат, а пока хотим перейти на nodejs.
Выбора очень много, на каждый популярный язык по компилятору в JS.
Вот так, например, в typescript выглядит сравнение разных типов:
Соглашусь, если объясните для чего использовать ==, вместо ===?
$x = true; или что-то новое?
Мне кажется, в теории, критерии можно выделить. Количество сущностей на один и тот же функционал, количество кода, количество сложных конструкций и т.д. Другое дело, что никто этого не делает, только поверхностные «интуитивные» обзоры.
Согласна с тем, что в итоге мы получим одно и то же, и вроде бы страница не должна дольше загружаться, но пока слишком много нюансов. Т.е. когда-нибудь ShadowDOM будет везде и быстро работать, когда-нибудь HTTP2 будет везде работать и можно будет не париться с множественным количеством файлов.
Сейчас есть хорошая практика JS выполнять после рендеринга страницы, опять же вопрос, с web-компонентами уже не так красиво получается в разных местах генерировать код?
Ну и по поводу привязки данных и навешивания событий, я так понимаю, единого мнения тоже пока нет.
Дело не в декларативности, чистый HTML и CSS тоже декларативны. Дело в декомпозиции, инкапсуляции, в повторном использовании. Но прикол в том, что чем больше мы реализуем в виде компонентов, тем дольше будет загружаться страница, ведь нативные элементы в бразуере человек скачивает вместе с браузером, а web-компоненты при загрузке страницы.
Конечно просто написать изоморфное приложение из 1 тега <my-app />. Но цена…
Понятно, что не обязательно, но судя по примерам самого Polymer и их готовым компонентам, а также примерами многих других — Polymer предполагается как основной инструмент для разметки. И на самом деле, мне нравится этот подход. Но в отличии от ReactJS (ну или другого компонентного фреймворка), web-компоненты нельзя использовать изоморфно.
В Shadow DOM реализация, данные остаются в обычном DOM, в том числе упрощая чтение и разбор DOM поисковым машинам, ибо в коде нет интерфейсного мусора, только семантически размеченные данные.

Я понимаю, когда компоненты вставляются в обычную верстку, как расширение стандартных элементов, но в случае с Polymer все оборачивается в компоненты, в Body вставляется только <my-app />. А все компоненты хранятся в импортированных HTML.
Боюсь мы друг друга не понимаем. Почитайте на тему стандарта веб-компонентов и одностраничных приложений.
Приложение не означает, что это, что-то в не браузера))

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

Каким образом должна происходить первая загрузка страница? А если остаются только приложения, то зачем вообще нужны браузеры и сопутствующие им проблемы и решения?
Вы можете сфетчить компоненты и проинициализировать их на фронте, почему нет?

Ну вот как быть с web-компонентами у которых все в shadow-dom? Сделать его не shadow? Повторно сформировать DOM уже на клиенте?
А вот компоненты полимера + Backbone прям конфетка.

Что по поводу серверного рендеринга? Если все состоит из web-компонентов (а не просто используются как часть разметки), я так понимаю решения нет?
В любой формулировке, делать выплаты или нет, и в каком объеме — решать ВКонтакте. Очевидно, что случайное обнаружение не будет считаться эксплуатацией уязвимостей. Другое дело, если вы, обнаружив уязвимость, решите «проверить» ее еще на сотне-другой «живых» пользователей.
Ну никто не мешает прокомментировать свое закрытое фото или друга/бота.
Разделите внедрение зависимостей + конфигурация и класс фабрики, а зависимости передавайте через конструктор.

angular.module('app').factory('FactoryName', ['$resource', '$sce', function ($resource, $sce) {
    var apiObjectResource = $resource('/api/url/:id/', {
        id: '@id'
    }, {
        update: {
            method: 'PATCH'
        }
    });
    return new Factory($sce, apiObjectResource);
}]); 

class Factory {
    $sce: ng.ISCEService;
    apiObjectResource: angular.resource.IResource<APIObject>;
    someProperty;
    constructor($sce, apiObjectResource) {
        this.$sce = $sce;
        this.apiObjectResource = apiObjectResource;
    }
    someMethod() {
        return this.$sce.trustAsHtml(this.someProperty);
    };
}
class APIObject {
    id: number;
}

Information

Rating
Does not participate
Location
Таиланд, Таиланд
Date of birth
Registered
Activity