• В каком формате обычно делают CRM системы?

    Adamos
    @Adamos
    От многопользовательского приложения в формате программы для десктопа уже отказались даже такие динозавры, как 1С.
    Не хочешь класть данные в интернет - положи в интранет. Потом, когда одумаешься, перенесешь на хостинг.
    "CRM-система с клиентской базой, с учетом приходов и расходов, c учетом товаров на складе и с архивом заказов" - это 90% систем, внедряемых в бизнесе. Писать что-то свое с нуля тут имеет смысл только в том случае, если вы собираетесь развивать и поддерживать его самостоятельно же, постоянно копаясь и выделяя на это ресурсы. В формате "один раз заплатил и работаешь" - только готовые решения.
    Ответ написан
    Комментировать
  • Как передать значение для формы в Django?

    AlexNest
    @AlexNest
    Работаю с Python/Django
    Уже писал, по идее -на почте должен быть более менее - полный ответ.
    Вариант 1:
    Использовать сессию.
    В AddClient сохранять id в нее
    client = form.save()
    request.session['client_id'] = client.id
    request.session.modified = True

    В AddOrder, сохранять форму с commit=False и добавлять id из сессии, после чего - удалять ключ из нее (также с ...modified = True)
    UPD: Нужно будет обновить модель, изменив FK и сделав его null/blank=True.
    Ну и проверять перед сохранением заказа, есть ли в сессии нужный ключ.
    Плюсы: можно продолжить редактирование, даже после создания юзера и закрытия браузера.
    Минусы: без дополнительной обработки (например - запрет на модификацию существующего в сессии ключа) может возникнуть случай когда юзер перезаписывается до создания заказа.
    Вариант 2:
    redirect(reverse('app:view', kwargs={ 'bar': FooBar })) # Id записывать в kwargs

    Плюсы: не возникнет указанной выше ситуации.
    Минусы: нужно модернизировать url
    Ответ написан
    Комментировать
  • Это правильная реализация бинарного поиска?

    wataru
    @wataru Куратор тега Алгоритмы
    Разработчик на С++, экс-олимпиадник.
    Работает медленно, потому что вы обрезаете входной массив каждый раз. Для этого приходится обходить и копировать всю нужную часть. Поэтому суммарное время работы будет O(n).

    Чтобы работало быстро вам надо не менять lst, а помнить индексы границ текущего куска.

    Ещё, вам надо останавливаться, когда рассматриваемый кусок станет пустым, чтобы решение не вылетало, если искомого числа в списке нет.

    И последнее, в питоне есть операция целочисленного деления - //. Используйте ее вместо приведения к int после деления.
    Ответ написан
    2 комментария
  • Это правильная реализация бинарного поиска?

    Vindicar
    @Vindicar
    RTFM!
    Твоя реализация зациклится, если такого элемента нет в списке.
    Ответ написан
    Комментировать
  • Это правильная реализация бинарного поиска?

    GavriKos
    @GavriKos
    Не вдаваясь в логику поиска:
    - а что будет если в lst не будет нужного элемента?
    - что вообще возвращает метод?

    UPD:
    - а если мне надо найти 0 в массиве? ;-)
    Ответ написан
    Комментировать
  • Что делать если не получается писать код имея нужные знания?

    fedorez
    @fedorez
    Хатуль мадан
    да ну.
    не бросайте. я считаю что "не твоё", "не дано" - это ерунда и так не бывает. как говорят в любимой Бобуком цитате - "специализация - удел насекомых". гуманитарии/технари, равно как физики/лирики - это такой же бред как "совы/жаворонки" - любой человек без органического поражения организма может всё. вообще всё - и писать музыку, и оперировать уравнениями Максвелла, и странный аттрактор ковырять, и детективы писать, и приложения под айфон на Objective-C сочинять.
    главное желание разобраться и практика.
    конкретно в вашем случае - читайте программы, как читаете книги.
    мы в юные годы жили без компьютеров, с доступом к машинному времени час в неделю, у нас были книжки с листингами на паскале и бейсике - мы их читали, мы их в тетрадочке писали, обсуждали, находили косяки.
    так и вы - читайте готовые проекты, разбирайте задачки, смотрите решения - это нормально.
    читать чужое творчество - это правильно и хорошо.
    не получается решить задачку - пробуйте снова, снова - если совсем вилы - подсмотрите ответ, решите аналогичную задачку. читайте код как книгу. он интересный)
    тем более, у вас есть комп, его можно гонять раз за разом)
    не можете написать что-то с нуля? возьмите букварь, вроде Big Nerd Ranch - там по шагам строится какое-то минимально функциональное приложение - с объяснениями, пройдите это.... пусть медленно.
    скачайте готовый проект - поиграйтесь с ним - измените шрифт, цветовое решение, перекомпонуйте интерфейс, добавьте функционал какой-нить, вьюшек пару - с каким-то минимальным вам интересным чем_то...
    блин, играйте! развлекайтесь! если вы будете страдать изучая - это путь мученика, не надо так)
    удачи.
    Ответ написан
    1 комментарий
  • Что делать если не получается писать код имея нужные знания?

    approximate_solution
    @approximate_solution
    JS Developer. Angular\React\Vue\Ember
    я сталкиваюсь с тем, что я не понимаю как его делать, хотя там есть все то, что я уже проходил.

    Это нормальная практика, называется она "не набита рука".

    Но, если я вижу решение того или иного задания, то я сразу же понимаю почему те или иные действия выполнены при решение.

    Всё правильно, так и пишут код и находят решения 80% программистов. Гуглят решения -> компонуют решения под свой проект -> делают рефакторинг кода(если требуется) -> получают деньги. PS: не все крутые дядьки сеньоры-помидоры отличаются от вас мозгами, просто они уже вложили от 2000 до 10 000 часов на изучения материала, на который вы потратили только 100-200 часов. В этом вся разница.

    но как разобраться со своей проблемой я не знаю.

    Очень просто. Решать типовые(и не типовые) задачи(от самых простых, до более сложных) по 5-8 часов в день, и каждый месяц делать breackpoint, анализируя пройденный путь. Если через полгода не будет результата - всё и правда плохо, и скорее всего вам нужно качать не только программирование, но и умение логически и критически мыслить, умение деструктурировать задачи на под задачи.
    Ответ написан
    5 комментариев