Pull to refresh
9
0.2
Роман@Gromilo

.net разработчик

Send message

Спасибо за пример, стало понятнее.

Что представляю я, когда говорят о языке более высокого уровня: я пишу промты, программа полностью создаётся из них.

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

Мой опыт генерации показывает, что если сразу всё описать, то шанс получить согласованное решение выше, чем в диалоге. Бывает, что переделывает только ту часть, на которую указал, а все остальные места (из этого же чата генерации) не приходят в согласованное состояние.

1. Логическая изоляция (WHERE в коде)?

Делал почти так же как у тебя. tenant_id хранился в таблице, а все запросы шли через вьюхи с таким же фильтром tenant_id = current_setting('app.current_tenant')::uuid. Все индексы были вида (tenant_id, id), а внешние ключи обязательно содержали tenant_id.

Я разрабатывают бэкенды и вообще не представляю как может выглядеть:

минуя этап структурирования и проектирования объектов (это в подавляющем большинстве случаев справочный шаблон) а непосредственную реализацию последовательности действий или конечного результата

Можешь показать как выглядит новая парадигма?

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

В этом смысле это искусство

Вот эта часть мне не нравится. Сам программирую с курсором, но конечный этап работы - это код, за который я несу ответственность. Код "человекосовместимый".

Есть примеры реп, где код вообще не пишется руками, а целиком генерится по промтам? Для меня утверждение, что "просто язык программирования верхнего уровня" звучит так, что у нас просто есть код, над которым мы ведем итеративную работу, а весь софт создаётся автоматом из репы где нет классического кода.

А есть гарантия, что процесс сходящийся?

Просто у меня есть опыт хождения нейронкой по кругу

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

Либек доставили в больницу, где было установлено, что она получила ожоги третьей степени 6 % поверхности кожи и ожоги меньшей степени на более чем 16 % кожи[14]. Она оставалась в больнице в течение восьми дней, пока ей делали пересадку кожи. За этот период Либек похудела на 20 фунтов (9,1 кг) (что составляло почти 20 % её массы тела) до 83 фунта (38 кг). После выписки из больницы Либек нуждалась в уходе в течение трёх недель, который обеспечивала её дочь[15]. После ожогов Либек получила статус частичного инвалида сроком на два года

Я бы не стал на себя проливать. Тем более что она просила в компенсацию 20к долларов - это только лечение и потерянный доход. Овчинка явно того не стоит.

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

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

А если использовать правило 4% процентов, то вообще 300к в месяц

В том-то и ирония, что для рядового сотрудника весь этот улучшайзинг с помощью ИИ выглядит как-то так: работал 8 часов в день, и теперь работаю 8 часов, только с ИИ.

Или вообще: вот тебе ИИ, теперь ты должен делать больше и не волнует. Вот радость то.


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

Работодатель: вот вам ИИ — он будет делать за вас рутинную работу.
Сотрудники: значит, мы будем меньше работать?
Работодатель: нет. Это значит, что я буду больше требовать.

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

микросервису нужно дублировать пару терабайт данных

Я понял автора довольно радикально: если есть зависимость от другого сервиса, тащи данные к себе. Скажем вы авито, вам нужно что-то из заказа - тащи все заказы к себе.

На моей практике делают по всякому: где-то дублируют модель чтения (а потом бьются за качество данных), где-то ходят за данными в другие сервисы. Есть некоторое количество сервисов, которые если полягут, поляжет многое.

Я таки считаю, что нет запрета ходить в другие сервисы, убер так делает, значит и нам можно :)
https://habr.com/ru/companies/flant/articles/514830/

Дорого! Очень дорого!

Я правильно понимаю, что если у нас нет RPC, а есть только обмен сообщениями, то каждый сервис должен иметь свою копию необходимых для ответа данных? Что-то нереальное.

Runtime async

Чёт страшно мне. На бэкендах привык разделять асинхронный и синхронный код, как код с IO и код без IO. Код без IO является ещё и чистыми функциями по возможности. Позволяет делить методы на части вида: грузим, что-то делаем, сохраняем.

Просто помню время, когда данные грузились в недрах каких-то функцих и этого нельзя понять, пока не просмотришь ВСЁ.

В .net мире новый asp.net проект есть в любой студии. Даже ef можно не ставить, если надо, говоришь, что тебя есть IQueryable<MyEntity> и вперёд.

Миграции писать не надо, модель данных - 1 класс и 2 енама.

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

Код можно не запускать. Во многих местах достаточно что-то типа: использую код фёрст подход, миграции сделает ef, эту модель проще всего замапить через автомаппер, здесь воткну медиатР, потому что...

Проверяется видел ли кандидаты бэкенды в глаза за свой пятилетний опыт, например.

Заметил, что от уровня кандидата меняются вопросы (задавать можно и нужно). Джуны тяготеют к "правильности кода", люди поопытнее выясняют требования и сообщают о допущения которые они делают. Тут инфы как-будто даже больше чем от интервью.

С тестовыми есть проблемка: иногда оно написано не кандидатом, он может хорошо рассказать где и что, но не может воспроизвести (было 1 раз).

С разговором по душам та же проблема: поговорили, вроде всё хорошо, а потом IDE как-будто в первый раз видит. Ну типа, public class по букве пишет, вспоминает название Linq-методов (из тройки Select, Where, GroupBy).

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

Лайф-кодинг на бэкендера: реализовать ендпоинт в любом удобном ему инструменте. Код не должен компилироваться, но ожидается объяснение основных шагов, описание DTO, метода контроллера и реализация запроса к бд уровня: вернуть количество строк в таком-то статусе с группировкой по типу (linq или sql на выбор). Гуглить, использовать ИИ можно.

Кажется 1 и второй 2 пункт закрыт.

Просто я не знаю как понять, что может кандидат, если не посмотреть на его код и на то, какие вопросы он задаёт.

Я может есть какие-нибудь методы снизить стресс?

1
23 ...

Information

Rating
2,313-th
Location
Челябинск, Челябинская обл., Россия
Registered
Activity

Specialization

Бэкенд разработчик
Старший
C#
.NET
PostgreSQL
Git
Docker
Redis