Как стать автором
Обновить
1
0
Максим Сорокин @Sorro

Fullstack Analyst

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

Практическое руководство по разработке бэкенд-сервиса на Python

Время на прочтение57 мин
Количество просмотров172K
Привет, меня зовут Александр Васин, я бэкенд-разработчик в Едадиле. Идея этого материала началась с того, что я хотел разобрать вступительное задание (Я.Диск) в Школу бэкенд-разработки Яндекса. Я начал описывать все тонкости выбора тех или иных технологий, методику тестирования… Получался совсем не разбор, а очень подробный гайд по тому, как писать бэкенды на Python. От первоначальной идеи остались только требования к сервису, на примере которых удобно разбирать инструменты и технологии. В итоге я очнулся на сотне тысяч символов. Ровно столько потребовалось, чтобы рассмотреть всё в мельчайших подробностях. Итак, программа на следующие 100 килобайт: как строить бэкенд сервиса, начиная от выбора инструментов и заканчивая деплоем.



TL;DR: Вот репка на GitHub с приложением, а кто любит (настоящие) лонгриды — прошу под кат.
Читать дальше →
Всего голосов 70: ↑68 и ↓2+66
Комментарии48

План прокачки для получения профессии Data engineer

Время на прочтение2 мин
Количество просмотров24K
Последние восемь лет я работаю руководителем проектов (не пишу код на работе), что естественно негативно влияет на мой технологический бекэнд. Я решил сократить своё технологическое отставание и получить профессию Data engineer. Основной навык Data engineer — способность разрабатывать, строить и поддерживать хранилища данных.

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

Разделы:

  • Алгоритмы и структуры данных. Ключевой раздел. Изучишь его — всё остальное тоже получится. Важно набить руку в написании кода и использовании основных структур и алгоритмов.
  • Базы и хранилища данных, Business Intelligence. От алгоритмов переходим в хранению и обработке данных.
  • Hadoop and Big Data. Когда база не входит на винчестер, или когда данные нужно анализировать, но Excel уже не может их загрузить начинаются большие данные. На мой взгляд, переходить к этому разделу нужно только после глубокого изучения двух предыдущих.
Читать дальше →
Всего голосов 11: ↑10 и ↓1+9
Комментарии12

Асинхронное программирование в Python: краткий обзор

Время на прочтение5 мин
Количество просмотров85K
Когда говорят о выполнении программ, то под «асинхронным выполнением» понимают такую ситуацию, когда программа не ждёт завершения некоего процесса, а продолжает работу независимо от него. В качестве примера асинхронного программирования можно привести утилиту, которая, работая асинхронно, делает записи в лог-файл. Хотя такая утилита и может дать сбой (например, из-за нехватки свободного места на диске), в большинстве случаев она будет работать правильно и ей можно будет пользоваться в различных программах. Они смогут её вызывать, передавая ей данные для записи, а после этого смогут продолжать заниматься своими делами.



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

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

Если вы читаете книгу, а кто-то даёт вам ещё одну книгу, вы можете взять эту вторую книгу и приступить к её чтению. Но первую придётся отложить. По такому же принципу устроено и многопоточное выполнение кода. А если бы несколько ваших копий читало бы сразу несколько книг, то это было бы похоже на то, как работают многопроцессорные системы.
Читать дальше →
Всего голосов 40: ↑38 и ↓2+36
Комментарии28

Дача зимой: быть или не быть?

Время на прочтение7 мин
Количество просмотров10K
Нередко встречаются сообщения о выходе новых устройств IoT или комплектах умного дома, но редко бывают отзывы о реальной эксплуатации таких систем. А мне подкинули задачку, которая достаточно распространена по всей территории России и ближайших стран: надо было обезопасить дачу и обеспечить возможность эксплуатации в осенне-зимний период. И охрану, и вопрос автоматизации обогрева удалось решить буквально за один день. Всех интересующихся прошу под кат. По традиции, для любителей смотреть, а не читать, сделал видео.

Всего голосов 21: ↑17 и ↓4+13
Комментарии53

5 способов сделать Python-сервер на Raspberry Pi. Часть 1

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

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



Допустим, у нас уже есть супер Python-программа, делающая что-то очень важное, от мигания светодиодом до управления «умным домом» или хотя бы кормушкой для кота. Я покажу разные способы, от простого к сложному, как сделать web-доступ к такому приложению, добавив немного кода.

Статья расчитана для начинающих, профи вряд ли найдут здесь что-то кардинально новое, ну а новичкам в Linux надеюсь, будет полезно. Для тех кому интересно, продолжение под катом.
Читать дальше →
Всего голосов 45: ↑39 и ↓6+33
Комментарии43

«Находки аудиомана»: древо музыкальных жанров, ксилофон из GitHub-событий и эфиры спутников

Время на прочтение4 мин
Количество просмотров8.2K
В прошлый раз мы рассказывали о картах, на которые нанесена разного рода аудиоинформация. Продолжаем тему музыкальных находок и говорим о сервисах, в которых можно «залипнуть».

Всего голосов 16: ↑14 и ↓2+12
Комментарии1

Сравнительный обзор весов. Личный опыт и тесты на себе

Время на прочтение15 мин
Количество просмотров88K
Совсем недавно я сделал большой сравнительный тест термосов. Многих это заинтересовало, а некоторые дамы в личку благодарили за отличную идею подарка к Новому Году. Понимая, что дамы тоже будут ждать подарков, я и сделал этот сравнительный тест весов. Вот только дарить их надо с особой осторожностью. Ведь весы есть у каждой девушки, но далеко не всем она готова озвучить результаты взвешивания. А такой подарок может и обидеть. Поэтому я сделал обзор SMART-весов, которые «не просто позволяют узнать вес, но следят за здоровьем всей семьи». Именно с такими словами надо вручать подарок.

По традиции, если лень читать, то видеообзор будет ждать в конце статьи.

Всего голосов 26: ↑17 и ↓9+8
Комментарии79

Тащим музыку из ВК без публичного music API

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

Как все начиналось


Дело было вечером, делать было нечего… Точнее, я просто хотел загрузить аудиокнигу перед парами и тут меня ждал сюрприз. Кэш в кейт мобайле отключили. Как так? Что делать? Конечно же писать свое приложение с кэшем и аудиозаписями. Но для начала нужно понять, как вк превращает ссылки вида audio%user_id%_%track_id% в прямые ссылки на mp3. Что из этого вышло приложения я не написал и как скачать определенный плейлист можно прочитать под катом.
Читать дальше →
Всего голосов 35: ↑34 и ↓1+33
Комментарии46

Литература на выходные: 15 материалов по структурированию кода для разработчиков

Время на прочтение5 мин
Количество просмотров27K
Одним из параметров оценки кода служит его чистота. Создатель языка моделирования UML Гради Буч (Grady Booch) писал:

«Чистый код прост и ясен. Чистый код читается как хорошо написанное произведение. Чистый код никогда не скрывает намерений создателя, но, напротив, полон четких абстракций и простых линий передачи управления»

Сегодня мы собрали для вас список книг и статей по этой теме, которые рекомендуют к прочтению резиденты Hacker News, Stack Exchange и других профильных платформ.

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

Дайджест продуктового дизайна, июль 2017

Время на прочтение11 мин
Количество просмотров9K
Уже семь лет я публикую регулярные обзоры свежих статей по теме интерфейсов, новых инструментов и коллекций паттернов, интересных кейсов и исторических рассказов. Из лент нескольких сотен тематических подписок отбирается примерно 5% стоящих публикаций, которыми интересно поделиться. Предыдущие материалы: апрель 2010-июнь 2017.
Дайджест продуктового дизайна, июль 2017
Читать дальше →
Всего голосов 15: ↑13 и ↓2+11
Комментарии0

От регистрации до витрины: как выложить мобильное приложение в App Store и Google Play (часть 2)

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


В первой части нашего туториала мы зарегистрировались в обоих магазинах — App Store и Google Play. Но чтобы ваше приложение стало доступным для скачивания, необходимо совершить ещё немало действий. Давайте их рассмотрим.
Читать дальше →
Всего голосов 28: ↑23 и ↓5+18
Комментарии0

+500 бесплатных инструментов для запуска вашего стартапа в 2017 году

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


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

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

Итак, мы нашли в интернете бесплатные и условно-бесплатные инструменты для роста вашего бизнеса. Когда они дадут вам желаемый результат, вы можете оформить платную подписку.
Читать дальше →
Всего голосов 74: ↑60 и ↓14+46
Комментарии26

Проблемы эргономики рабочего места. Глава из книги «Ergonomic workplace design» 2017

Время на прочтение16 мин
Количество просмотров24K
Конспект главы современной (2017) книги «Ergonomic workplace design» посвящен теме эргономики рабочего офисного места. Учитывая количество унылых и очень унылых российских офисов – информация очень важная. Хорошие и неустаревшие книги по эргономике компьютерного места встречаются редко (особенно те, в которых компьютер не называется ЭВМ), а если встречаются – все на английском. Ученые одного из ведущих вузов США Cornell University выпустили книгу, обобщающую все современные и наиболее актуальные исследования по эргономике рабочего места (офис, школа, лаборатория, университет и др.). Информация ниже очень важна для всех, кто мечтает об организации комфортного и эффективного офиса.

image
Раздел II
Проблемы эргономики рабочего места

8. Рабочее место в офисе
Peter Vink, Iris Bakker, Liesbeth Groenesteijn

Содержание
8.1. Умственная работа в офисе
8.2. Устойчивая продуктивность
8.3. Пространство вокруг офиса
8.4. Пространство офиса
8.5. Формат офиса
8.6. Индивидуальное рабочее место
8.7. Частично стоячая работа и смена позы
8.8. Интерьер комнаты переговоров
8.9. Заключение. Список литературы
Читать дальше →
Всего голосов 8: ↑5 и ↓3+2
Комментарии8

Совместное редактирование. Часть 1

Время на прочтение9 мин
Количество просмотров43K
Добрый день. Последний год я занимаюсь в проекте «МойОфис» вопросами совместного редактирования (collaboration). Оглядываясь назад, могу констатировать, что это непростая и очень интересная задача. Поэтому я хотел бы подробно рассказать о ней и дать ответы на следующие вопросы:

  1. Какие существуют подходы к обеспечению совместного редактирования?
  2. Насколько они сложны в реализации?
  3. Можно ли взять готовую библиотеку и использовать ее в своем проекте?
  4. Можно ли вести разработку без оглядки на совместное редактирование?



Для того чтобы подробно и аргументированно ответить на них, необходимо написать довольно много материала, поэтому статей будет несколько, присаживайтесь поудобнее, мы начинаем.
Читать дальше →
Всего голосов 46: ↑41 и ↓5+36
Комментарии29

Архитектура микросервисов

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


К сожалению, у меня нет опыта работы с микросервисами, но около года назад я очень активно интересовался этой темой и изучил все источники информации, какие смог найти. Я просмотрел несколько выступлений на конференциях, прочитал несколько статей очень авторитетных и опытных специалистов вроде Мартина Фаулера, Фреда Джорджа, Эдриана Кокрофта и Криса Ричардсона, чтобы как можно больше узнать о микросервисах. Эта статья — результат моих изысканий.
Всего голосов 79: ↑75 и ↓4+71
Комментарии267

Делаем проект на Node.js с использованием Mongoose, Express, Cluster. Часть 1

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

Введение


Добрый день, дорогой %username%! Сегодня мы будем описывать создание каркаса приложение по типу MVC на Node.js с использованием кластеров, Express.js и mongoose.


Задача — поднять сервер который имеет несколько особенностей.


  • Работает в несколько асинхронных потоков.
  • Сессионная информация будет в общей для всех потоков.
  • Поддержка HTTPS.
  • Авторизация.
  • Легко масштабируем.

Статья написана новичком для новичков. Буду рад любым замечаниям!

Читать дальше →
Всего голосов 27: ↑20 и ↓7+13
Комментарии35

20 полезных Node.js фреймворков

Время на прочтение8 мин
Количество просмотров82K
За последние годы Node.js значительно повысил свой статус от экспериментальной технологии до основы для серьезных проектов. Node.js дает возможность построить достаточно сложные, высоконагруженные приложения на простом, элегантном и, самое главное, легковесном механизме. Но прежде всего Node.js – это совершенно увлекательная и захватывающая вещь, с которой по-настоящему интересно работать!

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

Что происходит с командами при использовании BaseCamp, Trello, YouTrack, Smartsheet, Slack, YouGile. Обзор часть 1

Время на прочтение6 мин
Количество просмотров27K
Привет, Хабровчане! В статье расскажу про опыт использования систем планирования/управления/взаимодействия, каждой из которых пользовались в компании RedHelper не менее 6 месяцев. Упор будет делаться не на функции систем, а на то, что меняется в команде при использовании инструмента автоматизации.

BaseCamp Trello YouTrack Smartsheet Slack YouGile

Обзор BaseCamp Trello YouTrack Smartsheet Slack YouGile

В конце — обзор собственного инструмента YouGile, который для нас сегодня оказался универсальным местом планирования и общения. Сначала сделали “на коленке” для себя, с очень простой идеей — Agile Board, где каждая задача это чат. Сейчас запущен для публичного тестирования.
Читать дальше →
Всего голосов 34: ↑31 и ↓3+28
Комментарии39

Domain-Driven Design: стратегическое проектирование. Часть 1

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


Здравствуйте, хабрапользователи! В этой статье речь пойдет о предметно-ориентированном проектировании программного обеспечения с использованием, в первую очередь, стратегических шаблонов. Вторую часть – про тактическое проектирование – читайте здесь.

Данный подход использовал Вон Вернон в своей книге «Реализация методов предметно-ориентированного проектирования». Цель написания этой книги: дать возможность разработчикам совершить полет на самолете DDD (в детстве автор зачастую путешествовал со своей семьей на небольших самолетах). Вид с высоты дает более широкое представление о проблемах моделирования, не давая застрять в различных технических деталях. Наблюдая ландшафт DDD таким способом, можно осознать преимущества как стратегического, так и технического проектирования. Подробнее – под катом!
Читать дальше →
Всего голосов 25: ↑24 и ↓1+23
Комментарии64

300 потрясающих бесплатных сервисов

Время на прочтение11 мин
Количество просмотров1.6M


Автор оригинальной статьи Ali Mese добавил ещё 100 новых бесплатных сервисов. Все 400 потрясающих сервисов доступны здесь. И еще подборку +500 инструментов от 10 марта 2017 г. смотрите здесь.



A. Бесплатные Веб-Сайты + Логотипы + Хостинг + Выставление Счета

  • HTML5 UP: Адаптивные шаблоны HTML5 и CSS3.
  • Bootswatch: Бесплатные темы для Bootstrap.
  • Templated: Коллекция 845 бесплатных шаблонов CSS и HTML5.
  • Wordpress.org | Wordpress.com: Бесплатное создание веб-сайта.
  • Strikingly.com Domain: Конструктор веб-сайтов.
  • Logaster: Онлайн генератор логотипов и элементов фирменного стиля (new).
  • Withoomph: Мгновенное создание логотипов (англ.).
  • Hipster Logo Generator: Генератор хипстерских логотипов.
  • Squarespace Free Logo: Можно скачать бесплатную версию в маленьком разрешении.
  • Invoice to me: Бесплатный генератор счета.
  • Free Invoice Generator: Альтернативный бесплатный генератор счета.
  • Slimvoice: Невероятно простой счет.

Читать дальше →
Всего голосов 341: ↑325 и ↓16+309
Комментарии107

Информация

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