Как стать автором
Обновить
62
0

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

Отправить сообщение
>Блог компании Mail.Ru Group
;-З

На какую должность с такими вопросами собеседуете?
Собрать лишние данные — это не тоже самое, что построить отчёт по уже имеющимся. Думаю оный экономист имел все права на данные к тому же.

Но направление мысли я понял, спасибо.
Нет, история только написана. Думаю для перевода на английский стоит чуть-чуть подправить специфику.
но если бы подобная история про Amazon или Google попала бы в прессу — то иск на много миллионов был бы неизбежен.

Что Вас заставляет так думать?
Как пример технического долга я вставил off by one error в нумерации частей. Спасибо что заметили.
Они не заинтересованы в том, чтобы проект не провалился.

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

Такое состояние приводит к тому, что возникает конфликт интересов и им субъективно выгодно принимать рисковые решения.

Graytail, спасибо за освещение этой темы, но передача мне кажется немного однобокой. Блокаду, кстати, если я правильно помню, потом отменяли решением суда. Ну и сопутствующее убийство — это первое громкое, но отнюдь не единственное — чего только стоят все документы разведки США…

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

Это теория графов и «6 рукопожатий». Первое институт, второе тогда ещё было непопулярно.
А вдруг они на нём программируют?
Это инструкции для IETF. При написании документации к cloud sql им следовать, вообще говоря, не обязаны.

В данном случае имеет место рекомендация (и условие действительно выполняется).
Хоть одно радует в таких комментариях — значит прочитали :).
При автоматическом обрыве запроса обрывается выполнение этого запроса. В случае, если запрос был «убит» это может вызвать повисший запрос, который конечно откатится, но уже спустя некоторое время.
Пулы соединений как раз гарантируют, к примеру, что один инстанс не будет открывать слишком много соединений.
Потому что тогда бы этой истории не было бы — stream api действительно имеет более предсказуемое поведение, хотя и работает в среднем медленнее guava (в случае завершающего копирования).

Сам пример, очевидно, от версии Java слабо зависит. Писался на 8й для краткости исходного кода.
В Guava на каждом методе c transform в JavaDoc написано, что transform создает View, а не новую коллекцию. В документации и примеры на это, и пояснения для чего так, и что делать если там нужна именно копия.

Да, написано, но абсолютно неочевидно из сигнатуры метода, в результате чего такая ошибка мне встречалась крайне часто (причём и у опытных людей). Мораль в результате именно такая: не верь тому, как оно выглядит, обязательно понимай как работает.
Не читаем, осуждаем. ССЗБ? Да.

Читаем, обсуждаем, передаём опыт будущим поколениям.

Второй пример — вообще смешно. Вы выделили жирным «then»часть предложения, но почему-то не «if» :)

Потому что после then написан ещё пример, когда это условие верно — при связи между AppEngine и CloudSQL.
Ваш случай подпадал под один вариант, а вы выбрали другой. И пишете, что документация плохая :)

Почему Вы так считаете? Скорость открытия соединения в описываемом случае действительно мала, так что проект подпадал как раз под этот вариант.

PS; Вместо того, чтобы использовать коннекшн пул нулевого размера — может лучше его всё же полностью убрать? :)

Не могли бы Вы объяснить, что Вы имеете ввиду? Пулл нулевого размера — это и есть дефакто отсутствие пулинга. (если просто убрать настройку пулинга, то будет использоваться default value 1 и это как раз то, что делать совсем не стоит).

PS2: Статью следовало бы назвать «Даже усли использовать хорошие библиотеки, вы всё равно можете выстрелить себе в ногу» :)

И более того, они могут помочь вам в этом, так как вы не будете осознавать, что стреляете.
В случае, когда код настолько не очевиден, проблемы не прекращаются и когда работает его автор.
>>А потому что все решили что Google кому-то что-то должен, так как изначально дал возможность делать с Андроидом практически всё что угодно.
Отделив систему от устройства и позволив легко её ставить даже на кофеварку, Google получил взрывообразный рост количества устройств с Андроид и количества программ для него.
Насколько я понимаю, эти условия включали такие пункты:
1. Если вы хотите предустанавливать на телефоны хотя бы один наш сервис, то обязаны предустанавливать всё что мы включаем в поставку
2. Если вы предустанавливаете наши сервисы, то не имеете права сотрудничать с нашими конкурентами

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

Я бы не сказал, что такой способ продвижения сервисов мне нравится в принципе — я бы предпочёл чтобы пользователей принуждали выбирать чем пользоваться, но когда так распространяется только монополист — это объективно плохо. Это приводит к ситуации, когда 90% пользователей ходят в интернет через «Интернет» (ie) и даже на порядок лучшая функциональность не помогает продвигаться альтернативным решениям.
>> Для использовании наследования, Builder разделяется на две части (один с полями, другой — с методом создания) следующим образом:
Так делать не стоит, сейчас объясню почему:

1. Если Вы используете билдеры и наследование, то оно Вам для чего-либо нужно. И обычно не просто для экономии места при написании переменных, а для того, чтобы переиспользовать билдер:
List<? extends BaseEntity> entities;

public void addEntity(BaseEntity.Builder builder) {
  entities.add(builder.build());
}

2. После присвоения базового параметра при такой реализации будет возвращена ссылка на базовый билдер, т.е. нельзя будет сделать такое:
ExtendedEntity.newBuilder().baseParameter(value).extendedParameter(value2).build();

Это можно обойти хитрым использованием дженериков при наследовании. Могу написать код, если он кому-либо интересен.

По поводу «Mega Builder» — можете привести пример реализации и использования?
К таким статьям вместо плашки «новость» хочется добавить плашку «не новость».
1
23 ...

Информация

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