ХабрПостыНовостиМегапосты?

Первый pet-проект, но не бесполезный?

Чуть более года назад, уже написав небольшое количество простых программ на Python, я начал размышлять об идее создания своего первого более‑менее полноценного проекта. Писать что‑то, что уже было 100 500 раз написано до меня, желания совсем не было, хотелось хоть немного оригинальности, и полезности. Но найти оригинальную идею под свой невысокий уровень знаний оказалось не так‑то просто.

Однако как‑то на всем известном видеохостинге я наткнулся на трансляцию мужика с проекта Moscow Python (прошу прощения, имя я не запомнил, и сейчас уже просто не найду) который вещал что‑то о начале пути питониста, а заодно рассказал о программе для изучения английского языка Anki. А далее, прямо на трансляции, он сам решил написать аналогичную программу, но совсем в примитивном виде. И тут, очевидно вдохновившись, меня посетила идея, что вполне полезной могла бы оказаться программа для изучения технического английского языка. Ну зачем мне сразу весь язык, если в конкретный период времени он мне необходим только для уверенного чтения и понимания документации. И я написал.

Написал, но никому не показывал, так как понимал, что с течением времени мне может стать за этот проект стыдно. Однако сейчас я пишу эту статью, так как пощупав приложение по прошествии времени стыда я не испытал. Ни испанского, ни обыкновенного. Возможно это связано с тем, что я просто недалеко ушел от своего уровня годичной давности, однако простите за нескромность, но по моему мнению программа действительно получилась довольно простой и полезной. Как по своему прямому назначению, так и в качестве образца для изучения языка программирования Python начинающим специалистам (ссылка на проект будет ниже). Ну и захотелось поблагодарить мужика с Moscow Python за интересную идею.

Основной функционал

  1. Программа принимает от пользователя URL на страницу с документацией (но и не только).

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

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

При написании кода были затронуты темы:

Для начала работы достаточно запустить app.py.

После нужно скормить приложению любой URL, и наслаждаться космическим процессом обучения.

В целом, приложение можно запустить на сервере и открыть для свободного доступа. Для каждого пользователя создается отдельный словарь и друг‑другу они не мешают. Хотя над безопасностью в приложении не мешало бы поработать, так как процесса авторизации там нет, «личный кабинет» доступен по IP.

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

Кстати, репозиторий проекта TakeWords на GitHub.

Я ведь достаточно поздно увлекся разработкой, но всё же окончательно решил перейти в эту сферу, уж больно мне это нравится. Возможно в каком‑то ближайшем будущем даже осмелюсь на собеседования для трудоустройства в профильные компании. А пока я в основном занимаюсь автоматизацией работы со всякими Web3 проектами, заставляя свои приложения добывать мне разные токены. Но об этом я пишу в канале IT Police.

Спасибо, что потратили время на прочтение этого текста. Если будут вопросы по коду программы, я с удовольствием на них отвечу. А если программа вам всё же понравилась, буду благодарен за звездочку на GitHub. Всех благ!

@it_police
13.07.2024 23:08 UTC
Первоисточник

Комментарии

@Hinedes
14.07.2024 05:38 UTC
0

Честно считаю, нормальный пэт проект.

Кто эти минусы ставит и за что?

14.07.2024 06:32 UTC
+3

Видимо за рекламу ТГ канала в конце. Вот вам проект без деталей, но обязательно придите ко мне в телегу!

14.07.2024 06:35 UTC
+4

Пет проект замечательный.

Статья не несёт в себе никакой ценности.

@it_police
14.07.2024 08:36 UTC
+1

Благодарю сообщество за оценки. Действительно, статья совсем не изобилует техническими моментами, вероятно стоило разобрать парочку тем, например как внедрял многопроцессорность и многопоточность для ускорения работы примерно в 10 раз, с примерами кода. Почему-то подумал, что это ускучнит текст. Минусы заслужил, всё осознал, буду исправляться.

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

@avran02
14.07.2024 09:44 UTC
+1

Крутая идея, завидую твоему воображенияю)

Насчёт кода, есть парочка предложений:

1) "авторизация по ip очень ненадёжная т.к. мало у кого есть статический ip. По крайней с телефона к меня каждый день новый ip и я вообще не уверен, что он не может поменяться в процессе "изучения" странички

2) У тебя все обработки а одном файле. Ч таким количеством ручек это ок, и я не призываю пытаться бить это на микросервисы, однако я бы поработал над архитектурой. Я почти всегда использую слоистую архитектуру (как в java spring) и она очень сильно помогает разделять приложение на модули.

14.07.2024 09:50 UTC
0

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

14.07.2024 16:29 UTC
0

Может конечно. А ещё с одного айпи может полстраны сидеть

@alextrof94
15.07.2024 05:27 UTC
0

Любой первый пет-проект несёт свою пользу. В первую очередь для разработчика, который этим проектом действительно начинает пользоваться и начинает понимать UI/UX и свои огрехи: видит, что ему неудобно использовать и меняет это на что-то более удобное. И да, в первую очередь, как видишь, что проектом уже можно начать пользоваться - надо о нем рассказать, чтобы получать фидбэк. Иначе, если проектом не пользуется никто и даже разраб - его и пет-проектом не назвать.

Ещё в свои 16 лет (жесть, 14 лет назад, как быстро летит время) я делал свой первый пет-проект для подсчёта просмотренных серий сериалов и аниме. Программа была простейшая, пряталась в трее, тыкаешь, вылезает меню с действием "добавить" и список добавленных сериалов с количеством серий, тык по сериалу просто инкресентировал значение. Друзьям рассказал и многие сразу заинтересовались. Первым делом мне сказали, что было бы ещё удобно, чтобы при клике правой кнопкой открывалась сразу нужная серия на сайте (благо мест, где смотрели знакомые было не так и много, но там и для новых мест был вариант открывать серию по маске), и это стало действительно удобно. Больше не приходилось вручную открывать сайт и искать нужную серию, хотя я и так активно пользовался закладками, но даже мне стало это экономить несколько секунд, а кто-то ведь сначала открывает гугл, ищет там сайт, потом ищет сериал, затем серию. Раньше каждая серия была на отдельной странице сайта, это сейчас уже появились комбайны-плееры с тремя источниками, пятью озвучками и всеми сезонами и сериями в одном, да ещё и со счётчиками просмотренных серий... Тулзой в итоге знакомые пользовались на протяжении лет 5...

А об объективной пользе проекта для окружающих сказать трудно. Кому-то "этот ваш интернет и нафиг не нужон", а кто-то без него жизни не видит.

16.07.2024 13:25 UTC
0

Благодарю за информативный комментарий. Мой первый "пет-проект" в 16 лет был т.н. "чат-бот" с именем "Ануфрий", написанный на паскале. В те времена еще не было даже намеков на нейронки, только мечты, и я пытался изобразить умные ответы на вопросы. Под капотом, конечно же, всё было элементарно- юзер писал вопрос, бот искал заготовку по ключевым словам. Но одноклассники оценили))

А потом я, несмотря на тягу к программированию, ушел совсем в другую сферу. В 25 лет опять вспоминал о своем "предназначении", но решил, что уже слишком много пропустил и вообще слишком стар. А в 35 решил, что самое время начать.

@CrazyElf
17.07.2024 14:13 UTC
0

Интересная идея! Обычно самое сложное именно хорошую идею для реализации пет-проекта найти.