Pull to refresh
-1
0
Булат @Damaskus

Javascript Developer

Send message
По поводу конструкторов без new,
так сложилось, что иногда их вполне валидно можно вызвать, во всяком случае со стандартными типами
Number(’10’) === 10, что в будет плюс/минус эквивалентом
Number.call(undefined, '10’)

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

По поводу приватных полей и методов + WeakMap — жесть какая.
Инкапсуляция данных и методов, она практически всегда была реализована, как правильно упомянули выше в комментариях, через замыкания.
И она еще долго таковой и останется много где.

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

(function closure() {…})()

что и есть инкапсуляция по сути своей.
Не согласен.
У большой тройки на фронте: Angular, Vue, React есть способы описания через классы.
У первого причем только через классы. Vue, начал с классов, но в итоге тоже внедряет React-like api.

А по бэку, у ноды, я за все пакеты не могу сказать, но из того что я видел — везде процедурный стиль: тот же самый express
Да, все правильно. Контекст неуловил.
Давайте не будем столь категоричны.
В скриптовом языке далеко не все может быть гарантировано.
Вот тут все работает
function testable(x) {
    if (x > 10) {
        return new Promise(resolve => setTimeout(()=>resolve(x), 0));   
    }
    return x;    
}

async function test() {
    console.assert(await testable(1) === 1);
    console.assert(await testable(1000) === 1000);
    console.assert(await testable(null) === null);
}

test();

Не надо так категорично.
async — значит что там может быть промис, а не должен. Это чисто семантическая вещь, которая позволяет писать await внутри, без этого вы получите ошибку компиляции.
Если справа от await будет не Promise — значение просто вернется напрямую.
Он даже нулл прокидывает.
Не очень понятен смысл вот этого:
@rw value?: string = '';


Модификатора доступа нет, без @rw оно не будет доступным для чтения и для записи?

Read only поле в ES6 и typescript вообще можно сделать убрав сеттер и оставив только геттер.

Да и зачем вам дескрипторы, если есть поддержка get и set?
Модель, если уж на то пошло, там есть и, собственно, там все в ней и лежит.
Вообще все, даже то, что не мутирует и приходит снаружи — movie.

А картинка эта (иерархия, которая предполагается Vue) и использование props позволит сэкономить на перестроении DOM.

Bottomline.
Есть механизмы для того, чтобы написать все это, используя подходы из коробки дающие хорошую изоляцию компонентов(+реюзабилити, + тесты) и быстродействие.
Вместо этого пишется свой велик и декларируется, что вью — это круто.
А по факту из всего набора использовался только шаблонизатор.
Да вам вообще это шина не нужна.
Вы реализовали вместо иерархии плоскую структуру.
Из инструкции vue.js:
props down, events up
image
1. Ваш компонент, который делает fetchMovie() не должен ничего сам грузить, но даже если грузит, то должен кинуть событие наверх, что есть новый фильм. Это изменение вызовет изменение данных в родителе, который спустит новые данные в виде props в ребенка.

Соответственно:
2. Ребенок — компонент, который слушает ваш event сейчас, должен иметь это свойство.

А с текущим подходом, вы успешно теряете все бенефиты от immutability и всего того, что паттерн mediator приносит вобщем-то.

Доки.

let, window.fetch используете, а const и await — нет.

Вот этот кусок вообще не очень, если честно:
 created () {
    bus.$on('new_movie', movieId => {
      this.movie = movieId
    })
  },

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

А точки с запятой тормоза придумали трусы.
вы не сможете точно представить любое вещественное число

Да это нахрен не надо никому :-)
Стандартный 80 битный формат покрывает 99% вычислений — 19,20 знаков.
Для всего остального можно реализовать ручками, если припрет.

Я тоже не пойму причем тут Java.
Насколько помню, округлять FP числа при выводе учат еще в школе, ну или институте курсе так на первом.
Инфа хранится в двоичной форме, выводится в десятичной, отсюда все проблемы.
А ну если хотите точных вычислений с точкой для денег или еще чего, используйте BigDecimal, если на то пошло.
Космополитично рассуждаете :-)
Однако не соглашусь. В контексте современной России «отсталые практики» в настоящий момент являются способом выживания. Ресурсов у нас как грязи, а вот с людьми проблема.
Я не считаю, что рождаемость в России должна быть как на Кавказе, но считаю, что 3-е детей должно быть нормой.
Я не говорю, что космополит это плохо. Любой open source — это своего рода коммунизм, от каждого по способностям.
Но для России в целом — это не актуально, слишком высок риск космополитизироваться в китайцев или еще кого.
Те уж точно помнить нас не будут, своих героев хватает.
Отсутствие «спиногрызов» — прямой путь в небытие.
Есть информация о том, когда книга появится в печати?
Ага, а еще есть разновидность особо чувствительных хабрахомячков несогласных с большинством, делают минус в карму когда коммент в большом плюсе и его голос будет незаметен на общем фоне. Причем, как правило, это делается не аргументированно, просто минус без объяснений и комментариев в треде. Типа «на тебе умник». Вот такие больше всего бесят, чесслово.
Даже без использования подклассов, Greeter все еще обладает полиморфизмом.
Не стоит отделять полиморфизм от наследования (подклассов, суперклассов).
Вы его в ваших стратегиях ведь используете, так что ООП оно и в африке ООП.
Нарядная вещь, однако выглядит так, что какое нибудь неудачное движение мышью может стоить потерянного времени.
Механизм решения конфликтов тоже никак не показан.
Вижу этой штуки только один плюс: можно делать мержи на удаленных репах через веб морду.
Сам пользуюсь git extensions.
Тыкать пальцем в историю — это совершенно нормальное развлечение для человека любого возраста знающего хоть немного историю своего государства.
История забавная штука, периодически воспроизводит одни и те же ситуации в разных ракурсах.
Опять таки, беспилотники отлично вписываются в западную доктрину «мы летим к вам». России они не особо нужны. У нас есть с 400, с 500 аналогов которых ни у кого нет, насколько мне известно.
Не исключаю возможности кстати, что ваш чешский университет может словить ракету с беспилотника с ПО написанным в нем же самом. Говорю же, история звбавная штука.
Не смешивайте науку и политику.
Интеграция, это вообще очень инересное слово, на западный манер оно означает построение империи по принципу высасывания ресурсов с переферии в центр, а ля сырьевой придаток, а если кого то не устраивает — «тогда мы летим к вам».
А СССР, кстати, и был тем самым интегратором в хорошем смысле, когда на периферии жили также, а зачастую и лучше чем в центре. И это и была одна из основных причин развала.
По поводу инноваций обратитесь к истории, 1988 г. Буран сел на полном автомате, многотонная машина села сама. Штаты до сих пор сажают руками, и не надо говорить что им это просто не надо, они просто не умеют.
1
23 ...

Information

Rating
Does not participate
Location
Казань, Татарстан, Россия
Date of birth
Registered
Activity