Daily Coding 🔥
8.74K subscribers
1.88K photos
6 videos
1 file
1.73K links
Канал, который научит вас программировать лучше и эффективнее.

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

Ссылка: @Portal_v_IT

Сотрудничество: @oleginc, @tatiana_inc

Канал на бирже: telega.in/c/dailycoding
Download Telegram
💡 Команды для Python по работе с файлами и файловой системой

▍Объединение компонентов пути

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

Но не переживайте, Python прекрасно решает эту проблему благодаря функции os.path.join(). Давайте перепишем вариант из примера в предыдущем совете, используя эту функцию:

os.path.exists(os.path.join('sample_data', 'README.md'))

Daily Coding #советы #coding #python
🔥 Лучшее на канале за неделю

1
. Вышел язык программирования Crystal версии 1.0.

2. Markdown Monster — это редактор и средство просмотра Markdown.

3. Команды для Python по работе с файлами и файловой системой.
🛠 Paint .NET — это программное обеспечение для редактирования изображений и фотографий для ПК под управлением Windows. Он отличается интуитивно понятным и инновационным пользовательским интерфейсом с поддержкой слоев, неограниченным числом отмен, спецэффектами и широким спектром полезных и мощных инструментов. Активное и растущее онлайн-сообщество предоставляет дружественную помощь, учебные пособия и плагины.

Daily Coding #инструменты
📖 Java Cookbook, 4th Edition
🖋 Ian F. Darwin, 2020

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

Каждый рецепт включает в себя автономные кодовые решения, которые вы также можете свободно использовать, наряду с обсуждением того, как и почему они работают. Если вы знакомы с основами Java, то эта кулинарная книга подкрепит ваши знания языка и его многочисленных последних изменений, в том числе как применять их в своей повседневной разработке. Это обновленное издание охватывает изменения Java 12 и части 13 и 14.

💾 Скачать книгу

Daily Coding #book #java
📑 Поиск секретных данных в исходном коде

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

Daily Coding #статьи
Daily Coding #test #C_plus_plus

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

Daily Coding #инструменты
💡 Команды для Python по работе с файлами и файловой системой

▍Создание директории

Ну а теперь самое время создать директорию с именем test_dir внутри рабочей директории. Для этого можно использовать функцию os.mkdir():

os.mkdir('test_dir')

Рекомендуется всегда проверять наличие каталога с определенным названием перед созданием нового:

if not os.path.exists('test_dir'):
os.mkdir('test_dir')

Еще один совет по созданию каталогов. Иногда нам нужно создать подкаталоги с уровнем вложенности 2 или более. Если мы все еще используем os.mkdir (), нам нужно будет сделать это несколько раз. В этом случае мы можем использовать os.makedirs (). Эта функция создаст все промежуточные каталоги так же, как флаг mkdir -p в системе Linux:

os.makedirs(os.path.join('test_dir', 'level_1', 'level_2', 'level_3'))

Daily Coding #советы #coding #python
♥️ Наши телеграм боты

UI8 Bot — бот предоставляет безлимитный доступ к сайту ui8.net Стоимость доступа на сайте стартует от 188$ с ограничениями на загрузки. Стоимость в нашем боте начинается от 4$ в месяц без каких-либо ограничений.

Craftwork Bot — предоставляет полный доступ к сайту craftwork.design намного дешевле.

Боты работают очень просто: присылаете ссылку в бота, а бот в ответ присылает файл для скачивания. Попробуйте сами!
📑 Подводные камни в бассейне строк, или ещё один повод подумать перед интернированием экземпляров класса String в C#

Будучи разработчиками программного обеспечения, мы всегда хотим, чтобы написанное нами ПО работало быстро. Использование оптимального алгоритма, распараллеливание, применение различных техник оптимизации – мы будем прибегать ко всем известным нам средствам, дабы улучшить производительность софта. К одной из таких техник оптимизации можно отнести и так называемое интернирование строк. Оно позволяет уменьшить объём потребляемой процессом памяти, а также значительно сокращает время, затрачиваемое на сравнение строк. Однако, как и везде в жизни, необходимо соблюдать меру – не стоит использовать интернирование на каждом шагу. Далее в этой статье будет показано, как можно обжечься и создать своему приложению неочевидный bottleneck в виде метода String.Intern.

Daily Coding #статьи #C_Sharp #dotnet
Daily Coding #test #C_plus_plus

Выберите правильный вариант 👇🏼
📖 Using Asyncio in Python
🖋 Caleb Hattingh, 2020

Разработчик Калеб Хаттинг, поможет вам получить базовые знания о строительных блоках asyncio - достаточно, чтобы начать писать простые программы, основанные на событиях. Вы узнаете, почему asyncio предлагает более безопасную альтернативу вытесняющей многозадачности и многопоточности) и как этот API обеспечивает простой способ поддержки тысяч одновременных соединений сокетов. Получите критическое сравнение asyncio и многопоточности для одновременного сетевого программирования.

Вы узнайте о различии между функциями asyncio для конечных пользователей и функциями для разработчиков фреймворка. Понять новый синтаксис языка asyncio async/await, включая коридоры и задачи, а также будущие API. Получить подробные примеры (с кодом) некоторых популярных асинцево-совместимых сторонних библиотек.

💾 Скачать книгу

Daily Coding #book #python #asyncio
💡 Команды для Python по работе с файлами и файловой системой

▍Показываем содержимое директории

Еще одна полезная команда — os.listdir(). Она показывает все содержимое каталога.

Команда отличается от os.walk (), где последний рекурсивно показывает все, что находится «под» каталогом. os.listdir () намного проще в использовании, потому что просто возвращает список содержимого:

os.listdir('sample_data')

В некоторых случаях нужно что-то более продвинутое — например, поиск всех CSV-файлов в каталоге «sample_data». В этом случае самый простой способ — использовать встроенную библиотеку glob:

from glob import globlist(glob(os.path.join('sample_data', '*.csv')))

Daily Coding #советы #coding #python
🔥 Лучшее на канале за неделю

1
. Поиск секретных данных в исходном коде.

2. Carnac — эта замечательная небольшая утилита с открытым исходным кодом показывает горячие клавиши, которые вы нажимаете.

3. Команды для Python по работе с файлами и файловой системой.
🛠 DOSBox — это эмулятор, воссоздающий среду, совместимую с MS-DOS (в комплекте со звуком, вводом, графикой и даже базовой сетью). Эта среда достаточно полная, чтобы запускать многие классические игры MS-DOS без каких-либо модификаций.

Daily Coding #инструменты
📑 Программирование — это скучная магия

Есть один карточный трюк, который запомнился мне навсегда. Вот его краткое описание: доброволец выбирает карту и запечатывает её в конверт. Затем фокусник предлагает добровольцу выбрать чай. У него есть десятки коробок чая, и все они упакованы в пластик. Доброволец выбирает одну из коробок, срывает обёртку и выбирает один из упакованных пакетиков с чаем. Потом он вскрывает упаковку, и… внутри оказывается его карта.

Если вы не хотите знать, в чём хитрость этого трюка, то дальше не читайте.

Daily Coding #статьи
🛠 Kera — создание встроенных в приложение туториалов для пользователей. Быстро внедрите мощную тактику адаптации, используемую в таких компаниях, как Google, Dropbox и LinkedIn.

Daily Coding #инструменты
💡 Команды для Python по работе с файлами и файловой системой

▍Перемещение файлов
| Часть 1

Время попробовать переместить файлы из одной папки в другую. Рекомендованный способ — еще одна встроенная библиотека shutil.

Сейчас попробуем переместить все CSV-файлы из директории «sample_data» в директорию «test_dir». Ниже — пример кода для выполнения этой операции:

import shutilfor file in list(glob(os.path.join('sample_data', '*.csv'))):
shutil.move(file, 'test_dir')

Кстати, есть два способа выполнить задуманное. Например, мы можем использовать библиотеку OS, если не хочется импортировать дополнительные библиотеки. Как os.rename, так и os.replace подходят для решения задачи.

Но обе они недостаточно «умные», чтобы позволить перемесить файлы в каталог.

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

Daily Coding #советы #coding #python
📑 Печальная правда о пропуске копий в C++

Пропуск копий (copy elision) – это оптимизация компилятора, которая, как и следует из имени, устраняет лишние операции копирования и перемещения. Она аналогична классической оптимизации размножения копий, но выполняется конкретно для объектов C++, которые могут иметь нестандартные конструкторы копирования и перемещения. В этой статьей я продемонстрирую пример, в котором очевидная ожидаемая от компилятора оптимизация на практике не происходит.

Daily Coding #статьи #C_plus_plus