Как стать автором
Поиск
Написать публикацию
Обновить
1142.72

Программирование *

Искусство создания компьютерных программ

Сначала показывать
Порог рейтинга
Уровень сложности

Основные команды GIT

Уровень сложностиПростой
Время на прочтение23 мин
Количество просмотров14K

Научись использовать Git как профессионал. Эта статья поможет тебе освоить самые популярные команды Git на реальных примерах. Узнай, как добавлять изменения, создавать коммиты, переключаться между ветками, объединять изменения и синхронизировать проект с удалённым репозиторием.

ОГОГО, что там далее!? ...

Метапрограммирование 2.0: макросы и генерация кода в современном мире

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров9.4K

Забудьте про скучные «Hello, World». Макросы и шаблоны давно стали полноценными инструментами архитектора кода: от хитрых C++-шаблонов до процедурных макросов Rust и Java-аннотаций, автоматически генерирующих целые фреймворки. 

В этой статье мы рассмотрим примеры, где metaprogramming избавляет от рутины и экономит часы работы над проектом. Детали как всегда под катом.
Читать дальше →

ИИ на Python: кто и зачем передаёт клавиатуру алгоритмам

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров1.9K

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

Учёные из Университета Утрехта совместно с Complexity Science Hub решили глубоко разобраться в распространении генеративного ИИ в программировании. Они изучили более 80 миллионов изменений кода на платформе GitHub, сделанных в период с 2018 по 2024 год. Исследователи разработали специальный нейросетевой классификатор, способный отличить код, написанный человеком, от кода, созданного с помощью генеративных алгоритмов.

Выяснилось, что лидерами в этой «гонке автоматизации» стали программисты из Соединённых Штатов. Уже к концу 2024 года более 30% всех Python-функций, написанных разработчиками в США, были результатом работы искусственного интеллекта. Европейские страны, такие как Германия и Франция, также активно следуют этому тренду, достигая показателей в 24,3% и 23,2% соответственно.

Любопытно, что среди стран Азии картина выглядит иначе: если в Индии использование ИИ достигло уровня 21,6%, то в России и Китае показатели значительно ниже — 15,4% и 11,7% соответственно. Эксперты связывают это с различиями в экономических и технологических условиях, а также с возможными регуляторными ограничениями.

Интересным аспектом исследования стало выявление групп, наиболее охотно передающих рутину программирования алгоритмам. Оказалось, что новички, которые недавно начали карьеру на GitHub, особенно склонны использовать нейросети в своей работе — они доверяют ИИ около 41% задач. Опытные программисты более консервативны и чаще предпочитают писать код вручную, полагаясь на алгоритмы лишь в 28% случаев.

Читать далее

10 лучших расширений VS Code для больших и малых групп, повышающих производительность

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров13K

Если вы проводите большую часть дня в Visual Studio Code (как и я), то вы понимаете, что это больше, чем просто редактор кода. Это ваш настоящий командный центр, не меньше. С правильными расширениями VS Code может стать мощным инструментом, который повысит вашу производительность, обеспечит чистый код и даже сделает отладку (почти) безболезненной. Конечно, сейчас кто-то подумает, ну зачем мне нужны эти расширения? Установите, и вы поймете почему.

Я собрал 10 расширений VS Code, которыми сам пользуюсь, и которые особенно будут полезны для корпоративных разработчиков, работающих над сложными, совместными и масштабными проектами. Независимо от того, сосредоточены ли вы на написании более чистого кода, раннем выявлении ошибок, оптимизации рабочих процессов Git или совместной работе с удаленными коллегами в режиме реального времени, здесь есть что-то, что сделает вашу жизнь кодирования более гладкой и быстрой.

Читать далее

Гайд по совмещению 5 работ: инструкция по самоуничтожению

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров73K

Недавно наткнулся на гайд по двум работам в IT. Я сразу же подумал, а почему только 2 работы? Это же какое-то раздолбайство. Где гайд по 3–4–5 работам? Совсем не хотят работать блогеры. Поэтому я решил написать свой гайд на Хабр.

Читать далее

Создаем свой RAG: от загрузки данных до генерации ответов с LangGraph. Часть 2

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров5.7K

Привет, Хабр!

Технология RAG (Retrieval-Augmented Generation) сочетает поиск информации с генерацией ответов, делая AI-системы более точными и осмысленными. В этой статье разберём практическую реализацию RAG с помощью LangGraph — гибкого инструмента для построения агентов и графов.

Читать далее

Вкуснолаб, или Как мы писали мобильное приложение. От концепции к результату

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров994

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

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

Читать далее

Попробовал Background agent в Cursor (чтобы сразу 2 агента кодило одновременно)

Уровень сложностиПростой
Время на прочтение1 мин
Количество просмотров5K

Что могу сказать?

— по всей видимости агент работает по коду в репозитории кода, поэтому в нём нужно авторизовать Cursor + отправить туда последние обновления.
— он требует отказаться от privacy, так как всё происходит на серверах Cursor
— в нём можно выбрать только вариант Max (оплата за каждый запрос отдельно, а не из лимита подписки)
— его обновление можно проверить и отправить в репозиторий, локально или локально как git stash

Читать далее

Стрелочные функции JS, быстро, просто и без проблем

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров4K

Содержание:

- Стрелочные функции: argumentshoisting

- Работа с контекстом

- Методы присваивания контекста

- Обработчик событий

Читать далее

Оптимизация запросов в Django. Подробное руководство

Уровень сложностиСложный
Время на прочтение60 мин
Количество просмотров4.8K

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

Данная статья подходит как для начинающих, так и для достаточно опытных разработчиков на django, а также для всех, кто еще не интересовался, что происходит под капотом ORM.

Читать далее

Обработка ошибок в Go

Время на прочтение14 мин
Количество просмотров4.2K

Обработка ошибок — это один из самых важных аспектов написания надёжного кода. В Go к этому вопросу подошли нестандартно: вместо традиционного механизма try/catch, как в Java или Python, ошибки просто возвращаются как значения. Изначально это может показаться странным, но на практике этот подход делает обработку ошибок более явной и честной.

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

Читать далее

Меховой Интернет: как появляются ваши любимые книжные обложки

Время на прочтение10 мин
Количество просмотров2.9K

Привет, Хабр!

В предпоследние выходные мая мне традиционно довелось работать на книжном салоне, проходившем в Санкт-Петербурге на Дворцовой площади. Как многие знают, я представляю компьютерную редакцию издательства «БХВ», но внимательные читатели, которые любят рассматривать служебные страницы в хороших книгах, до сих пор могут найти мою фамилию и в нетленке издательства «Питер», в котором я провёл сложный, но незабываемый и формообразующий отрезок жизни.  Мне нравится работать на стендах, так как я вижу моего читателя, а также не без удовольствия наблюдаю за вашими муками выбора, в особенности – выбором книг в подарок. Что касается последней моей вахты, состоявшейся в полуштормовую погоду по ту сторону тента, очень порадовало, что на наш стенд заглянула уважаемая Юлия Воротникова, имя которой очень громко звучит для заядлых участников интеллектуальных игр. И она, и некоторые другие посетители, и в особенности две-три (не помню) милейшие девушки в субботу залюбовались нашим стендом, уставленным книгами, оригиналы которых вышли в издательстве «O’Reilly». Мне не раз пришлось объяснять, каким образом возникла столь необычная идея — иллюстрировать обложки компьютерных книг роскошными изображениями животных. Поэтому я решил вновь пересказать на Хабре эту историю, которую более 12 лет назад уже затрагивал уважаемый @miga. В статье будет много картинок, которые для меня все до единой укладываются во фразу, прочитанную на странице крайне харизматичного человека – уважаемого Виктора Жукова, lead-гитариста выдающейся симфо-метал группы Nimea из Санкт-Петербурга: «... и когда говорят — плагиат, я говорю — традиция!»

Читать далее

Никто не читает старые статьи… базу, так сказать, основу…

Время на прочтение7 мин
Количество просмотров4.5K

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

Для себя и, надеюсь, кого-то ещё, я предлагаю эти три разбора, на мой взгляд, основополагающих статей мира ML. Приятного прочтения.

Читать далее

Ближайшие события

Новая фича в Java 21: Виртуальные потоки: новые возможности для I/O bound микросервисов

Время на прочтение7 мин
Количество просмотров6.1K

Привет, Хабр! Я Иван Попов, ведущий инженер ЦК платформенных и интеграционных решений РСХБ-Интех. Java — мой самый любимый язык программирования, я всю жизнь работал только на нём. Сейчас я работаю в банке и хочу разрушить стереотип  о том, что в банках все работают на Vegas. На java мы очень много работаем, тем более если видим, что новая технология позволяет нам оптимизировать процессы разработки (а количество интеграций огромное). 

Расскажу о новой фиче виртуальных потоков в Java 21, которая призвана повысить эффективность многопоточного кода.  

Читать далее

Я сделал поисковик хуже Elasticsearch

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров6K

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

BEIR — это бенчмарки поиска информации, ориентированные на сценарии использования в формате «вопрос-ответ».

Мой хобби-проект SearchArray добавляет в Pandas полнотекстовый поиск. Поэтому естественно, чтобы ощутить трепет от моих потрясающих навыков разработчика, я решил использовать BEIR для сравнения SearchArray с Elasticsearch (с тем же запросом + токенизацией). Поэтому я потратил субботу на интеграцию SearchArray в BEIR и измерение релевантности и производительности с корпусом MSMarco Passage Retrieval (8 миллионов документов).

Барабанная дробь...

Читать далее

От первого коммита до опережения времени: как прошёл сезон Open source на Хабре

Время на прочтение8 мин
Количество просмотров17K

Этой весной, с 8 апреля по 23 мая, Хабр совместно с GitVerse запустил сезон Open source. Идея была простой: предложить IT-сообществу поделиться своими историями работы с открытым кодом. 

За время сезона было опубликовано 80 статей, которые в совокупности набрали около полумиллиона просмотров, 2000 плюсов и 1500 комментариев. Авторы делились опытом — от первых робких коммитов в популярные репозитории до создания собственных проектов, изменивших жизнь тысяч разработчиков. А читатели, в свою очередь, поддерживали, хвалили, критиковали и даже рассказывали, как тот или иной проект изменил их работу или жизнь.

Узнать итоги сезона

Function splitting и чистый код

Уровень сложностиСложный
Время на прочтение16 мин
Количество просмотров3.1K

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

Читать далее

Оверинжиниринг в луковичной и гексагональной архитектурах

Уровень сложностиПростой
Время на прочтение16 мин
Количество просмотров9.4K

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

Читать далее

Шестидесятилетний заключённый и лабораторная крыса. F# на Godot. Часть 6. Как добыть нечто

Уровень сложностиПростой
Время на прочтение16 мин
Количество просмотров1.8K

Концепция этого цикла начиналась с простого переноса тайловых миров на F#. Однако в процессе его описания я основательно растёкся по древу, за счёт чего у нас образовался большой подготовительный этап из пяти глав про языковые фичи и прочую «фундаменталочку». Думаю, что с подготовкой закончено, поэтому сегодня мы обратимся непосредственно к тайловым мирам.

Но начнём мы практически с конца — с адаптации поиска пути. Это несложная задачка, но в процессе её решения мы успеем закрепить пройденный материал и по инерции заскочить в новый.

Читать далее

Рекомендации по Jetpack Compose: от основ к масштабируемым UI

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров3.3K

Всем привет!

В этой статье мы будем обсуждать, как писать масштабируемые и поддерживаемые интерфейсы на Jetpack Compose: от базовых компонентов до архитектурных практик. Разбираем иерархию, принципы проектирования, naming, порядок параметров и антипаттерны.

Думаю, что статья будет полезна как новичкам, так и опытным разработчикам.

Читать далее

Вклад авторов