Как стать автором
Обновить
-3
0

программист

Отправить сообщение

41 вопрос о работе со строками в Python

Время на прочтение9 мин
Количество просмотров157K
Я начал вести список наиболее часто используемых функций, решая алгоритмические задачи на LeetCode и HackerRank.

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

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


Читать дальше →
Всего голосов 47: ↑44 и ↓3+59
Комментарии40

Модульность в Java 9

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

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



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

PostgreSQL и JDBC выжимаем все соки. Владимир Ситников

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

Предлагаю ознакомиться с расшифровкой доклада начала 2016 года Владимира Ситникова "PostgreSQL и JDBC выжимаем все соки"


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

Java-дайджест за 21 апреля

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


  • Выпущен монитор системных ресурсов, работающий на Raspberry Pi и 7-дюймовом экране. Зонд жрет всего 30 мегабайт оперативки без использования GraalVM (но как?). И зонд, и дисплей-сервер для Raspberry Pi используют JavaFX. В качестве платформы для мониторинга пока доступна только Windows с установленным Open Hardware Monitor.


  • Международная Java-конференция JPoint пройдет в онлайне. Остальные конференции JUG Ru Group весенне-летнего сезона тоже переходят на удалёнку. Благодаря этому теперь можно купить абонемент на все восемь конференций сразу, подробности уже есть на сайте.


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

Сохраните в закладках эту статью, если вы новичок в Python (особенно если изучаете Python сами)

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

Привет, Хабр! Представляю вашему вниманию перевод статьи "Bookmark this if you are new to Python (especially if you self-learn Python)" в двух частях (1, 2) c простыми, но полезными советами и трюками в Python.



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


Уточнение: в настоящее время я использую Python 3.8. Если вы столкнулись с какими-либо проблемами во время запуска моих примеров, пожалуйста, проверьте, не связано ли это с вашей версией Python.

Читать дальше →
Всего голосов 24: ↑18 и ↓6+18
Комментарии22

Паттерны и антипаттерны корутин в Kotlin

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

Паттерны и антипаттерны корутин в Kotlin


Решил написать о некоторых вещах, которых, по моему мнению, стоит и не стоит избегать при использовании корутин Kotlin.

Читать дальше →
Всего голосов 20: ↑18 и ↓2+16
Комментарии1

CSS Grid: Верстаем адаптивный журнальный макет в 20 строк

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

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

Самая простая часть задачи — получение списка постов и их эксцерптов (эксцерпт — вступительный текст до ката) с наших любимых RSS–фидов. Для этого мы воспользовались WordPress-плагином Feedzy lite, который умеет агрегировать несколько фидов в один список, отсортированный по времени — идеальное решение в нашем случае. Трудная же часть в том, чтобы сделать всё красиво.
Читать дальше →
Всего голосов 29: ↑28 и ↓1+47
Комментарии10

Как GraphQL-ить на Kotlin и Micronaut и создать единую точку доступа к API нескольких микросервисов

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

GraphQL — это язык запросов к API, разработанный Facebook. В этой статье будет рассмотрен пример реализации GraphQL API на JVM, в частности, с использованием языка Kotlin и фреймворка Micronaut; большая часть примеров может быть переиспользована на других Java/Kotlin фреймворках. Затем будет показано как объединить несколько GraphQL сервисов в единый граф данных, чтобы предоставить общий интерфейс доступа ко всем источникам данных. Это реализовано с использованием Apollo Server и Apollo Federation. В итоге будет получена следующая архитектура:


architecture

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

Руководство по версиям и возможностям Java

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

Здесь есть все, что вам нужно знать о различных версиях и функциях Java.



Java 8, Java 11, Java 13 — какая разница?


Вы можете использовать это руководство, чтобы найти и установить последнюю версию Java, понять различия между дистрибутивами Java (AdoptOpenJdk, OpenJDK, OracleJDK и т.д.), А также получить обзор возможностей языка Java, включая версии Java 8-13.


Примечание переводчика
09 апреля 2020 г. Марко опубликовал новую версию Руководства, в которую добавлено описание Java 14.
Перевод новой версии Руководства предлагается Вашему вниманию.
Читать дальше →
Всего голосов 23: ↑22 и ↓1+29
Комментарии14

Java-сериализация: максимум скорости без жёсткой структуры данных

Время на прочтение12 мин
Количество просмотров25K
Наша команда в Сбербанке занимается разработкой сервиса сессионных данных, который организует взаимообмен единым Java-контекстом сессии между распределёнными приложениями. Наш сервис крайне нуждается в очень быстрой сериализации Java-объектов, поскольку это часть нашей mission critical задачи. Изначально нам на ум приходили: Google Protocol Buffers, Apache Thrift, Apache Avro, CBOR и др. Первая тройка из перечисленных библиотек требует для сериализации объектов описания схемы их данных. CBOR такой низкоуровневый, что умеет сериализовывать только скалярные значения и их наборы. Нам же была нужна библиотека Java-сериализации, «не задающая лишних вопросов» и не заставляющая вручную разбирать сериализуемые объекты «на атомы». Мы хотели сериализовывать произвольные Java-объекты, не зная о них практически ничего, и хотели делать это максимально быстро. Поэтому мы устроили соревнование для имеющихся Open Source решений задачи Java-сериализации.

КДПВ
Кто же участвовал в соревновании?
Всего голосов 31: ↑30 и ↓1+38
Комментарии67

API, ради которых наконец-то стоит обновиться с Java 8. Часть 2

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

Продолжаем рассказ про API, которые появились в новых версиях Java.



1. Files.mismatch()


Появился в: Java 12


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


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


public static void syncDirs(Path srcDir, Path dstDir)
        throws IOException {
    // Для простоты демонстрации считаем, что поддиректорий нет
    try (Stream<Path> stream = Files.list(srcDir)) {
        for (Path src : stream.collect(toList())) {
            Path dst = dstDir.resolve(src.getFileName());
            if (!Files.exists(dst)) {
                System.out.println("Copying file " + dst);
                Files.copy(src, dst);
            } else if (Files.mismatch(src, dst) >= 0) {
                System.out.println("Overwriting file " + dst);
                Files.copy(src, dst, StandardCopyOption.REPLACE_EXISTING);
            }
        }
    }
}
Читать дальше →
Всего голосов 31: ↑29 и ↓2+36
Комментарии44

«Красная» корпоративная культура – главная проблема российского бизнеса (Часть 2)

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

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

Система 5С Юрского периода


Хочу привести случай из своей практики. На одном из предприятий промышленной компании новое руководство с помпой объявило о внедрении Бережливого производства. Много говорилось о том, как этот новый подход выведет предприятие на новый уровень эффективности. И первым инструментом БП для внедрения была выбрана система 5С на пилотном участке производственного склада.

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

— Так это мы уже один раз внедряли 5С три года назад! – радостно пояснил начальник участка, увидев немой вопрос в моих глазах. – Просто со временем как-то всё забылось…

Я поинтересовался, а нужно ли внедрять этот инструмент, если он всё равно его не применяет.

«Ну как же не внедрять? Дело-то хорошее», — ответил он.

Читать дальше →
Всего голосов 67: ↑60 и ↓7+72
Комментарии96

Java-дайджест за 17 января. Две первые недели нового года

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


  • Появился шрифт JetBrains Mono — приятный и красивый шрифт для разработчиков


  • Вышел плагин для интеграции GitLab с IntelliJ IDEA. Теперь можно делать код-ревью прямо в вашей любимой IDE!


  • В Java-плагине для Visual Studio Code добавили кучу важных ништяков (действительно влияющих на качество жизни). Теперь в браузере файлов есть компактизация папок в привычный нам вид (как в Идее), у методов можно смотреть иерархию вызовов, в отладчике можно ставить брейкпоинты с условием (сработают, только если выполнилось условие), запускатор тестов визуально отображает статус теста (не нужно постоянно смотреть логи), и еще много всего.


  • Вышел Repeat 5.4, кроссплатформенный (Mac/Lin/Win) инструмент для хоткеев, макросов и автоматизации, на 70% написанный на Java. 442 коммита, 574 звездочки, проект пользуется массовой любовью и обожанием у своей узкой аудитории. Разрабатывается ровно одним человеком.

Всего голосов 28: ↑26 и ↓2+33
Комментарии3

Хабрамегарейтинг: лучшие статьи и статистика Хабра за 12 лет. Часть 2/2

Время на прочтение13 мин
Количество просмотров18K
Привет, Хабр.

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



Кому интересны результаты, прошу под кат.
Читать дальше →
Всего голосов 47: ↑45 и ↓2+43
Комментарии39

Информация

В рейтинге
Не участвует
Откуда
Москва и Московская обл., Россия
Зарегистрирован
Активность