Pull to refresh
8
Karma
0
Rating
Андрей Литвиненко @alitvinenko

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

Приёмы эффективного общения

По теме статьи - согласен со всем. Использую все это в своих проектах и командах. Все так или иначе работает.

Оффтопик (хаха, англицизм):

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

Appwrite, open-source бэкэнд-платформа

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

Колокол — система событий в Go или очередная event-system библиотека

По первой части стало понятно. Подумаем над реализацией, спасибо!

По второй части, если честно, нужно какое-то время на осознание :)

Колокол — система событий в Go или очередная event-system библиотека

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

Вы совершенно правы! Добавим в осписание сервиса что у нас нет персистентного хранения сообщений.

Имеет смысл ещё написать про реентрабельность. Напр., что будет, если я дёрну bell.Ring в обработчике?

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

Как дела с graceful degradation? Т.е. у нас крутятся тяжеловесные обработчики, а процесс нужно срочно стопануть. Как поведёт себя библиотека?

Сейчас graceful degradation у нас нет. Деградируем некрасиво (все просто прекратится на середине выполнения) :) Спасибо за наводку. Поставили таску на доработку.

Колокол — система событий в Go или очередная event-system библиотека

Спасибо за быстрое ревью!

Почему используется глобальный стейт?

Мы не можем понять как иначе поступить в данном случае? Может быть подскажете, направите?

Если код порождает горутины - то почему нет возможности их из-вне прибить? Контекст там, или отдельный канал какой-нить для уведомления об этом.

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

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

Спасибо! Поставили себе таски на доработки.

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

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

Как вести переговоры с террористами… партнерами, детьми и вообще с кем угодно

  1. Определить желаемую зарплату (это ваша цель)

  2. Определить о какой сумме желаемой заявите (эта сумма должна быть скорее всего выше чем из п.1)

  3. Определить минимальную сумму повышения на которую согласитесь (сумма ниже которой вы перестанете торговаться и выйдете из переговоров).

  4. Определить за счет каких дополнительных благ согласитесь на повышение ниже желаемого уровня (например повышаем не на 50к, а на 40, но по пятницам можно не работать)

  5. Определиться что будете делать если получите отказ (уволитесь, поссоритесь, ничего, и т.п.)

  6. Изучить когда лучше вступать в переговоры (хорошее настроение и т.п.)

  7. Соберете все доводы, честно определите свои минусы

  8. Будете готовы выполнить все из п. 5 если до этого дойдет

Я бы начал с озвучивания суммы из п.2. Дополнительно не раскрывая "за что". Дальше будут вопросы - отвечаете но не оправдываетесь, стараетесь выстраивать диалог а не допрос.

Дальше уже по ситуации. Главное не идти сразу на уступки и не вываливать сразу свои "козыри".

Как вести переговоры с террористами… партнерами, детьми и вообще с кем угодно

В общем случае вступление в переговоры не всегда может означать заинтересованность.

Может быть они тянут время

Может быть за счет вас выбивают лучшие для условия у других

Да и наверняка еще может быть куча поводов вступить в переговоры.

Как вести переговоры с террористами… партнерами, детьми и вообще с кем угодно

У него есть еще свой ютуб-канал где он в коротких видео (буквально по три минуты) дает разные советы.

А еще если ему написать на почту, он может дать рекомендации по книгам и фильмам про переговоры (я писал и где-то через месяц он ответил).

Как вести переговоры с террористами… партнерами, детьми и вообще с кем угодно

Мне понравились еще книги Игоря Рызова о переговорах: Кремлевская школа переговоров и Переговоры с монстрами.

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

Как вести переговоры с террористами… партнерами, детьми и вообще с кем угодно

В книгах о переговорах от Игоря Рызова иногда упоминаются дети как лучшие переговорщики. Они требуют именно то что они хотят, они не боятся получить отказ, у них нет чувства страха перед провалом переговоров :)

Впечатления о Golang от разработчика на PHP

В ситуации с исключениями обрабатывать эти исключения можно на разных уровнях стека вызовов. К тому же разные типы исключений можно обрабатывать в разных местах. В этом мне видится некое удобство.

Про сигнатуру согласен, она нагляднее)

Впечатления о Golang от разработчика на PHP

Рассказать подробности проекта не могу, информация не публичная.

Если говорить образно, то Go мы решили использовать для глубокого бэкенда. Где большая нагрузка по количеству запросов на сервис.

Впечатления о Golang от разработчика на PHP

Почему-то уже лет 10, наверно, нет такого желания) До этого времени были попытки.

Впечатления о Golang от разработчика на PHP

Что вы имеете ввиду? Не смог ничего связанного в интернетах найти.

Впечатления о Golang от разработчика на PHP

Да, вы правы, имелась ввиду динамическая типизация. Косноязычность моя проклятая)

Впечатления о Golang от разработчика на PHP

Вы правы, про ООП вопрос холиварный. Нужны выверенные формулировки чтобы точно выразить свою мысль :)

Спасибо за примеры.

Про возможность встраивания структуры в структуру знаю, как найти ключ в мапе тоже понятно. Я же писал о том что нет аналога array_search/in_array.

Каждый раз когда я не могу найти какую-то для меня обычную "стандартную" функцию вроде проверка присутствия элемента (не ключа) в мапе (in_array в PHP), я удивляюсь и задаю вопрос: "Ну почему вы ее не реализовали? Неужели только мне она понадобилась?".

Впечатления о Golang от разработчика на PHP

Конечно можно вернуть массив.

list($first, $second) = $this->someMethod();

Но на мой взгляд это менее удобно по нескольким причинам:

  1. Нет никаких гарантий что метод вернет именно два параметра в массиве

  2. Нет никаких гарантий что принимаете вы два параметра

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

  4. И так далее.

Продукт VS проект: отличия подходов

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

В продукте дедлайны конечно тоже есть, но они в основном только для реализации отдельных фич/проверки гипотез.

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

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity