Pull to refresh
6
0
Сергей Окатов @svok

Руководитель управления разработки

Send message

Это не дизайн. Это сбор в одной спеке всех требований. Без финальной обработки архитектором или хотя бы разработчиком, такая спека останется только черновиком.

Фагим, меня больше озадачила постановка: переписать код с Kotlin на Go.

Это два языка, которые практически не пересекаются по назначению. Go - это низкоуровневый язык с высокой производительностью и скорее для системных задач; Kotlin - высокоуровневый язык с высокой скоростью разработки и скорее для бизнесовых задач. Композировать их, добавляя в критические места программы на Котлин вставки на Go с использованием интероперабельности с C - это нормальная идея. Но перенос один-в-один задач СпектрумДата на Котлин в Go у меня вызывает непонимание.

Можно ли раскрыть примеры таких задач?

Нет. Модуль жёстко вкомпилирован. Микросеовис динамически подгружается, когда нужен.

Мотивация прагматическая.

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

Помнится, так же возвращали уехавших учёных. Ну вернулся я. А в РАН оказывается ставок нет. Предложили 1/7 ставки в размере около 1500 руб/мес. Сказали, что надо подождать годик, тогда может быть дадут полную ставку в 20 т.р.

На этом и закончилась моя научная карьера.

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

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

  3. Чем больше даётся времени на решение, тем выше вероятность качественного решения в срок. Но те меньше вероятности, что кто-то захочет в нее инвестировать. Треугольник проектного управления никуда не делся.

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

Вот серьезно, вы сейчас заходите в магазин и видите бренды: "Черкизово", "Папа мажет" и т.д. В то время в магазинах были только американские (не российского производства) сникерсы да ножки Буша (куриные окорока).

И вообще, значительная часть брендов появилась только после присоединения Крыма в 2014 и последовавшей второй волны санкций.

И вы ещё сравнивает зависимости от импорта.

Я скажу что мешало. Хорошо помню то время. В начале нулевых производства в России почти не существовало. Весь бизнес был - купи-продай.

Любые разговоры про налаживание производства наталкивались на скепсис, на сарказм, на вездесущие препоны. Понятия "стартап" в то время в РФ почти не было.

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

Вот знаете, совсем не до 7нм техпроцесса было.

  1. Пока наши внедряют микросервисную архитектуру, Запад уже лет 5 внедряет бессерверную архитектуру

  2. Котлин гораздо эффективнее Явы, а также, вполне топчется на поле JS/TS, Pyhton/C/C++

  3. Пока народ бьется на идеологическом фронте между Flutter, Native и React Native, в мире появился Compose, который в версии 1.2 (в альфе сейчас) будет поддерживать Андройд, десктопы, ios/macos, web.

  4. Пока в РФ народ все еще сидит на SQL и с большим трудом пытается трогать NoSQL, Запад осваивает NewSQL, и целую серию специализированных БД типа графовых.

Посмотрите чуть ниже я описал схему.

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

Чуть выше написал как все это легко обходится

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


1. Имеем юрлицо в Западной стране. Это юрлицо официально поносит Россию и всячески выражает солидарность санкционной политике, но...

  1. В РФ имеем юругое юрлицо, через которое отправляем оплату удаленщикам.

  2. При необходимости еще больше запутать следы, можем создать еще одно юрлицо где-нибудь в Казахстане, Узбекистане, Армении, Турции или другой стране-прокладке.

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

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

Это особенность Яндекса. Через месяца 2 проснутся и будете 4 дня проходить собеседования.

Это неправда. Безнал не перекрыт, работе на удалёнке все так же ничто не мешает. Единственная причина увода разрабов за границу - это западная истерия.

Не соглашусь. Я сам оказался в ситуации поиска работы из-за операции. И вот вам нюансы.

  1. Если вы ищите крутых спецов, то не ограничивайтесь старым стеком типа Ява-Спринг. Крутые на старье не любят идти.

  2. Вакансия должна быть адекватная. Тимлид на команду из 2 человек - это возможно, но крутой спец на такое не пойдет. Будете из мидлов выбирать.

  3. Зарплатный вопрос никто не отменял. Если на рынке крутым спецам предлагают 400-600, то действительно бессмысленно искать за 200.

  4. Как давно вы обучали людей? Лично я сам веду курс и практически всю команду готовил себе сам.

  5. А ещё есть картельный сговор работодателей. ВТБ из МТС никогда не возьмёт сотрудника, даже если в МТС направление закроется и разрабы выйдут на открытый рынок.

Глянул, да в Википедии Java-пример сделан как у вас, а Python-пример - как у нас.

https://ru.wikipedia.org/wiki/Цепочка_обязанностей

Мы говорим о цепочке, но реализация у нас другая. Обработчик ничего не вызывает, он просто делает свою работу. А вот процессор управляет вызовом обработчиков. И это вполне эффективно.

  1. Мне не очень понятно как углубляется дерево вызовов. Шаблон оперирует последовательным вызовом обработчиков, ухода у глубину практически нет. У нас максимум три уровня глубины обработчиков было.

  2. Я правильно понял, что у вас какие-то сложности с Java-профайлерами возникли? Может можно выбрать другой? В крайнем случае оценить скорость работы обработчиков можно просто добавлением функции измерения в саму библиотеку.

Тут целый ряд нюансов

  1. Сам по себе шаблон вряд ли может быть медленный. Скорее медленной может быть конкретная реализация. Т.е. я бы в первую очередь пооптимизировал библиотеку, если такая проблема возникла.

  2. Та библиотека, на которую я давал ссылку, реализована на корутинах, т.е. допускает асинхронную и многопоточную обработку. В общем, она неплохо масштабируется по ядрам, при необходимости.

  3. У нас на этом шаблоне работает видеообработка на Python со скоростью 30 кадров в секунду. За все время работы с ним я ни разу не сталкивался с проблемами производительности.

  4. Очевидно, что, чем сложнее бизнес-логика, тем больше нагрузка на ЦПУ. И вряд ли имеет существенное значение в каком виде эта логика реализована. Она все равно будет жрать ресурсы.

  5. Часто помогает алгоритмическая оптимизация бизнес-логики. Например, когда вместо 500 if мы реализуем машину состояний, которая отрабатывает за наносекунды.

Information

Rating
Does not participate
Location
Екатеринбург, Свердловская обл., Россия
Works in
Registered
Activity