Это не дизайн. Это сбор в одной спеке всех требований. Без финальной обработки архитектором или хотя бы разработчиком, такая спека останется только черновиком.
Фагим, меня больше озадачила постановка: переписать код с Kotlin на Go.
Это два языка, которые практически не пересекаются по назначению. Go - это низкоуровневый язык с высокой производительностью и скорее для системных задач; Kotlin - высокоуровневый язык с высокой скоростью разработки и скорее для бизнесовых задач. Композировать их, добавляя в критические места программы на Котлин вставки на Go с использованием интероперабельности с C - это нормальная идея. Но перенос один-в-один задач СпектрумДата на Котлин в Go у меня вызывает непонимание.
Скажем так, мифы о сказочной жизни на Западе преувеличены. И уж точно мне не хотелось тратить значительную часть жизни на то, чтоб получить вожделенное гражданство другой страны.
Помнится, так же возвращали уехавших учёных. Ну вернулся я. А в РАН оказывается ставок нет. Предложили 1/7 ставки в размере около 1500 руб/мес. Сказали, что надо подождать годик, тогда может быть дадут полную ставку в 20 т.р.
Согласен, что в большинстве случаев то, что команды называют скрамом или эждайлом, на деле является бесполезной тратой ресурсов, не приносящей никакой бизнес-ценности. Про HADI циклы мало кто слышал и ещё меньше их увязывают со спринтами.
С другой стороны, оценка реально влияет на скорость выполнения. Любую задачу можно выполнять хорошо, а можно быстро.
Чем больше даётся времени на решение, тем выше вероятность качественного решения в срок. Но те меньше вероятности, что кто-то захочет в нее инвестировать. Треугольник проектного управления никуда не делся.
Оценку сроков я рассматриваю как ограничение, заставляющее разработчика найти баланс между собственным перфекционизм и требованиями рынка.
Вот серьезно, вы сейчас заходите в магазин и видите бренды: "Черкизово", "Папа мажет" и т.д. В то время в магазинах были только американские (не российского производства) сникерсы да ножки Буша (куриные окорока).
И вообще, значительная часть брендов появилась только после присоединения Крыма в 2014 и последовавшей второй волны санкций.
Я скажу что мешало. Хорошо помню то время. В начале нулевых производства в России почти не существовало. Весь бизнес был - купи-продай.
Любые разговоры про налаживание производства наталкивались на скепсис, на сарказм, на вездесущие препоны. Понятия "стартап" в то время в РФ почти не было.
И заботил людей не вопрос производства, а то, что "черножопые" понаехали в Маааскву. А, нет, это чуть позже было, а в начале нулевых, вторая чеченская война как раз в то время гремела.
Пока наши внедряют микросервисную архитектуру, Запад уже лет 5 внедряет бессерверную архитектуру
Котлин гораздо эффективнее Явы, а также, вполне топчется на поле JS/TS, Pyhton/C/C++
Пока народ бьется на идеологическом фронте между Flutter, Native и React Native, в мире появился Compose, который в версии 1.2 (в альфе сейчас) будет поддерживать Андройд, десктопы, ios/macos, web.
Пока в РФ народ все еще сидит на SQL и с большим трудом пытается трогать NoSQL, Запад осваивает NewSQL, и целую серию специализированных БД типа графовых.
Но вот еще. Некоторые разрабы просто открывают счет в странах-прокладках. В принципе, можно открывать там ИП или юрлицо, при необходимости. Не обязательно жить в этих странах, чтобы получать оплату.
Возможно и есть подводные камни, но пока схема выглядит довольно просто.
1. Имеем юрлицо в Западной стране. Это юрлицо официально поносит Россию и всячески выражает солидарность санкционной политике, но...
В РФ имеем юругое юрлицо, через которое отправляем оплату удаленщикам.
При необходимости еще больше запутать следы, можем создать еще одно юрлицо где-нибудь в Казахстане, Узбекистане, Армении, Турции или другой стране-прокладке.
Да, схема пересылки денег усложняется, комиссия получится повыше, но в целом все должно работать
Санкции не на все банки наложены. Да, Виза и Мастеркард заблокированы, но Свифт для большинства продолжает работать. Переслать валюту из России действительно труднее стало, но в Россию ... никто не сообщал о каких-то ограничениях. По крайней мере оплата за удобрения, газ, нефть и прочие товары нормально проходит.
Это неправда. Безнал не перекрыт, работе на удалёнке все так же ничто не мешает. Единственная причина увода разрабов за границу - это западная истерия.
Не соглашусь. Я сам оказался в ситуации поиска работы из-за операции. И вот вам нюансы.
Если вы ищите крутых спецов, то не ограничивайтесь старым стеком типа Ява-Спринг. Крутые на старье не любят идти.
Вакансия должна быть адекватная. Тимлид на команду из 2 человек - это возможно, но крутой спец на такое не пойдет. Будете из мидлов выбирать.
Зарплатный вопрос никто не отменял. Если на рынке крутым спецам предлагают 400-600, то действительно бессмысленно искать за 200.
Как давно вы обучали людей? Лично я сам веду курс и практически всю команду готовил себе сам.
А ещё есть картельный сговор работодателей. ВТБ из МТС никогда не возьмёт сотрудника, даже если в МТС направление закроется и разрабы выйдут на открытый рынок.
Мы говорим о цепочке, но реализация у нас другая. Обработчик ничего не вызывает, он просто делает свою работу. А вот процессор управляет вызовом обработчиков. И это вполне эффективно.
Мне не очень понятно как углубляется дерево вызовов. Шаблон оперирует последовательным вызовом обработчиков, ухода у глубину практически нет. У нас максимум три уровня глубины обработчиков было.
Я правильно понял, что у вас какие-то сложности с Java-профайлерами возникли? Может можно выбрать другой? В крайнем случае оценить скорость работы обработчиков можно просто добавлением функции измерения в саму библиотеку.
Сам по себе шаблон вряд ли может быть медленный. Скорее медленной может быть конкретная реализация. Т.е. я бы в первую очередь пооптимизировал библиотеку, если такая проблема возникла.
Та библиотека, на которую я давал ссылку, реализована на корутинах, т.е. допускает асинхронную и многопоточную обработку. В общем, она неплохо масштабируется по ядрам, при необходимости.
У нас на этом шаблоне работает видеообработка на Python со скоростью 30 кадров в секунду. За все время работы с ним я ни разу не сталкивался с проблемами производительности.
Очевидно, что, чем сложнее бизнес-логика, тем больше нагрузка на ЦПУ. И вряд ли имеет существенное значение в каком виде эта логика реализована. Она все равно будет жрать ресурсы.
Часто помогает алгоритмическая оптимизация бизнес-логики. Например, когда вместо 500 if мы реализуем машину состояний, которая отрабатывает за наносекунды.
Это не дизайн. Это сбор в одной спеке всех требований. Без финальной обработки архитектором или хотя бы разработчиком, такая спека останется только черновиком.
Фагим, меня больше озадачила постановка: переписать код с Kotlin на Go.
Это два языка, которые практически не пересекаются по назначению. Go - это низкоуровневый язык с высокой производительностью и скорее для системных задач; Kotlin - высокоуровневый язык с высокой скоростью разработки и скорее для бизнесовых задач. Композировать их, добавляя в критические места программы на Котлин вставки на Go с использованием интероперабельности с C - это нормальная идея. Но перенос один-в-один задач СпектрумДата на Котлин в Go у меня вызывает непонимание.
Можно ли раскрыть примеры таких задач?
Нет. Модуль жёстко вкомпилирован. Микросеовис динамически подгружается, когда нужен.
Мотивация прагматическая.
Скажем так, мифы о сказочной жизни на Западе преувеличены.
И уж точно мне не хотелось тратить значительную часть жизни на то, чтоб получить вожделенное гражданство другой страны.
Помнится, так же возвращали уехавших учёных. Ну вернулся я. А в РАН оказывается ставок нет. Предложили 1/7 ставки в размере около 1500 руб/мес. Сказали, что надо подождать годик, тогда может быть дадут полную ставку в 20 т.р.
На этом и закончилась моя научная карьера.
Согласен, что в большинстве случаев то, что команды называют скрамом или эждайлом, на деле является бесполезной тратой ресурсов, не приносящей никакой бизнес-ценности. Про HADI циклы мало кто слышал и ещё меньше их увязывают со спринтами.
С другой стороны, оценка реально влияет на скорость выполнения. Любую задачу можно выполнять хорошо, а можно быстро.
Чем больше даётся времени на решение, тем выше вероятность качественного решения в срок. Но те меньше вероятности, что кто-то захочет в нее инвестировать. Треугольник проектного управления никуда не делся.
Оценку сроков я рассматриваю как ограничение, заставляющее разработчика найти баланс между собственным перфекционизм и требованиями рынка.
Вот серьезно, вы сейчас заходите в магазин и видите бренды: "Черкизово", "Папа мажет" и т.д. В то время в магазинах были только американские (не российского производства) сникерсы да ножки Буша (куриные окорока).
И вообще, значительная часть брендов появилась только после присоединения Крыма в 2014 и последовавшей второй волны санкций.
И вы ещё сравнивает зависимости от импорта.
Я скажу что мешало. Хорошо помню то время. В начале нулевых производства в России почти не существовало. Весь бизнес был - купи-продай.
Любые разговоры про налаживание производства наталкивались на скепсис, на сарказм, на вездесущие препоны. Понятия "стартап" в то время в РФ почти не было.
И заботил людей не вопрос производства, а то, что "черножопые" понаехали в Маааскву. А, нет, это чуть позже было, а в начале нулевых, вторая чеченская война как раз в то время гремела.
Вот знаете, совсем не до 7нм техпроцесса было.
Пока наши внедряют микросервисную архитектуру, Запад уже лет 5 внедряет бессерверную архитектуру
Котлин гораздо эффективнее Явы, а также, вполне топчется на поле JS/TS, Pyhton/C/C++
Пока народ бьется на идеологическом фронте между Flutter, Native и React Native, в мире появился Compose, который в версии 1.2 (в альфе сейчас) будет поддерживать Андройд, десктопы, ios/macos, web.
Пока в РФ народ все еще сидит на SQL и с большим трудом пытается трогать NoSQL, Запад осваивает NewSQL, и целую серию специализированных БД типа графовых.
Посмотрите чуть ниже я описал схему.
Но вот еще. Некоторые разрабы просто открывают счет в странах-прокладках. В принципе, можно открывать там ИП или юрлицо, при необходимости. Не обязательно жить в этих странах, чтобы получать оплату.
Чуть выше написал как все это легко обходится
Возможно и есть подводные камни, но пока схема выглядит довольно просто.
1. Имеем юрлицо в Западной стране. Это юрлицо официально поносит Россию и всячески выражает солидарность санкционной политике, но...
В РФ имеем юругое юрлицо, через которое отправляем оплату удаленщикам.
При необходимости еще больше запутать следы, можем создать еще одно юрлицо где-нибудь в Казахстане, Узбекистане, Армении, Турции или другой стране-прокладке.
Да, схема пересылки денег усложняется, комиссия получится повыше, но в целом все должно работать
Санкции не на все банки наложены. Да, Виза и Мастеркард заблокированы, но Свифт для большинства продолжает работать. Переслать валюту из России действительно труднее стало, но в Россию ... никто не сообщал о каких-то ограничениях. По крайней мере оплата за удобрения, газ, нефть и прочие товары нормально проходит.
Это особенность Яндекса. Через месяца 2 проснутся и будете 4 дня проходить собеседования.
Это неправда. Безнал не перекрыт, работе на удалёнке все так же ничто не мешает. Единственная причина увода разрабов за границу - это западная истерия.
Не соглашусь. Я сам оказался в ситуации поиска работы из-за операции. И вот вам нюансы.
Если вы ищите крутых спецов, то не ограничивайтесь старым стеком типа Ява-Спринг. Крутые на старье не любят идти.
Вакансия должна быть адекватная. Тимлид на команду из 2 человек - это возможно, но крутой спец на такое не пойдет. Будете из мидлов выбирать.
Зарплатный вопрос никто не отменял. Если на рынке крутым спецам предлагают 400-600, то действительно бессмысленно искать за 200.
Как давно вы обучали людей? Лично я сам веду курс и практически всю команду готовил себе сам.
А ещё есть картельный сговор работодателей. ВТБ из МТС никогда не возьмёт сотрудника, даже если в МТС направление закроется и разрабы выйдут на открытый рынок.
Глянул, да в Википедии Java-пример сделан как у вас, а Python-пример - как у нас.
https://ru.wikipedia.org/wiki/Цепочка_обязанностей
Мы говорим о цепочке, но реализация у нас другая. Обработчик ничего не вызывает, он просто делает свою работу. А вот процессор управляет вызовом обработчиков. И это вполне эффективно.
Мне не очень понятно как углубляется дерево вызовов. Шаблон оперирует последовательным вызовом обработчиков, ухода у глубину практически нет. У нас максимум три уровня глубины обработчиков было.
Я правильно понял, что у вас какие-то сложности с Java-профайлерами возникли? Может можно выбрать другой? В крайнем случае оценить скорость работы обработчиков можно просто добавлением функции измерения в саму библиотеку.
Тут целый ряд нюансов
Сам по себе шаблон вряд ли может быть медленный. Скорее медленной может быть конкретная реализация. Т.е. я бы в первую очередь пооптимизировал библиотеку, если такая проблема возникла.
Та библиотека, на которую я давал ссылку, реализована на корутинах, т.е. допускает асинхронную и многопоточную обработку. В общем, она неплохо масштабируется по ядрам, при необходимости.
У нас на этом шаблоне работает видеообработка на Python со скоростью 30 кадров в секунду. За все время работы с ним я ни разу не сталкивался с проблемами производительности.
Очевидно, что, чем сложнее бизнес-логика, тем больше нагрузка на ЦПУ. И вряд ли имеет существенное значение в каком виде эта логика реализована. Она все равно будет жрать ресурсы.
Часто помогает алгоритмическая оптимизация бизнес-логики. Например, когда вместо 500 if мы реализуем машину состояний, которая отрабатывает за наносекунды.