• Стоит ли делать кэширование результата запроса из бд?

    @rPman
    Подумай хорошенько, где ты собираешься кешировать и как инвалидировать кеш (проверять что данные в кеше устарели), получишь ответ на этот вопрос почти сразу

    Второй вопрос очень важный, как запускается код бота, в режиме получил запрос (реакция от пользователя) и завершил процесс либо процесс запускается как сервис и работает в единственном экземпляре (тоже важно, так как бывает что то типа кластера, но явно не твой случай)?

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

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

    Вот от сюда и думай, что хранить, где хранить надо ли делать запрос в базу или можно из памяти и т.п.
    Ответ написан
    2 комментария
  • Как реализовать регистрацию пользователя из чата telegram?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Обычная практика - держать в памяти кэш пользователей. При изменениях также выполнять запрос к базе. При запуске бота - вычитывать пользователей в память.
    Ответ написан
    Комментировать
  • Можно ли так использовать Task.FromResult и имеет ли это вообще смысл?

    По производительности будет +/- одно и то же, но вариант с await чуть памяти сожрёт.
    В целом похоже больше на ошибку.
    Ответ написан
    Комментировать
  • Можно ли так использовать Task.FromResult и имеет ли это вообще смысл?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Не будет ли эта связка await+TaskResult очень тяжёлой по производительности

    Проверьте 2 версии кода на тестах, что быстрее то и используйте :)
    Ответ написан
    2 комментария
  • Почему не берут на работу (Junior/Intern C#)?

    @d-sem
    Так как резюме не приложено, то придется строить догадки.

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

    Джун должен уметь то, что требуют на вакансии.

    Ну и обычно HR аргументируют свой отказ.
    Ответ написан
    Комментировать
  • Что должен уметь Junior C# Web разработчик?

    @mletov
    Примерные вопросы к собесу по .NET в целом.
    https://qna.habr.com/q/966117#answer_1914755

    Для ASP.NET добавляются вопросы про IIS, пул приложений и режим: классический/встроенный.

    Поскольку речь про веб, то могут еще спросить:
    - про HTTP, POST/GET/PUT/DELETE, REST API, CORS.
    - что такое сессия и куки
    - Html, CSS, js. Мучить в том объеме, в котором мучают фронтендеров, конечно, не будут, но проверить, что человек в состоянии отправить ajax запрос, поманипулировать с DOM или поменять в стилях цвет рамки, могут.

    В общем, те вещи, которые должен знать любой веб-разработчик, не обязательно C#.
    Ответ написан
    Комментировать
  • Что должен уметь Junior C# Web разработчик?

    JoeSmith3100
    @JoeSmith3100
    Начинающий программист C#
    Ну думаю логично сказать, что в первую очередь уметь работать с платформой разработки веб-приложений ASP.NET, лучше использовать Core а не Framework, по какой то причине бородатые программисты сейчас советуют выбирать именно его.
    Дальше понимать паттерн MVC и вообще в чём соль такого разделения, уметь выстраивать onion-архитектуру (подробнее лучше почитать в интернете, но такой способ разделения слоёв во первых облегчит другим чтение твоего кода, во вторых позволит тебе без лишнего геммора поменять базу данных или какой либо сервис, который тебя чем то не устроил).
    Ну и конечно уметь работать с реляционными базами данных, C#, насколько я помню, поставляет 2 инструмента для взаимодействия с БД: Dapper и EntityFramework, лучше выбирать на начальных этапах второй вариант, так как он очень прост в освоении в отличии от Dapper'a.

    Будет большим плюсом уметь пользоваться каким-нибудь JS фреймворком, но пока ты будешь пилить стартовые проекты, он не особо понадобится, ты сам почувствуешь момент, когда такие штуки окажутся тебе полезными.
    Ответ написан
    3 комментария
  • Что должен уметь Junior C# Web разработчик?

    1. Уметь работать с asp net core.
    Написание нового контроллера не должно вызывать никаких сложностей.
    Должен знать про middleware и разные фильтры. Знать, какими сущностями в разные моменты времени обрабатывается запрос
    2. Знать как устроен HTTP хотябы на поверхностом уровне.
    Знать что в http-запросе есть заголовки и тело.
    3. Уметь работать с dotnet cli, если понадобится. Уметь вызывать dotnet build, dotnet watch, dotnet run, и dotnet publish
    4. Уметь искать нужные библиотеки в гугле и в нугете.
    5. Уметь работать с git хотябы на базовом уровне: git init, git branch, git add, git commit, git merge.
    Можно через GUI. Можно через встроенный плагин в IDE
    6. Уметь работать с какой-нибудь одной IDE на базовом уровне: с VS или с Rider.
    На базовом уровне - это значит, что ты можешь мышкой создать проект, добавить в него новые файлы, и запустить проект.
    7. Хотябы поверхностно знать про фронтенд. Чтобы мог загуглить и решить несложную задачу.
    8. Уметь работать с debugger-ом. Ставить точки останова, делать шаг вперёд, с заходом, с обходом.
    9. Уметь работать с какой-нибудь реляционной БД. Знать основы про всякие нормальные формы, уметь писать сырой sql запрос.
    10. Ну и кнонечно C#, ООП, всякие паттерны.
    Ответ написан
    7 комментариев
  • Нормально ли что джуна бэкэндера просят проектировать бд?

    @mletov
    Похожий вопрос обсуждался, можете заодно и мой ответ к нему прочитать
    https://qna.habr.com/answer?answer_id=1360668#comm...
    Ответ написан
    Комментировать
  • Нормально ли что джуна бэкэндера просят проектировать бд?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Если ты только в самом начале пути, и единственный вопрос, который тебя при этом заботит - это "а не слишком ли много от меня хотят?", то далеко по этому пути не уйдешь. В этой профессии любой опыт ценен. И возможность получить дополнительные знания - это плюс вакансии, а не минус.
    Суть профессии программиста в том, что ты учишься все время. То есть, любые полученные знания - это не вершина, а всего лишь еще одна ступенька. И просто глупо ставить какие-то рамки - "это будем учить, а это уже они много хочут".

    При чем здесь самоуверенность - вообще непонятно
    Разумеется весь код джуна будет проходить код-ревью, то есть прямо в продакшен никто эту БД заливать не будет.
    Но при этом и создавать за него простенькую БД для небольшого сервиса, типа отзывов на товары, никто не будет: такой беспомощный джун никому не нужен. Предполагается, что еще на этапе обучения он уже делал подобные проекты и умеет спроектировать для них БД.
    Ответ написан
    Комментировать
  • Нормально ли что джуна бэкэндера просят проектировать бд?

    Мне кажется или в 1 случае это весьма самоуверенно - позволять джуну бэкэндеру проектировать бд

    А вы спросите что конкретно они понимают под проектированием.
    Скорее всего, на проекте уже есть какая-то бд и архитектура, так что от тебя будет требоваться максимум - спроектировать новую таблицу, или несколько + связи между ними.
    + Знать про разные НФ и уметь нормализовать данные до 3НФ

    Это вполне обычная работа бэкендера.
    Ответ написан
    4 комментария