Pull to refresh
1
Send message

Хочешь попасть в реестр отечественного ПО и подавать заявки на гостендеры по закупке решений для КИИ (критической информационной инфраструктуры) с решениями на Java и прочих языках JVM-платформы - используй только сертифицированные отечественные JDK дистрибутивы. А это на данный момент либо Liberica, либо Axiom.

Ну так языки-альтернативы С/С++ появились как результат признания факта, что количество ошибок работы с памятью слабо коррелирует с квалификацией программиста. Потому что помимо пролома буфера есть use-after-free, double free, работа с неициализированными переменными в редко исполняющихся ветках программы и т.д. Да, какая-то часть таких ошибок предотвращается полезными привычками и дисциплиной самого программиста + разным тулингом в виде санитайзеров и статических анализаторов, но это не убирает главную причину таких ошибок - снижение внимательности и концентрации. Да и эволюционно человеческие мозги заточены на то, чтобы эффективно работать только с тем, что непосредственно перед глазами. Если в языке нет явного выражения владения и заимствования, а только неявное, в виде специфических "соглашений " и паттернов, то в какой-то момент кодовая база перестанет "влазить" в окно фокуса внимания разработчика и он так или иначе накосячит.

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

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

А перед тем, как позвать на алгоритмическую секцию, сначала проверят, есть опыт работы алгоримистом? Компании вкрутили секцию system design как дополнительный фильтр в воронку найма, так как людей с опытом в 5-7 лет на рынке труда прилично, все хотят много денег. Компании отдают себе отчёт, что те, у кого спрашивают system design на позицию синьора, чаще всего будет иметь свободу воли на уровне "могу выбирать, какие таблички в БД будут по описанию из ТЗ и как будет выглядеть SQL запрос". А будет ли у команды новый микросервис для фичи, нужна ли ему БД или redis решит уже прикрепленный к команде архитектор.

Почему не факт, что отправлено? Send() метод блокирующий и не отпустит поток, пока producer-y не придет от брокера отбивка, что данные успешно записаны в топик. Естественно, если перед этим разраб выставил acks в one/all.

Вы для начала дайте определение "большого серьезного проекта". Я работал в одном из маркеплейсов РФ, бабок там крутится чудовищно много, несерьёзным бизнес язык назвать не повернется. Но это не отменяло того, что архитектурный комитет на уровень команды отдавал только описание определенного бизнес-домена в виде т.н. vision и общих предписаний по архитектуре (типа REST вызовы между сервисами запрещены, делаем асинхронную event-driven систему на сообщениях в топиках Кафки). Ииии.... на этом все. Все остальное проходит исключительно на уровне команды - приходят смежники с запросом на такую-то функциональность, лиды и аналитики договариваются между собой, оформляют задачи в Jira, задачки отдают на проработку синьорам, которые сначала пишут ADR (документ, обычно на пару десятков страниц, в котором описывается, исходя из описания задачи и требований от бизнес-аналитика, какие таблицы будут в БД, какие индексы, нужны ли очереди и распределенные кэши и так далее). Лиды проводят вычитку ADR, выставляют замечания, через несколько итераций ADR одобряется и уходит в виде конкретных технических задач как синьорам, так и мидлам/джунам. У нас в команде были сервисы, которым было по 8-10 лет, 17 тысяч классов, примерно 300-400 тысяч строк кода - и ничего, даже мидлы спокойно сами создавали топики в командной Кафке или добавляли/удаляли таблицы в БД через миграции, если того требовала задача. Естественно, с ревью от 2 синьоров или одного лида.

В универах программирванию не учат, там учат всякой всячине из предметной области — дискретка, анализу асимптотической сложности, графы, конечные автоматы, реляционная модель данных и т.д.
А если там есть курсы по типу Python, Java, Scala — то 90%, что их по фану ведут либо вчерашние магистры, либо мидлосеньоры из местечковых филиалов DataArt, DSR, NetCracker и тому подобных фирм. Учебного плана ноль, педагогического образования тоже, только мотивированный избытком свободного времени энтузиазм. Итого весь курс травят enterprise-байки, под настроение выносят на обсуждение какую-нибудь фичу языка, но обычно в начале курса просто выдают накодить какую-нибудь баянистую задачку, скомунижженую из лекций Стенфордского университета и на парах появляются только в том случае, если староста кинул в конфу сообщение, что 5-8 человек готовы сдать или никто не понимает, как настроить sbt под виндой.
В общем-то, в этом «рунглише» бесят не англицизмы, а колхозное натягивание английских корней слов на русскую грамматику. Ради бога, любой адекватный программист знает это несчастное наследие Империи, Над Которой Не Заходило Солнце как минимум на уровне Intermediate, зачем эти извращения? Хочется употреблять английский? — да ради бога, только давайте это будет чистый английский. Либо чистый русский, где из англицизмов только четко устоявшаяся техническая терминология, без которой для быстрого и эффективного взаимопонимания никак. Например, «легаси» для заплесневелого кода. В общем, солидарен с тем, что если уже по собеседующему видно, что он аутист, лучше отказаться от такой «солидной» компании, «идущей в ногу со временем».

Information

Rating
5,763-rd
Registered
Activity