Pull to refresh
-8
Mickey Rookie@amcured

Ambient Coder

0,9
Rating
1
Subscribers
Send message

Выбирал между DjangoFlask и FastAPI.

Так бы и писали: «как я выбирал стек при условии, что это питон и js». Прошло семь лет с памятного выступления Криса Маккорда на ElixirConfEU, технологию затащили в Rails (Hotwire), PHP (Laravel Livewire) и Go (Live/HLive), она идеально подходит для дашбордов, но увы. Мы выбираем стек из одного варианта стека.

И ООП помогает наладить диалог между ними лучше чем ФП.

А акторная модель — в триста раз лучше обоих.

[…] электрон как объект класса Электрон подкласса Элементарная частица интуитивно ясен […]

Серьёзно? Может, и electron.quantumPhaseTransition() — интуитивно понятнее, чем quantumPhaseTransition(electron)?

этот путь — не стратегия, а временный выход, когда все остальные двери закрыты

Вообще-то это единственный рабочий путь в принципе. Так, в частности, почти весь OSS работает, а там нет злого дяди директора.

Реализация всего, что в голову придет — дорога в перфекционистскую черную дыру, никто не полирует всё до блеска в версии 0.0.1. Люди примерно лет 70 назад придумали оставлять в коде комментарии [TODO]. Типа, «сейчас можно и так, но потом упрёмся».

В новом коде комментарии [TODO] пропускаются в кодовую базу коммит-хуками, в затронутом — нет. Поздравляю, у вас больше нет техдолга. Проблема надумана.

На практике это означает: Claude Code держит в голове весь проект целиком. 

Смешно. А если проект на 30М строк?

Вообще-то я спрашивал, откуда растут ноги у утверждения «магия Claude Code не в grep и не в памяти между сессиями. Магия в модели […]». Ваши личные наблюдения — это и есть «Рабинович напел» в чистом виде.

Размер контекстного окна — это хорошо, но я надеялся увидеть какое-то доказательство (хотя бы подтверждение) того, что хороший RAG его не заменит. (Аутентичный антропиковский раг — говно, поэтому самое уязвимое место, скорее всего, именно там, а не в размере окна.)

пошел дальше — взял для ревью другого агента

Это шаг вперед и два^W шаг назад: как минимум, все еще необходимо проинструктировать этого второго агента не читать до обеда советских газет^W^W^W^W агентские файлы, вот я это уже упоминал:

потому что часть этих «заметок о прошлом» валяется прямо в папке проекта и будет доступна всем моделям

Когда одна и та же модель пишет код и проверяет его, она пропускает свои ошибки. Она «помнит», почему приняла именно это решение, и не ставит его под сомнение. Знакомо?

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

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

Все современные помощники для того и заставляют скачивать тонну софта, чтобы распихать эти клочки бумаги по вашему локальному диску и создать иллюзию «памяти», как страдающий Альцгеймером — расклеивает стикеры по всей квартире.

Смена модели — это стрельба из пушки по воробьям, потому что часть этих «заметок о прошлом» валяется прямо в папке проекта и будет доступна всем моделям, хоть уменяйся. Вы наблюдаете наведенный эффект от потери той части «хлебных крошек», которые первая модель раскидала по тем местам, которые вторая не видит (и не увидит, потому что частично они лежат в облаке).

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

Вся магия Claude Code не в grep и не в памяти между сессиями. Магия в модели, которая понимает контекст на миллион токенов.

А есть какие-то подкрепления этому тезису, или это Рабинович напел?

мы едим по сути удобрения и ГСМ, без этого Земля не может прокормить более 500млн человек

«Мне не нужно бежать быстрее медведя, мне нужно бежать быстрее тебя», — как гласит старинный анекдот. Я лично ем исключительно то, что выросло своими силами, и мое потребление прекрасно балансируют почти триста миллионов американцев, которые едят макэндчиз.

в раст не завезли ооп, потому что его не завезли в го

Этому тезису никак не мешает то, что раст начали пилить в 2006 (ради Servo, но кто теперь вспомнит), а Go — в 2007?

в целом жить без ооп можно, но иногда неприятно

В целом, с ООП жить можно, — но всегда неприятно.

А кто именно реализовывать через наследование просил?

Мне неизвестны иные способы «привести пару примеров […] объекты круга и квадрата с общим методом area».

Если имелось в виду не с «общим методом», а «каждый с методом area» — уверен, вы сами осилите написать такой пример на хаскеле.

третий комментарий пытаюсь

Второй, но я уже заметил, что вам до фени факты,

ему, видимо, приятнее пофилософствовать про ООП, дядю Боба и т.д., вместо того, чтобы реально привести код

Естественно. Это же хабр, а не профессиональный форум. Убеждать лично вас мне без надобности, писать тривиальный код, который бесплатный дипсик за десять секунд может нагенерировать — тем более.

Я развлекаюсь, глядя, как вы пыжитесь. Для этого и существует хабр, разве нет?

википедийное определение, которое более-менее совпадает с общепринятым

«Обще-» это кем конкретно?

ООП-шной инкапсуляции в хаскеле нет […]

Я прочитал «Введение в Хаскель за 7 часов» и знаю на базовом уровне, как там устроена инкапсуляция. А вот что такое «ООП-шная инкапсуляция», простите уж, я не в курсе. Это какая-то особенная инкапсуляция? С блекджеком и методистками?

модули считать объектами нельзя, поскольку в хаскеле они, в отличие от окамла, не first-class

Ого! Окамл-то тут при чем? В Окамле что же, настоящее православное общепринятое ООП?

Я спорю с тем, что хаскель это объектно-ориентированный ЯП.

Очень за вас рад. А кто именно такой тезис высказал? Может быть, нам этого человека тоже позвать?

объекты круга и квадрата с общим методом area

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

набор основных понятий ООП: абстракция данных, инкапсуляция, наследование, полиморфизм подтипов, класс, объект

Давайте я еще раз попробую. «Основных понятий ООП» не существует в аксиоматике нашего мира. Алан Кай под ООП подразумевал одно, Гослинг — совершенно другое. Тут уместно вспомнить еще Матца, доведшего идею «everything is an object» до абсурда в руби.

Потом еще на горизонте появился Боб Мартин, со своими мухоморовыми галлюцинациями. Графомания этого инфоцыгана, в жизни не написавшего ни строки серьёзного кода, внезапно была воздвигнута на хоругви (потому что люди en masse туповаты, и без шор и узды в приниципе ни на что не способны). В результате у нас появилось определение ООП размером не менее трех печатных листов.

Инкапсуляция, полиморфизм и еще добрый десяток «основных понятий ООП» — прекрасно доступны во всех языках, от КОБОЛа до Хаскеля. Остальные — наследование, классы и прочие паттерны — никому нафиг не нужны (единственное разумное «наследование» вместо правильного решения — полиморфизма — реализовано в джаваскрипте).

То ООП, которое придумал Кай ко всему этому никакого отношения не имеет. То, которое предлагал Матц — тем более. Гослинг ну кхм.

В этом смысле, если выбросить в мусорную корзину бобмартиновщину и фаулерщину, — то инстансы тайп-классов в хаскеле — это хорошие, правильные объекты.

С чем рифмуется? Какая именно история?

Хороший MCP — на ⅔ состоит из Service Discovery. Три кита MCP — Prompts, Resources, Tools. И только первый из них отвечает за беседу с клиентом.

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

Я работаю без MCP. Нужен инструмент — поднимаю сам или пишу тулзу под задачу в рантайме. grep, ast-grep, git log --all -S, tree-sitter — зависит от того что ищу.

Прекрасно. Набор инструментов, конечно, как у третьеклассника, ну да ладно. А через что Remote Assistant догадывается, как ему уточнить постановку задачи, или получить недостающую информацию в ходе процесса? У меня вот самописный MCP выдаёт более 50 инструментов и модель справляется. А у вас как? Вы останавливаете выполнение и «поднимаю сам или пишу тулзу под задачу в рантайме»?

Это детский сад, который поломается на первой же задачке посерьезнее «раскатить образ убунты по ста железякам».

Зиновий, вы очень тупой.

Впрочем, и так понятно было, зря я влез.

Service Discovery для SOAP (гуглить по Universal Description, Discovery, and Integration (UDDI)) изобрели 30 лет назад. В UDDI можно было поднять абсолютно новый сервис и все клиенты в ту же секунду про него знали и умели с ним общаться. Сервис!

Для кодовой базы из 3М строк это не решение, а костыль - ты не опишешь всё заранее, кодовая база живая.

Смысл этого заявления не сильно отличается от такого: «REST — это костыль, количество эндпоинтов статично, а количество записей в базе постоянно растет!!!111».

Never attribute to malice that which is adequately explained by stupidity.

— Hanlon, The Barber

Смешно опасаться саботажа в ситуации, когда самая большая опасность — ужасающая некомпетентность.

Eric Holmes в феврале 2026 опубликовал «MCP is dead. Long live the CLI» - пост, который вышел на первое место на Hacker News.

Это очень смешной слоп, в котором единственный кусок «кода» — вызов терраформа, то есть в RAG нет нужды изначально. Остальное бла-бла-бла — ламерская вода. Разумеется, на HN он всем понравился. На хабре бы тоже зашел. Но не на тех форумах, где водятся профессионалы.

Какой инструмент у нас есть, чтобы обойтись без MCP для кодовой базы из 3М строк, написанных за 20 лет пятью разными командами? grep и awk? Вы хоть знаете, что они такое?

Терминология — мать порядка.

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

Вика предлагает определение, списанное под копирку у Лема из «Дневников Ййона Тихого»:

Объектно-ориентированный язык программирования (ОО-язык) — язык, построенный на принципах объектно-ориентированного программирования.

Инстансы тайп-классов в хаскеле очень сложно не назвать объектами по Гослингу.

И вообще, какой язык называть «объектно-ориентированным», а какой «функциональным» в 2026 году, когда в джаве уже не продохнуть от лямбд и ленивых стримов  — это теософский спор, как про табы и пробелы.

Разбор потока байт по любому банковскому протоколу из сокета, например. Там кроме длинных строк и dynamic dispatch ничего нет.

Поскольку меня в консоли не забанили, помогу вам.

А вот есть ли там ЗАВТИПЫ?
А вот есть ли там ЗАВТИПЫ?
1
23 ...

Information

Rating
2,351-st
Registered
Activity

Specialization

Бэкенд разработчик, Архитектор программного обеспечения
Старший
Linux
Ruby
Erlang/OTP
Проектирование архитектуры приложений
Алгоритмы и структуры данных