• Как получить желаемое отображение времени?

    NeiroNx
    @NeiroNx
    Программист
    Магическая дата и время вместо привычного "%d.%M.%Y %H:%M"
    package main
    import (
    	"fmt";
    	"time"
    )
    func main() {
    	t, _ := time.Parse("2006-01-02 15:04:05", "2019-08-26 11:10:02");
    	fmt.Println(t.Format("02.01.2006 15:04:05"))
    }

    26.08.2019 11:10:02
    Ответ написан
    Комментировать
  • Как работает размещающий оператор new?

    @MiiNiPaa
    Это не размещающий new. Это обычное создание объекта. Коструктор хайлайтера регистрирует себя в родительском объекте и родительский объект ответственен за его удаление, поэтому результат new-expression не используется.

    Placement new выглядит как:
    new ( <pointer> ) ClassName(...)

    Чтобы понять, как работает размещающее new, надо понять отличие new-expression от оператора new. new-expression делает вещи:
    1. Вызывает оператор new, передавая в него параметры написанные после new и до имени класса. Этот оператор выделяет память и возвращает указатель на выделенную память
    2. Вызывает конструктор класса, передав параметры написанные после имени класса. Это создаст объект в памяти выделенной в (1)


    Размещающий оператор new берёт в качестве параметра указатель на уже выделенную память и просто возвращает его.
    Ответ написан
    2 комментария
  • Что делать, если в проекте много плохого кода?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Как справиться с легаси-депрессией?


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

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

    Контроллеры на 2к строк


    Так это же замечательно! Это значит что вам попалась категория говнокода из разряда "просто тупое дублирование". Такой код весьма легко рефакторить, а значит уже не нужно плакать. В идеале перед рефакторингом было бы неплохо покрыть изменяемый код тестами уровня приложения, просто e2e тест который будет за вас автоматически проверять не сломали ли вы чего-нибудь.

    А далее, начинаем со структурных изменений (выносим дублирование в приватные методы, потом в сервисы), не меняя код, потом начинаем аккуратненько добавлять тестов и делать код чище. Причем все это можно разнести по времени, закладывая 30% времени разработки на устранение технического долга. типа по 2 часа в день на то что бы сделать код лучше. Конечно же вы должны еще владельцам проекта эту мысль донести, что мол инвестировав сейчас n% времени мы получим в долгосрочной перспективе профит в виде сокращения количества багов и как следствие улучшении процессов, предсказуемости и т.д.

    написанный школьником js


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

    хранимки с селектом и адские джойны

    А вот базу рефакторить будет чуть сложнее. Я бы для начала избавился бы от прямой работы с базой и спрятал бы весь sql и вызовы всех хранимок в коде нашего приложения (table gateway, row gateway или даже лучше data mapper, зависит от текущей ситуации). А затем уже можно опять же постепенно улучшать структуру базы данных, избавляться от хранимок и т.д.
    Ответ написан
    6 комментариев
  • В какой момент нужно патентовать проект?

    @nirvimel
    Хочу реализовать свой проект.

    И считаю его очень оригинальным. Сами программисты до такого бы никогда не додумались.

    Проект требует вложений : в создание около 500 тыс руб и содержание в течении бесплатного периода около 5 млн.

    Но я понимаю, что проект несет большие риски.

    Есть программисты которые готовы взяться за мой проект.

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

    ТО есть после полной оплаты чтоб не оказаться без проекта. Потом чтоб обязать их обслуживать проект, чтоб не было такого что я вложился, 400 тыс потратил, а они мне что мол им больше не интересно и ушли.

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

    Обязать их в дальнейшем сотрудничестве и чтоб я был директором проекта

    чтоб только я являлся создателем этого проекта.

    Я же придумал всю эту схему, значит я - директор. К тому же я - бизнесмен, а они простые рабы, их судьба жить от зарплаты до зарплаты, а я иду к успеху.

    И вообще какие еще юридические стороны нужно знать?

    Кроме трудового кодекса, который мне совсем не нравится.

    Рашен бизнесс во всей своей красе.
    Ответ написан
    1 комментарий
  • Чем наследования (extends) отличается от создания новых экземпляров классов (new)?

    Denormalization
    @Denormalization
    Класс Car - это трафарет.

    Оператор new - это создание ИЗДЕЛИЯ по этому трафарету
    extends - это создание нового трафарета (возможно с дополнениями) по которому можно создавать изделия.

    Между созданием изделия и создание нового трафарета есть разница?
    Ответ написан
    Комментировать
  • Как посимвольно сравнить каждую цифру в числе?

    @dmitryKovalskiy
    программист средней руки
    Вычисляйте остаток от деления на 10. Получите массив цифр с конца. Ну а дальше сравнивайте соседей и меняйте местами
    Ответ написан
    2 комментария
  • Не удаляет int в векторе через итератор, как исправить?

    @Dvvarreyn
    {
    return false;
    }

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

    bobrovskyserg
    @bobrovskyserg
    Допустим, все элементы массива одинаковы (вы уж простите, но в нашем колхозе последовательности не сортируют).
    Тогда всякое разбиение массива на два сортируемых подмассива идёт криво: все элементы массива сбиваются по одну сторону (влево, вправо - тут зависит от реализации) от медианного.
    Итого: время сортировки порядка n^2 вместо заветного n*log(n). Количество присваиваний, бл*дь, n-1 (столько раз выбирается медиана) - в отличие от количества сравнений.
    Удачной сессии.
    Ответ написан
    Комментировать
  • Множственное наследование?

    Scorpi
    @Scorpi
    Возникнет, при вызове этого метода нужно будет указывать конкретный класс:
    Base1::foo(); или Base2::foo();
    Ответ написан
    Комментировать
  • Как производить математические операции с большими числами?

    kumaxim
    @kumaxim
    Web-программист
    Фраза для гугла "Длинная арифметика С++"
    Ответ написан
    Комментировать
  • Принцип работы читов?

    He11ion
    @He11ion
    PHP-monkey
    Все в мире - суть виртуальная абстракция. Нет отдачи, нет стен, нет области видимости, нет ложки. Все окружающее - лишь набор нулей и единиц, модулирующих реальность. Когда ты поймешь это, Нео, ты познаешь суть всех читов в мире и сломаешь матрицу. Дерзай.
    Ответ написан
    Комментировать
  • Плохо знаю указатели. Какие подводные камни скрывает моя функция?

    gbg
    @gbg Куратор тега Программирование
    Любые ответы на любые вопросы
    На C++ спускаться до сырых указателей нужно в крайне редких случаях.
    Ответ написан
    2 комментария
  • Segfault, не могу найти ошибку, что надо исправить(C++)?

    gbg
    @gbg Куратор тега C++
    Любые ответы на любые вопросы
    @#$%^#$%^$%^&@#$%^

    Вы сайтом ошиблись, это надо на говнокод постить.

    #define вместо констант - лажа, но допустимая.

    Rainberd углядел, что в самопальной сортировке классическая "ошибка копипаста". Посмотрите внимательно на вложенный цикл, там условие должно быть j<n, а у вас - i < n Это сегфолт номер раз.

    А вот это - причина сегфолта номер два:
    char *str_pr = &str[0u];
    char *quality=&str2[0u]   ;

    В версиях до C++11 нет никаких гарантий, что это дело указывает на массив всех символов строки.
    В любых версиях нет никаких гарантий, что этот адрес будет неизменным в течении жизни строки.

    Кто надоумил вас использовать функционал библиотеки C для работы со строками, да еще и смешивать его с STL?

    Самопальная сортировка - тоже ужас. Этот код проще переписать, чем рефакторить.
    int i;
    for(i=....

    Откройте для себя объявление индекса внутри цикла:
    for(size_t i=0...

    Откройте для себя, что массивы должны индексироваться при помощи size_t, а не int.

    Тут в большинстве своем код на C, с операторами C++ в некоторых местах. Печать структур просится, например, в виде дообъявления оператора << у ofstream.

    Если это студенческая работа, преподавателя, который "подготовил" такого студента нужно лишить конфет и поставить в угол.
    Ответ написан
    8 комментариев
  • Что нужно знать, чтобы устроиться c++ программистом?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    Попробуйте устроиться на летнюю стажировку (около 2х месяцев обычно) в какую-нибудь компанию. Ну а что для этого нужно, зависит от компании т.е. читайте требования к вакансии.
    Ответ написан
    Комментировать
  • Какой wi-fi роутер можете посоветовать?

    gbg
    @gbg Куратор тега Компьютерные сети
    Любые ответы на любые вопросы
    Посмотрите на оборудование Linksys, например, WRT1900AC
    WRT1900AC_Photo01.jpg
    Ответ написан
    2 комментария
  • Проблемы с точностью?

    miraage
    @miraage
    Старый прогер
    Никогда никогда никогда не храните суммы/цены во float!
    Храните в int, а потом уже делите на 100, после всех операций.

    // UPD

    Разумно использовать DECIMAL(11,2) , если СУБД поддерживает.
    Ответ написан
    5 комментариев
  • Как совместить два изображения через параметры о цвете RGB?

    Самая простая формула в Вашем случае :
    R = front_R * 0.7 + back_R * 0.3
    G = front_G * 0.7 + back_G * 0.3
    B = front_B * 0.7 + back_B * 0.3

    Есть более сложные алгоритмы
    Ответ написан
    Комментировать