• Для чего идеальна 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 комментариев
  • Какой язык программирования учить для серверной части?

    Rrooom
    @Rrooom
    PHP
    минусы - он говно
    плюсы - популярен для говносайтов

    Python
    минусы - python3
    плюсы - он няшный, python2, разные и шикарные реализации асинхронности

    Если речь не о сайтах, а просто о серверных приложениях, то наиболее популярны - Java, Python, Erlang, Go, C.
    Многие начинают использовать для небольших проектов NodeJS, но ему пока не все доверяют.
    Ответ написан
    Комментировать
  • Где найти стажировку для javascript разработчика удаленно?

    Judixel
    @Judixel
    Front-end Engineer
    Можешь сделать следующим образом: откликаешься на вакансию js разработчика, в большинстве случаев требуют выполнить тестовое задание, откликаешься на несколько вакансий, выполняешь тестовые, заодно проверишь свой уровень владения.
    Ответ написан
    1 комментарий
  • Где найти стажировку для javascript разработчика удаленно?

    @WapGeaR
    Программист
    Аааааа. Я не могу просто. Зачем учить что-то, если у самого нету рвения? Первый опыт - это всегда свое детище, У тебя есть небольшие знания и идея, так вот действуй, сделай что-нибудь своё, конечно это займет время, зато потом у тебя будет мини-портфолио и с ним уже можно искать удаленку, даже junior'ом

    Куда все так спешат, не пойму.
    Ответ написан
    1 комментарий
  • Для чего нужен Python?

    @KIN1991
    Python, PHP developer
    Вот кто может его использовать и зачем.
    • Компания Google широко использует Python в своей поисковой системе
    и оплачивает труд создателя Python.
    • Служба коллективного использования видеоматериалов YouTube в значи- YouTube в значи- в значи-
    тельной степени реализована на языке Python.
    • Популярная программа BitTorrent BitTorrent для обмена файлами в пиринговых се- для обмена файлами в пиринговых се- для обмена файлами в пиринговых се-
    тях (peer-to-peer) написана на языке Python.
    • Популярный веб-фреймворк App Engine от компании Google использует
    Python в качестве прикладного языка программирования.
    • Такие компании, как EVE Online и Massively Multiplayer Online Game
    (MMOG), широко используют Python в своих разработках.
    • Мощная система трехмерного моделирования и создания мультиплика-
    ции Maya поддерживает интерфейс для управления из сценариев на языке
    Python.
    • Такие компании, как Intel, Cisco, Hewlett-Packard, Seagate, Qualcomm
    и IBM, используют Python для тестирования аппаратного обеспечения.
    • Такие компании, как Industrial Light & Magic, Pixar и другие, используют
    Python в производстве анимационных фильмов.
    • Компании JPMorgan Chase, UBS, Getco и Citadel применяют Python для
    прогнозирования финансового рынка.
    • NASA, Los Alamos, Fermilab, JPL и другие используют Python для научных
    вычислений.
    • iRobot использует Python в разработке коммерческих роботизированных
    устройств.
    • ESRI использует Python в качестве инструмента настройки своих популяр- Python в качестве инструмента настройки своих популяр- в качестве инструмента настройки своих популяр-
    ных геоинформационных программных продуктов под нужды конечного
    пользователя.
    • NSA использует Python для шифрования и анализа разведданных.
    • В реализации почтового сервера IronProt используется более 1 миллиона
    строк программного кода на языке Python.
    • Проект «ноутбук каждому ребенку» (One Laptop Per Child, OLPC) строит
    свой пользовательский интерфейс и модель функционирования на языке
    Python.

    Следовательно Python используют в серверном, прикладном и в веб программировании
    Ответ написан
    7 комментариев