• На чем пишутся современные десктопные приложения?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    на всем ), именнно ввиду непопулярности десктопа все размыто

    прежде всего на Сшарпе - все просто: десктоп значит винда, винда значит либы, либы значит Сшарп - отличаются как раз малым размером (хехе),

    потом Qt / GTK/ Tcl с их портами на куда придется и куда приестся - от PyQT (наверно, самому вмнеяемому для Питона но с хз какой лицензией - уже не слежу, что там отпустили попустили допустили, о! pyside ожил свежий!) до Tk портировнного на Go - как-то изучал дела с десктоп приложениями - сам Go с десктопом и был и плохо и остался плохо, но вот именно порты Tk там из известных продвинулись дальше всего

    ну и Delphi конечно, если программистов найдете )) нет, не умер, но, думаю, дорог в поддержке )

    если думаете с чего начинать - рекомендую PySide, мне кажется будет наименьше число разочарований и тормозов при создании желаемого
    Ответ написан
    3 комментария
  • На чем пишутся современные десктопные приложения?

    @ignat2009
    14 лет, изучаю C#
    Сейчас в основном никто не использует Линукс
    Мне самому 14 лет и я изучал с++ и перешёл на с# ради создания программ
    Так что берите с# или java
    Лучше c# потому что с# взаимствует у с++ эффективность и у java( точно не знаю что)
    Ответ написан
    2 комментария
  • Как выглядит рут директория в Apache Tomcat?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Apache tomcat, это не совсем тот apache, о котором Вы думаете, хотя они и рядышком. Это сервер java- приложений!
    Соответственно приложения для него упаковываются в jar(war) архивы. У каждого приложения свой root.
    У самого сервера есть только рабочий каталог, куда закидываются архивы для деплоя и где они распаковываются.
    Обычно ресурсный (resources) каталог защищен от записи. Так что нужно смотреть содержимое архива командой jar.
    Ответ написан
    3 комментария
  • Как удалить скобки в математическом выражении?

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

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

    Так, если вершина "+", то скобки ставить вообще не надо. Если вершина "*", то надо ставить скобки вокруг ребенка, если там операция "+" или "-". Если вершина "-", то надо ставить скобки справа, если там "+" или "-". Если вершина "/", то надо ставить скобки вокруг левого сына, если там "+" или "-". Вокруг правого сына скобки надо ставить если не число. Подумайте аккуратно, может я какие-то правила упустил.

    Это удобно реализовывать рекурсивной функцией. Она проверяет, надо ли ставить скобки вокруг левого сына и выводит его рекурсивно, потом операцию, потом также правого ребенка.

    Парсинг - очень заезженная тема. Гуглите. Самый простой алгоритм - квадртатичный - проходитесь по строке и ищите самую левую операцию с самым большим приоритетом вне скобок (ведя счетчик открытых скобок). Если такой нет, то можно опустить скобки по краям. Если их нет, то это число (или перменная). Если нашли операцию, то рекурсивно разбирайте две подстроки слева и справа.
    Ответ написан
    5 комментариев
  • Почему не работает глобальный обработчик исключений Spring?

    emekhanikov
    @emekhanikov
    Разработчик и архитектор программного обеспечения
    Добрый день,

    Старенькая статья как будто, 2013 года, попробуйте взять самый свежий Spring Boot
    тут https://start.spring.io
    пример тут посвежее https://www.baeldung.com/exception-handling-for-re...
    Там же есть ссылка на GitHub
    https://github.com/eugenp/tutorials/tree/master/sp...

    Надеюсь поможет
    Ответ написан
    1 комментарий
  • Что почитать по ТРПО?

    Выбирай интересующую тему:
    - Методологии
    - Менеджмент
    - Аналитика
    - Тестирование
    - Разработка
    - Эксплуатация
    - Проектирование

    И смотри книги по соответствующей теме.
    Книги типа той что в вопросе указал (обо всём и ниочём)- их просто нет, тк по каждой из тем можно с десяток книг такого же размера выпустить, и каждая будет о чём-то новом без повторов и воды.
    Ответ написан
    Комментировать
  • Почему не дополняются значения в return?

    @chemdev
    Раз никто не сказал, напишу третий ответ.
    Ни в одной компании в мире, ни в одной адекватной задаче на собесе, ни в одной адекватной учебной задаче нет условий / цели написать минимальное количество строк. Твоя функция делает две вещи (что уже не ок): увеличивает значение атрибута и возвращает данный атрибут. Напиши это в той же последовательности что и на "человеческом" и не парься.
    Ответ написан
    7 комментариев
  • Почему не дополняются значения в return?

    @Zzzz9
    return self._balance + amount
    Ответ написан
    Комментировать
  • Почему не дополняются значения в return?

    Maksim_64
    @Maksim_64
    Data Analyst
    это не обычное сложение, а сложение и присваивание self._balance += amount эквивалентно. self._balance = self._balance + amount. Ты можешь потенциально использовать такую форму с := (walrus) оператором. и код будет выглядеть вот так
    return (self._balance := self._balance+ amount) скобки здесь обязательны. С обычным присваиванием так нельзя.

    Отредактировано ошибочка вышла Мы не можем использовать walrus оператор, с атрибутами экземпляра класса. Кстати, это интересно, он выдает SyntaxError: cannot use assignment expressions with attribute. Я ожидал, что это будет NameError. Вот уже удивительно, век живи век учись.
    Ответ написан
    9 комментариев
  • Как в одну строчку сосчитать сумму произведения ключей и значений?

    Maksim_64
    @Maksim_64
    Data Analyst
    sum(float(key.value)*value for key,value in self._testes.items())


    или если хочешь в Decimal ответ то убери float.
    Ответ написан
    1 комментарий
  • Почему при выводе на форму не подтягивается связанный объект из БД?

    azerphoenix
    @azerphoenix Куратор тега Spring
    Java Software Engineer
    Добрый день.

    @OneToOne(cascade = {CascadeType.ALL}, fetch = FetchType.LAZY)
        @JoinColumn(name = "id")
        private UserInfo userInfo;


    Так у вас FetchType.LAZY, потому данные и не подтягиваются. А OSIV у вас включен или отключен?

    P.S. не передавайте на фронт саму сущность. Используйте DTO.
    Ответ написан
    2 комментария
  • Как правильно называется деталь?

    anthtml
    @anthtml
    Системный администратор программист радиолюбитель
    Конструкция называется "Электронная схема".
    Приобрести нереально. Если батарейка LR41 есть в каждом хозларьке, светодиод есть в каждом радиомагазине, то контакт, обычно высекается под конкретную конструкцию фонарика.
    Поэтому как выше и сказали: гораздо проще, а главное дешевле, купить брелок-фонарик, т.к. только в этом варианте присутствует "конструкция", в иных же - только "компоненты" и то не все.
    Ответ написан
    Комментировать
  • Свойства или поле не могут быть найдены?

    @Dementor
    программист, архитектор, аналитик
    Посмотрите пример, как делаются в шаблоне итерации по спискам: https://habr.com/ru/articles/351132/
    Ответ написан
    Комментировать
  • Как из thymeleaf-формы получить данные в DTO или в List?

    @Dementor
    программист, архитектор, аналитик
    Никак. "thymeleaf-формы" - это просто шаблон для формирования конечной HTML-странички, в которую можно добавить некую JS-логику.

    Далее уже как душе угодно - можно при "можно переназначить место для каждого id" дергать ваш серверный скрипт и менять сеансовое состояние на сервере по каждому элементу данных. Или можно собрать все данные и отправить в виде единого JSON или как обычные переменные формы (x-www-form-urlencoded).

    А уже на стороне сервера в своем РЕСТ-контролере, в зависимости от того как передаете данные, можете сформировать DTO, которое передать на уровень сервисов.
    Ответ написан
    Комментировать
  • Как в методе обратиться к полям наследуемого класса?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Как то так, тут 2 метода

    public interface ISqlGenerator
        {
            string Generate();
        }
        public class Parent
        {
        }
        public class new_table : Parent, ISqlGenerator
        {
            public string Generate()
            {
                return "insert ....";
            }
        }
        public class tb : Parent, ISqlGenerator 
        {
            private string _id;
            private string _name;
    
            public string Id { get => _id; set => _id = value; }
            public string Name { get => _name; set => _name = value; }
    
            public tb(string id, string name)
            {
                Id = id;
                Name = name;
            }
            public string Generate()
            {
                return "insert ....";
            }
        }
        public class Crud {
            public static bool Add(Parent instance, string tableName)
            {
                if (instance is tb)
                {
                        var t = instance as tb;
                }
                else if (instance is new_table)
                {
                           var t = instance as new_table;
                }
                return false;
            }
            public static bool AddInterface(ISqlGenerator instance, string tableName) {
                var sql = instance.Generate();
                return false;
            }
        }
    Ответ написан
    1 комментарий
  • Как в методе обратиться к полям наследуемого класса?

    yarosroman
    @yarosroman Куратор тега C#
    C# the best
    Для этого всего ORM и придумали.

    Да и прочтите про наследование и виртуальные методы.
    Ответ написан
    Комментировать
  • Как можно упростить реализацию работы с БД в C#?


    однако в CRUD-функциях будут разные SQL-запросы

    Вынеси код со всеми CRUD-операциями в отдельный класс с интерфейсом. Передавай экземпляр этого класса в форму.

    Сами формы можно в рантайме через рефлексию попробовать генерировать.
    Ответ написан
    Комментировать
  • Как можно упростить реализацию работы с БД в C#?

    yarosroman
    @yarosroman Куратор тега C#
    C# the best
    Как выше сказали, форму можно и в рантайме создавать (что так и делается, только код отдельно находится для этого).
    1. Можно использовать кодогенерацию, а не рефлексию, при этом вам в любом случае, ваши датаклассы надо будет атрибутами обвешивать, чтобы знать как создавать поля ввода.
    2. Для WinForms готовых бесплатных решений нет. Для WPF https://github.com/GenericCodes/WPFCrudControl не полностью, но решает вашу проблему.
    3. Среди платных решений (DevExpress, Teleric) есть инструменты для автогенерации форм, с шаблонами и прочим, но не в рантайме.
    Ответ написан
    Комментировать
  • Является ли абстрактная фабрика способом динамически создавать классы?

    bingo347
    @bingo347
    Crazy on performance...
    Пример бы привели, который увидели.
    Если кратко - ответ нет, абстрактная фабрика отличается от обычной, тем что создает объекты не конкретного типа, а более абстрактного (любого типа удовлетворяющего интерфейсу например).
    Динамически создавать классы не во всех ЯП можно, а паттерны абстрагированы от ЯП.
    Ответ написан
    1 комментарий
  • Как используются "магические константы" в реальных реализациях?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ты должен спрашивать какие алгоритмы игровой графики бывают. Это важное. А константа - это просто реализация.

    Почитай Генри Уоррена - Алгоритмические трюки для программистов. Там есть всякое. Деление через умножение на магию. Умножение через сдвиги. Дискретные логарифмы и корни и прочее.
    Ответ написан
    Комментировать