Pull to refresh
7
0
Анатолий Попов @aensidhe

.net architect

Допустим, ошибка там (для моего комментария абсолютно неважно, где эта база). А она там почему оказалась?

Потому что былы, условно, таблицы:

  • дата, правонарушение, статья

  • статья, категория

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

Не успел посмотреть все комментарии топ-уровня (а фильтра в хабре нет), поэтому, наверно кто-то уже писал.

Налицо некорректная архитектура БД - признаку (категория статьи) сущности (статья) не присвоены даты начала и даты конца действия. Поэтому, когда категория поменялась, она поменялась ретроспективно для всех правонарушений в БД. Так что, господа программисты, внимательнее относитесь к вашему софту и вашим БД. Никогда не знаешь как оно отразится потом в будущем.

А всё зависит от того, как айтишники (программисты, архитекторы СУБД, тестировщики и их руководители) сделают свою работу.

Ну, только развернуть впн в виде openvpn/ssh - действительно два тыка, и с вг- нет

плюсы, которые они получили:


  • переход на свифт (который является доминирующим языком под iOS сейчас),
  • переход на функциональную парадигму (Rx), которая является доминирующей сейчас,
  • перевод приложения на архитектуру, в которой каждая фича отделена от остальных
  • куда-то пропали пожары, которые они в 2016м тушили: Uber at the time was extremely heavy on client side logic so the app would break a lot. We were constantly doing hot fixes, burning releases, etc. The design was also scaling badly

Минусы:


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

Мне кажется, всё было сделано верно.


Да, перевод плохой, читайте оригинал.

Го не хуже, го — другой. Кому-то его хватает, удачи им. Мне его мало, мне мало гошного рантайма, поэтому я им не пользуюсь.


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


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


Ну и многие из них (кого я знаю) хотят генериков.

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

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


Да и вообще микросервисы достаточно специальная "вещь" и именно для них Go наверное действительно лучше подходит чем C#.

Я не вижу проблемы написать микросервис на C#. Более того, мы это успешно делали и запускали их в продакшен. Отлично работает. Кода столько же, если не меньше.

Я стараюсь не слишком отклоняться от предмета — костылей и багов с многопоточностью в C# и как с ними проще бороться (перейти на Го). Если вы про то, что raii в C++ позволяет «не думать про управление памятью», так это заблуждение, о чём я вам и ответил цитатой «C++ is a language strongly optimized for liars». что не так то?

Я про то, что вы взяли мой тезис:


Нет никакого смысла переходить с .net на Go при отсутствии экспертизы. Замена более мощного языка и рантайма на менее мощный — зачем?

Изменили его на


Замена более мощного языка и рантайма на менее мощный — зачем?

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


Автор детально описал проблемы, с которыми сталкивается типичный легаси проект на C#, в этом смысле ему респект и поддержка. Чтобы опровергнуть тезисы автора, коротких реплик с возражениями не достаточно. Опишите подробно ваши кейсы, покажите результаты бенчмарков.

"Типичный" — сколько проектов в вашей выборке?

На практике прекрасно заменяются кодогенерацией и реализацией под конкретный тип в 10 строчек, без оверхэда и роста mental cost.

Т.е. копипаста — это нормально, я понял. Это всё, что надо знать про язык го.

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

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


Либо у вас какие-то свои, ни кем не признанные понятия о «серьёзном продакшене». Либо вы что-то делаете не так в разработке микросервисов на разных языках. Или может быть вы живете в танке и не использовали grpc?

О, очередной silverbullet. gRPC. И это у нас тоже есть. И многое другое.


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

Нет, мощь ЯП измеряется наличием инструментов. Например, generics. Когда там Go2 с ненужными generics выходит? О каких системных зависимостях в C# вы говорите, я не знаю. Полностью кросс-платформенное, системонезависимое решение.


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


На вопрос «зачем» в контексте обсуждения доклада я выше ответил — упростить конкурентный код, сделать его менее хрупким и более масштабируемым. Но в целом причин для перехода с C# на Go много. Таких историй десятки если не сотни

Конкурентный код в C#, когда пишется с нуля и нормально, не сильно сложнее Go. Во многом даже проще. У меня как бы опыта на обоих языках достаточно.


который тащит за собой воз багов да тележку костылей

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


C++ is a horrible language. It’s made more horrible by the fact that a lot of substandard programmers use it, to the point where it’s much much easier to generate total and utter crap with it. (С)

Ad hominem. Perfect discussion.


Вы — классический пример того, что когда кончаются аргументы, мы начинаем переходить на личности. Про substandard programmers я хочу напомнить, что именно для них создан Го. Именно поэтому в нём ничего нет. Потому что substandard programmer не может понять генерики. Ссылку найдёте сами.


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

У вас микросервисы, поэтому инжекция Го может быть абсолютно бесшовной —

У меня в проекте есть C#, Java, Go, Rust, Dart и PHP (это мы фронтенд ещё не трогали). Очень интересно это всё поддерживать. Люди, которые говорят, что "микросервисы позволяют писать каждый микросервис на чём угодно" серьёзно, никогда этого не делали в серьёзном продакшене.


переносится ровно тот функционал, который есть смысл переводить на Го, и не более.

Нет никакого смысла переходить с .net на Go при отсутствии экспертизы. Замена более мощного языка и рантайма на менее мощный — зачем?


Да ладно) Ручная сборка мусора вместо gc — это переход к низкоуровневому программированию

Если вам очень надо, в С++ давно есть GC. То, как вы управляете памятью, не является единственным критерием "низкоуровневого" программия. Вам никто не мешает написать код на С++ нормально и тогда там не надо будет думать про управление памятью, всё почистится автоматически (RAII).

Не было необходимости. Не важно в целом, на мой взгляд, общение с саппортом — всегда лотерея.

Основная причина купить Parallels for Mac — это их прекрасная интеграция винды (в виртуалке) с маком. Я не знаю, кто ещё это умеет.

Ну вот попробуют, и что вы сделаете?


Не верьте. Если это приносит деньги, почему он этого не будет делать? Вон, кто бы мог поверить, что Facebook будет пароли в открытом тексте хранить, или ваши данные продавать налево и направо, а гляди ж ты. Хранили и продавали (и будут продолжать).

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

Там чёрным по белому написано.


It’s not like I didn’t try. I just never got a job sending my CV.

Так что отсылал, но никогда не получал оффера. А уж в чём там дело — мы не знаем.

Это тоже неверно. Всё, что мы знаем, это то, что он никогда не получал работу, если его первым шагом была отправка резюме.

Перевод:


В группах Facebook для начинающих программистов часто спрашивают, как улучшить резюме, чтобы легче получить работу. За свою 12-летнюю карьеру я прошёл путь от джуниора до технического директора — и резюме ни разу мне не пригодилось. Не то, чтобы я не пытался. Просто у меня его ни разу не спрашивали.

Оригинал:


On Facebook, in groups dedicated to beginning programmers, I often see questions about how to improve one’s CV to increase the chances of being hired.
In my 12-year career, I went from the junior to the technology director and never got a job thanks to my CV. It’s not like I didn’t try. I just never got a job sending my CV.

Итого, не "не спрашивали", не "не пригодилось", а "я ни разу не устроился на работу из-за того, что я послал CV". Это абсолютно разный смысл. Зачем вы обманываете читателей Хабра?


Написанное автором означает лишь несколько вещей:


  1. Возможно, когда он посылал CV, его никогда не нанимали.
  2. Скорее всего, когда он устраивался разными способами на работу, его таки спрашивали CV. Обычно это таки делают, если не знают человека лично очень давно.

Ну, я пока не понял, что сложного в вашем кейсе с нейросетями.


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

Ретроскидка тоже знакомая (и тривиальная) вещь?


Сисадмин: кривой пининг вендоринга кукбуки и в одном из регионов у нас по геоip прилетает локальная локаль на андерклаудный imagebuilder.

Не, такого точно никогда в продажах не бывает.

Information

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