Ответы пользователя по тегу Java
  • Почему не работает return в java?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Ну так, а куда значение возвращается-то? В пустоту! Кто возвращаемое значение выводить должен? Оберни хотя бы в System.out.println() - сразу все увидишь.
    Ответ написан
    7 комментариев
  • Почему в 2019 году Java популярнее, чем Kotlin?

    lxsmkv
    @lxsmkv
    Test automation engineer
    В техническом плане может это и так. Но решает бизнес. Как только делать на другой технологии станет очевидно дешевле или смена технологии будет окупаться - она получит свое распространение.

    Конечный пользователь платит за продукт, а не за язык на котором он написан. Заказчику в принципе все равно на чем написан продукт, лишь бы было дешево, быстро и качественно. А исполнителю быстрее и дешевле нанять разработчиков на яве чем на мало распространенном языке.

    Можно просто задать себе вопрос: "Я готов получать меньше денег за радость работать с новой, более продвинутой технологией?".

    Получается только инди-проекты могу позволить себе роскошь выбирать технологии.
    Ответ написан
    Комментировать
  • Есть ли подобные готовые решения для создания тестов для собеседования?

    lxsmkv
    @lxsmkv
    Test automation engineer
    https://github.com/replit однако как это все собрать у себя на машине - понятия не имею.
    Ответ написан
    Комментировать
  • Как нарисовать пустой квадрат с Х внутри?

    lxsmkv
    @lxsmkv
    Test automation engineer
    В задании звездочек по горизонтали 11, а у Вас 10
    Нечетное число должно быть, чтобы в середине точно крест сошелся.
    Ответ написан
    3 комментария
  • Зачем нужны методы возвращающие значение поля класса?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Обьявляя приватное поле, вы хотите чтобы оно менялось только кодом этого класса. Т.е. только ваш класс управляет своим состоянием своих параметров.
    Представьте кто-то напишет код где будет напрямую использовать значение age. А оно вдруг поменяется. Потому что у вашего человечка случился День Рождения. Внешний код не получит обновления переменной если не запросит его снова. Когда доступ к значению дается через вызов метода, есть гарантия того, что внешний код будет всегда получать актуальное значение переменной. Предоставляя публичные методы доступа к внутренним параметрам, вы даете внешнему миру интерфейс взаимодействия с вашим классом. И таким образом определяете правила.

    Вот вам простая аналогия:
    Вы не можете получить доступ к данным из ЖЭК, их базы данных для вас закрыты, но по заявке вы получите доступ к той информации, получить которую имеете право. Заявление и справка это интерфейс работы с данными в ЖЭКе для внешних систем, т.е. жильцов.
    Ответ написан
    Комментировать
  • Как через цикл обойти вокруг ячейки в двумерном массиве?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Вот эту статью почитайте, там как раз есть пример того как это делается
    Ответ написан
    Комментировать
  • Лучшие способы изучения java?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Попробуйте браузерную автоматизацию через selenium писать. Для понимания и применения ооп очень благодатная почва. Потому что обьекты очень осязаемые. И азы автоматизации в веб тестировании заодно изучите.
    Ответ написан
  • Есть тестовая задача, я немного подсел в алгоритмах, можете подсказать какой лучше подойдет для задачи?

    lxsmkv
    @lxsmkv
    Test automation engineer
    В "правильной" последовательности чисел сумма каждой пары чисел, если брать с головы и с хвоста, не изменяется. Чтобы добраться до того места где спутались цифры перебором понадобится N/2, и еще нужно будет выяснить какое из двух чисел неправильное например проверив его соседей

    Во второй задаче нужно разбить текст на токены
    str = "Hello I'm your String";
    String[] splited = str.split("\\s+");

    https://stackoverflow.com/questions/7899525/how-to...
    а потом пройти по массиву и выдать каждое третье слово. Вопрос еще в том, что делать со знаками препинания которые как правило прилеплены к слову. По уму их надо откинуть.
    Ответ написан
  • Как вынести переменную вне класса?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Я совсем не специалист по правильной архитектуре классов, но первое что приходит на ум: обьявите переменную mess как private свойство наряду с AGENT, POST_URL и пр, только не делайте ее final. и сделайте для нее метод доступа getMessage. Если getMessage возвращает null, переменная не была записана.
    Ответ написан
    Комментировать
  • С чего начать выполнение тестового на написание методов для авторизации и регистрации?

    lxsmkv
    @lxsmkv
    Test automation engineer
    хихи ... ну вот вы и завалили свое задание :)
    Видимо имеется ввиду вам нужно создать REST API состоящее всего из двух методов, и заставить свое апи работать на сервере так чтобы запросы по http отвечали соответствущими http кодами. (Базу данных создавать не нужно)
    Как делается REST API, разве только что в "Комсомолке" не пишут, так что с этим проблем не должно быть.

    ...и если упоминают программу postman, советую вам с ней также ознакомиться.
    Ответ написан
    Комментировать
  • Python or Java for immigration?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Уважаемый Дмитрий, сделайте первый шаг, откройте зарубежный сайт с вакансиями и посмотрите, какие профили там ищут. А далее, в соответствии с этими наблюдениями, адаптируйте свой багаж знаний.
    P.S.: Намеренно не даю ссылок на зарубежные сайты поиска вакансий, ведь, если вы собираетесь за рубежом искать работу, то эти сайты уже у вас в закладках.
    Ответ написан
    Комментировать
  • QA Automation или Dev?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Не отказывайтесь, позанимайтесь пару годиков автоматизацией - это бесценный опыт. Вам тоже придется программировать, только не продукт, а тесты. А чтобы писать тесты нужно в продукте разбираться не хуже разработчика. Через год вы сможете делать все тоже самое что делает разработчик и еще и автоматизацию, а разработчик так и останется разработчиком. Я работаю автоматизатором тестирования и получаю больше чем некоторые девы у нас в команде. И у меня есть перспективы, перейти в консалтинг.
    Но надо сказать я и выкладывался для этого три года по полной.
    Понимаете если в команде все будут только кодить - ничего хорошего из этого не выйдет. Если в понятиях какой нибудь многопользователькой игры говорить, то программист это штурмовик. А нужно еще звено прикрывающее тыл и медсанчасть- это QA. А еще нужно стратегическое звено - это архитектор. А еще нужна логистика - это DevOps. Если QA внимательно, с головой, относится к своей работе, то он может давать советы архитектору DevOps и разработчикам. Например - слишком много ранений в голову, может будем одевать каски? У раненых солдат мозоли на ногах, нужна более удобная обувь.
    Я, побыв автоматизатором, не хочу становиться рядовым разработчиком. Это будничная однообразная работа. А автоматизация ставит все время интереcные задачи. Заставляет учиться, развивать себя. Это абсолютно уникальные знания. Когда у разработчиков зытык в задаче, я могу им помочь, а когда у меня затык они мне не могут помочь. Понимаете разницу?
    Ответ написан
    Комментировать
  • В каких ситуациях при тестировании может понадобиться Reflection?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Мы используем рефлексию для работы с объектами во время выполнения программы.
    Наша архитектура не всегда предоставляет доступ к объектам (в некоторых частях приложения нет фабрик, нет реестров объектов, нет синглтонов и пр.) либо не предоставляет интефейса для работы с ними. Но такая необходимость признак не очень хорошей архитектуры.
    Если вы хотите тестировать не запуская программу, то рефлексия в принципе и не нужна, только если вы хотите залезть "голыми руками в трансформаторный щиток" и знаете что делаете. Архитектура компонент должна предоставлять вам необходимые интерфейсы для тестирования. Иначе у вас классическая проблема с "testability".
    Такая проблема часто возникает когда сначала пишут приложение, а потом думают как бы его протестировать. Но уже поздно. И приходится рефакторить.
    Ответ написан
    Комментировать
  • Как правильно использовать инкапсуляцию в Page Object паттерне?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Если интерфейс контроллера предназначен для простых смертных, лучше писать функции общего плана с параметрами. Так вы сведете к минимуму возможность ошибочного использования. Например чтобы выбрать предмет из списка его нужно сперва раскрыть раскрывание будет производиться внутри общей функции напр. selectItemFromListMatchingName(String n) путем вызова приватной функции openItemList() а она будет использовать приватную функцию isListOpen() чтобы не открывать уже открытый список. Править такие тесты очень легко. Вы чините код в одной маленькой функции один раз. И все тесты которые опираются на нее чинятся автоматически.
    Ответ написан
    Комментировать
  • Где можно выложить свой проект, так чтобы получить код ревью по нему?

    lxsmkv
    @lxsmkv
    Test automation engineer
    сказать честно, всем пофиг как устроен ваш код, если он делает что надо.

    Я поиграл в версию 1.5 (если это то о чем вы говорите) . Задумка игры интересная, у механики хороший потенциал.
    Общие замечания:
    1) нужно переводить на английский язык. Солидно будет если в игре будет система поддерживающая перевод сообществом.
    2) ИИ, ведет себя не умно, и гадает мое местоположение даже когда я не передвигался. (если вам удастся сделать сносное ИИ для этой игры это будет классно)
    3) консольный ввод очень нудно и муторно, нужна какая-то графическая оболочка и управление мышью. Это быстрее
    4) статистика боя и абстрактные "очки", не то ради чего я играю в нее (работайте над геймплеем - на очки можно купить какую то броню, оружие, патроны для оружия, прокачать точность, чтобы наносить больше урона и т.п.)
    5) солидно будет если у вас код будет с юнит-тестами
    6) солидно будет если будет инструкция как запустить код у себя на компьютере
    7) солидно будет если у вас будет автоматическая система сборки
    8) если идея игры ваша, хорошо будет написать диздок.
    9) такую игру надо делать браузерной либо под андроид.
    Баги:
    1) когда от удара здоровье уходит в минус он пишет негативное значение, а должен писать ноль.
    2) лог

    Ваш ход.
    Что будете делать: атаковать (а) или передвигаться (п)?
    а
    Введите предположительное местоположение противника (от 1 до 6):
    3

    Вы попали по врагу и нанесли ему урон 2 ед.
    Очки здоровья противника после Вашей атаки:
    5/10

    Ход противника
    Противник решил передвинуться...
    Враг передвинулся на энную позицию.

    Ваш ход.
    Что будете делать: атаковать (а) или передвигаться (п)?
    а
    Введите предположительное местоположение противника (от 1 до 6):
    3

    Вы попали по врагу и нанесли ему урон 5 ед.
    Очки здоровья противника после Вашей атаки:
    0/10
    получается я попал по врагу он передвинулся и я ударил в то же место и снова по нему попал. (сложность была выбрана высокая)

    Короче, этот простенький проект можно облепить так, что он покажет что вы на практике знакомы с процессами разработки от идеи до релиза.
    Ответ написан
    5 комментариев
  • Как изменить пример так что бы сервер ждал когда клиент подключится?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Прописать в ServerSocketHints переменную acceptTimeout = 0
    Ответ написан
    Комментировать
  • Как правильно получить данные с XML?

    lxsmkv
    @lxsmkv
    Test automation engineer
    другой способ, это jaxb unmarshalling (и вы забудете про парсинг xml как про страшный сон :)
    возмите схему файл xsd по адресу xmlns="maps.yandex.ru/ymaps/1.x"
    из нее через jaxb плагин для эклипс сгенерируйте java классы, и читайте xml с помощью этих классов/методов.
    в любом случае рекомендую разобраться с jaxb - пригодится.

    Или если хочется попарсить, можно попробовать jsoup библиотеку. Она на мой вкус попроще будет чем jdom
    Ответ написан
    Комментировать
  • Почему я создаю одинаковые объекты а у них разные хэшкоды?

    lxsmkv
    @lxsmkv
    Test automation engineer
    на картинке неудачно используют обозначение object1 object2.
    На самом деле имеется ввиду если ссылка указывает на один и тот же объект, то хешкод будет идентичным.
    код
    public class Main{
      public static void main(String [] args){
        H h1 = new H();
        H h2 = new H();
        System.out.println(h1.hashCode());
        System.out.println(h2.hashCode());
        h2 = h1;
        System.out.println(h1.hashCode());
        System.out.println(h2.hashCode());
      }
    }
    class H{
      int a = 2;
      int b = 3;
    }

    output
    1252169911
    2101973421
    1252169911
    1252169911
    Ответ написан
    Комментировать