Привет, Хабр!
Начну с того, что я начинающий python-разработчик, которому вполне не просто найти свой первый опыт коммерческой разработки. Где-то не хватает знаний, где-то вакансий, но речь не об этом, я здесь не жаловаться, а обсудить насущное :)
Давеча, на одном зарубежном ресурсе наткнулся на ветку форума, где идентичные мне по опыту разработчики рассуждали о полезности/целесообразности pet-projects, попутно делясь идеями самих проектов. Благо, мой intermediate позволяет мне вникать в суть без без переводчиков :)
Без сомнения, в сообществе Хабра ни раз слышали про pet-проекты, но для тех немногих, кто при виде этого слова в великих думах свел брови - в двух словах:
Pet-проект (так же side-проект) - проект, выполняющийся разработчиком в свободное от основной работы время. По тематике - от "антона до батона". Главное - нести пользу и удобство людям, его использующим.
Может исполняться как лично, так и в группе с другими специалистами.
Ближе к сути. Господа-джуны, наслушавшись более опытных товарищей, в серьез обсуждали проблему, которая близка и мне, а именно - проблему первого коммерческого опыта. В древе обсуждения у кого-то (назовем его господином N) всплыла идея создания pet-проекта, который может заменить собой тот самый вожделенный опыт.
Как вы поняли, я ждать не стал, реализовав одну из идей с ветки господина N. Хочу поделиться своим видением с вами, получив в замен уже ваше критическое мнение. Все-таки ресурс тот - иностранный, и возможно, ситуация в русскоговорящем сегменте далека от зарубежного рынка. В общем, вам решать.
Написал свой свой первый проект, который может, по моему мнению, дать серьезную пользу его юсерам. Это телеграм-бот, написанный на python - Шифр Цезаря 2.0 - @caesar_code_bot
Бот шифрует любое сообщение, выдает фразу и ключ для расшифровки. Расшифровывает свои сообщения по связке фраза-ключ. Принцип - как и в посланиях римского царя своим генералам - смещение алфавита. Алфавит в боте не раскрывается, что усложняет подбор (угадывание), но угадать, как вы понимаете, пока вполне реально. Понимает А-я, A-z, 0-9, знаки препинания и .!?
Хостится на pythonanywhere
В планах доработать так, чтобы шифрованное сообщение мог увидеть только адресат, и то используя ключ (конкатенация словаря с логином телеграма-получателя = каждый раз уникальный алфавит, даже кодирующий пользователь, имея шифр-фразу и ключ раскрыть/угадать фразу не сможет). При такой компоновке станет весьма безопасным даже отправление данных малой конфиденциальности, что несомненно считаю огромным плюсом
Я, как разработчик, вижу лишь статистику в виде username, first и last name при каждом нажатии /start (считаю пользовательский ввод пересылать себе - не этично). С кодом можно подробно ознакомиться на GitHub.
Ну и конечно же, весьма прикольная аватарка, а так же за первые 50 вызовов - ни одной ошибки :-)
Очень хочу получить ваше мнение, а именно - Может ли мое творение носить гордый статус pet-проект? Целесообразно ли в 2к22 писать новые пет-проекты и как сильно их наличие влияет на решение при принятии меня на первую работу в сфере IT?
Как обычно, вопросов больше, чем ответов. Но теперь есть Цезарь, который сможет все это зашифровать :)
Обнял за внимание.
Комментарии (21)
red-cat-fat
06.03.2022 14:10+11Вообще статья "ниочём". Опубликовать ссылку на свой репозиторий - это в ВК можно. На хабре стоит публиковать статьи, из которых читатель может что-то принять для себя. В частности по поводу этой статьи - было бы здорово раскрыть какие-то технические особенности своей реализации, чем ваше решение лучше решения других и т.п. Даже простое описание того, как именно это делалось от А до Я принесло бы больше пользы сообществу, чем "Смотрите, я опубликовал свой петпроект, вот ссылка"
Source
07.03.2022 18:04Писать на Хабр статью о том, как реализовать шифр Цезаря было бы тоже странно.
Статья скорее размышление на тему может ли такой проект помочь устроиться на работу. Но автор не учёл, что он пока сам не знает ответ на этот вопрос. Поэтому выглядит тупо как попытка саморекламы)
unsignedchar
06.03.2022 14:15+3Ну, смогли вы закодировать на python шифратор Цезаря и прикрутить его к telegram боту. Программа состоит в основном из кода бота. Может, заголовок поправить? Телеграм-бот с возможностью шифрования, например? ;)
teocode
06.03.2022 20:58Класс! А интересно, есть какая-то книга по истории криптографии?
GeMir
06.03.2022 21:13«Взломщики кодов» подойдёт?
teocode
07.03.2022 16:52Конечно! Все подойдет. Просто хочу немного расширить кругозор на эту тему. Спасибо! Там ниже - "Криптономикон", я так понимаю художественная литература. Очень интересно будет углубиться.
Bu1
06.03.2022 20:58+1я тоже junior python но это даже пет проектом не назвать так наброски на салфетке
ne555
06.03.2022 22:00Очень хочу получить ваше мнение
Вы из РФ? У вас есть лицензия для работы с шифрованием с длиной ключа выше "законного/56бит/типо des 1977г."?
Если нет, упустили тот факт, что не так-то давно в мире шифрование приравнивалось к оружию (контроль может быть и спал, но не ушел). Вы делаете проект не для себя, а в массы (увидят, возникнут проблемы, в лучшем случае по шапке получите, примеры имеются в Рунете со штрафами). Вы скажите многие так делают (часто по незнанию), но и многие алкоголем без лицензии торгуют.
Здесь же история про барона к месту будет.
bungu
07.03.2022 00:31+7Я поставил минус и объясню почему
в репе нет информации о зависимостях
в репе нет информации о версии python, поддерживаемой скриптом
в репе нет описания функций
в репе нет тестов
код скрипта не отформатирован согласно стандарту PEP8
в репе не указано как конфигурировать скрипт под свой токен
переменные в коде имеет неиформативные имена - kb, c, dc и прочее
в коде по поводу и без стоят комменты (если требуется куча комментов то значит функция слишком сложна и ее стоит разделить на несколько)
в коде несколько раз подряд стоят send_message(), хотя можно отправить сообщение за один раз
-
в коде есть строка
alphabet = ['a'# любой алфавит]
и мне непонятно что это вообще такое и как может работать
отступы в коде не соответствуют 4 пробелам
по моему мнению в коде местами через чур высокая вложенность инструкций
try-блок судя по отлавливаемой ошибке должен быть в разы меньше
в функции f_code и ff_decode есть участок с повторением одного и того же кода
если скрипт упадет (например при проблеме с сетью) он сам не поднимется заново и будет лежать пока его не перезапустить
И это я даже не пытался запустить
Если бы вы на собеседование на должность джуна это мне принесли, то никаких шансов устроиться бы у вас не было
reatfly
07.03.2022 01:09+2About caesar => README.md
Во-первых, это красиво.Во-вторых, будет отображаться сразу как описание проекта.
unsignedchar
07.03.2022 09:17+4В вашем review больше пользы чем в статье. Респект.
И это я даже не пытался запустить
:)
alexyr
08.03.2022 12:31Я бы ещё добавил:
- комментарии на русском
unsignedchar
09.03.2022 09:09Как-то никто не обратил внимание, что там нет шифра Цезаря ;) А то что есть - алгоритмом шифрования не является. Это похоже на Вижинера, но зачем то с hardcoded ключом.
GeneAYak
07.03.2022 00:55Основная ошибка тс как по мне в том, что пет проект должен быть для себя, а не на сторону, потому что развивать и поддерживать он его все равно не будет, а зачем тогда все это делать?
bungu
07.03.2022 00:58Ну он же считает что это годный материал для того чтобы показать потенциальному работодателю
unsignedchar
09.03.2022 09:13Если рядом будет лежать бот для взлома это шифра - почему нет? ;) Пет проект подразумевает развитие.
GeMir
Может быть хотя бы Виженера для создания иллюзии безопасности?