Академия Кода – Telegram
Академия Кода
2K subscribers
673 photos
2 videos
2 files
50 links
Академия кода. Полезный контент по программированию. По всем вопросам @evgenycarter
Download Telegram
Рекомендуем к прочтению книгу Александра Бындю "Антихрупкость в IT"

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

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

Сайт издания

Ознакомиться с книгой
Как включить все стандартные библиотеки одной командой

Чтобы разом включить в проект все стандартные библиотеки, используйте #include <bits/stdc++.h>. Это особенно полезно в условиях дефицита времени на соревнованиях по программированию.

Но помните, что:

#include <bits/stdc++.h>
содержит множество заголовочных файлов, которые, возможно, и не понадобятся в конкретном проекте. А это может привести к увеличению времени компиляции.

#include <bits/stdc++.h> не является стандартным заголовочным файлом библиотеки GNU C++. Таким образом, не относящиеся к типу GCC (GNU Compiler Collection) компиляторы могут испытывать затруднения в процессе исполнения. Однако так бывает не часто!

#cpp

Подписывайтесь на канал 👉@cod_academy
👍2
Пирамидальная сортировка

Пирамидальная сортировка является методом сортировки, который интерпретирует элементы в массиве, как почти полное бинарное дерево.
Она берет элементы массива и вставляет их в пирамиду.

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

Общее время сортировки расчитывается по O(N logN) для N элементов.

#java

Подписывайтесь на канал 👉@cod_academy
👍1
Присвоение первого непустого значения из ряда

Следующая инструкция присвоит первый непустой (имеющий истинное значение) объект из множества объектов A, B и С. Или None, если все предыдущие объекты окажутся пустыми.

#python

Подписывайтесь на канал 👉@cod_academy
👍1
Ссылки в C++

Когда переменная объявляется как ссылка, она становится альтернативным именем для существующей переменной. Переменную можно объявить как ссылку, поместив в её объявление "&".

#cpp

Подписывайтесь на канал 👉@cod_academy
👍1
Google-json (GSON)

Google-json, как понятно из названия, ещё одна разработка прямиком из Google. Библиотека реализует механизмы работы с форматом JSON, а именно приведение Java-объектов в этот формат и обратно.

Примерно вот так выглядит сериализация и десериализация с помощью GSON(см картинку).

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

#java

Подписывайтесь на канал 👉@cod_academy
👍1
Почему присвоение не является копированием?

В python все является объектом. В этом легко убедится воспользовавшись функцией dir().

При присвоении в новую переменную отправляется ссылка на объект. А при изменении объекта ссылка на него не меняется.

Тут многие могут спросить про строки и числа, поэтому отвечаю — с ними то же самое. Просто при операциях не изменяется старый объект, а создается новый. Все это можно проследить воспользовавшись функцией id(), которая показывает номер объекта.

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

#python

Подписывайтесь на канал 👉@cod_academy
👍2
nullptr

Раньше для обнуления указателей использовался макрос NULL, являющийся нулем — целым типом, что, естественно, вызывало проблемы (например, при перегрузке функций). Ключевое слово nullptr имеет свой собственный тип std::nullptr_t, что избавляет нас от бывших проблем. Существуют неявные преобразования nullptr к нулевому указателю любого типа и к bool (как false), но преобразования к целочисленных типам нет.

#cpp

Подписывайтесь на канал 👉@cod_academy
👍2
Метод matches()

Возвращает значение true, если, и только в том случае, если эта строка соответствует заданному регулярному выражению.

#java

Подписывайтесь на канал 👉@cod_academy
👍1
Как отправить post запрос в Python?

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

#python

Подписывайтесь на канал 👉@cod_academy
👍2
range-based циклы

В С++11 была добавлена поддержка парадигмы for each для итерации по набору. В новой форме возможно выполнять итерации в случае, если для объекта итерации перегружены методы begin() и end().

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

#cpp

Подписывайтесь на канал 👉@cod_academy
👍2
Какая проблема возникнет с этим кодом?

Ответ: Данный код не с компилируется.

Этот вопрос на знание иерархии исключений, в данном случае FileNotFoundException унаследован от IOException, первый catch будет перехватывать все исключения и в следующий блок catch управление не будет передано.

#java

Подписывайтесь на канал 👉@cod_academy
👍2
Форматирование строк

Часто приходится работать со строкой и выводить различные данные. Не проблема, когда нужно вывести что-то короткое:
print('Hello', name). Но чаще строки нужны для отображения на формах, а не через print(). Еще чаще вывод должен быть намного сложнее.

В python3 есть очень удобный способ. Нужно поставить f перед строкой а в фигурных скобках {} написать нужную переменную. Если же эти скобки понадобились в тексте, то достаточно написать их дважды, чтобы экранировать.

Еще один способ — воспользоваться методом format(). Суть та же, но на этот раз без добавления f и добавления переменных как аргументов.

#python

Подписывайтесь на канал 👉@cod_academy
👍2
document.gif
23.4 KB
Создание PDF из HTML шаблона с помощью Python

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

https://tretyakov.net/post/sozdanie-pdf-iz-html-shablona-s-pomoshhyu-python/

Подписывайтесь на канал 👉@cod_academy
👍3
В чём разница между string и String в C#?

Ответ на самом деле очень прост: string — это просто псевдоним (alias) для System.String т.е. технически, никакой разницы нет. Так же, как и нет разницы между int и System.Int32.

https://tproger.ru/problems/c-sharp-strings/

Подписывайтесь на канал 👉@cod_academy
👍1
JavaScript: разрабатываем приложение для записи звука

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

Функционал нашего приложения будет следующим:
запись аудио
отображение записи с возможностью ее предварительного прослушивания и последующего сохранения или удаления
хранение аудио-файлов на сервере
извлечение аудио-файлов, хранящихся на сервере, и их отображение в браузере

https://habr.com/ru/companies/timeweb/articles/581086/

Подписывайтесь на канал 👉@cod_academy
👍2
10 фич в C#, о которых вы определённо должны узнать и начать их использовать

Если вы только начали изучение C# или же решили расширить свои знания, мы нашли для вас 10 фич, знание которых позволит вам избежать ошибок, писать более понятный код и сохранить кучу времени.

https://tproger.ru/translations/10-c-sharp-tips/

Подписывайтесь на канал 👉@cod_academy
Python RegEx: практическое применение регулярок

Рассмотрим регулярные выражения в Python, начиная синтаксисом и заканчивая примерами использования.

https://tproger.ru/translations/regular-expression-python/

Подписывайтесь на канал 👉@cod_academy
👍1
JavaScript: разрабатываем приложение для записи экрана


Хочу поделиться с вами решением интересной задачи: записать экран компьютера пользователя.

Общие требования к реализации:
запись должна состоять из видео и аудио
у пользователя должна быть возможность просмотра и скачивания записи
данные должны передаваться и сохраняться на сервере
запись, сохраняемая на сервере, должна быть приличного качества, но весить мало

https://habr.com/ru/companies/timeweb/articles/591417/

Подписывайтесь на канал 👉@cod_academy
👍2