Как стать автором
Обновить
6
0
Evgene Petrenko @mrevgenx

Software Developer

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

Спасибо за комментарий и обратную связь

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

И я тогда не знал, как добиться наглядности... И да, додумался до вот этого:)

Спасибо за содержательные комментарии. Часть про JWT среди других произведений этого фольклора звучит скорее невпопад. Очень показательно, что половина приложенных под конец полезных ссылок именно про это.
Насколько я все хорошо понял, для подавляющего большинства сервисов даже рассуждать о реализации подобных механизмов с нуля, даже с использованием готовых библиотек, для продакшена — дело крайне неблагодарное, очень легко ошибиться, рискнуть всем и не получить вообще ничего.
В мобильном приложении одного банка есть замечательная функция.
Если нажать на операцию по карте aka «покупка в супермаркете», то можно увидеть список купленных товаров. Т.е. банк прекрасно знает, что и за сколько я купил.
Но архитектурные сессии продолжают проводить и такие вопросы продолжают задавать разработчикам сеньор+.
По мне, это нужно для того, чтобы понять пытливость мышления, способность переварить информацию на человеческом языке и перевести ее в черновик технической реализации системы. Деталями уже будет заниматься департамент.
Как один популярный блогер отвечает здесь youtu.be/4iMMQUBmVA4?t=117.
Проделана отличная работа, поддерживаю способ обучения через деланье, при наличии хотя бы минимальной теоретической базы. Препод попался, походу, крутой — это хорошо.
Что касается статьи, мне кажется, гораздо ценнее было бы обрисовать общую архитектуру, схему взаимодействия участников сети. Скриншотики работы программы? А также, почему было самым трудным написать серверную часть, в чем возникли самые большие сложности?

Не лучше ли приведенный код положить на GitHub и оставить ссылку? Класс сервера написан, а где сама логика, которая реализует работу сервера? На чем реализован клиент, про него ни слова, а жаль? Могу ли я у себя взять и запустить, придется до этого еще додуматься?

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

По поводу кода из очевидного я бы отметил, что в классе Log функция read_and_return_list не к месту, она больше относится к конфигурации, чем к логгированию. А также, рекомендую обратить внимание на встроенный модуль logging, который умеет очень много чего и явно сюда просится.
Очень классная статья. Жаль, что с новыми версиями много чего поменялось.
Если писать вот так в одном терминале:
sudo mongod --configsvr --dbpath /data/config --port 27002

А потом вот так в другом:
sudo mongos --configdb 127.0.0.1:27002 --port 27100

То получается ошибка:
BadValue: configdb supports only replica set connection string
try 'mongos --help' for more information

Может оказаться полезно следующее дополнение. Чтобы все это исправить и дойти до конца в практической части мне пришлось добавить опцию shardsvr для инстансов шардов:
sudo mongod --dbpath /data/instance1 --port 27000 --shardsvr
sudo mongod --dbpath /data/instance2 --port 27001 --shardsvr

Добавить replSetName в настройки конфиг-сервера, чтобы получился replica-set из одного сервера, в данном случае я запускал через опцию --config mongo.conf с таким файлом:
net:
   port: 27002
sharding:
   clusterRole: "configsvr"
storage:
   dbPath: "/data/config"
replication:
   oplogSizeMB: 128
   replSetName: configrs

И запустить mongos с конфиг-сервером как replica-set:
sudo mongos --configdb configrs/127.0.0.1:27002 --port 27100

В логах может быть что-то вроде «Unable to reach primary for set configrs», но решилось это простым ожиданием, видимо кластер из целого одного сервера выбирал primary реплику несколько дольше, чем я думал.
Спасибо, что заострили внимание на этом. Это в поле «Public DNS» в настройках инстанса видно, для тестирования этим пользовался. Потом, просто, столкнулся с задачей, а как на этот домен настроить сертификат и ходить туда по https? Let's Encrypt никак не проканает, у меня не получилось.
Лишь потом, уже после того, как все сделал, наткнулся на это aws.amazon.com/ru/certificate-manager, это должно сработать?
Очень дельные замечания, есть над чем подумать.
Сразу перед глазами статистика, что стартапы с солидными инвестициями, командой, а также гораздо более сильными комбинациями идея/реализация не приносят вообще ничего, или даже улетают в трубу с вероятностью 90% и больше.
Действительно, не причем, когда речь не про абсолютный возраст, а жизненные этапы. К тому же, чем больше времени тратишь на что-то, тем больше это понимаешь, но параллельно становишься старше. Чистое совпадение.
Вероятно, для вашей задачи, используемые инструменты не подошли, что тоже бывает.
Согласен, что будь это основной рабочий проект — было бы легче, но мне кажется, что в таком случае, я заведомо не один пытаюсь принести пользу миру. Ведь, правда?
Ну и заставляет себя так чувствовать, в первую очередь, именно недостаток знаний и навыков. А для разработки собственного продукта нужен целый комплекс таких, каждый из которых сродни дорогому профессиональному инструменту. Еще, без честной комплексной и регулярной обратной связи сложно далеко уехать, это вообще бесценно.
Согласен, что будь это основной рабочий проект — было бы легче, но мне кажется, что в таком случае, я заведомо не один пытаюсь принести пользу миру. Ведь, правда?
Ну и заставляет себя так чувствовать, в первую очередь, именно недостаток знаний и навыков. А для разработки собственного продукта нужен целый комплекс таких, каждый из которых сродни дорогому профессиональному инструменту. Еще, без честной комплексной и регулярной обратной связи сложно далеко уехать, это вообще бесценно.

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность