All streams
Search
Write a publication
Pull to refresh
-13
0
Send message

Пгшечку берут для транзакций. Чтобы не попадать в ситуцию "Ваш заказ оплачен, но не создан, платите ещё раз". Возник кейс кей валуэ - читаем что такое вообще КЭШ. И сначала храним его в своей голове. А уже если этого не хватает берём куй валуя в виде редис. Сравнить это всё в одном месте ток нейронка могла. Ей да наплевать на здравый смысл. А почему кликхауса тут нет кстати? В него тоже можно кей велью сохранить. Ну или кафки?

Чё ребят. Откроем филологам Америку? Что код надо уметь читать двумя полушариями. Одним - как человек и там нам обычно плевать что и как называется, главное - какие комментарии написаны.

Вторым - читать код как компьютер. А ему 100% плевать что и как называется. Он там функцию увидел, параметры отсканировал из памяти значения достал и дальше по стеку плюнул.

Если бы компьютер думал над тем как мы там назвали переменную - с ума бы наверное сошёл. Пришлось бы программировать калькулятор на майнинг фермах.

Всем добра. Прочитал комментарии. И статью. Тоже решил вытащить голову из пещеры и высказать мысли.

Вайб-шкодинг. Коротко о том почему он не работает.

Запрос: "Покрой функцию @Функция тестами"

Промпт: (500 строк, не больше, ибо вайб же): Ты сеньор программист. Ты знаешь стандарты. Ты крутой перец. Если забыл стандарты - вот ссылки. Ты сам себя проверяешь. Ты никогда не булшитишь. Ты мощный. Пиши с кайфом...

Дай боже хоть что-то техническое в промпт будет вписано, Аля Используй контекст7. Или я тебе там MCP сервер подрубил. Ну типо Сеньор-Вайбкодер, в теории, наверное, впишет про технику чуток того, что он понял/подсмотрел/украл/взялИзНейросетки.

Агент кодинг. Почему он работает.

Запрос: "Покрой функцию @Функция тестами" <- ВООБЩЕ НЕ МЕНЯЕТСЯ.

Промпт: 5000+ строк на английском языке, в которых методично передан весь накопленный РЕАЛЬНЫЙ сеньорский 10+ лет опыт в программировании, тестировании архитектуре и разработке ПО как таковой. В этим промптах как ребёнка Сеньор-Методист ведёт LLM за ручку по миру программирования и тестирования, разжёвывая ему как тупому валенку базовые и сложные принципы - от того как писать переменную, до того как нужно правильно закрывать тест кейсы, руководствуясь проверенными на практике принципами, которые точно работают. Такие промпты пишутся путём тщатильного анализа того, что именно нейросеть делает не так. И когда она что-то делает не то, ей опять разжёвывается через ПРИЗМУ СВОЕГО ПРАКТИЧЕСКОГО опыта как сделать то что нужно.
Так рождается МЕГА/ЧУДО/GOD-Промт, недостижимый для вайбера. Решающий ОДНУ конкретную задачу.

И это ключевая Разница. Когда у Вас вообще нет опыта в разработке например Масштабных микро-сервисных систем, так называемой школы жизни кровавого энтерпрайза - ВАМ ПРОСТО НЕЧЕГО вложить ни в запрос к LLM ни в Промпт. А всё что нейронка нажевала в интернете - это средняя по больнице лабуда.

И как только результат надо получить выше среднего - тут то и начинается веселье. Он недостижим для Вайбкодеров. У них опыт писать промпты. У нейронки жевать промпты и примерять на усреднённый результат того, что она спиздила в интернете. Да, иной раз она может утащить без ведома людей из их проекта что-то реально прикольное и показать Вам - тип о, оптимизировалось. Но это как игра в лотерею. В своей основе - Агенты LLM и вся эта нечисть болотная - просто быстрее и лучше находит информацию. Чем гугл поиск или стек оверфлоу.

И по итогу - все опять идут к нам, к людям, для которых писать код, создавать сложные большие системы - никогда не было и не будет какой-то там проблемой, которую срочно решить бежать надо. Кто прошёл кровавый энтерпрайз - среди них даже у джунов нет проблемы с написанием кода, созданием фич и багофиксаньем. В системах, где 10-ки сервисов через друг в друга данные гоняют. Они решают эти задачи за чашкой-другой кофе и 2-мя печеньками.

А Текущая ситуация с LLM - Илон Маск пошёл строить ЦОД, размером с пол города. Сожрёт Сколько-то там Гигават электро энергии. И оставит реальных живых людей без этой электро энергии. На это потратят баснословные деньги а ещё на суды и бюрократию. Миллиарды долларов. Бюджет какой-нибудь не сильно крупной страны)

Это просто для тех информация кто думает, что он навайбил там штукодрюку. Она жрёт 64Гб оперативки и автоматизировала заказ билета на Туту.ру для 1-го пользователя. Что это никак решать не надо будет - КОНЕЧНО - Вы просто также с кайфом навайбите себе железа на миллиард рублей)) Я в Вас "Верю", потому что "отстал" от жизни и у меня наверное у одного миллиарда рублей нет на оборудование.

Да нет - ВЫ ничего не понимая в оптимизацию и архитектуру. Попросите нейрноку всё Вам сделать. И будет просто "конфетище")) А на практике вы сожжёте все свои токены в первый же день и пойдёте покупать ещё токены. И ОНИ - владельцы этих чатов это знают прекрасно) И толкают Вас туда - Вайбить, Вайбить, Вайбить))) Им то наплевать по большому счёту, сделаете ли Вы реально масштабируемый и производительный и мощный и всему миру нужный продукт. Токены же купите) Ибо чёт не оптимизировалось. Не пошло. Упёрлось в стену. Наверное надо КНОПКУ волшебную оплатить - DEEP REASON - 2000 баксов за месяц.
Она то "Сможет". И хоп - не смогла. Надо оплатить её ещё раз. Наверное не туда платили. Пойдём купим ещё кнопок и подписок у других поставщиков. Вдруг случиться чудо - и опять нет, не случиться.

Вобщем - хотите стань инжинерами - учитесь. Учитесь сами, качайте нейронку)

Это в конечном итоге - Лопата, а не шахтёр. Лопата хорошая, копает отлично. И быстро.
Может снизить нагрузку на рутину. Напиши тест, сделай рефакторинг. Объясни логику, сформируй документацию. Объясни по этому логу что в итоге за ошибка, куда смотреть?

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

Найди в моём коде где лежит кнопка синяя) Найдёт.

И это только малая честь реально рабочих кейсов. И она ну никак не про то что "Напиши мне ШмякБанк приложение чтобы там 1000 000 юзеров и все законы учтены". Ставлю Чистый даже не порванный банкнот 100 баксов, что Когда они достроят свои ЦОД-ы это никак не измениться.






Так а в чём проблема консольные истории в докер запихать?

Засунул в докер, подмазал, подкрасил, подшпаклевал. Навешал метрик. И готово.

Опенсорс же. Он всегда такой был.

"...Когда человек ошибается, он берёт на себя ответственность, а рост как раз и происходит через ответственность, значит, через ошибки..."

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

Лишь немногие признают свои ошибки. Остальные просто стрелки переводят и следы путают и врут.

Так что ошибки это плохо. Представьте что Вас оперирует нейрохирург и он такой ошибся и вы мертвы.

Ошибки - плохо. Но без них никуда. Неошибается тот, кто ничего не делает. Но и есть вещи где ошибки недопустимы. Рассматривать ошибки как рост - странно. Потому что не все берут за них ответственность, а лишь единицы.

Вобщем рост через ошибки это скорее исключение чем правило.

Ну Agile же. Есть двух недельный спринт- на любую задачу срок 14 дней. За 14 дней можно 2 раза создать человечество. Спросите у биг-босса - Он подтвердит.

COPY . .

И потом огромный пухлый .dockerignore.

Лучше просто копировать нужные папки и файлы. Так Вы полностью контроллируете что будет внутри.

Установку библиотек следует сбилдить в 1 докер img, который положить в свой docker registry. Когда речь про микросервисную разработку - так удобнее. А от него уже наследоваться. И плодить микросервисы.

Потому что микросервисы на 1м проекте как правило используют одни и те же библиотеки.

На тему вайб кодинга понравилось видео одного толкового разработчика. Где он хвалил курсор и сказал с гордостью, что теперь он вайб кодер. Что он просит агента сгенерировать код, через методологию TDD. У него на входе 4000 строк промта в папке .cursor/rules. И он ещё через скопировать вставить промпт в запрос запихивать строчек на 500 в сам запрос того чего надо сделать. И агент ему выдаёт рабочий продакшн код. А после этого он говорит что надо тщательно самому проверить написанные агентом тесты. И код позапускать и подебажить. Ибо гонки иногда случаются.

А ему кто-то сказал - ты агент кодер. А не вайб кодер.

Вайб-кодинг - это игрушка и будущее у него как у спинера. Агент-кодинг - инструмент

Статья полезная +-. Не хватило объяснения сути и принципиальной разницы между шардом и репликой. Что реплика, что шард требуют дополнительных мощностей. Реплика может решить добрую половину если не больше проблем с перегрузками. И конечно же есть то самое, когда пора делать шарды. Когда реплика уже не помогает. И оно там что-то наверное связано с объёмом хранимых данных и упором на дисковую память, которая не бесконечна.

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

Что шарды - это про хранение как таковое. И в первую очередь про запись данных. А масштабировать чтение через шарды - это как раз экзотика в виде геораспределенки. Потому что, когда мне хватает диска - я отмасштабирую чтение репликами и буду прав. Если у меня данные вмещаются на 1 nvme диск - шардить смысла особого нет. Преимущества перед репликами не будет. Шило на мыло.

Другая сторона - у меня перекос операций записи не знаю ×10 по отношению к чтению. Тогда я сразу беру шардинг, потому что балансировка операций записи в разные диски/шарды будет работать быстрее. И себя окупит. А вот реплика в этом случае будет замедлять систему.

Вобщем я отчасти согласен с Вашим рецептом про индексы и другие способы оптимизации чтения. Но Шарды это всегда больше про оптимизацию записи и увеличение общего объёма хранилища, чем про оптимизацию чтения. Да, через шардинг можно и чтение оптимизировать, но опять же жертвуя железки на этот самый шардинг. То есть не оптимизировать, а масштабировать горизонтально. При условии что мы точно не ошиблись и не воткнули шард туда, где была нужна реплика. А ещё как Вы правильно сказали надо с ключём и функцией шардирования не ошибиться.

Но всё же в первую очередь выбор шардить или нет он начинается не с того, что нам индексов не хватает. А с того, какой объём данных мы собрались хранить. И с того какое у нас соотношение между чтением и записью. Если мы 100 раз в секунду пишем и 1 раз в минуту читаем - то мы будем шардить сразу. Реплицировать тоже будем, но чисто для обеспечения отказоустойчивости. Чтение там будет уже на вторых, если не третьих ролях

Пора брать в руки ружья! И при случайном найме волка на работу - увольнять его по статье. Таких потом в уборщики не возьмут. Не то что в IT.

Понаплодились лжецы всякие с шакалами. А ещё у них ЛЛМ теперь есть чтобы врать лучше. Да приходите к нам работать матрицы ради хоть на 500к в месяц, ток потом не нойте что Вас по статье уволят уже на второй месяц.

Такое увольнение заносится в трудовую книжку. И любой hr, увидев в трудовой такую запись - не будет нанимать такого сотрудника.

Гнать в шею их. Метлой поганой.

В IT нужны не волки - а динозавры. Гиганты мысли. А не шакалы голодные до денег.

Фаулер и Боб писали свои книжки когда на свете не было СМЭВ и ГОсуслуг которые интегрируются чеинз СМЭВ. И они 1С в глаза не видели просто. Где на одну кнопку "Провести и закрыть" повешано 10000 операций над системой потому что пользователям лень нажимать 10000 кнопок.

Раньше вроде все эти три вопроса умещались в 1 - Кем вы видите себя через 3-5 лет в нашей компании?

Директором.

Вы приняты.

Открыл. Не увидел привязку всего описанного к метрикам железа в графане - закрыл.

О. Ещё одна статья из прошлого.

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

Убиваться на литкоде ради того, чтобы попасть в компанию, которая породила своими курсами целое поколение никому не нужных программистов. Нарубила бабло на всех желающих попасть в IT, а потом умыла лапы. Заявила что разработчиков дефицит, и сделала этот дефицит ещё больше, загубив потенциальные умы, способные стать инженерами.

Да оно точно того стоит ребят. Надо ещё с закрытми глазами на перфоркартах научиться дырки проделывать и всё ради них.

Коллега. Компиляция - Вот и весь смысл! Упаковка в один исполняемый файл - это ещё более медленно работает, чем если просто завернуть в докер. Компиляция - это про суть и смысл. А то что ты интерпретируемый код в один файл записал, он от этого не перестал таковым быть. Напротив, под капотом оно просто во временную директорию распаковывает и включает питон в розетку, который интерпретирует код. А речь именно про то, чтобы питон стал двоичным максимально. Чтобы он расту нос вытер по rps-у. У молодёжи чат жпт есть, они надеюсь со своей шустрой головой + ИИ смогут сделать действительно прорыв.

Когда. Когда уже выйдет компилятор в бинарники? Чтобы не надо было на rust сервисы нарезать?

Ну были же эти методологии типо TDD - напиши тест, чтобы понять как написать алгоритм. Потом эта как её там - напиши интеграционный авто тест, на заранее подготовленный API контракт через мок, чтобы понять удобный сервис для интеграции или нет. Меняй контракт до тех пор пока не станет удобно его тыкать, а потом уже делай реализацию и домен под контракт не забудь слеш/палочка.

И всё это на разрабов вешали. И оно повесилось. Потом пришли и сказали, а давайте сначала нагрузочный тест запилим прямо на контракты как QA делает. И тут разработка вскипела - ну нафиг. Мы что тестировщики? Пусть нам архитектор контексты обрисует. Так и будем делиться на микросервисы.

А вот если бы дробили своё API на контейнеры по результатам НТ - было бы им счастье. И салаты бы никогда не распадались на лук с помидорами.

LDD (load design development) просто не вышло в обиход. Следом за tdd и ddd. Контекст границы распределений монолитов и вот это вот всё хрен пойми как назвать.

Первый тезис ldd - смотрим на требование rps к системе. Если его нет - пишем код как хотим, запускаем через systemctl start. Логи плюём в поток ОС. Метрики не вешаем. Никаких резервных копий. Данные храним в одном файле рядом с программой на сетевом диске. За счёт отсутствия оверхеда на передачу через кафку, получаем колоссальный прирост производительности...

Здравствуйте. Здравствуйте. Мы хотим сделать Вам тендер на 1 млрд рублей. Для анализа всех Ваших данных и потребностей ТЗ нам нужно все их отправить во всемогущий ИИ, который принадлежит недружественному государству.

О - отличная идея. Я как раз собирался стать инагентом. И Вы давайте со мной. Тоже модно как вайб кодинг.

Разговор разработчика с ГОС сектором...

Ну а через system.query_log Вы не пробовали смотреть на свои запросы? В первом запросе с низкой кардинальностью у вас в поле ВозвращеноСтрок условно будет 1000, а в другом 1000000. То есть утверждение про карлинальность низкую, что она для гроуп бай хороша - ну она вытекает просто из метрики возвращено строк и что Вы трафик нагружаете, и что заставляете КХ гонять всю таблицу через ЦПУ и Ram. Повесить фильтр на Ваш запрос, и даже при высокой кардинальности в таблице как таковой, если фильтр отсечет гранулы как надо и достанет 1000 строк, на гроуп буй по 1000 строк расчёт кардинальности ничего не даст. Там что 1000 строк вернуть, что 1. Разница будет в микросекундах. Потому что обычно 1000 строк помещается в стандартный размер гранулы.

О, сожгите его на костре за смешивание фронта и Бэка в одном монолите. Так уже никто не делает html +jinja2. Это было раньше, таких людей фуллстеками называли. Потом все поняли что есть фуллстек с приходом микросервисов. Не учите этому людей пожалуйста. Знания, которые в голову попали первыми, потом тяжело оттуда удалить. Сделайте не знаю вторую статью, где вы это всё отрефакторите на 2 микросервисов, полноценный фронт сервис и отдельный бэк сервис

1
23 ...

Information

Rating
Does not participate
Registered
Activity