Как стать автором
Обновить
651.69
Рейтинг

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

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

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

Хватит ссылаться на TIOBE

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

Что такое TIOBE?


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

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

Источник: tiobe.com.

Индекс языков программирования, помогающий выбрать язык, который нужно использовать. Похоже, полезная штука!
Читать дальше →
Всего голосов 15: ↑14 и ↓1 +13
Просмотры 2.2K
Комментарии 2

Новости

Исследуем граф «мир тесен» при помощи Neo4j

Блог компании Издательский дом «Питер» Программирование *Java *Алгоритмы *Социальные сети и сообщества
Перевод

Когда моя сестра переехала в другой город и познакомилась с соседями, оказалось, что дедушка и бабушка ее соседа и наши бабушка с дедушкой были хорошими друзьями и общались, живя рядом в другом городе – два поколения назад. Интересно, когда обнаруживаются такие неожиданные связи. Согласно теории сетей, пути, соединяющие узлы сети, зачастую короче, чем могло бы показаться.

Если каждый в сети знает k других людей, то можно упрощенно предположить, что, начав от этого человека и совершив n переходов от узла к узлу, мы найдем kⁿ человек. Учитывая экспоненциальный рост, потребуется совсем немного времени, чтобы построить путь от любого конкретного человека до любого другого в графе.

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

В главе 20 книги Networks Crowds and Markets ее авторы Дэвид Изли и Джон Клейнберг дают теоретический аппарат, описывающий, как в реальном мире могут возникать феномены, укладывающиеся в граф «мир тесен». В этой теории сочетается идея гомофилии, согласно которой схожие люди кучкуются вместе, и идея слабых связей, где отношения ветвятся в масштабах всей сети. Объяснение основано на работе Дункана Уоттса и Стива Строгаца. Давайте проследим эти примеры при помощи кода, написанного при помощи Neo4j.

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

«Это просто мой стиль кода»

Блог компании ISPmanager Программирование *
Перевод

Стиль кода. Я слышал эти слова, эту глупость в сотне разнообразных вариантов:

«Это просто мой стиль программирования».

«Все пишут код по-разному».

«Так я лучше всего понимаю код».

И так далее, и тому подобное...

Честно говоря, меня бесит, когда я слышу, что разработчик использует одну из этих фраз в качестве оправдания корявости своего кода. Почему? Казалось бы, сущая мелочь. На самом деле, меня раздражает не сама фраза, а глубинный эгоизм, который в ней заключен. Есть только две ситуации, в которых вы вольны писать код так, как вам вздумается: вы пишете лично для себя, и никто больше вашу программу читать не будет ИЛИ речь идет об изолированной среде, например, R&D, где путь проб и ошибок поставлен во главу угла. Но если вы работаете в команде, ваше «я пишу так, как мне удобно» граничит с банальным неуважением.

Читать далее
Всего голосов 22: ↑18 и ↓4 +14
Просмотры 11K
Комментарии 52

Что делать, если Вашему бизнесу нужна автоматизация?

Программирование *Клиентская оптимизация *Исследования и прогнозы в IT *Статистика в IT IT-компании
Из песочницы

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

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

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Просмотры 1.5K
Комментарии 4

Конкурентность в Go: пять примеров

Блог компании МТС Программирование *Go *Параллельное программирование *

Привет, Хабр! Я Артем Чаадаев, Golang-разработчик в МТС Digital. В этой статье я собрал примеры использования конкурентного кода в Go. Хотите узнать, как писать конкурентный код? Значит, вам сюда.

Добро пожаловать под кат!

Читать далее
Всего голосов 26: ↑22 и ↓4 +18
Просмотры 4.3K
Комментарии 4

Не реактом единым: что полезно знать современному фронтенд-разработчику

Блог компании Хекслет Разработка веб-сайтов *Программирование *IT-стандарты *Карьера в IT-индустрии

Браузерная разработка — одна из самых старых и при этом динамично развивающихся отраслей IT-индустрии. Востребованность и зарплаты разработчиков веб-приложений — фронтенд-разработчиков, только растут, но вместе с тем растут и ожидания от них. У этого есть простая причина: предметная область, ее глубина и количество нюансов — запредельно объемны, и они требуют постоянного обновления собственных знаний. 

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

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

Паттерн Outbox: как не растерять сообщения в микросервисной архитектуре

Блог компании Lamoda Программирование *Разработка под e-commerce *Микросервисы *

Привет! Меня зовут Михаил Боровиков, я тимлид команды, которая отвечает за систему процессинга заказов Lamoda — Orders Management. Эта система, словно «сердце» Lamoda, через которое проходит самый важный для бизнеса шаг — оформление заказа.

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

Для решения этой проблемы мы выбрали паттерн Outbox. И в этой статье я расскажу, что он из себя представляет, как мы его применили, почему пошли по пути at-least-once и не положились на работу одного брокера сообщений.

Читать далее
Всего голосов 24: ↑22 и ↓2 +20
Просмотры 1.8K
Комментарии 14

Вектор енумов. С чем мы сталкиваемся в разработке

Блог компании Яндекс Высокая производительность *Программирование *Администрирование баз данных *
В любой команде разработки бывают курьёзные случаи, которые разработчики потом вспоминают за пиццей. Сторонний человек, тоже пришедший отведать пиццы, обычно эти внутренние байки не понимает, потому что не был в комнате в тот момент, когда «треснул шард» или «движку поплохело».

Я делаю баннерную крутилку, делаю давно и уже оброс такими историями со всех сторон. Мне удалось уговорить команду рассказать на камеру хотя бы часть историй — с контекстом, чтобы зритель не чувствовал себя тем самым сторонним человеком. Надеюсь, читателям Хабра наши грабли покажутся интересными. Всего будет семь историй.

Высвобождение ресурсов


Периодически мы решаем задачи экономии разных ресурсов: памяти, процессора и так далее. Во время очередного подхода обнаружили, что один из наших процессингов употребляет неразумное количество процессорных ядер. Суть этого процессинга в том, что он читает поступающие с фронтовых серверов данные маленькими пачками, группирует их и передаёт в основной конвейер, где они варятся большими блоками по 100-200 тысяч строчек за раз.
Читать дальше →
Всего голосов 27: ↑25 и ↓2 +23
Просмотры 4.7K
Комментарии 9

Как проводить код-ревью: главное из вебинара

Блог компании Яндекс Практикум Программирование *Совершенный код *Управление разработкой *Учебный процесс в IT

В декабре Яндекс Практикум провёл открытый вебинар о том, как устроен процесс код-ревью в коммерческой разработке и образовании. Руководитель отдела разработки поисковых интерфейсов в Яндексе Сергей Бережной и старший код-ревьюер на курсе «Веб-разработчик» Айгуль Маликова рассказали о полезных инструментах для ревью кода и поделились кейсами из своей практики. 

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

Читать далее
Всего голосов 11: ↑8 и ↓3 +5
Просмотры 1.1K
Комментарии 0

Drag-and-Drop на Python+OpenCV

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

В данной статье расскажу про простой Drag-and-Drop на Python+OpenCV.

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

Читать далее
Всего голосов 11: ↑11 и ↓0 +11
Просмотры 1.6K
Комментарии 15

Кривые и что это такое ч.3

Программирование *Алгоритмы *C# *Математика *

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

Читать далее
Рейтинг 0
Просмотры 1.1K
Комментарии 0

Русский язык в программировании

Программирование *
Судя по результатам голосований (на compiler.su и даже здесь на Хабре) идею программирования на русском поддерживает не так уж и мало людей.

В данной статье приводится мой краткий обзор некоторых языков программирования и решений, которые позволяют программировать на русском.
Читать дальше →
Всего голосов 65: ↑41 и ↓24 +17
Просмотры 30K
Комментарии 415

Лучшие книги по Python 2021-2022 года: для новичков и профи

Блог компании Сбер Python *Программирование *Профессиональная литература *Учебный процесс в IT

Привет, Хабр! Поговорим о книгах?

Есть мнение, что люди начали читать меньше и всё чаще многие потребляют уже готовый контент в виде роликов на YouTube или сокращённых вариантов различных произведений. Но это вряд ли, ведь если бы люди не читали книги, могли бы тогда развиваться отечественные и зарубежные сервисы для любителей чтения? К примеру, LitRes, Bookmate и другие. 

И да, в IT-команде Сбера много книголюбов с самыми разными предпочтениями. А поскольку мы на Хабре, то поговорим сегодня о технической литературе. Точнее, о Python и лучших книгах по этому языку для профи, программистов среднего уровня и начинающих. Подборка  ― уже под катом.

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

История о том, как Python помог купить мебель в ИКЕА

Python *Программирование *Научно-популярное
Из песочницы

5-го июля 2022 года стартовала масштабная онлайн распродажа в интернет-магазине мебели ИКЕА по причине ухода компании с российского рынка. В связи с этим началось несравнимое ни с чем по своим масштабам паломничество покупателей к сайту магазина. Шведско-нидерландский идол не выдержал такого натиска. Разработчикам ИКЕИ пришлось создать электронную очередь на сайте, чтобы распределить нагрузку. Как бы это парадоксально не звучало, этим шведско-нидерландское божество создало "ад" для рядового покупателя. Ему пришлось выстаивать часами/днями в очереди, постоянно обновлять страницу в надежде увидеть на сайте жёлтое кресло, а не пугающее объявление. Я был в их числе, но спустя сутки решил делегировать эту задачу своим союзникам - Python и Telegram-боту.

Нажимаем кнопку "ЧИТАТЬ ДАЛЕЕ" и смотрим
Всего голосов 24: ↑19 и ↓5 +14
Просмотры 21K
Комментарии 21

Как REST выродился в собственную противоположность

Разработка веб-сайтов *JavaScript *Программирование *API *
Перевод

Меня все сильнее раздражает, сколько людей готовы записывать в REST API любой интерфейс на основе HTTP. Сегодня приведу в качестве примера SocialSite REST API. Это же вызовы удаленных процедур (RPC). Он просто выкрикивает RPC. Связность между элементами на экране настолько сильная, что это творение заслуживает рейтинга X.

Читать далее
Всего голосов 24: ↑20 и ↓4 +16
Просмотры 6.2K
Комментарии 15

Поиск объектов на видео с помощью Python

Python *Программирование *GitHub *Машинное обучение *

В данной статье хочу рассказать про поиск объектов на видео с помощью Python и OpenCV. Помимо обычных видео, можно использовать и камеры.

Полный код и все исходники можно найти на моем Github.

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

Читать далее
Всего голосов 5: ↑4 и ↓1 +3
Просмотры 3.9K
Комментарии 4

«Вам будут писать: это отстой!»: Андрей Власовских о плюсах и минусах open source

Open source *Python *Программирование *

Сделать вклад в развитие сообщества, прокачать скилы или сэкономить на разработке – у каждого есть свой мотив, чтобы участвовать в open source проектах. Мы поговорили с Андреем Власовских, участником программного комитета Pycon Russia и одним из фанатов открытого кода, как войти в open source и как добиться в нем успеха (и в чем этот успех можно измерить). Ну и немножко про Python, конечно. 

Читать далее
Всего голосов 11: ↑10 и ↓1 +9
Просмотры 2.9K
Комментарии 0

Java, реактивное программирование, Reactor, Spring Cloud Function, Streams, etc…

Программирование *Java *
☕️ Cезон Java


Реактивное программирование в Java — полезный инструмент со множеством применений. Его суть в асинхронной обработке поступающих сообщений, и есть несколько вариантов реализации этого механизма.


И Java в целом, и Spring Framework в частности подразумевают несколько аспектов реактивного программирования. Это касается Spring WebFlux в качестве замены Spring MVC. Также можно использовать Project Reactor в Java непосредственно, без Spring Framework. Однако Spring предоставляет средства декларативного определения функции Spring Cloud Function и средства интеграции приложений с использованием внешних очередей в рамках проекта Spring Cloud Stream. В комплексе эти средства позволяют широко использовать реактивное программирование, упрощая создание, размещение, масштабирование и обслуживание приложений.


Помимо создания новых приложений, Spring Cloud Function/Stream позволяют модифицировать и существующие приложения, облегчая жизнь разработчикам в реализации горизонально масштабируемых сервисов.


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

Читать дальше →
Всего голосов 7: ↑7 и ↓0 +7
Просмотры 5.1K
Комментарии 1

Задача о 8-ми ферзях. Свежий взгляд. Шаг 1 + 1/2. Сокращаем количество шагов перебора в три с половиной раза

Занимательные задачки Программирование *Алгоритмы *Математика *Учебный процесс в IT

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

https://habr.com/ru/post/679200/

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

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

Что не так с качеством в ИТ

Программирование *Софт

Эту статью я решил написать после прочтения резонансных эмоциональных публикаций на тему технического регресса в ИТ-индустрии (https://habr.com/ru/post/596517/ и https://habr.com/ru/post/673236/). Поскольку я сам много лет занимался вопросами безопасности и качества в сфере транспорта, в ней я постараюсь осветить корни проблемы и возможные пути её решения.

Снижение качества продукции в сфере ИТ — часть общемирового тренда на падение уровня качества во всех ключевых отраслях экономики. Если посмотреть динамику за последние 30 лет, то ситуация в ИТ принципиально ничем не отличается от ситуации в строительстве или любой другой отрасли. Эту проблему тщательно замалчивают, поскольку предание её огласке поставило бы множество неудобных вопросов перед органами власти в любом государстве.

Читать далее
Всего голосов 49: ↑31 и ↓18 +13
Просмотры 11K
Комментарии 133

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