• Какие способы существуют по отделению реальных пользователей от роботов, для статистики просмотра страниц?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    Если речь про легитимные боты, например поисковые то подойдёт эта библиотека
    https://github.com/JayBizzle/Crawler-Detect

    Общий принцип это смотреть на HTTP-заголовки, user-agent как минимум, но подделать можно что угодно.
    Таких "умных" ботов можно вычислять только по поведенческим факторам, например отслеживать частоту запросов, находить определённые шаблоны в запросах и тд.
    Например запросы когда загружается страница, но не идут следом запросы на загрузку ресурсов (картинок, стилей js и тд).

    Можете посмотреть старенький доклад от 2ГИС про то как они защищаются от парсинга api
    https://www.youtube.com/watch?v=pYxnW7kYcbU
    Ответ написан
    Комментировать
  • Как понять микросервисы?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Микросервисы пишут не для того, чтобы просто переделать API.

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

    А уже исходя из этой точки зрения:

    1. Если у каждого сервиса есть свой api, зачем API Gateway (точка входа), можно же на nginx сделать обращение по location на нужный api?

    А если нужно много экземпляров, будете одним nginx-ом раскидывать по 10 локейшенам? Микросервисы в современном мире предполагается запускать в докере на собственном легковесном веб-сервере (типа Jetty), поднимать нужное количество экземпляров и балансировать чем-нибудь на входе, но не по локейшенам.

    2. Стоит ли использовать RabbitMQ для общения между сервисами? Правильно ли понимаю, что точка входа на ноде, посылает запрос в раббит и ждет от него же ответ и отдает клиенту?

    РаббитMQ или kafka позволяют множеству экземпляров вашего сервиса обрабатывать сообщения, с гарантией того, что из очереди ничего не пропадет, и если какой-то экземпляр сдохнет, то этот запрос обработает другой экземпляр. Именно ждать ответ наверное не самое правильное, но это можно смотреть как вам удобнее - периодически опрашивать очередь, или настроить чтобы message service сам пушил по событию.

    3. Например делаем микросервис по авторизации пользователя и регистрации. У него должна быть своя база данных? Как например в админке обращаться к пользователям, чтобы их добавить или заблокировать, я должен запрашивать пользователей с микросервиса? Получается микросервис отвечающий за пользователей CRUD + Регистрация, авторизация, сброс пароля?

    Это как вы хотите. Если у вас очень много пользователей и авторизация тормозит, но можно сделать микросервис с авторизацией, сделать кластер базы данных с репликацией. Дальше можете балансировать пользователей и там уже решать как их раскидывать. Или база мощная и все экземпляры могут работать с кластером. Или делите базу на части, и раскидываете пользователей по алфавиту (база юзеров от A* до H*, база юзеров от I* до M*, по региону или как вам нравится).

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

    Второй немаловажный плюс микросервисов - работать над небольшим микросервисом проще, чем над крупным монолитом. Упрощается его поддержка рефакторинг. То есть в конечном счете упрощается требования к квалификации программиста. Но усложняется общая архитектура проекта, то есть на сеньоров/техлидов нагрузка возрастает.
    Ответ написан
    Комментировать
  • Как понять микросервисы?

    @deliro
    Как понять микросервисы?

    Прочитать соответствующую книгу (а лучше ещё парочку про DDD или хотя бы посмотреть этот доклад)

    Затем ответить на несколько вопросов:
    1. Почему вы решили, что микросервисы что-то вам дадут?
    2. Есть ли у вас настоящие причины для микросервисной архитектуры? (А именно: зоопарк технологий с невозможностью написать 99% на одном языке; более тысячи разработчиков; сложность выкатки монолита в виде часов прогонов CI/CD — тестов, билда, деплоя, стопоров выкатки в виде кучи проблем из-за разработчиков; вы такие же большие как гугл, убер, амазон и т.п.). Или вам просто нравится модное слово "микросервисы"?

    Не получится создать хорошую микросервисную архитектуру без умения создать хороший модульный монолит. В этом случае вы получите не только все проблемы плохого монолита: высокая связанность, каскадные падения, долгий CI/CD; но и все проблемы микросервисов: их надо оркестрировать (у вас же есть команда, которая будет поддерживать инфраструктуру?); каждому микросервису нужно своё CI/CD (и хорошее); сеть может (и будет) лагать и обрываться; длительность запросов увеличится на порядок(ки) (особенно если выбрать какой-нибудь JSON-RPC over HTTP); нужно предусмотреть failover strategy (например, идемпотентные ретраи. Вы же уже знаете про correlation id, саги и что делать, если прилетел network error на запрос в другой сервис "списать 10 баксов"?) и circuit breakers; трейсы и логи, которые не пришлось бы искать по сотням .log файлов от каждого сервиса; бизнес-логика расползётся по разным микросервисам и нарушит SRP (пофиг, что нарушит, важнее то, что это починить будет сильно сложнее). Список можно продолжать долго.
    Ответ написан
    11 комментариев
  • Как называется человек зарабатывающий на рекламе на своих сайтах?

    opium
    @opium
    Просто люблю качественно работать
    вебмастер по старославянски
    Ответ написан
    1 комментарий
  • Как продвигать проекты по типу Хабр (Q&A) c 0, если нет пользователей?

    opium
    @opium
    Просто люблю качественно работать
    сео
    Ответ написан
    Комментировать
  • Каким образом организовать оплату за сервис?

    iiiBird
    @iiiBird
    Пока ты спишь - твой конкурент совершенствуется
    ну как вариант показывать сам домен только купившему просмотр именно этого домена, а всю систему организовать так, что он будет видеть только описание домена. условные пузомерки, откуда ссылки и прочее. и даже фильтры можно сделать по таким параметрам.
    т.е. человек в каталоге видит только описание домена. т.е. че там было, какие достоинства и прочее. и может фильтровать по этим параметрам и выбирать нужный. а потом на понравившемся кликает "узнать домен" и платит за это.
    Ответ написан
    1 комментарий
  • Почему в Symfony зарплаты выше, чем в Laravel?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    По личным ощущениям, лара как раз разрабатывалась для джун+ уровня. То есть она сложно организована внутри и просто пишется поверх уже готовых компонент, собственно все сводится к подбору компонент или небольшому допиливанию чего-то готового искаропки. Этакий вордпресс в мире движков.

    В то же время Симфони (и тут я больше высказываю свое предвзятое мнение, еще и не подкрепленное никаким реальным опытом, кроме как рассматриванием чужих проектов) достаточно просто устроен внутри, и сложность больше архитектурного толка, то есть попытка сделать так чтобы неправильно на нем было некомфортно писать. При этом больше упор на классический ооп, обязательно интерфейсы, абстракции и разделение на модель-репозиторий, никаких активрекорд, только репозитории/доктрина, только хардкор... По опыту зенда, где все примерно в том же духе, смысл в этом есть, особенно на крупных проектах, где легко могут быть задействованы несколько хранилищ или даже их цепочки, и логика хранения (как пример) на симфони выходит очень гибкая. Это больше частное вИдение и больше следствие из архитектуры в целом. Отсюда и требования к кандидатам и к разработчикам в целом выше, скорее всего после лары в симфони вам придется долго втыкать как вообще со всем этим работать...
    Ответ написан
    1 комментарий
  • Какие книги посоветуете прочитать начинающему WEB-разработчику?

    1Aspect1
    @1Aspect1
    Прочитай книгу от Эрика Метиза, она на 500 страниц, это весь синтаксис python и его применение, дальше учи библиотеки, Django, git желательно, главное стремление, а потом гугли дальше 5ff9c71287985814838715.jpeg
    Ответ написан
    3 комментария
  • Как программисту отдыхать и организовать распорядок дня?

    @podde
    самый младший сисадмин
    Не вините себя. У вас объективно очень много времени уходит на дорогу.
    Совершенно серьёзно думаю, что в такой ситуации надо попробовать поговорить с руководителем на предмет хотя бы частичной (пару раз в неделю) удалённой работы. А лучше попробовать вообще выпросить удалённый режим.
    Если нет – пробовать искать другую работу (поближе к дому или удалённую).
    Ну, действительно, по пять часов в день на дорогу – это не дело.
    Ответ написан
    Комментировать
  • Что делать стартапу на стадии прототипа с Privacy Policy и Terms Of Use?

    Lucian
    @Lucian
    https://t.me/MakeFreelance
    Есть проверенные генераторы для создания "Terms Of Use" и "Privacy Policy".
    https://app-privacy-policy-generator.firebaseapp.com/
    Ответ написан
    Комментировать
  • Как построить новую карьеру fullstack фрилансеру?

    @vism
    Вобщем я был в такой же ситуации. Занимался тем же. Стек тот же.
    так вырос до максимума по ЗП в России.

    Вобщем вы очень будете востребованы на Upwork, вне конкуренции после первых 5 заказов и получения бэйджа топ рейтид. У меня на это ушло полтора месяца.

    Именно работаю в среднем 5-6 часов в день.
    И как-то сразу у меня ушли лень, желание изучить новые технологии и т.п. А когда накатывает, я открываю аналитику по доходам/расходам и сразу всё проходит. Даже вот 3 года с одним клиентом и никакого выгорания нет.

    Какой смысл было впахивать и достигать максимума, чтоб потом достигать его в другой сфере с падением дохода. надо использовать, учиться дальше и зарабатывать больше.
    Ответ написан
    7 комментариев
  • Как вы планируете свой рабочий день, чтобы не выгорать?

    @alexdonskih
    Использую на удаленной работе многое из того что уже было сказано коллегами.

    От себя добавлю следующее:

    Важен режим, а точнее ранний подъем. Раньше проснетесь, раньше начнете работать, раньше закончите. Я начинаю работать не позже 8 утра, и обычно в начале четвертого уже свободен. Также намного легче себя мотивировать на работу в первой половине дня.

    Работаю по тайм-трекеру в сочетании с помидорной системой. Интервалы по 2 часа с короткими перерывами в 5 мин. и длинными в полчаса.

    Всего в день работаю не более 6 часов именно по тайм-трекеру (на долгие перерывы трекер ставится на паузу). Денег выходит чуть меньше, но зато на душе намного спокойнее. Пробовал работать по 7-8 часов, но в таком режиме ты живешь буквально между постелью и кодом, на другое не остается времени.

    У меня на работе никто не требует быть у компа 6-8 часов в день. Есть только норма по часам в неделю и дедлайны по некоторым таскам.

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

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

    На свои дела сил хватает т.к. не выкладываюсь на 120% на работе.
    Ответ написан
    2 комментария
  • Существует ли курс/статья/книга где приведен полый алгоритм освоения машинного обучения?

    @Alibaba2018
    1. Базовый курс по Питону (Если никогда в жизни вообще не программировали начинайте с Learn Python the Hard Way -> Python Crash Course by Eric Matthes -> Automate Everything -> John Zelle "Python Programming"
    (обязательно(!) делать все упражнения - набивать руку, т.к. только материал будет действительно осваиваться)
    (если же уже есть опыт в программировании: Allen Downey - Think Python, Diving into Python и Learning Python (Lutz))
    1A: Обязательно нужно знать алгоритмы чтобы вообще понимать что такое более-менее профессиональное программирование: Самая лучшая и детальная книга по алгоритмам на Питоне имхо: "Data Structures and Algorithms in Python" by Michael T. Goodrich, Roberto Tamassia, Michael H. Goldwasser
    1Б: на yotube есть канал Lucid Programming, где автор тоже показывает очень много алгоритмов на примерах
    2. потом изучать хорошо матан(single variable calculus + multi variable calculus)/линал/статистику и probability: на уровне понимания концептов (можно учить по Khan Academy или Udemy, где я брал классы по Calculus от Krista King, мне понравилось как она обьясняет)
    Есть неплохие видео от Imperial College of London по математике:
    Mathematics for Machine Learning full Course || Linear Algebra || Part-1 https://youtu.be/T3TpdPmTLso
    Mathematics for Machine Learning Full Course || Multivariate Calculus || Part -2 - https://youtu.be/m998PdOCFcY
    3. Далее бесплатный курс по ML от Andrew Ng на YouTube и Courser'a - бесплатно
    3.А Также очень детальный курс по математике от создателей DS для R: An Introduction to Statistical Learning - University of Southern California - доступна бесплатно - где вся подноготная математики показывается очень детально
    4. Hands-on machine learning with scikit-learn and tensorflow - o'reilly - куча практики и теории
    5. Python for Finance - O'Reilly - вообще у O'Reilly по Python очень неплохие книжки по питону и МО, где можно много чего увидеть in action
    6. куча курсов за $10 на Udemy от Jose Portilla (в том числе R, SQL, Spark with Python, Spark with Scala, Computer Vision, NLP, Plotly, Algorithms, Python for Finance, Deep Learning: TensorFlow, Keras итд итд итп,) - если будте брать на udemy курсы и показывает больше чем $10, напишите коммент - дам промо код по кот. скидка 94% - код дается уже купившим его курсы)
    7. очень крутой канал на YouTube у Siraj Raval по Data Science - куча примеров, видео, инфы итд итп (найдите там видео как выучить Data Science in 3 months, там тоже очень много ресурсов, но имхо за 3 месяца, как он говорит, нереально)
    8. "data science from scratch by joel grus" старая книжка тоже от O'Reilly
    на самом деле, я бы советовал начинать с неё, даже если нет вообще никакого опыта и вообще ничего не понятно, т.к. она дает весь план что нужно учить и как организовать себе весь процесс (и потом периодически к ней возвращаться, сверять с планом)
    Также очень похожая есть книга Python for Data Analysis Book by Wes McKinney (создатель pandas), но чуть-чуть попроще, и я бы все равно советовал их вместе обе прочитать, т.к. эта намного больше концентрируется на data cleaning'e

    Вообще, Data Science на самом деле очень не сложная дисциплина по сути, просто действительно нужно много знать для того чтобы там реально начать что то делать, т.е. большой порог для вступления, но сами алгоритмы очень и очень легкие и писать, и работать с ними итд итп. Более сложнее готовить дату, моделировать, как то пытаться к ней поступиться, чтобы начать работать, а сам процесс и код на питоне проще простого.

    Ну и как Вам написали выше, как освоите всё вышесказанное (хахаха), welcome после этого всего на kaggle, чтобы начать уже делать это всё на практике;)
    Ответ написан
    Комментировать
  • Куда стоит пойти учиться новичку?

    Cheloved
    @Cheloved
    Good man
    МФТИ: огромная база, фонд, катируется в Европу, Азию, USA, сотрудничает с Яндекс, Google.
    Яндекс лицей или школа программистов (тоже сотрудничает с Яндекс, МФТИ, ВШЭ), там дадут базу, кучу заданий и т.п
    ВШЭ, тоже неплохой вариант, но там больше практики как я знаю
    Если книги по машинному обучению, то смотрите в сторону Шолле или документацию читайте, там в принципе все понятно
    Да, и как по мне лучше ходить в вуз, чем учиться заочно, в первую очередь это общение и наращивание связей
    Ответ написан
    Комментировать
  • Что делать, когда умеешь программировать, но нет идей?

    Я обычно отталкиваюсь не от "идеи" крутой штуки, а от проекта, где я смогу заработать деньги. Это очень сильно сужает список возможных проектов, и сильно ограничивает способ реализации проекта. Если я вижу, хоть какое-то место, где потенциально могут быть деньги, а существующие проекты - сделаны плохо, я начинают это делать.

    Чтобы это увидеть, надо либо иметь широкий кругозор, либо заниматься целенаправленным ресерчем. Так, например, я один раз прочитал 2 учебника по дендрологии, чтобы понять, почему никто не делает проекты из этой области.
    Ответ написан
    Комментировать
  • Как перестать говнокодить и принимать неверные архитектурные решения?

    miraage
    @miraage
    Старый прогер
    как писать поддерживаемый код?

    Если уж очень коротко, то соблюдать SOLID/GRASP. Мне понравился твит одного из авторов React Router:
    https://twitter.com/mjackson/status/1171524189850701825

    Most common mistake software developers make: putting stuff in the wrong place. Coupling responsibilities and concepts that should be kept separate.
    For me, this is 95% of software development. Just figuring out *where* things belong.


    Что гуглить, что учить?

    Фундаментальные знания, вроде вышеупомянутых SOLID/GRASP, паттерны (не только классические паттерны, но и вообще, общеизвестные решения определённых задач), базовые структуры данных. Фреймворки/библиотеки всегда будут приходить/уходить, что-то будет забываться. А фундаментальные знания всегда актуальны.

    Может литературу какую почитать посоветуете?

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

    Можно ли себя называть миддлом, если твой код говно?

    Не пытайтесь себя оценить. В каждой компании свои понятия миддла. А если кто-то 35 лет на лиспе кодил, а потом прыгнет на Angular - кто он, джун или сеньор?
    И, да, все мы в какой-то степени пишем говнокод. Если кто-то Вам доказывает, что он пишет супер чистый код - не слушайте.

    И ответ на главный вопрос.
    Как перестать говнокодить и принимать неверные архитектурные решения?

    Это невозможно. Все проекты, которые чуток сложнее CRUD-ов, рано или поздно обрастают говнокодом. Никто не пишет идеальный код. Код должен работать и решать проблемы бизнеса.
    Ответ написан
    6 комментариев
  • В какой фриланс-бирже можно начать работать?

    OtshelnikFm
    @OtshelnikFm
    Обо мне расскажет yawncato.com
    Почему все думают про фриланс? Это самая низшая ступень. Идите дальше - делайте свой продукт. Поддержка по подписке. Или пассивный доход с продаж на энвато и прочих маркетах
    Ответ написан
    Комментировать
  • С чего начать рефакторинг?

    usdglander
    @usdglander Куратор тега PHP
    Yipee-ki-yay
    Ответ написан
    Комментировать