• Для чего идеальна MongoDb? Примеры приложений, где монга будет лучше mysql?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Я расскажу Вам про личный опыт, без претензий на истину в последней инстанции...

    Для чего идеальна MongoDb? Примеры приложений, где монга будет лучше mysql?
    Для человека который привык работать с реляционными БД, смириться с логикой и вообще с подобными БД - довольно сложно. Для тех, кто работает с реляционными БД профессионально - сделать это ещё сложнее...

    Если сравнивать с реляционными БД и с оглядкой на конкретно MySQL - монга идеально вписывается там, где структура данных заранее неизвестна. Тут я хотел привести пример, но не смог придумать ни одного дельного примера, после того как начал плотно работать с PostgreSQL... Давайте попробую из практики. Мы один раз применяли монгу в проекте где есть десятки и сотни тысяч товарных позиций и у каждой из них свой уникальный набор различных свойств. На основе уже имеющихся свойств, "соседних" товаров, контентщику предлагался наиболее вероятный набор параметров, которые нужно заполнить, но в любой момент он мог удалить или добавить любое поле и/или множество значений одного из них, например, "Цвет: черный, серый, фиолетовый". Всё это дело попадало под разные динамические фильтры и далее по цепочке... В то время, насколько я помню ещё не было поддержки JSONB-формата у PostgreSQL, по этому мы остановились на MongoDB. Ну и конечно же, желание "воткнуть ультра новую и модную БД в проект" сыграло свою роль...

    Что в монге определённо не нравится (и это не моя "идея", об этом пишут даже в учебниках под монге) - это тотальная денормализация данных. Которая в некоторых случаях может сыграть злую шутку. Например, все комментарии "поста" обычно хранятся прямо в самой сущности поста. Это очень удобно и довольно быстро работает, но... иногда это приводит к полному коллапсу. Особенно, когда у Вас перекрестная ссылочность.

    Безусловно, не редко можно встретить проекты в которых даже в реляционных БД не прописаны, например, внешние ключи и контроля целостности данных как такового нет, но обычно это происходит по следующим причинам:
    1. Очень низкая квалификация администратора БД проекта
    2. В попытке выжать из базы больше производительности, не найдя других методов оптимизации
    3. Данных настолько много, что БД/ключи - начинают "сыпаться", не редко это связано с п.1

    Так же, последние тесты показывают, что PostgreSQL почти не уступает MongoDB даже в её родной среде (на уровне данных в формате JSON). А в некоторых аспектах даже превосходит её... Подробности Вы можете увидеть на некоторых конференциях по Postgres (да, на конференциях по MongoDB, Вы вряд ли увидите, как кто-то будет рассказывать, что [их любимая] монга "хуже" некоторых других движков...). Кстати, поддержку формата JSON стандартизировали (наконец-то) на уровне SQL-стандарта (если я не ошибаюсь) и в самом ближайшем будущем, думаю стоит ожидать полноценную поддержку оного в SQL-базах, в т.ч. поддержку в бинарном виде с возможностью индексации данных (кстати, некоторые SQL-базы уже такое умеют).

    Моё понимание, ответа на вопрос, "когда действительно стоит использовать MogoDB?" звучит примерно так: Исключительно в тех случаях, когда Вы понимаете, что она станет действительно хорошим решением для поставленной задачи и сейчас и в будущем. В моей практике, таких проектов можно было бы насчитать ничтожно мало, а точнее около нуля, особенно с учётом развития некоторых современных SQL-БД и вообще направления "JSON в SQL" в целом. Но, безусловно такие проекты могут быть и есть (в данном случае, не у меня). Но, тут стоит обратить внимание на крайне важный факт - когда всплывает такой проект, что бы адекватно оценить наиболее оптимальную БД под него - нужно знать как минимум пару-тройку SQL-БД, со всеми их особенностями, достоинствами и недостатками... причем не просто "знать", а хорошо знать, "изнутри". А так же знать все характерные черты монги, а так же её особенности, достоинства и т.д. То есть, если Вы задаётесь вопросом, "а хорошо ли впишется монга в проект N?" и не можете найти на него однозначного ответа, вероятнее всего, что в долгосрочной перспективе, в "проект N" она впишется плохо.

    P.S. В заключение, хочу ещё раз напомнить, что "JSON в SQL" - активно развивается... Со всеми вытекающими.
    Ответ написан
    7 комментариев
  • Какие технологии использовать для создания чата?

    @Levhav
    Возьмусь за разработку проектов любой сложности.
    Поддержка вебсокетов настолько широка (94%) что остальные методы уже устарели и мне кажется могут быть нужны если хотите совсем уж старьё поддерживать. Которое даже крупные соц сети не поддерживают.
    Ответ написан
    Комментировать
  • Как должен выглядеть сайт-портфолио front end разработчика?

    axaxa_man
    @axaxa_man
    web developer
    ИМХО
    1) Обо мне – не стал бы писать, кому какая разница какой я коммуникабельный, проактивный и эмпатичный человек. Лучше привести примеры работы с ссылками на сайты и с подробно расписанными кейсами. Не просто простыня из рендеров страниц, а подробное описание: Цель, задачи, трудности, как решил, какой стек, результаты работы. Условно, можешь это писать на каком-нибудь medium и просто подтягивай на страницу портфолио. (Medium.com явно будет индексироваться лучше, чем твой сайт)
    Еще прикрепи свой github и активно веди его, отмечай какие-то свои находки, веди проекты, разрабатывай инструменты для сообщества и так далее.
    Да, контакты тоже нужно не забыть прикрепить.
    2) Всё, что не стесняешься приложить (телеграм, почта, социальные сети) [почтовый адрес не надо]
    3) Ты конечно можешь сделать "просто и понятно как у эпл", но зачем. Сделай как тебе нравится и как тебе хочется, ведь к тебе придут люди предложить работу и лучше пусть их зацепит то, что нравится тебе, тогда ты будешь кайфовать от работы.
    Ответ написан
    7 комментариев
  • Backend-язык для фриланса?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    PHP - по количеству заказов явный лидер, я работаю на нем (в основном на framework yii2)
    Python - меньше заказов, но и конкуренция меньше, более интересные, но и сложные проекты, чем на php. На php горы однотипного барахла, где работа больше на усидчивость, чем на подумать.
    Node.js - не юзаю, и знаю краями, поэтому воздержусь от комментариев
    Ответ написан
    Комментировать
  • Куда пойти после IT?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    где нужно программирование -> практически везде можно что-то автоматизировать, какие-то задачи оптимизировать, моделировать и искать решения. Такие специалисты везде нужны, другое дело что есть инерция, и возможно не понимание что где-то в продажах, не плохо иметь какого-нибдуь продавца-программиста, или там химика-программиста, и тд.
    В целом я бы советовал не сферу менять, а направление, попробовать что-то другое, может из бэкенда перейти во фронтэнд, или попробовать разрабатывать другого класса продукты, ну или например начать руководить разработкой (если опыт/компетенции позволяют)
    Ответ написан
    1 комментарий
  • Сколько сегодня может получать опытный веб-разработчик?

    anycolor
    @anycolor
    Работая круглые сутки — можно заработать букет болезней, в итоге по деньгам в сухом остатке еще и минус будет.

    Вопрос изначально некорректно поставлен.
    Ответ написан
    Комментировать
  • Сколько сегодня может получать опытный веб-разработчик?

    AmdY
    @AmdY
    PHP и прочие вебштучки
    работая круглые сутки можно заработать только билет в дурку.
    работая на фрилансе в одиночку — всё зависит от твоего умения продаваться, но фриланс только в том случае, если можешь заработать больше или столько же как в офисе.
    в офисе зависит от страны, в минске НОРМАЛЬНЫЙ программист не меньше 1k, в киеве чуть больше, в питере 1.5-2k, в москве от 2k. Верхняя граница зависит уже не от программерских качеств, но 3-4k есть люди, если хорошо разбираешься в бизнес процессах или хайлодах, то небось и того больше.
    Ответ написан
    2 комментария
  • Мотивация программирования — деньги. Это нормально?

    @edogs
    > на почасовой зарплате.
    Скорее всего вот это основная Ваша проблема (если не говорить о смене профессии).

    У Вас 70% мотивации это деньги (по Вашим словам), но одновременно с этим зарплата (деньги) у Вас не связана с уровнем Вашего профессионализма и качеством работы. Вы свой час отработали — Вы свое получили, стимула расти нету.
    Вам надо поставить в прямую зависимость уровень Вашей зарплаты от уровня профессионализма. Переходите на попроектную оплату, пусть даже более низкую на начальном этапе. Получили проект — и у Вас есть выбор, сделать его за час или за 3.
    И вот когда Вы осознаете, что при текущем уровне Вы можете выполнить проект за 3 часа и получить 100 баксов… а приподняв уровень сможете выполнить тот же проект за час и получить те же 100 баксов — тогда появится стимул расти.
    Ответ написан
    3 комментария
  • Мотивация программирования — деньги. Это нормально?

    danin
    @danin
    Вспомнились слова Ивана Дембицкого:

    "…Цель «сделать проект» или «построить магазин» и т.п. — ложная цель. Она предполагает много работы, но ничего не говорит о том, что нужно зарабатывать. Цель должна быть выражена в деньгах. И точка. Всё остальное — повышение профессионализма, известность, создание бизнеса, всё — лишь средства… Как только цель определяется деньгами, и конкретной суммой, мозг начинает искать варианты реализации…

    После того, как поставлена финансовая цель и найден потенциальный путь для его решения, нужно сделать декомпозицию задачи. То есть разбить ее на небольшие подзадачи. Установить срок решения подзадачи и понять, сколько нужно делать в день, чтобы эту подзадачу реализовать. И каждый день шаг за шагом выполнять план. Не нужно стремиться выполнять план. Его нужно выполнять.

    И еще: эта деятельность должна вам нравиться.
    Даже не пытайтесь заработать тем, что вам не нравится. Вы просто не сможете конкурировать с теми, кого от этого прёт."
    Ответ написан
    Комментировать
  • Мотивация программирования — деньги. Это нормально?

    Вот когда зарабатывать будете столько, что хватит на все банальные потребности, и 70% мотивации внезапно пропадут — вот тогда начнется настоящая жесть :-)

    Помимо смены работы на ту, что интересна — решений нет и быть не может.
    Ответ написан
    4 комментария
  • Как развить программистское мышление?

    @jackroll
    Сверхразум
    Не слушай идиотов, пишущих что гуглить - самый важный навык программиста. Такие люди плохо себе представляют, что такое поисковик Google и как он работает. Не пойму как такие люди могут называть себя программистами, они хуже кодеров.
    Настоящий программист должен стараться решать задачи сам. Программист должен создавать что-то новое, а не искать готовые велосипеды других программистов.

    По сабжу - советую какую-нибудь найти книжку по алгоритмам и структурам данных. Если не ошибаюсь, Лафоре писал книжку такого типа, где примеры кода написаны на Java.
    Ответ написан
    3 комментария
  • Как развить программистское мышление?

    Neuroware
    @Neuroware
    Программист в свободное от работы время
    Соглашусь с Spetros, умение гуглить жизненоважный навык в программировании) 99% любых задач в том или ином виде уже решались до вас, по 70% уже есть хорошо расжованное описание, 50% есть еще и инструкции, поэтому если у вас не удается найти решение это либо плохо искали, либо неправильно поставлена задача.
    По части второго в программировании нужно уметь разбивать задачу на части (подзадачи). То есть скажем задача найти подстроку во всех файлах папки, сходу не ясно как можно искать сразу во всех файлах, очевидно нужно искать в каждом по очереди, если файлы мелкие то все нормально, можно считать их целиком и потом спокойно делать в них поиск, но если они весом под 24Гб, в таком случае нужно читать файлы построчно и делать поиск подстроки в каждой отдельной строке и т.д.
    Если "в голове" не получается построить полное решение конкретной подзадачи, нужно разбить ее на функциональные части и каждую из них решать как отдельную подзадачу. Вцелом любой, даже неимоверно сложный продукт с миллионом строк кода это лишь совокупность маленьких фрагментов, каждый из которых можно понять.
    Ответ написан
    1 комментарий
  • Как развить программистское мышление?

    Как ни странно, нужно программировать. И мыслить при этом.
    Ответ написан
    1 комментарий
  • Где найти работу по удаленке в 40+ лет?

    muaythai075
    @muaythai075
    Дизайнер
    Вариантов много:
    1. Выполнение заказов на фрилансе
    2. Заработок на своих сайтах
    3. Арбитраж трафика

    Но опять же для всех вариантов нужны знания.
    Ответ написан
    Комментировать
  • Где найти работу по удаленке в 40+ лет?

    alexk111
    @alexk111
    Автор Ботодрома (автоматизация Telegram, VK и др.)
    1. Возраст не имеет значения.
    2. Если нет навыков, тогда что еще Вы можете предложить рынку в обмен на деньги?
    Ответ написан
    Комментировать
  • Где найти работу по удаленке в 40+ лет?

    kapuletti
    @kapuletti
    Уберите возраст из вопроса и найдете ответ.
    Ответ написан
    6 комментариев
  • Где найти работу по удаленке в 40+ лет?

    Jeiwan
    @Jeiwan
    Никак.
    Почему все думают, что в интернете можно зарабатывать без навыков? Вы же не можете устроиться на обычную работу без навыков. Интернет тут ничем не отличается: это обычная работа, только удаленная. Нет навыков = нет работы.
    Ответ написан
    5 комментариев
  • Как бороться с заказчиком?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Когда заключали договор об этом не было не слово.
    Читайте условия договора и действуйте в рамках договора, соблюдая все условия!
    Ответ написан
    Комментировать
  • Как бороться с заказчиком?

    Sanes
    @Sanes
    Разбить цель на задачи и по каждой согласовать объем работ и стоимость. И не кидаться в крайности в плане объема задачи. Оптимально время выполнения задачи 1-3 дня.
    Ответ написан
    Комментировать