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

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    А просто со временем, до всех доходит, что программирование это не интересные исследования, познания неведомого как в фантастике, прикручивание двумя кликами новых движков.
    А на деле - это еще и множество рутинной и кропотливой работы, которая по сути - скучная, однообразная, И ее процентов 80.

    Вы это наконец поняли. Какую мотивацию вы хотите от нудной и кропотливой работы - неясно. Мотивация может быть в зарплате, в создании своего продукта, если он есть. А так - человек должен уметь мотивировать себя сам, а не ждать пока его рассмешат клоуны.
    Ответ написан
    4 комментария
  • Выбор СХД для esxi на HP Proliant DL580?

    @Tabletko
    никого не трогаю, починяю примус
    Совсем новичку не стоит таким заниматься. Цена ошибки очень высока. Обратитесь к интегратору или вендору вашего сервера за консультациями по этому вопросу.
    Ответ написан
    1 комментарий
  • Как сделать скрипт на Python в который уже включены нужные библиотеки?

    Есть всякие упаковщики (вроде PyInstaller), которые собирают скрипт с интерпретатором и всеми зависимостями в один exe-файл. Гуглите "python to exe", на первой странице всё будет.
    А на счёт упаковки скрипта с зависимостями, но без интерпретатора не слышал, да и это не всегда возможно — если какая-то из зависимостей использует нативные расширения, то в любом случае придётся эти расширения отдельно тащить.
    Ответ написан
    2 комментария
  • PyInstaller Как добавить изображение?

    @Andy_U
    Как-то так:

    def resource_path(relative):
    
        if hasattr(sys, '_MEIPASS'):
            return os.path.join(sys._MEIPASS, relative)
        else:
            return os.path.join(os.path.abspath("."), relative)

    Ну а потом, в процессе инициализации окна:
    self.setWindowIcon(QtGui.QIcon(resource_path('file.ico')))
    self.tray_icon.setIcon(QtGui.QIcon(resource_path('file.ico')))

    Ну и еще, конечно, в spec файл добавить ссылку на картинку в Analysis/binaries:
    a = Analysis(['xxx.pyw'],
                 pathex=['.'],
                 binaries=[('file.ico', '.')],
                 datas=[],
                 hiddenimports=[],
                 hookspath=[],
                 runtime_hooks=[],
                 excludes=[],
                 win_no_prefer_redirects=False,
                 win_private_assemblies=False,
                 cipher=block_cipher)
    Ответ написан
    4 комментария
  • Почему не работает слияние 2 списков в словарь?

    aRegius
    @aRegius
    Python Enthusiast
    slo = dict(zip(k, d))

    P.S. Оберните list-ом
    temp = list(zip(t, t1))

    P.S. И вот эта конструкция:
    k = []
    for i in a:
        k.append(i)

    равносильна:
    k = list(a)
    Ответ написан
    3 комментария
  • Пользуются ли люди QR кодами или это все таки бесполезность?

    Exploding
    @Exploding
    wtf?
    Я тут анализировал... Такой себе говноанализ проводил, периодически сканируя если есть возможность и код читаем, т.к. часто бывает его налепят так, что как ни танцуй вокруг него с телефоном - он не считывается из-за очень мелкого размера, крайне хренового качества, или что-то "налазит" на него и т.д.
    И пришел я к такому выводу: коды эти сами по себе достаточно полезны и удобны, как механизм/метод передачи определенных объемов информации, но не приживаются они по ряду причин, а именно:
    - Многие, если не большинство, людей вообще не шурупают что это за гребаный квадрат и с какой стороны к нему подходить.
    Решение: добавлять рядом краткую информацию о том, как его считать и почему это удобно.
    - Бесполезный контент! Наверно 80-90% всех кодов несут в себе абсолютно бесполезную хрень, типа урла на какой то убогий сайт, который никому не нужен. Получается, что отсканил код - нашару залил себе говна в телефон в виде, как получается, уже и сюда проникшего спама! Типа вот мы какие современные, хз че его туда зашифровать, а давайте что попало. Люди сканят и: агааа! А вот вам, хлебните говнеца и от нашей компании!))
    Решение: публиковать только действительно полезную информацию. Иначе нах.
    - Ну и к тому же, самое главное на мой взгляд, это неизвестность! Почему кто-то должен сканить код, не зная вообще нужна ему инфа из него или это будет очередной глоток свежего говнеца но только уже от другой компании!))
    Решение: указывать, какая информация зашифрована в коде, чтобы человек понимал будет ли она полезна для него или нет.

    А вообще конечно, придерживаясь этих правил (экий я! уже и в "правила" эту простыню записал:))) возможно qr-коды и стали бы популярней. Например, вместо того шлака, который есть сейчас в них, можно шифровать визитку со многими параметрами, которую отсканил и в телефон уже занесен контакт со всеми номерами тел., почтой, названием организации, адресом и др. GPS координаты, если кто юзает тел. как навигатор, основные технические характеристики товара, если это магазин обычный да и вообще валом ещё полезных вариантов... Но у нас почему-то вместо этого туда шифруют потоки калловых масс... идем то в ногу со временем, епта!))
    Ответ написан
    Комментировать
  • Как перестать кодить и начать программировать?

    BuriK666
    @BuriK666
    Компьютерный псих
    Если ваш старый код, для вас выглядит ужасно, то значит вы развиваетесь. Бейте тревогу когда начнете "идеально" писать.
    Ответ написан
    11 комментариев
  • Как перестать кодить и начать программировать?

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

    ну как минимум почитайте про:
    SOLID
    шаблоны проектирования
    Ответ написан
    Комментировать
  • Машинное обучение - это работа для "ученых" или программистов?

    @hauptling
    Язык программирования - это инструмент.
    В машинном обучении, необходимо знать: статистику, аналитику и т.д. , без них Вы в данной области - никто.
    Ответ написан
    Комментировать
  • Какую книгу выбрать по SQL?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    Ответ написан
    Комментировать
  • Это хорошая идея - найти гуру с опытом и заплатить деньги чтобы он как-то передал опыт?

    @egormmm
    Борітеся — поборете!
    Опыт вырастет, если будете применять то, что читаете.
    Ответ написан
    Комментировать
  • Это хорошая идея - найти гуру с опытом и заплатить деньги чтобы он как-то передал опыт?

    petermzg
    @petermzg
    Самый лучший программист
    Хочу научиться БОКСУ!
    План таков:
    1. Прочитать 30 самых популярных книг о Боксе.
    2. Найти чемпиона мира по боксу, чтобы провел мастер класс. Потом бывших чемпионов и так 10-15 человек.

    Я думаю опыт вырастет экспоненциально. Нет времени драться самому..
    Ответ написан
    Комментировать
  • Как моделировать дорожный трафик?

    @GreatRash
    Вот тут, можно нажать CTRL+U, промотать в самый низ и почитать скрипты.
    Ответ написан
    1 комментарий
  • Есть годные IDE for Python for Linux Ubuntu?

    MedVedar
    @MedVedar
    e-commerce developer
    https://wiki.python.org/moin/IntegratedDevelopment...
    Если рабочая машина такая уж слабая, то лучше посмотреть в сторону обычных текстовых редакторов: vim, emacs, vscode, sublime
    Ответ написан
    Комментировать
  • Есть годные IDE for Python for Linux Ubuntu?

    Punk_Joker
    @Punk_Joker
    Software Engineer в ВО Овен
    Eric или Geany попробуйте
    Ответ написан
    2 комментария
  • Где почитать примеры новшеств последних версий Python?

    @warnerbrowsers
    На оф.сайте
    What’s New In Python 3.6
    https://docs.python.org/3/whatsnew/3.6.html
    Ответ написан
    Комментировать
  • Мёртв ли QML? Стоит ли забыть раз и навсегда о кроссплатформенных гибридных приложениях на Qt?

    Nipheris
    @Nipheris Куратор тега C++
    Моё мнение таково:
    1) популярность QML на "том же Upwork" зависит от популярности C++ на "том же Upwork";
    2) C++ - язык крупномасштабной командной разработки, либо же разработки узкоспециализированной;
    3) заказы на крупномасштабную командную разрабоку всегда будут составлять лишь небольшую часть заказов на Upwork ввиду природы этого ресурса (т.к. на этом ресурсе не только крупные заказы а ЛЮБЫЕ заказы);
    4) вывод: Upwork - плохой критерий оценки пригодности QML для продакшена.

    Что касается React Native - это инструмент для задействования frontend-рабочей силы в сфере, где специалист QML/C++ будет более дорогим. Это разумный выбор для приложений и компаний, где ещё нет C++ разработчиков но есть JS разработчики, и где ещё нет C++ кодобазы, но есть JS, либо ещё нет никакой вообще.

    Примерно с таким же успехом я могу заявить, что Electron - лучший инструмент для продакшен-десктопа. Ну понятно наверное о чём я говорю.
    Ответ написан
    1 комментарий
  • Логическая ошибка. Но где?

    longclaps
    @longclaps
    Ты ж монетку до входа в цикл один раз бросаешь, а потом сто раз на нее смотришь.
    Ответ написан
    2 комментария