Задать вопрос
  • Чистая архитектура. Как можно использовать класс без import?

    xez
    @xez
    TL Junior Roo
    Написано, что ссылка должна быть только на "на модули с исходным кодом, содержащим интерфейсы, абстрактные классы и другие абстрактные объявления."
    Т.е. импорт интерфейса, а не конкретного класса с его реализацией. Конкретный объект, реализующий интерфейс, туда попадет уже на этапе внедрения зависимостей.

    Пример для Spring:
    package com.example.springbark;
    
    import com.example.springbark.pet.Dog;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.CommandLineRunner;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    public class SpringBarkApplication implements CommandLineRunner {
    
        @Autowired
        private Dog dog; // зависимость от интерфейса
    
        public static void main(String[] args)  {
            SpringApplication.run(SpringBarkApplication.class, args);
        }
    
        @Override
        public void run(String... args) throws Exception {
            dog.bark();
            System.exit(0);
        }
    }


    package com.example.springbark.pet;
    
    public interface Dog {
    
        void bark();
    }


    package com.example.springbark.pet;
    
    import org.springframework.stereotype.Component;
    
    @Component
    public class Spike implements Dog {
    
        @Override
        public void bark() {
            System.out.println("Bark-bark");
        }
    }


    Тут есть импорт интерфейса Dog и в главном классе неизвестно, какой конкретно объект будет внедрен.
    Ответ написан
    8 комментариев
  • Как портировать приложение с юнити?

    freeExec
    @freeExec
    Участник OpenStreetMap
    Сильно хавает батарейку, поэтому для приложения не разумно. Используй Flutter
    Ответ написан
    1 комментарий
  • Почему система продолжает работать после выполнения команды?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Почему при выполнение данной команды ОС продолжает работать до момента перезагрузки?

    Я бы не сказал, что она "продолжает работать", но у нас, видимо, разные определения понятия "работать". Никакие новые исполняемые файлы в такой системе не могут быть запущены, потому что никаких файлов нет, а запущенные процессы -- да, могут продолжать выполняться и форкаться, пока им от файловой системы не нужны операции использующие имена файлов.
    Ну и, справедливости ради, надо отметить, что место занятое открытыми на момент выполнения команды rm -rf / файлами не будет освобождено и их содержимое не будет потеряно, пока они не будут закрыты. Можно будет продолжать читать и писать в них, в т.ч. ядро будет продолжать использовать их для реализации механизмов виртуальной памяти.
    Ответ написан
    Комментировать
  • Какой SSD быстрее: SATA 3 или M.2 NVME?

    xez
    @xez
    TL Junior Roo
    Там в характеристиках же написано.
    Обычно «M2 с поддержкой NVMe» быстрее.
    Впрочем, я предлагаю сравнивать конкретные модели.
    Ответ написан
    Комментировать
  • Почему в примерах книги используется i32, а не i8?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Это очень старая практика. Почти все сишники так делают. Для современных процессоров операции с 32х разрядным числом удобнее. А суждать до 8 бит нет смысла. Все равно регистр EAX так или иначе используется целиком.

    Но 8 битные целые имеют смысл если их складывать в массивы. И еще имеет смысл ужесточать
    тип когда очень важно иметь функцию которая по контракту принимает только 8 битное целое. Но это редко
    бывает. Чаще мы хотим целое число пошире. Но не 64 бита. Это перебор. Это как бутылка водки против контейнера водки.
    Ответ написан
    5 комментариев
  • Fan stop в видеокартах это нормально?

    New_Horizons
    @New_Horizons
    Бред:
    так если температура меньше 60 градусов, чего им крутиться зря?) не вижу проблемы что-то)
    Ответ написан
    2 комментария
  • Что лучше: больше полей или больше Join?

    @alexalexes
    Куча count - возможно, но не join-ов.
    SELECT 
        posts.id, 
        posts.name, 
        count(case when s_vk.social_name = 'vk' then 1 end) as count_vk, 
        count(case when s_vk.social_name = 'tg' then 1 end) as count_tg,
        count(case when s_vk.social_name = 'ok' then 1 end) as count_ok,
        count(case when s_vk.social_name = 'tw' then 1 end) as count_tw
    FROM posts
       LEFT JOIN socials as s_vk on s_vk.post_id = posts.id 
    GROUP BY posts.id, posts.name

    В вашем случае для ускорения не подходит ни то, ни другое.
    Нужно вести отдельную таблицу в качестве кеша с аналогичными полями:
    posts_id,
    count_vk,
    count_tg,
    count_ok,
    count_tw
    При возникновении события клика на соц. сеть - добавлять запись в socials, а также триггером плюсовать значение по полю кеш-таблицы (и предварительно создавать запись в этой таблице по post_id, если не было ранее событий).
    Для необходимости сброса кеша нужно сделать хранимую процедуру для его перегенерации на основе данного запроса.
    PS:
    Еще бы разбить таблицу socials - на справочник соц. сетей:
    id - идент. соц сети.
    full_name - полное название соц. сети,
    abbrev - аббревиатура, например, ОК, ВК и т.д.
    tag_name - тех. название, например, ok, vk и т.д.
    ... - другие параметры соц. сети

    И таблицу для фиксации кликов:
    soc_click_events
    id - идент. события,
    post_id - идент. поста,
    social_id - идент. соц. сети,
    event_date - дата и время клика,
    ... - другие параметры клика

    PPS:
    В итоге, для фиксации событий клика и поддержания структуры базы в нормальной форме вы используйте три таблицы - posts, socials и soc_click_events.
    Для решения статистических задач вы делаете отдельные кеш-таблицы и обслуживаете их либо триггерами, либо хранимыми функциями и процедурами, получая статистические данные из первичной структуры.
    Ответ написан
    1 комментарий
  • Где лучше рекламировать курсы обучения программированию?

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

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

    Почему вообще придумали использовать ориентированне графы? Потому что они полезны. Например, отношение "любовь" между людьми можно описать ориентированным графом, а вот неориентированным - нет (ибо есть безответная любовь).

    Иногда имеет смысл рассматривать неориентированный граф как оринетированный с парными дугами, если в процессе работы симетрия как-то нарушается. Например в алгоритмах поиска максимального потока на графе так и происходит. Поэтому он не работает с неориентированными графами - в них надо каждое ребро разбить на два туда и обратно.
    Ответ написан
    9 комментариев
  • Как сделать авторизацию клиента в API и не облажаться?

    MvcBox
    @MvcBox
    Software Engineer [C/C++/JS(for Node.js)/etc]
    Как сделать так, чтобы бекенд отдавал данные только этому вот нужному сайту-клиенту, а не кому попало? Как удостовериться, что пришел запрос из разрешенного места, именно из клиента, а не от наглеца, который решил распарсить мой сайт? Как называется вот это вот, как гуглить?


    Никак. Парсер "наглеца" просто будет выдавать себя за Ваш сайт-SPA, передавая все те же самые заголовки, что и сайт.
    Ответ написан
    1 комментарий
  • Какую легковесную IDE выбрать для C++?

    axifive
    @axifive
    Software Engineer
    Ранее упомянутый VS Code и его форки
    Qt Creator
    Bloodshed Dev-C++/Embarcadero Dev C++
    Embarcadero C++ Builder CE
    Code:: Blocks
    CodeLite
    Ответ написан
    Комментировать
  • Какую легковесную IDE выбрать для C++?

    Wohlstand
    @Wohlstand
    Инженер-программист С++
    Я сам для себя использую Qt Creator. По мне очень удобная и шустрая среда. Однако, хочу предупредить: в последних версиях присутствует модуль clangd (модель кода CLang): штука очень полезная, позволяющая находить различные косяки на лету без необходимости собирать проект, однако, она жрёт оперативку очень знатно. Поэтому, если машина слабая, то лучше отключить эту штуку. Мне лично среда ОЧЕНЬ нравится не только за её легковесность, но и за встроенный функционал по рефактрорингу (умному переименованию элементов кода, например, быстрому созданию тел функций и методов из прототипов сразу в нужном месте, и т.п.). Сравнивал я с Clion: последняя удобная по части быстрых подсказок и некоторой автоматизации по исправлению косяков, но по большей части менее удобная и невероятно тяжеловесная (да "здравствует" Java).
    Ответ написан
    Комментировать
  • Нужен ли терминал/касса для ИП, если платежи будут только через интернет?

    chupasaurus
    @chupasaurus
    Сею рефлекторное, злое, временное
    Интернет-эквайринг сам по себе - недостаточно, нужна ещё облачная касса (дешевле физической) для выполнения 54-ФЗ (т.е. чеки из ОФД). Ваш бывший сотрудник пары банок.
    Ответ написан
    Комментировать
  • Как установить соединение с сервером Windows по TCP?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Надо открыть порт в настройках сервера в консоли AWS, если правильно помню - это делается в группе безопасности, в которой находится сервер.
    Ответ написан
    Комментировать
  • Возможно ли сделать такую яндекс карту?

    @Kadonomaro
    https://habr.com/ru/news/t/702762/
    Недавно вышло обновление для карт, в котором можно менять дизайн. Попробуйте
    Ответ написан
    3 комментария
  • Писать потенциальному работодателю во время учёбы?

    GavriKos
    @GavriKos
    Микропетпроджект - домашнее облако homeCloud
    Диплом тут совсем ни при чем.
    А вот заявлять о себе до того как вы готовы идти работать - ну можно если вы крутой спец и чтобы вам положили на полку.
    А так - толку ноль, джунов "на будущее" никто не смотрит
    Ответ написан
    Комментировать
  • Как отключить корутину если она не отключается через StopCoroutine?

    GavriKos
    @GavriKos Куратор тега Unity
    Микропетпроджект - домашнее облако homeCloud
    Вот по памяти не помню, но что то мне подсказывает что надо в Stop передавать тот же енумератор, что и в старт. А вы передаете новый.
    Ответ написан
    1 комментарий
  • Безопасно ли пользоваться кастомными прошивками?

    yakovlev_13
    @yakovlev_13
    Шаманство, экзорцизм и некромантия.
    Нельзя полагаться на неизвестного издателя. Это просто не рационально.
    По сути лотерея.
    Может работать лучше оригинала.
    Может занести вредонос.
    Может просто тупить.
    Вариантов масса. Всё зависит то пряморукости и порядочности кастомизатора
    Ответ написан
    Комментировать
  • Не правильное время в Manjaro?

    paran0id
    @paran0id Куратор тега Linux
    Умный, но ленивый
    Linux считает, что hardware clock идут в UTC, а Windows - что в местном часовом поясе. При этом оба синхронизируются со временем из интернета и подводят аппаратные часы, как считают нужным. Нужно либо винде сказать, что часы в UTC (где-то в реестре настраивается, нагуглите без проблем), либо линуксу, что наоборот. Но вообще правильнее держать их в UTC.
    Ответ написан
    4 комментария
  • Имеет ли смысл переплачивать за ECC память в сервере базы данных, если пользователи работают на "обычной" оперативной памяти?

    @Drno
    какая разница как работают пользователи, если это предназначено для сервера? он же пишет данные в БД... а не пользовательские ПК
    Ответ написан
    3 комментария