Реклама выдала оффер от Я-Банка ↑↑↑
В нём всё прекрасно и минималистично, и по форме, и по содержанию.
Prometheus (метрики) + Grafana (дашборда) добавил для практики в "дипломный" проект. Между прочим, в .NET 8 нечто подобное уже встроено:
ASP.NET Core metrics and Grafana dashboards
и доступно из F#.
В тему, от курсанта (не из Я):
..."при протухании токена некоторый сервис, разработанный другим подразделением банка, выдавал ответ со статусом 200, вместо стандартного 403. Я долго не мог понять, в чем проблема при разработке новой фичи, потому что по умолчанию в той библиотеке, которую я использовал, ошибочными статусами считаются все статусы с 400 по 500. В итоге спросил у коллег, как с этим быть, и оказалось, что нужно было перехватывать информацию, которая шла вместе с этим статусом, и при наличии определенных данных, подменять статус 200 на статус 403, чтобы обрабатывать его корректно."
В нём всё прекрасно и минималистично, и по форме, и по содержанию.
Prometheus (метрики) + Grafana (дашборда) добавил для практики в "дипломный" проект. Между прочим, в .NET 8 нечто подобное уже встроено:
ASP.NET Core metrics and Grafana dashboards
и доступно из F#.
В тему, от курсанта (не из Я):
..."при протухании токена некоторый сервис, разработанный другим подразделением банка, выдавал ответ со статусом 200, вместо стандартного 403. Я долго не мог понять, в чем проблема при разработке новой фичи, потому что по умолчанию в той библиотеке, которую я использовал, ошибочными статусами считаются все статусы с 400 по 500. В итоге спросил у коллег, как с этим быть, и оказалось, что нужно было перехватывать информацию, которая шла вместе с этим статусом, и при наличии определенных данных, подменять статус 200 на статус 403, чтобы обрабатывать его корректно."
😁55🤔12✍6🐳4❤🔥2
В C# появятся Type Unions, а в F# -- Interfaces with static abstract members.
Резюме, что C# плавно превращается в F# :)
А куда движется Java? (риторическое)
Резюме, что C# плавно превращается в F# :)
А куда движется Java? (риторическое)
👍46😁14🤔9✍5❤1
Один из лучших советов, который вы когда-либо получите по поводу понимания легаси-кода, такой: данные важнее кода.
Следуйте потоку данных в программе, а не потоку управления, это помогает быстрее разобраться в логике. Найдите ключевую структуру данных и проследите, куда и как. Поэтому, в частности, полезно уверенно знать АСД. Вам скорее всего они не понадобятся, но очень вероятно, что над большой легаси-базой работали программисты высокой квалификации, которые стремятся к декларативщине.
Корни этого подхода уходят в классику "Can Programming Be Liberated from the von Neumann Style? A Functional Style and Its Algebra of Programs" Джона Бэкуса. Приверженцами данного подхода были Эдсгер Дейкстра, Питер Норвиг и немало других святых computer science.
Естественнее всего этот подход получается в ФП.
Следуйте потоку данных в программе, а не потоку управления, это помогает быстрее разобраться в логике. Найдите ключевую структуру данных и проследите, куда и как. Поэтому, в частности, полезно уверенно знать АСД. Вам скорее всего они не понадобятся, но очень вероятно, что над большой легаси-базой работали программисты высокой квалификации, которые стремятся к декларативщине.
Корни этого подхода уходят в классику "Can Programming Be Liberated from the von Neumann Style? A Functional Style and Its Algebra of Programs" Джона Бэкуса. Приверженцами данного подхода были Эдсгер Дейкстра, Питер Норвиг и немало других святых computer science.
Естественнее всего этот подход получается в ФП.
✍65👍12🫡3❤1
Наши лучшие блогеры на сегодня 👍👍💥💥
Из новеньких, рекомендую подписаться на Веронику Алексеевскую "Mama Java".
Блоги для программистов -- это как комментарии в коде. Большинство их не читает, но те, кто читает, понимают, что без них было бы гораздо сложнее жить.
Из новеньких, рекомендую подписаться на Веронику Алексеевскую "Mama Java".
Блоги для программистов -- это как комментарии в коде. Большинство их не читает, но те, кто читает, понимают, что без них было бы гораздо сложнее жить.
👍52❤5🔥2😎1
PQlite: всеми любимый постгрес можно теперь запущать локально в браузере (3 Мб zip). Причём правильно всё сделали, в WASM-контейнере, как я и рекомендовал :)
(донам рассказываю, уже 12 малоизвестных фич PostgreSQL, на одном котором вы можете развернуть всю инфраструктуру)
P.S. Постгрес в браузере, реакт на сервере... будущее уже тут! 😁
(донам рассказываю, уже 12 малоизвестных фич PostgreSQL, на одном котором вы можете развернуть всю инфраструктуру)
P.S. Постгрес в браузере, реакт на сервере... будущее уже тут! 😁
❤53👍16🔥4😎2
Ни один стартап, создающий AI-программистов, не использует их для создания своих сервисов.
Вместо этого они нанимают живых белковых/кожаных, из плоти и крови, и платят им большие деньги.
Не видно пути от статистического LLM-like автозаполнения к уровню мышления человека-программиста. Попытки передать инженерное мышление генератору синтаксиса ничем хорошим не закончатся.
Да, возможно, AI позволяет писать код в два раза быстрее. Но это означает, что кода будет в два раза больше. В два раза больше возможностей для ошибок. В два раза больше работы для команды по пониманию этого кода.
Вместо этого они нанимают живых белковых/кожаных, из плоти и крови, и платят им большие деньги.
Не видно пути от статистического LLM-like автозаполнения к уровню мышления человека-программиста. Попытки передать инженерное мышление генератору синтаксиса ничем хорошим не закончатся.
Да, возможно, AI позволяет писать код в два раза быстрее. Но это означает, что кода будет в два раза больше. В два раза больше возможностей для ошибок. В два раза больше работы для команды по пониманию этого кода.
⚡46👍25😁11😎3💯2
Если у вас нету хорошего базиса и знания математики (в нормальных универах по computer science это обязательные темки, как минимум на первых курсах), то задачки корпоративного уровня на условной Java вам будут даваться весьма тяжело. Понятное дело, перекладывать там какие-то джсоны может практически каждый сообразительный человек, но здесь есть золотой такой стеклянный потолок. Если вы не владеете серьёзными математическими скиллами, чтобы решать серьёзные задачи, то вы никогда не придёте к математическому образу мышления. А оно в целом серьёзно меняет то, как вообще работают у вас мозги -- разбирательство с алгоритмами, решение сложных задач, трудных задач. Очень многие компьютерные курсы говорят "Да нафиг вам там математика, идите без математики, туда можно и гуманитариям идти", ну ок.
Начьните хотя бы с сокобана :)
Начьните хотя бы с сокобана :)
3🔥38👍13❤6😁4❤🔥1
У меня в вк 13т дорогих папищеков, поэтому как законопослушный гражданин с 1 ноября сего года я не смогу ↑↑↑ в своих постах указывать, например, ссылку на Chymyst Core (a domain-specific language for purely functional, declarative concurrency, implemented as a Scala library), на реализацию чистой системы типов по Барендрехту (System F) на питончике, на версию браузерного постгреса , к которому прикрутили AI (курсант прислал ссылочку) и т.д. Потому что это не СМИ и не госструктуры. Возможно правда, что авторы этих чудных творений захотят зарегистрироваться в РКН как блогеры.
52😁57🤯9🫡9🤔8👍5
🤔31🐳7😁5💯2❤1
"Модель домена" (предметной области) не равно "модель данных". Если пытаться реализовывать такое отображение напрямую, можно быстро запутаться в множестве зависимостей. По этой причине и кодирование новых фич -- далеко не самое узкое место в больших легаси-базах. Критически важно понимание полного контекста домена и того, как схема БД и кодовая база были написаны именно так, как они была написаны, и по каким причинам. Эти "почему" обычно не документированы и существуют только в виде мистического корпоративного знания :)
10❤55✍15👍10🤯2👌2
Ставь китика, если когда-нибудь честно использовал vim + ctags/cscope.
Кто не пробовал, очень рекомендую(это я готовлю большое обновление курса "Ясное легаси", как вникать в доставшиеся вам по наследству огромные кодовые базы lol; 50 конкретных рекомендаций, сгруппированных по 7 разделам; на этой неделе выкачу) .
Кто не пробовал, очень рекомендую
👍47🤔21🐳9❤6❤🔥2
Готовлю расширенную версию СильныхИдей (скоро 100 материалов), дополненную в частности множеством примеров, для всех желающих.
Выкладываться будет, начиная с 1 сентября, для донов в группе для неначинающих (и с 1 сентября стоимость подписки там вырастет, лучше не тяните). Там же продолжу и трек "Элитный Программист".
Краткое описание всех материалов СИ и ЭП и др. (для моих курсантов) выкладываю тут.
"ФБР США потребовалось несколько десятков лет слежки за венгерским математиком Полом Эрдешом, чтобы сделать вывод, что "ему просто очень нравится математика".
Выкладываться будет, начиная с 1 сентября, для донов в группе для неначинающих (и с 1 сентября стоимость подписки там вырастет, лучше не тяните). Там же продолжу и трек "Элитный Программист".
Краткое описание всех материалов СИ и ЭП и др. (для моих курсантов) выкладываю тут.
"ФБР США потребовалось несколько десятков лет слежки за венгерским математиком Полом Эрдешом, чтобы сделать вывод, что "ему просто очень нравится математика".
8🔥45👍14⚡3😁2
Ben Mann, кофаундер Anthropic AI, на днях дал 30% вероятности, что Claude можно зафайнтюнить прямо сейчас так, что она сможет реплицироваться и распространяться самостоятельно, что приведёт к "thousands of deaths or hundreds of billions in damage".
Ну наверное, если LLM сможет разобраться с колмогоровской сложностью (длина самого короткого промпта, который даст эффект). И это новая причина, на которую теперь можно сваливать эпичные сбои вроде вчерашнего. У меня после него ютуб внезапно заработал :) Хотя, уверен, ненадолго, осенью забанят и телеграм, и гугл, и стим, и всё остальное.
В ЦРУ сейчас наверняка массово раздают премии и награды своим агентам влияния: в торе (который и был исходно разработан военными для обмена разведданными) после блокировки ютуба 50% всех пользователей стало из России. И ещё 20% из Ирана.
=
Легендарный кибернетик Грегори Бэйтсон ("Ангелы страшатся", "Групповая динамика шизофрении"...) разработал многократно подтверждённую и в психологии, и в антропологии, и в экологии, и в социологии, и в программировании, концепцию double-bind: когда противоречивые послания и требования могут вызывать патологические вторичные эффекты как у людей (шиза), так и у общества в целом. И микро-, и макро-системы обладают саморегулирующимися свойствами, и вмешательства, не учитывающие вторичные эффекты, могут привести к разрушительным результатам. Эти эффекты могут быть как краткосрочными, так и долгосрочными, и часто они оказываются непредсказуемыми и нежелательными. Он также отмечал, что внимание к этим вторичным эффектам крайне важно для эффективного управления любой системой.
"Наша главная ошибка — это мысль, что мы можем разделить мир на части и считать, что каждая из этих частей существует отдельно. Но на самом деле всё связано, и изменения в одной части системы неизбежно приводят к изменениям в других частях."
Программисты, помните ↑↑↑
Скоро выложу в СильныеИдеи материал ровно об этом, что делать/как предупредить, если ваша система внезапно начала вести себя как-то не так, но вроде бы и норм. Спойлер:Извините, вы обречены .
Ну наверное, если LLM сможет разобраться с колмогоровской сложностью (длина самого короткого промпта, который даст эффект). И это новая причина, на которую теперь можно сваливать эпичные сбои вроде вчерашнего. У меня после него ютуб внезапно заработал :) Хотя, уверен, ненадолго, осенью забанят и телеграм, и гугл, и стим, и всё остальное.
В ЦРУ сейчас наверняка массово раздают премии и награды своим агентам влияния: в торе (который и был исходно разработан военными для обмена разведданными) после блокировки ютуба 50% всех пользователей стало из России. И ещё 20% из Ирана.
=
Легендарный кибернетик Грегори Бэйтсон ("Ангелы страшатся", "Групповая динамика шизофрении"...) разработал многократно подтверждённую и в психологии, и в антропологии, и в экологии, и в социологии, и в программировании, концепцию double-bind: когда противоречивые послания и требования могут вызывать патологические вторичные эффекты как у людей (шиза), так и у общества в целом. И микро-, и макро-системы обладают саморегулирующимися свойствами, и вмешательства, не учитывающие вторичные эффекты, могут привести к разрушительным результатам. Эти эффекты могут быть как краткосрочными, так и долгосрочными, и часто они оказываются непредсказуемыми и нежелательными. Он также отмечал, что внимание к этим вторичным эффектам крайне важно для эффективного управления любой системой.
"Наша главная ошибка — это мысль, что мы можем разделить мир на части и считать, что каждая из этих частей существует отдельно. Но на самом деле всё связано, и изменения в одной части системы неизбежно приводят к изменениям в других частях."
Программисты, помните ↑↑↑
Скоро выложу в СильныеИдеи материал ровно об этом, что делать/как предупредить, если ваша система внезапно начала вести себя как-то не так, но вроде бы и норм. Спойлер:
2👍51🫡9🤔8🔥3
Заканчиваю большое дополнение курса "Ясное легаси", в нём в частности есть раздел "Использование инструментов для навигации по коду". Вот, например, рекомендованная тулза rust-ontologist для визуализации больших кодовых баз на Rust за считанные секунды. Мгновенно всё становится ясным и понятным )))
Или нет.
Или нет.
4😁55👍16✍7🐳2
В Java 9 появилась возможность очень компактно инициализировать Map с помощью Map.of(). На какой размер словаря этот метод рассчитан?
Anonymous Quiz
33%
на любой
34%
на 10 элементов
11%
на 10,000 элементов
14%
на 10,000,000 элементов
8%
на 10,000,000,000 элементов
5🤔41😁18👍5🤓4👌1
MIT выложил на рубут ютуб все лекции курса "The Missing Semester of Your CS Education": Shell Tools and Scripting, Editors, Data Wrangling, Command-line Environment, Version Control (Git), Debugging and Profiling, Metaprogramming, Security and Cryptography...
As computer scientists, we know that computers are great at aiding in repetitive tasks. However, far too often, we forget that this applies just as much to our use of the computer as it does to the computations we want our programs to perform. We have a vast range of tools available at our fingertips that enable us to be more productive and solve more complex problems when working on any computer-related problem. Yet many of us utilize only a small fraction of those tools; we only know enough magical incantations by rote to get by, and blindly copy-paste commands from the internet when we get stuck.
This class is an attempt to address this.
Как думаете, какой редактор там предлагают изучать? :)..... vim .....
As computer scientists, we know that computers are great at aiding in repetitive tasks. However, far too often, we forget that this applies just as much to our use of the computer as it does to the computations we want our programs to perform. We have a vast range of tools available at our fingertips that enable us to be more productive and solve more complex problems when working on any computer-related problem. Yet many of us utilize only a small fraction of those tools; we only know enough magical incantations by rote to get by, and blindly copy-paste commands from the internet when we get stuck.
This class is an attempt to address this.
Как думаете, какой редактор там предлагают изучать? :)
6🏆44👍32🐳6🔥5🤓3