Форум сайта python.su
Приветствую!
На днях начал изучать python, так как ранее работал только с delphi, c/c++, для меня подобный язык немного в диковинку, если отходить от консольных приложений. Умею работать с *nix подобными платформами.
Ранее, писал win версии плееров на delphi и c++ для vk музыки и яндекс музыки, соответственно. Используя, библиотеку bass и парсер JSON - это, в принципе, задача была простая.
Для более производительного изучения python поставил цель, на своем мини пк для себя развернуть музыкальный сервис.
Что планируется сделать:
- доступ по ip:port на вебморду моего музыкального сервиса, висящего на мини пк
- прослушивание плей-листа дня, подборка, поиск по исполнителю
Вся информация будет браться из вне, запросы отправляться с моего сервера и получать ответ в формате JSON. Парсинг и работа с данными, отправка запросов, работа с api средствами python (скриптинг) не составит труда.
Прошу помощи экспертов по python, а именно задать вектор необходимых инструментов и знаний для реализации данной задачи:
какие инструменты, фреймворки использовать для отображения плейлистов, проигрывания музыки, реализация поисковой строки, взаимодействие интерфейса (фронт-энда) со скриптами.
Буду также признателен, уже примерам готовых открытых подобных проектов на python, либо обучающему материалу по данному направлению.
Заранее благодарен!
Офлайн
ispА где твой код?
Ранее, писал win версии плееров на delphi и c++ для vk музыки и яндекс музыки, соответственно. Используя, библиотеку bass и парсер JSON - это, в принципе, задача была простая.
Отредактировано py.user.next (Дек. 13, 2022 01:32:24)
Офлайн
py.user.nextВот, как пример, мой плеер для вк музыки
Так что покажи сначала, что ты писал. А тебе уже дадут совет, как тебе там дальше учиться. И тем более, если ты работу ищешь, так завуалированно рекламируя себя типа ты ученик такой, то код тоже имеет значение.
py.user.nextс этим проблем нет, ты прав, об этом я и написал:
А JSON для тебя должен быть вообще как азбука. Ты ещё скажи, что ты в ворде умеешь документы набирать. У меня вообще свои форматы в программах бывают, потому что мне так удобно. Если есть JSON, я не обязан всё в JSON засовывать, я могу свой формат сделать и пользоваться им сколько угодно.
isp
Вся информация будет браться из вне, запросы отправляться с моего сервера и получать ответ в формате JSON. Парсинг и работа с данными, отправка запросов, работа с api средствами python (скриптинг) не составит труда.
Офлайн
ispЯ пролазил весь твой сайт и аккаунт во ВКонтакте, даже зашёл к тебе на фриланс аккаунт, но не нашёл ни строчки кода. Нашёл только одну функцию на Дельфи и всё.
Вот, как пример, мой плеер для вк музыки
ispКак раз эти принципы, которые я тебе описал, я узнал, работая в Unix-подобных операционных системах и изучая язык C по трудам Денниса Ритчи и других мастеров. Там просто всё испещрено конвейерами из программ, и говорится об этом в куче разных мест. А по тебе видно, что ты начинал с Дельфи и Паскаля, поэтому мозги сформировались чисто паскале-досовским образом. Потом ты мигрировал в винду, а там система для бухгалтерш тупых, в которой программистского нет ничего. Над бухгалтершами у тебя, конечно, приоритет появляется, ты умнее бухгалтерш, конечно, ну и что? Как программист-то ты всё равно не развиваешься.
Умею работать с *nix подобными платформами.
ispТебе надо сначала мозги вправить. Ты забудь про Windows, поставь себе Linux и изучай программы там. Они маленькие, но ими пользуется весь мир уже сорок лет не просто так.
Для себя я выяснил, что мне надо скорее всего django + python
ispНе заморачивайся с MVC, оно тебя не спасёт. Django нужен для разработки сайтов с админками. На Flask'е ты свою хрень напишешь легко, там тебе придётся налечь на JavaScript, потому что всё общение с веб-мордой идёт через скрипты на нём. Не думаю, что у тебя будет миллион запросов, чего Flask не выдержит. Лишь изредка тебе придётся что-то там посылать по HTTP. Если же ты будешь писать музыкальный сервис на Django, то у тебя в итоге получится музыкальный интернет-магазин, а не музыкальный сервис. Пока что я вижу, что ты хочешь программы свои в винде, которыми никто не пользуется, переписать в веб, чтобы ещё и там ими никто не пользовался.
что мне надо скорее всего django + python, как мини mvc представление
Отредактировано py.user.next (Дек. 14, 2022 00:07:29)
Офлайн
py.user.next, благодарю, за столь развернутый ответ.
py.user.nextу меня нет аккаунта на фрилансере, но не суть.
Я пролазил весь твой сайт и аккаунт во ВКонтакте, даже зашёл к тебе на фриланс аккаунт, но не нашёл ни строчки кода. Нашёл только одну функцию на Дельфи и всё.
py.user.nextСобственно поэтому и пишу здесь Есть пару мини пк с дебиан, скажем так для обучения.
Тебе надо сначала мозги вправить. Ты забудь про Windows, поставь себе Linux и изучай программы там. Они маленькие, но ими пользуется весь мир уже сорок лет не просто так.
py.user.nextдоля правды есть, но чтобы не пользовался не в том смысле, что будет плохое, а в том, что проект будет для себя, в качестве обучения, “вправления мозгов”. Ключ api, той же яндекс музыки, защищен от перехвата в приложение. Появись ключ в паблике, толку от моего плеера будет нулевой, а так мне естественно не жалко
Пока что я вижу, что ты хочешь программы свои в винде, которыми никто не пользуется, переписать в веб, чтобы ещё и там ими никто не пользовался.
py.user.nextвот здесь спасибо. А есть примеры проектов подобных? Есть качественная литература “без воды” по JS?
На Flask'е ты свою хрень напишешь легко
Отредактировано isp (Дек. 13, 2022 23:40:14)
Офлайн
ispНет, он там есть, но не суть.
у меня нет аккаунта на фрилансере
ispТебе надо будет поставить Linux второй системой рядом с Windows. Не на виртуалку, а второй системой. Там будет загрузчик GRUB потом, как космический корабль он такой по своему устройству, и в нём будет два пункта: Linux и Windows. То есть Linux должна одна на компе работать и вся память и диски должны быть только ей доступны. А потом уже в неё поставишь виртуалку, а в эту виртуалку поставишь Windows себе. И то, если это понадобится вообще. Я вот, например, занятия по ассемблеру провожу в Windows XP на виртуалке. Если она повисла или там синий экран выдаёт, компьютер перезагружать не надо, ты просто её выключаешь и загружаешь потом по новой с сохранённого снимка, где с ней всё в порядке.
Есть пару мини пк с дебиан, скажем так для обучения.
ispПроекты вообще всякие можешь поискать на GitHub'е
А есть примеры проектов подобных?
ispДа есть книжки и платные, и бесплатные. Я по бесплатной его изучал для ознакомления.
Есть качественная литература “без воды” по JS?
Отредактировано py.user.next (Дек. 14, 2022 01:59:46)
Офлайн
py.user.nextнавеяло ностальгией, я asm не знаю, но когда-то использовал olly debugger в качестве отладки и анализа по
например, занятия по ассемблеру провожу в Windows XP на виртуалке
py.user.nextсейчас обучаюсь, пишу простенькие скрипты, работа со списками и попробовал уже unittest, но в качестве простейшего “assertEqual”, проверять что на выходе работы функции, в дальнейшем планирую приобрести книгу “Python. Разработка на основе тестирования” Персиваль.
Дальше тебе надо будет изучить юнит-тестирование.
py.user.nextЗдесь не знаю, стоит ли покупать книгу, либо достаточно статей в интернете? Гипотетически ничего сложного в этой системе нет, как работа с бд: коммит, роллбэк ?
Дальше тебе надо будет научиться использовать систему контроля версий
py.user.nextа программу не отлаживаешь? пошаговое отслеживание выполнения с брекпоинтами? или это не актуально для python?
Я вот, например, себе эти всякие среды ставлю, но я ими не пользуюсь.
Офлайн
ispКороче, он нужен для патчинга уже готовых программ. У тебя, например, парольный менеджер стоит, я беру, применяю патч к нему, который сам изготовил. Ты им пользуешься дальше, а патч во время применения залез в какую-нибудь dll-библиотеку этого менеджера и пропатчил её так, что она все твои пароли так же шифрует, как и раньше, ты типа защищён там, но перед этим она их теперь сохраняет ещё в отдельный текстовый файлик в каком-нибудь зашифрованном виде и он там где-то рядом лежит. Ты смотришь - какой-то файлик появляется, в нём бинарная строка какая-то просто, думаешь “ну, программа там себе что-то сохраняет, не знаю”. А я потом прихожу, этот файлик забираю и все твои пароли в нём. Ни один антивирус всю эту хрень не покажет, потому что эти все антивирусы только на массовые инциденты срабатывают, которые зарегистрированы у них там в базах и так далее. То есть ты не просто ради интереса его изучаешь, а ты им можешь операции какие-то проводить над уже готовыми программами, исходников которых у тебя нет. Я вот как-то в Linux в одной программе думал “как бы её splash-screen убрать текстовый?”, там не было опции, каждый раз название этой программы на весь экран выводилось при каждом запуске. Взял её, посмотрел, из чего она там состоит, нашёл динамическую библиотеку, где этот splash-screen хранится в виде строки и просто туда нуль-символ поставил на место её начала (там длину нельзя менять у файла) - и всё, splash-screen'а не было больше, программа работала прекрасно. До ассемблера я даже не полез бы там что-то искать, так как непонятно, где там что, как оно устроено, файлы полностью бинарные.
навеяло ностальгией, я asm не знаю, но когда-то использовал olly debugger в качестве отладки и анализа
ispНу вот, в питоне есть unittest, он скопирован с Java, там они появились. А вообще в питоне используют pytest сейчас. Я также использовал doctest, пока не было pytest. На них можно быстро писать эти тесты, быстрее, чем на unittest. Но на unittest всё есть и оно хорошо документировано. Там тебе нужно будет ещё изучать моки. Мок - это такой объект-кукла или объект-чучело. Суть в том, что если у тебя функция подключается по сети куда-то там, то можно ей вместо сети дать вот такой объект-куклу. А этот объект-кукла будет твоей функции сообщать “о! подключение удалось! страница есть на сайте!” и даже будет этой функции писать текст этой страницы, включая исходник там и всё прочее. Функция даже не будет понимать, что это не сеть никакая, а просто пустышка, которая изображает из себя сеть. То же самое там с базами данных делается, если функции там что-то пишут или читают из них. Это нужно, чтобы максимально со всех сторон протестировать эту функцию, и при этом не нужно было там ждать подключений, настоящие базы там трогать и тому подобное. Там разные разновидности есть таких объектов. Это всё надо будет изучить, но оно небольшое.
сейчас обучаюсь, пишу простенькие скрипты, работа со списками и попробовал уже unittest, но в качестве простейшего “assertEqual”, проверять что на выходе работы функции, в дальнейшем планирую приобрести книгу “Python. Разработка на основе тестирования” Персиваль.
ispОна сложная, но её сделал тот же, кто Linux сделал. То есть она бесплатная, она будет всегда.
Здесь не знаю, стоит ли покупать книгу, либо достаточно статей в интернете? Гипотетически ничего сложного в этой системе нет, как работа с бд: коммит, роллбэк ?
ispВот Unit-тесты как раз снимают эту необходимость в дебаггере. Они есть и для питона, и для JavaScript, и для C. Когда я себе делал веб-приложение, оно запускалось локально и было на JavaScript написано. Так его функции я все прижал юнит-тестами. Ну, когда функцию покрываешь юнит-тестами, она становится такой прижатой со всех сторон, потому что ты юнит-тестами проверяешь её каждую сторону. То же самое было на C. Когда я писал свою программу без юнит-тестов, я постоянно сидел в дебаггере gdb, потому что просто не понимал, почему оно там не преобразуется правильно. Но вот когда я CUnit поставил и покрыл исходники юнит-тестами, то сразу эти проблемы решились и в дебаггер я просто перестал заходить. То есть дебаггер - это древнее средство, которое нужно было, чтобы определять хотя бы в каком месте проблема. А сейчас юнит-тесты когда есть, то половина из них показывает, где проблема, а половина показывает, где всё окей. То есть поменялся процесс разработки. Дебаггер сейчас нужен, когда ты в чужом коде хочешь что-то найти, разобраться в нём и так далее.
а программу не отлаживаешь? пошаговое отслеживание выполнения с брекпоинтами? или это не актуально для python?
С JS может быть затык он мне еще давно как-то не понравился, наверное, стоит все-таки приобрести книгу и по нему.
Благодарю!
ispТам много асинхронного кода на нём пишется обычно. А асинхронщина - это отдельное направление в разработке. То есть нужно знать все эти модели тоже. То есть одного JavaScript может не хватить, потому что надо будет сделать что-то асинхронное, а ты асинхронные вещи никогда не делал. И JavaScript в этом не поможет, потому что для этого надо асинхронные модели изучать.
С JS может быть затык
Офлайн
py.user.nextМогли бы порекомендовать ресурсы или книгу (которые начал изучать, относительно устарели) для изучения Flask? Был бы благодарен такой же информации и по django
Проекты вообще всякие можешь поискать на GitHub'е
https://github.com/topics/flask
Офлайн
ispДокументация по Flask
Могли бы порекомендовать ресурсы или книгу (которые начал изучать, относительно устарели) для изучения Flask? Был бы благодарен такой же информации и по django
Офлайн