Архив категории ‘Разное’

Эффективный ввод-вывод в разных языках программирования

Не всегда стандартные средства достаточно эффективно считывают и выводят данные даже в знакомых вам языках программирования. В этом уроке обсудим, как эффективно организовать ввод-вывод данных в различных языках программирования на примере простой задачи. Задача В первой строке записано число n(n≤106). В следующих n строках записаны пары чисел. Посчитайте и выведите суммы чисел для каждой из n строк. Пример ввода: 3 1 […]

Как решать алгоритмические задачи

Чтобы научиться хорошо проектировать алгоритмические программы, нужно знать, на что обращать внимание. Это важный навык, который мы будем тренировать на протяжении всего курса. В этом уроке вы узнаете основы этого процесса, без которых сложно освоить остальные темы курса. Часто можно встретить мнение: «Я прочитаю условие задачи, потом посмотрю каноничное решение и запомню его». Увы, так […]

Бинарный поиск

Есть и другой способ решить задачу поиска элемента в массиве. Если элементы в массиве упорядочены по возрастанию, то найти нужный можно гораздо быстрее. Представьте, что ищете слово «мультифора» в словаре. Вряд ли вы станете листать страницу за страницей, начиная с первой, — ведь слова отсортированы по алфавиту. Лучше открыть книгу примерно посередине. Если вы попали […]

Линейный поиск

Одна из основных задач при работе с алгоритмами — оценка эффективности программы и поиск наиболее экономичного подхода. Самое простое и поверхностное решение этой задачи — написать программу и замерить время её выполнения. Программа тормозит? Изменить программу, оптимизировав решение. Но настоящие алгоритмисты так не делают — они не любят зря тратить силы: писать медленные программы, измерять […]

Кастомизация модели User в Django

При развёртывании Django в проекте сразу автоматически создаётся модель пользователя User с предустановленными атрибутами username, password, email, first_name, last_name. Это лишь основные; полный список атрибутов описан в документации. Обычно этой модели хватает для решения задач, связанных с управлением пользователями. Однако часто возникает необходимость расширить модель User. Например, требуется добавить в профайл биографию, дату рождения, должность, фотографию или что-нибудь ещё. […]

Работа с Git в команде

Git — это распределённая система контроля версий; она помогает избежать досадных ошибок и конфликтов при совместной работе над проектом. В этом уроке мы рассмотрим основные команды, полезные при работе в команде. И про ветки тоже поговорим. С них и начнём. Ветки (англ. "branches") Ветка — это изолированный поток разработки, в котором можно делать коммиты так, […]

Оперативная память и представление данных

Эффективность программы можно оценить по тому, как она расходует разные типы ресурсов компьютера. Основные из них — процессорное время и оперативная память. А ещё есть пропускная способность сетевых подключений, время работы жёсткого диска и некоторые другие ограниченные ресурсы. В первом спринте мы говорили о том, как алгоритм использует процессорное время. Теперь нас будет интересовать потребление […]

Kittygram 2: новые возможности

Kittygram серьёзно подрос, обзавёлся новыми возможностями и стал удобнее. А тут поступила новая задача: новые пользователи хотят самостоятельно регистрироваться в нашем сервисе. Мало того: нужно настроить проект так, чтобы добавлять, обновлять и удалять информацию о котиках могли только их хозяева. Судя во всему, нового релиза не избежать. Ну что ж, пусть будет Kittygram v2.0. Релиз […]

Аутентификация по токену. JWT + Djoser

Аутентификация Аутентификация на веб-сайтах, как правило, устроена так: при входе на сайт вы один раз вводите логин и пароль, система проверяет ваши данные и, в соответствии с вашими правами, предоставляет вам доступ к сайту. При переходе по страницам этого сайта вам не приходится каждый раз заново вводить свои данные: система запоминает вас, «сохраняет ваше состояние». […]

Вьюсеты в Django. Расширенные возможности

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