Как стать автором
Обновить
634.33

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

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

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

Аннотации и рефлексия в Java

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


Привет, уважаемые читатели Хабра!

Аннотации и рефлексия являются ключевыми концепциями в Java, предоставляя разработчикам мощные инструменты для создания более гибких, адаптивных и понятных приложений. Аннотации предоставляют способ добавить метаданные к классам, методам и полям, что позволяет компилятору и другим инструментам анализировать код более глубоко. Рефлексия, с другой стороны, позволяет программам анализировать и модифицировать свой собственный состав и поведение во время выполнения.
Читать дальше →
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 0

Новости

Как выбирать онлайн-школу

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

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

Определяющими факторами для любого человека являются:

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 2

Построение пайплайна обработки данных в реальном времени с использованием Python

Уровень сложности Сложный
Время на прочтение 11 мин
Количество просмотров 1.3K
Обзор

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

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

В этой статье мы рассмотрим как построить пайплайн обработки данных в реальном времени с использованием Python.

Читать далее
Всего голосов 12: ↑12 и ↓0 +12
Комментарии 0

Объектно-ориентированный подход к написани REST-клиентов, или возможна ли жизнь без Open API

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

Как-то в общении с моим другом-разработчиком из одной крупной софтверной компании у нас зашёл разговор о взаимодействии распределённых команд. В его компании было множество достаточно изолированных команд, каждая из которых разрабатывала свой сервис. В ответ на мой вопрос, как команды расшаривают API, я получил ожидаемый ответ: Open API. Open API, безусловно, прекрасный инструмент, но у него есть ряд недостатков. 

Меня зовут Андрей Зяблин, я главный разработчик в «Магните». Расскажу о том, как распространять API нативным для Java способом и пользоваться им в объектно-ориентированном стиле без использования генераторов кода. 

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 5

Истории

PyTriton inference server c Gradio: быстро и просто делаем демо для ML-проектов

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

Рассмотрим то как можно в одиночку быстро создать сервер и UI для ML приложения на Python с перспективой вывода в prod. Исследуем PyTriton и немного Gradio.

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Комментарии 0

История смарт-контрактов, или как у блокчейна выросли ручки и ножки

Уровень сложности Простой
Время на прочтение 9 мин
Количество просмотров 472
Ретроспектива

Прошло почти 15 лет с запуска сети Bitcoin, предложившей миру новый способ передачи ценности, альтернативный традиционным валютам. Всё это время технологии не стояли на месте: к 2023 на основе блокчейна вовсю развиваются проекты в различных сферах экономики — особенно финансовой — а государства всерьез занимаются запуском собственной «крипты», ЦВЦБ. Такой прорыв стал возможен во многом благодаря смарт-контрактам. В этом посте мы расскажем, что такое смарт-контракты, как они эволюционировали и, наконец, как работают на нашей платформе «Конфидент».

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Комментарии 3

Визуализация алгоритмов стандартной библиотеки C++ (продолжение)

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

В стандартной библиотеке C++ много разных алгоритмов для работы с контейнерами. С помощью этих алгоритмов можно искать значения, сортировать последовательности, изменять их и делать многое другое. Среди такого большого количества алгоритмов есть довольно сложные, которые сходу не поймешь. Но если визуализировать их работу, то все становится ясно.

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 0

Основной инструментарий для разработки приложений на Gtk

Время на прочтение 7 мин
Количество просмотров 723
Туториал

Фреймворк Gtk пользуется достаточно большой популярностью среди разработчиков приложений. И вполне очевидно, что для популярного фреймворка должны существовать удобные и надежные инструменты разработки. Так и есть.

В этой статье хотелось бы рассказать о некоторых инструментах, которые я использую для создания приложений на Gtk. Рассматривать мы их будем на примере приложения Zodiac.

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 0

Godot — это не новая Unity. Анатомия вызова API в Godot

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

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

Апдейт: ведущий разработчик Godot Хуан Линьетски опубликовал ответ на этот пост.

Читать далее
Всего голосов 20: ↑20 и ↓0 +20
Комментарии 14

Шпаргалка по модели памяти С++11

Время на прочтение 9 мин
Количество просмотров 2.8K
Перевод

Модель памяти представляет из себя спецификацию допустимого поведения многопоточных программ, работающих с разделяемой памятью (shared memory) [1]. Наиболее примитивной моделью является последовательная согласованность (sequential consistency), где все инструкции из всех потоков образуют общий порядок (или, по крайней мере, его видимость), согласованный с порядком выполнения программы в каждом потоке [2].

Одной из наиболее важных фич C++11 является модель памяти, поддерживающая параллелизм, которая позволяет писать многопоточные программы, не полагаясь на различные расширения для конкретных целевых платформ.

Читать далее
Всего голосов 21: ↑19 и ↓2 +17
Комментарии 0

Алгоритм трассировки лучей в двух словах

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

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

Отрендерить далее
Всего голосов 8: ↑6 и ↓2 +4
Комментарии 1

Некоторые советы, которые я почерпнул из книги «100 ошибок в Go»

Время на прочтение 6 мин
Количество просмотров 2.5K
Перевод
image

Недавно я закончил читать книгу Тейвы Харсаньи "100 ошибок и как их избежать", и вместо того, чтобы писать рецензию (всем, кто работает с Go, стоит ее прочитать), я решил поделиться четырьмя ошибками, которые показались мне интересными и о которых я раньше не знал.
Читать дальше →
Всего голосов 9: ↑7 и ↓2 +5
Комментарии 10

Как мы сделали настоящий хакатон. Такой, каким он должен быть

Уровень сложности Простой
Время на прочтение 5 мин
Количество просмотров 496
Обзор

Привет! Меня зовут Игорь Бессчастный, я лидер Платформы API ВТБ. Мы представили рынку Платформу два с половиной года назад в рамках большой цифровой трансформации банка. Продумывая хакатон, мы хотели и привлечь внимание к интерфейсам прикладного программирования, и найти решения, учитывающие всю нужную нам специфику.

Два года назад мы запустили первый хакатон. Через год — второй. Третий — стартует 1 октября. В этой статье я и моя коллега — Камилла Куликова, архитектор платформы API ВТБ, расскажем, как мы на сей раз наконец-то сделали всё именно так, как нужно, почему мы не боимся давать очень сложные задачи, как у нас профессиональных хакатонистов иногда обходят те, от кого этого совсем не ожидали, и что получает от этого всего наш банк и рынок в целом.

Читать далее
Всего голосов 10: ↑10 и ↓0 +10
Комментарии 0

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

Битва пет-проектов
Дата 25 сентября – 30 ноября
Место Онлайн
Business⁢ Day: Retail CPG
Дата 28 сентября
Время 09:50 – 14:00
Место Онлайн
XIX конференция разработчиков свободных программ «Базальт СПО»
Дата 29 сентября – 1 октября
Время 10:00 – 19:00
Место Переславль-Залесский Онлайн
Kokoc Hackathon
Дата 29 сентября – 1 октября
Время 19:00 – 21:00
Место Онлайн
Ruby Russia 2023 Online
Дата 30 сентября
Время 11:00 – 21:00
Место Онлайн
PG Boot Camp Russia 2023
Дата 5 октября
Время 10:00 – 17:00
Место Москва Онлайн
Joker
Дата 9 – 14 октября
Время 16:00 – 19:30
Место Санкт-Петербург Онлайн
Открытый урок «Kafka Streams»
Дата 16 октября
Время 10:00
Место Онлайн
Питч-сессия pravo (tech) impulse
Дата 19 октября
Время 15:45 – 17:30
Место Москва
Russia Risk Conference 2023 — 19-я конференция по риск-менеджменту
Дата 25 – 26 октября
Время 10:00 – 19:00
Место Москва Онлайн
Онлайн IT HR-конференция HR42
Дата 17 – 18 ноября
Время 10:00 – 14:00
Место Онлайн
HighLoad++ 2023
Дата 27 – 28 ноября
Время 9:00 – 20:00
Место Москва Онлайн

Golang глазами PHP-программиста

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

Как-то появилась причина попробовать пописать на Go. На тот момент я знал, что это язык от Google, язык молодой, язык компилируемый, вроде как активноразвивающийся и с зарплатами выше средних. Неплохой набор.

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

Итак, ищем какой-нибудь golang roadmap, небольшое количество времени, и вот он, helloworld на Golang. Теперь надо его запустить. Сама установка Go - быстрая и простая, занимает пару минут(скачать, нажать далее несколько раз), так что смотрим пример.

Читать далее
Всего голосов 17: ↑16 и ↓1 +15
Комментарии 49

Блеск и нищета std::format

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

Сравнительно недавно в stdlib плюсов появилось форматирование строк «как в питоне», а точнее, как в библиотеке fmt. И я, как смелый и отчаянный, решил этим воспользоваться. Возможно, аксакалы и настоящие разработчики скажут, что я всё делаю не так, и вообще не то, но я буду рад такой критике, если она поможет легче жить ;)

Читать далее
Всего голосов 27: ↑25 и ↓2 +23
Комментарии 26

Совместная работа в реальном времени: алгоритмы, редакторы и облако

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

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

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

Основы программного обеспечения для групповой работы были заложены в системе NLS (oN-Line System), разработанной в 1960-х годах. Под катом расскажем, как от первых экспериментов в области цифровых коммуникаций разработчики перешли к инструментам и сервисам для совместного онлайн-кодинга.

Читать далее
Всего голосов 17: ↑16 и ↓1 +15
Комментарии 0

Эффективная и идиоматическая обработка ошибок в Kotlin

Уровень сложности Средний
Время на прочтение 26 мин
Количество просмотров 1.5K
Туториал

Во многих программах написанных на Kotlin, в том числе и доступных на GitHub, а также в некоторых статьях, особенно на Medium, я снова и снова вижу, что авторы обрабатывают ошибки, с моей точки зрения, неэффективно и неидиоматически. При этом результат работы программ может быть правильный. Неэффективность и «неидеоматичность» проявляется в этих случаях в том, что авторы либо используют дополнительные классы, либо городят ненужные костыли, либо делают код более сложным для чтения, понимания и поддержки, чем нужно. 

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

Эта публикация должна быть интересна в первую очередь новичкам в Kotlin. Но я надеюсь, она будет небезинтересна и профессионалам. 

Читать далее
Всего голосов 8: ↑5 и ↓3 +2
Комментарии 1

Кто такие Senior, Middle и Junior? И на кой ляд нужны грейды?

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

Собрали комментарии специалистов из разных компаний и агентств. Это выжимка из третьего выпуска НЕОЧПОП про грейды. Кому нравится смотреть и слушать, просим на Ютуб.

Читать далее
Всего голосов 13: ↑7 и ↓6 +1
Комментарии 18

Создание внутреннего пакета компонентов React — проще, чем кажется

Время на прочтение 14 мин
Количество просмотров 775
Туториал

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

Я frontend-разработчик SimbirSoft Эллина, и в этой статье расскажу, как создать внутренний пакет компонентов в React с помощью инструмента сборки Rollup, а также как сделать его более качественным и удобным для использования. Материал будет полезен frontend-разработчикам уровней junior+ и middle.

Читать далее 👉
Всего голосов 4: ↑3 и ↓1 +2
Комментарии 2

Введение в трассировку лучей: простой метод создания 3D-изображений

Время на прочтение 4 мин
Количество просмотров 4.3K
Перевод

Введение в трассировку лучей: простой метод создания 3D-изображений

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

Отрендерить статью полностью
Всего голосов 11: ↑8 и ↓3 +5
Комментарии 5

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