Как стать автором
Обновить
27
0
Maksim @MuLLtiQ

Software engineer

Отправить сообщение
macOS пропатчили еще в декабре, насколько я понимаю support.apple.com/en-us/HT208331

https://www.postgresql.org/message-id/20180102222354.qikjmf7dvnjgbkxe@alap3.anarazel.de
ну не 30, а 23, да и то в синтетическом тесте.
Но все равно обидно :(

Note that real-world scenarios probably will see somewhat smaller
impact, as this was measured over a loopback unix sockets which'll have
smaller overhead itself than proper TCP sockets + actual network.

Все-таки хочется посмотреть насколько все плохо на реальных БД: там очень многое зависит от производительности диска и сети.

Вот вам пожалуйста — ответил на вопросы, дошел до низа статьи и только тут увидел что незалогинен. Вошел, и все ответы потерлись, пришлось заново отвечать.

По её условиям, пользователь лишается права использовать React, если подаст в суд на Facebook или нарушит её патенты.

Не совсем так, у пользователя отзывается патентный грант Фейсбука, которые те предоставляют при использовании ПО под их BSD+Patent лицензией. Вопрос в том, какие патенты Фейсбука использует Реакт. Судя по тому что лицензию таки поменяли на MIT патентов там не было, но это под вопросом.


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

Мне интересно почему для Go эта зависимость тоже работает: там же строго табы согласно официальному гайду и найти проекты где забивают на gofmt и используют пробелы не так просто.

MacKeeper? Это не та ли софтина которая настойчиво рекламируется через всплывающие окошки и ее потом хрен снесешь?
Одни спамеры вскрыли утечку у других спамеров.
Хороший агрегатор объявлений о работе с прикрученным поиском — whoishiring.io
в 13-дюймовых уже не ставят — просто некуда, к сожалению. Приходится покупать донгл USB-to-Ethernet.
Я правильно понимаю что шаблоны компонентов пишутся в строках при объявлении компонента? Что-то вроде:
// Взято из туториала
import { Component } from '@angular/core';
export class Hero {
  id: number;
  name: string;
}
@Component({
  selector: 'my-app',
  template: `
    <h1>{{title}}</h1>
    <h2>{{hero.name}} details!</h2>
    <div><label>id: </label>{{hero.id}}</div>
    <div>
      <label>name: </label>
      <input [(ngModel)]="hero.name" placeholder="name">
    </div>
    `
})
export class AppComponent {
  title = 'Tour of Heroes';
  hero: Hero = {
    id: 1,
    name: 'Windstorm'
  };
}
Так это не в технологиях проблема ведь, а в «пионерах» :)
А с isNaN-то что не так? :)
Ну это документированное и ожидаемое поведение языка. Хотя вы правы — понятие «Контекст вызова» здесь больше подходит, нежели «Указатель на объект» или что-то в этом роде.
И что же в JavaScript называется словом this отчего начинают шевелиться волосы?
«Генетика — продажная девка империализма»
Знаем, проходили. Все что вы описали — классический «distributed monolith» и о микросервисах тут речи не идет.
если ищу причину какого-то бага, то в большинстве случаев где-то по ходу анализа исходника приложения натыкаешься на вызов очередного endpoint-а, приходится скачивать его исходники тоже, а там опять endpoint куда-то еще, и т.д. О локальном дебаге речь вообще даже не поднимается, так как слишком много приложений-микросервисов придется локально конфигурировать. В итоге баги ищутся, в основном, путем смотрения на код.

Тут налицо сильная связность и неполное разделение ответственности. Сервис должен быть изолированным, дабы была возможность отлаживать его не устанавливая весь остальной landscape.

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

Бывает, что поделать. Docker в помощь

особенно странно видеть, как зоопарк микросервисов на разных версиях разных языков оперирует с одними и теми же логическими связанными данными. Я, конечно, понимаю, что хотели делать масштабируемо, но на уровне данных все SQL-запросы в итоге идут к одним и тем же базам данных, от чего БД становятся узким местом. Но отмасштабировать БД, как правило, намного труднее.

У каждого сервиса — свое хранилище, общих БД должно быть по минимуму

иногда базы данных пытаются сделать масштабируемыми путем разбиения на логически независимые базы. Микросервисы тогда зависимы только от своей БД, и чувствуют себя отлично, но при этом возникает необходимость в процессах копирования данных между БД, синхронизация, ETL и все такое, что тоже немалый источник хлопот.

Опять же — неправильное разделение ответственности между сервисами. Плюс приложения в такой архитектуре обычно проектируют с учетом толерантности к eventual consistency и не самым свежим данным.

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

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

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

Не обязательно использовать HTTP, или вообще решить проблему изменив deployment (например развернуть сервисы в одном сегменте сети или вообще на одних машинах) вместо переписывания кода.

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

Обычно это работает на уровен фич. Простой пример — оплата. Если сервис обслуживающий PayPal упал, то Яндекс.Деньги например все еще могут работать. Или блок комментариев к статье — если сервис, обслуживающий комментарии лежит, то это не значит что статья не должна отображаться. Терпимость к ошибкам должны быть заложена в архитектуре.

Вообще лучший подход — это представить что ваш микросервис — абсолютно самостоятельный продукт и должен работать независимо от всех остальных частей приложения.
У меня прямо сейчас открыт Атом с 15+ открытыми вкладками и порядком 20 установленных плагинов и он "съел" 78,5 Мб памяти. Когда и при каких условиях этот "блокнотик" отожрал у вас половину ресурсов компьютера?
1
23 ...

Информация

В рейтинге
Не участвует
Дата рождения
Зарегистрирован
Активность