Задать вопрос
  • Как выглядит рут директория в 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
    Ты должен спрашивать какие алгоритмы игровой графики бывают. Это важное. А константа - это просто реализация.

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

    Vindicar
    @Vindicar
    RTFM!
    Я не гарантирую, что мой совет будет толковым, но... имхо, требование о приватности полей следует применять умеренно - в первую очередь в классах с нетривиальными методами. Там это позволяет избежать внезапного изменения поля, когда логика работы методов этого не ожидает. В этом случае сеттер свойства может проверить, разрешено ли изменять поле в настоящий момент, и действовать соответственно.

    Разумеется, свойства необходимы, если мы планируем использовать паттерн Наблюдатель(Observer), который в C# реализуется через интерфейсы INotifyPropertyChanged и INotifyPropertyChanging. Если вкратце - если мы хотим, чтобы другие объекты могли подписаться на наш объект, и получать уведомления об изменении его состояния. Тут всё понятно - сеттер свойства будет эти уведомления рассылать.

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

    В случае примитивных data transfer objects, как User в твоём примере, я не вижу особенного смысла в использовании свойств ради свойств. Я бы даже сделал его struct, а не class, но это уже пусть спецы по C# меня поправят.

    Вообще, любую рекомендацию по проектированию нужно рассматривать не как заповедь, а как некий размен (trade-off): мы выигрываем в X, но проигрываем в Y (зачастую Y = сложность кода). И, соответственно, смотреть, что для тебя важнее.
    Ответ написан
    Комментировать
  • Как называется стандартная форма для MacOS?

    Ключевое слово: Cocoa
    https://stackoverflow.com/questions/30269329/creat...

    Но если это не самоцель, то лучше смотри на SwiftUI и на всякие кроссплатформенные фреймворки.
    Ответ написан
    Комментировать