Материал подготавливался под сильным влиянием предполжения, что он будет прочитан от корки до корки - согласен, что это слишком жесткое ограничение и отсеивает значительный пласт аудитории, у которых потребности вроде ваших
И я тогда не знал, как добиться наглядности... И да, додумался до вот этого:)
Спасибо за содержательные комментарии. Часть про JWT среди других произведений этого фольклора звучит скорее невпопад. Очень показательно, что половина приложенных под конец полезных ссылок именно про это.
Насколько я все хорошо понял, для подавляющего большинства сервисов даже рассуждать о реализации подобных механизмов с нуля, даже с использованием готовых библиотек, для продакшена — дело крайне неблагодарное, очень легко ошибиться, рискнуть всем и не получить вообще ничего.
В мобильном приложении одного банка есть замечательная функция.
Если нажать на операцию по карте aka «покупка в супермаркете», то можно увидеть список купленных товаров. Т.е. банк прекрасно знает, что и за сколько я купил.
Но архитектурные сессии продолжают проводить и такие вопросы продолжают задавать разработчикам сеньор+.
По мне, это нужно для того, чтобы понять пытливость мышления, способность переварить информацию на человеческом языке и перевести ее в черновик технической реализации системы. Деталями уже будет заниматься департамент.
Как один популярный блогер отвечает здесь youtu.be/4iMMQUBmVA4?t=117.
Проделана отличная работа, поддерживаю способ обучения через деланье, при наличии хотя бы минимальной теоретической базы. Препод попался, походу, крутой — это хорошо.
Что касается статьи, мне кажется, гораздо ценнее было бы обрисовать общую архитектуру, схему взаимодействия участников сети. Скриншотики работы программы? А также, почему было самым трудным написать серверную часть, в чем возникли самые большие сложности?
Не лучше ли приведенный код положить на GitHub и оставить ссылку? Класс сервера написан, а где сама логика, которая реализует работу сервера? На чем реализован клиент, про него ни слова, а жаль? Могу ли я у себя взять и запустить, придется до этого еще додуматься?
Слова нисколько не дополняют код и не помогают в нем разобраться. Кажется, словесное описание работы функций лучше положить в python-docstring и хранить прямо в репозитории, а статью полностью освободить от этого. Тем более, что код некоторых функций говорит за себя не менее красноречиво, чем любые слова. Как считаете?
По поводу кода из очевидного я бы отметил, что в классе Log функция read_and_return_list не к месту, она больше относится к конфигурации, чем к логгированию. А также, рекомендую обратить внимание на встроенный модуль logging, который умеет очень много чего и явно сюда просится.
BadValue: configdb supports only replica set connection string
try 'mongos --help' for more information
Может оказаться полезно следующее дополнение. Чтобы все это исправить и дойти до конца в практической части мне пришлось добавить опцию shardsvr для инстансов шардов:
Добавить replSetName в настройки конфиг-сервера, чтобы получился replica-set из одного сервера, в данном случае я запускал через опцию --config mongo.conf с таким файлом:
В логах может быть что-то вроде «Unable to reach primary for set configrs», но решилось это простым ожиданием, видимо кластер из целого одного сервера выбирал primary реплику несколько дольше, чем я думал.
Спасибо, что заострили внимание на этом. Это в поле «Public DNS» в настройках инстанса видно, для тестирования этим пользовался. Потом, просто, столкнулся с задачей, а как на этот домен настроить сертификат и ходить туда по https? Let's Encrypt никак не проканает, у меня не получилось.
Лишь потом, уже после того, как все сделал, наткнулся на это aws.amazon.com/ru/certificate-manager, это должно сработать?
Очень дельные замечания, есть над чем подумать.
Сразу перед глазами статистика, что стартапы с солидными инвестициями, командой, а также гораздо более сильными комбинациями идея/реализация не приносят вообще ничего, или даже улетают в трубу с вероятностью 90% и больше.
Действительно, не причем, когда речь не про абсолютный возраст, а жизненные этапы. К тому же, чем больше времени тратишь на что-то, тем больше это понимаешь, но параллельно становишься старше. Чистое совпадение.
Вероятно, для вашей задачи, используемые инструменты не подошли, что тоже бывает.
Согласен, что будь это основной рабочий проект — было бы легче, но мне кажется, что в таком случае, я заведомо не один пытаюсь принести пользу миру. Ведь, правда?
Ну и заставляет себя так чувствовать, в первую очередь, именно недостаток знаний и навыков. А для разработки собственного продукта нужен целый комплекс таких, каждый из которых сродни дорогому профессиональному инструменту. Еще, без честной комплексной и регулярной обратной связи сложно далеко уехать, это вообще бесценно.
Согласен, что будь это основной рабочий проект — было бы легче, но мне кажется, что в таком случае, я заведомо не один пытаюсь принести пользу миру. Ведь, правда?
Ну и заставляет себя так чувствовать, в первую очередь, именно недостаток знаний и навыков. А для разработки собственного продукта нужен целый комплекс таких, каждый из которых сродни дорогому профессиональному инструменту. Еще, без честной комплексной и регулярной обратной связи сложно далеко уехать, это вообще бесценно.
Спасибо за комментарий и обратную связь
Материал подготавливался под сильным влиянием предполжения, что он будет прочитан от корки до корки - согласен, что это слишком жесткое ограничение и отсеивает значительный пласт аудитории, у которых потребности вроде ваших
И я тогда не знал, как добиться наглядности... И да, додумался до вот этого:)
Насколько я все хорошо понял, для подавляющего большинства сервисов даже рассуждать о реализации подобных механизмов с нуля, даже с использованием готовых библиотек, для продакшена — дело крайне неблагодарное, очень легко ошибиться, рискнуть всем и не получить вообще ничего.
Если нажать на операцию по карте aka «покупка в супермаркете», то можно увидеть список купленных товаров. Т.е. банк прекрасно знает, что и за сколько я купил.
По мне, это нужно для того, чтобы понять пытливость мышления, способность переварить информацию на человеческом языке и перевести ее в черновик технической реализации системы. Деталями уже будет заниматься департамент.
Как один популярный блогер отвечает здесь youtu.be/4iMMQUBmVA4?t=117.
Что касается статьи, мне кажется, гораздо ценнее было бы обрисовать общую архитектуру, схему взаимодействия участников сети. Скриншотики работы программы? А также, почему было самым трудным написать серверную часть, в чем возникли самые большие сложности?
Не лучше ли приведенный код положить на GitHub и оставить ссылку? Класс сервера написан, а где сама логика, которая реализует работу сервера? На чем реализован клиент, про него ни слова, а жаль? Могу ли я у себя взять и запустить, придется до этого еще додуматься?
Слова нисколько не дополняют код и не помогают в нем разобраться. Кажется, словесное описание работы функций лучше положить в python-docstring и хранить прямо в репозитории, а статью полностью освободить от этого. Тем более, что код некоторых функций говорит за себя не менее красноречиво, чем любые слова. Как считаете?
По поводу кода из очевидного я бы отметил, что в классе Log функция read_and_return_list не к месту, она больше относится к конфигурации, чем к логгированию. А также, рекомендую обратить внимание на встроенный модуль logging, который умеет очень много чего и явно сюда просится.
Если писать вот так в одном терминале:
А потом вот так в другом:
То получается ошибка:
Может оказаться полезно следующее дополнение. Чтобы все это исправить и дойти до конца в практической части мне пришлось добавить опцию shardsvr для инстансов шардов:
Добавить replSetName в настройки конфиг-сервера, чтобы получился replica-set из одного сервера, в данном случае я запускал через опцию --config mongo.conf с таким файлом:
И запустить mongos с конфиг-сервером как replica-set:
В логах может быть что-то вроде «Unable to reach primary for set configrs», но решилось это простым ожиданием, видимо кластер из целого одного сервера выбирал primary реплику несколько дольше, чем я думал.
Лишь потом, уже после того, как все сделал, наткнулся на это aws.amazon.com/ru/certificate-manager, это должно сработать?
Сразу перед глазами статистика, что стартапы с солидными инвестициями, командой, а также гораздо более сильными комбинациями идея/реализация не приносят вообще ничего, или даже улетают в трубу с вероятностью 90% и больше.
Вероятно, для вашей задачи, используемые инструменты не подошли, что тоже бывает.
Ну и заставляет себя так чувствовать, в первую очередь, именно недостаток знаний и навыков. А для разработки собственного продукта нужен целый комплекс таких, каждый из которых сродни дорогому профессиональному инструменту. Еще, без честной комплексной и регулярной обратной связи сложно далеко уехать, это вообще бесценно.
Ну и заставляет себя так чувствовать, в первую очередь, именно недостаток знаний и навыков. А для разработки собственного продукта нужен целый комплекс таких, каждый из которых сродни дорогому профессиональному инструменту. Еще, без честной комплексной и регулярной обратной связи сложно далеко уехать, это вообще бесценно.