Ответы пользователя по тегу 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
    Ответ написан
    Комментировать
  • Как загрузить уроки из Thinking in Java в Eclipse?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Там файл есть Eclipse.py этот скрипт конвертирует папку в проект для Eclipse. Тогда его можно будет импортировать. Потом он будет ругаться что нет "cloning", "discovering" и др. путей, открываем .classpath файл и убираем/комментируем эти строки
    вот так у меня выглядит файл
    .classpath
    <?xml version="1.0" encoding="UTF-8"?>
    <classpath>
    	<classpathentry excluding="polymorphism/|holding/|flow/|exceptions/|concurrency/|typeinfo/|innerclasses/|arrays/|interfaces/|reusing/|initialization/|cloning/|io/|containers/|generics/|xml/|hiding/|io/xfiles/|passing/|gui/|annotations/|enumerated/|discovering/|object/|strings/|swt/" kind="src" path=""/>
    	<classpathentry kind="src" path="annotations"/>
    	<classpathentry kind="src" path="arrays"/>
    	<classpathentry kind="src" path="concurrency"/>
    	<classpathentry kind="src" path="containers"/>
    	<classpathentry kind="src" path="enumerated"/>
    	<classpathentry kind="src" path="exceptions"/>
    	<classpathentry kind="src" path="generics"/>
    	<classpathentry kind="src" path="gui"/>
    	<classpathentry kind="src" path="holding"/>
    	<classpathentry kind="src" path="initialization"/>
    	<classpathentry kind="src" path="innerclasses"/>
    	<classpathentry kind="src" path="interfaces"/>
    	<classpathentry excluding="xfiles/" kind="src" path="io"/>
    	<classpathentry kind="src" path="io/xfiles"/>
    	<classpathentry kind="src" path="object"/>
    	<classpathentry kind="src" path="polymorphism"/>
    	<classpathentry kind="src" path="reusing"/>
    	<classpathentry kind="src" path="strings"/>
    	<classpathentry kind="src" path="swt"/>
    	<classpathentry kind="src" path="typeinfo"/>
    	<classpathentry kind="src" path="xml"/>
    	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/eclipse"/>
    	<classpathentry kind="output" path="bin"/>
    </classpath>



    возможно перед этим нужно сборку сделать через ant. но build файлы написаны под java 1.5 так что то еще удовольствие будет все это заставить работать.
    еще зависимости нужно установить как указано в официальной инструкции в п. 11

    чтоб на русском инструкцию найти это врядли. Не думаю что кто-то стал бы ее переводить она не сложная.
    гугл переводчик вполне с ней справляется
    Ответ написан
    1 комментарий