• Какие технологии создания android приложений, нынче в моде?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    Ну чтобы ответить на ваш вопрос более корректно, то нужно уточнить, что приложения могут быть нативными и ненативными. Нативные приложение пишутся на Kotlin или Java (IDE можно выбирать любую, будь то Android Studio или Intellij IDEA и т.д.). Нативные приложения в отличие от иных могут использовать все возможности Anroid API, в то время, как ненативные в принципе ограничены. С другой стороны, разработка ненативных приложений относительно дешевле, нежели нативных. + можно обеспечить кроссплатформенность (Android, iOS) на том же React Native.

    Жив ли еще andr.studio+java(или лучше kotlin), что лучше если сравнивать с xamarin, react native итд.

    Да, java & kotlin живы и здоровы) К вопросу о том, что лучше тут каждый выбирает под свою задачу. Хочется дешевле и быстрее и в принципе не сильно требовательные приложения, то React Native. Хочется нативные приложения, то Kotlin | Java.

    Слыхал что ща для разработки под мобилу, популярен шарп+юнити, правда ли?

    Нет, но на C# тоже можно написать приложение используя Xamarin.

    В общем решил влиться в эту область, какие технологии мне рекомендуете изучать(порог вхождения, востр.на рынке)?

    Ну если хотите пойти именно в мобильную разработку, то изучите Kotlin. + знание Java рекомендуется.
    Как по мне, изучать React Native только для моб. разработки не имеет смысла. Имхо, если выбирать реакт, то надо пойти во фронт-энд и как дополнение изучить react native.

    В планах разрабатывать простые приложения вроде - аппов для тренировки(100отж итд), какие-то новостные ленты, читалки эпуб, пдф итд итп

    Перечисленные вами приложения не столь требовательные и могут быть разработаны на чем угодно.
    Можно и на flutter писать. Вроде бы на Dart пишут.

    Мне кажется, что java / kotlin проще, чем js для новичка и соответственно, лучше начать с них...
    Ответ написан
    3 комментария
  • Как исправить ошибку при запуске mindustry?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Для ответа на ваш вопрос недостаточно информации.
    Вот, некоторые мысли:
    java.net.ConnectException: В соединении отказано (Connection refused)

    Допустим, что порт, по которому происходит соединение закрыт и соответственно, нужно его открыть.
    Вот, как открыть нужный порт на линукс - https://www.journaldev.com/34113/opening-a-port-on...
    Также обратите внимание, что на устройстве может быть установлен iptables и соответственно, нужно прописывать правила для доступа к порту.
    google
    Ответ написан
    Комментировать
  • WP All Import почему пропускает товары и стирает поля?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Это все может быть багом того или иного плагина.
    При первом импорте плагин затёр большую часть данных в ACF-полях. Связано ли это с тем, что импорт работает при активности пользователя и при его отсутствие останавливается? Есть ли на это другие причины?

    Это не так. WP-CRON является псевдокроном и ЗАПУСК его происходит при активности пользователей, а не РАБОТА. Т. е. если процесс запущен, то он будет выполнен в полной мере. А WP All Import использует WP CRON.

    Обычно, для автоматизации предпочитаю работать с Rest API WP. Напишите небольшой скрипт, который обновит цены товаров. Или поищите баги в плагинах ВП. Попробуйте сменить версии плагинов. А также загляните в логи плагина импорта. Посмотрите, почему он не нашёл сходства товаров из-за чего не изменил стоимость. Если сравнение происходит по заголовку, то конечно же тут причины могут быть разные. Case sensitive, лишние символы и т. д.
    Ответ написан
    Комментировать
  • Как настроить проект, чтобы он поднимал схему в БД с использованием hibernate?

    azerphoenix
    @azerphoenix Куратор тега Spring
    Java Software Engineer
    Добрый день.
    Размещение доступов к БД внутри Java не рекомендуется.
    private static final String URL = "jdbc:mysql://localhost:3306/library_project?serverTimezone=UTC";
        private static final String USER = "root";
        private static final String PASSWORD = "root";

    Лучше вынести его в properties или yml
    Вот, пример:
    spring.jpa.hibernate.ddl-auto=update
    spring.datasource.url=jdbc:mysql://${MYSQL_HOST:localhost}:3306/db_example
    spring.datasource.username=springuser
    spring.datasource.password=ThePassword


    https://spring.io/guides/gs/accessing-data-mysql/
    https://www.baeldung.com/java-connect-mysql

    Также остаётся загадкой, как запустить проект, чтобы проверить работоспособность хоть чего-нибудь, ведь Main с psvm-ом здесь быть не должно, если я верно всё понимаю.


    @SpringBootApplication
    public class Application {
    
    	public static void main(String[] args) {
    		SpringApplication.run(Application.class, args);
    	}
    
    }
    Ответ написан
    Комментировать
  • Почему никто не учит C# но на каждом углу учат Java?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Тут пожалуй, важную роль в популяризации играет не возможности языка, а политика компаний, которые разрабатывают языки.
    Так исторически сложилось, что Java появилась раньше, чем C# и соответственно, к моменту появления C# уже было написано огромное количество проектов-миллионников. Также компания Майкрософт довольно долго (чуть ли не 8-9 лет) ограничивала применение .Net на других платформах из-за чего это тоже сыграло свою роль. Соответственно, определенная часть рынка в энтерпрайз была утеряна для C#. Но зато C# смогла утвердить себя в сфере gamedev (фреймворк Unity), а также в сфере desktop разработки. Но не стоит сбрасывать со счетов C# в энтерпрайз и веб сферах. На нем пишут довольно серьезные проекты.
    Думаю, что остальное лишь предпочтения разработчиков.
    Ответ написан
    4 комментария
  • Как выбрать option из выпадаюшего меню?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    Вот, например, id элемента
    select2-postform-expiration-result-cqx3-10M
    Тут cqx3 изменяется динамически.
    Вот, гляньте, как можно выбрать элемент, который динамически изменяется - https://sqa.stackexchange.com/questions/18342/how-...
    Обратите внимание на contains() или starts-with()

    Вот, тут полезная информация по выбору элементов из select
    https://www.guru99.com/select-option-dropdown-sele...
    Ответ написан
    2 комментария
  • Почему могут не работать ACF поля?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Я грешу на мультисайт, но вариантов решения даже близко не представляю.

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

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    В принципе, вы уже сами ответили на ваш вопрос. Используйте javafx, sqlite и любую либу для работы с pdf (например, iText - ссылка)
    Ну можете например, для удобства подключить ORM для работы с БД. Например, ormlite
    Для красоты интерфейса можете использовать JFoenix
    Ответ написан
    1 комментарий
  • Как сделать, чтобы при вводе в консоли слова "Мужчина" выполнялся код именно в этом if?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Приветствую!
    Вот, простой пример:
    public class Main {
    	
    	public static void main(String ... args) {
    		Scanner scanner = new Scanner(System.in);
    		System.out.println("Введите ваш пол:");
    		String gender = sc.nextLine();
    		if(gender.equals("Мужчина")) {
    			double d = (x - y) * z;
    			System.out.println("Вес=" + d);
    		}
    	}
    
    }
    Ответ написан
  • Ошибка java в Android приложении?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    OutOfMemoryError: Failed to allocate a 83886328 byte allocation with 25165824 free bytes and 46MB until OOM, target footprint 245232608, growth limit 268435456

    Не хватает памяти. Запускаете ли вы приложение на эмуляторе? Возможно, что нужно больше памяти для запуска приложения. Ну и глянуть на то, что именно расходует память устройства
    Ответ написан
    2 комментария
  • Как решить проблему с REST API и куки?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Добрый день.
    Была похожая проблема. Я решил ее сменой солей (см. wp-config.php) и чисткой кеша.
    А еще вот, аналогичная проблема - https://docs.wpsimplepay.com/articles/rest_cookie_...
    Ответ написан
    3 комментария
  • Как получать и отправлять сообщение?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    Во-первых, код лучше обрамлять тегом code, а не скидывать в виде скрина.
    admins не выполняется, так как эта ветка не выполняется, а вместо нее выполняется default.
    Посмотрите, что приходит в message.getText()
    Обратите внимание, что у вас в первой ветке /start, а во второй admins (без слеша). Может быть вы вводите admins со слешем из-за чего нет совпадения?
    Ответ написан
    3 комментария
  • Что такое код общего назначения и код специального назначения?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    foonfyrick,
    таймкод 8:51
    https://www.youtube.com/watch?v=SZLdme0zvV4

    я понял.
    Начнем с того, что в видео затрагиваются аспекты Clean Code. Можете прочитать книгу Роберта Мартина - Clean Code или например, пройти небольшой курс по рефакторингу - https://refactoring.guru/refactoring/course
    Что касается вашего вопроса, то тут речь идет во-первых, о SOLID принципах.
    S - single responsibility principle (принцип единственной ответственности). Т.е. один класс должен иметь одно назначение. Например, создание класса Сотрудник, который и готовит еду и подает и моет посуду и т.д. не совсем корректно. Но можно создать класс Сотрудник и расширить его такими классами, как Повар, Официант и Уборщик, каждый из которых будет готовить, подавать еду и мыть посуду соответственно.
    Также сказанное им в видео можно соотнести к ISP (interface segregation principle). Принцип разделения интерфейсов. Например, предположим, что у вас есть интерфейс МФУ, в котором имеются методы print(), scan() и fax(). Если у вас есть класс для МФУ, который имплементирует этот интерфейс, то все ок, так как в этом устройстве есть все функции. Другое дело, что если некий класс Принтер имплементирует интерфейс МФУ, но при этом он может реализовать метод print(), получается что 2 остальных метода он не может реализовать, но должен. Соответственно, принцип ISP рекомендует разделить общий интерфейс на несколько частей.
    Также например, pojo класс не должен являться также "утильным" классом или сервисным классом.
    Ответ написан
    Комментировать
  • Как решить ошибку при mvn compile?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    Во-первых, если вы уж решили собирать проект на сервере, то можно вместо maven использовать maven wrapper. А еще лучше запускать приложение в контейнере docker.

    теперь проект собирается, запускается, но работает некорректно. Человек посылает сообщение боту, в консоли видно что бот обращается к бд, но сообщений никаких не отсылает

    Можно попробовать проект подебажить. Для этого запустите jar при помощи mvnDebug, а затем средствами IDE подключитесь к серверу и добавив точки остановки, продебажьте проект.
    Ответ написан
    1 комментарий
  • Как в Java правильно сравнить строку полученную из БД с другой строкой?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Строки в Java сравниваются через equals(). Другое дело, что при сравнении возвращается false.
    Исключите следующие моменты:
    - запись в БД может быть в uppercase или lowercase или camelCase и т.д. Потому возвращается false
    - в исходной строке или в строке из БД могут содержатся кириллические символы
    - кодировка хранимой информации в БД отличается от utf8
    если не получится решить вопрос, то скиньте ссылку на гит
    Ответ написан
    Комментировать
  • Как и за какой период стать Junior Java?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день.
    При упорном труде можно за 1 год изучить основы java. С другой стороны, все индивидуально. Можно и за 5 лет ничему не научиться. Все зависит от вас.

    Обучаюсь кстати в JavaRush

    Знаю нескольких разработчиков, которые пошли на курсы, так как знаний полученных на JavaRush не хватило вовсе.

    К вопросу о том, что нужно изучить по Java, тут зависит от направления, которое вас интересует. Т.е. enterprise или android разработка.

    Базовая программа применимая и к enterprise и к android:
    - java core (JCF, Mutlithreading, Stream API, reflection, annotation, jdbc)
    - структуры данных и алгоритмы, паттерны проектирования
    - Build tools: Maven, Gradle
    - VCS - git
    - основы TCP / IP
    - основы OOP, SQL (ACID, уровни изоляции)

    Для enterprise:
    - java enterprise (jsp, jstl, servlet), tomcat, jetty
    - Spring Framework (Spring MVC, Spring Data, Thymeleaf, Spring Boot, Spring Security) основы REST
    - Hibernate (ORM), HQL
    - aws / heroku
    - возможно разные CICD (circleci, travis)
    - jira, confluence, trello

    Для android:
    - kotlin
    - Android API
    - ORM фреймворки (ormlite, room и возможно другие)
    - Firebase

    Вот, отсюда можете глянуть на программу занятий по Java Core - https://www.dist.it-academy.by/course/java-develop...
    А отсюда взять программу Java Enterprise - https://www.dist.it-academy.by/course/java-develop...
    Ответ написан
    Комментировать
  • На java ничего не создают?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Скажу честно, сам довольно долго не хотел изучать Java, так как начитался всяких статей от разработчиков. Там было и про то, какая Java медленная, сложная и что вообще умирает или даже умерла. И знаете, когда вы только начинаете изучать тот или иной язык, то вы обычно, стараетесь прислушаться к мнению "экспертов" и сразу же отметаете тот или иной язык. Например, одним из "минусов" языка java было то, что на ней не пишут драйвера, не пишут серьезные игры, не пишут операционные системы и десктопный софт. Но с таким же успехом можно это соотнести и к JS. На нем тоже не пишут OS или драйвера. Хоть десктопный софт пишут на JS (ElectronJS), но назвать его серьезным довольно сложно.

    Соответственно, выбирайте не язык, а направление (backend, frontend, mobile, desktop, gamedev). А затем согласно выбранному направлению выберите наиболее подходящий для этого язык.
    Java - enterprise, web, mobile (android)
    JS, PHP - web, erp, mobile (react native),
    Python - data science, machine learning, erp, web
    C# - enterprise, web, gamedev
    C++ / C - gamedev, desktop, drivers

    Понятное дело, что если потребуется написать игру на Java, то для нее есть огромное количество движков и библиотек (libgdx, jmonkey), но лучше конечно же это сделать на C# (Unity) или C++ (Unreal Engine).
    Если интересует android разработка, то лучше начать изучать Java / Kotlin (лучше Kotlin). Если хотите быстро штамповать сайты, то PHP, Python и т.д.

    Java стабильный язык, фреймворки на нем появляется не так часто, как это происходит на JS..
    Также я рекомендовал бы вам попробовать разные сферы разработки, чтобы разобраться в том, куда лежит душа. Я попробовал и фронт-энд и бэкенд и мобайл и т.д. И остановился на бэкенд. Возможно, что вам понравится automation QA или еще что-нибудь. В общем, можете смело начинать изучение любого языка (Java, JS, Python) и развивайтесь дальше

    К тому же, знание одного языка недостаточно на мой взгляд. Писать бэкенд не зная как функционирует фронт или наоборот сложно, но можно. А значит, вам нужно изучить языки и для фронта и бэка для лучшего понимания.
    Ответ написан
    Комментировать
  • Какой IDE выбрать вместо Borland C++?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    А почему не CLion ? Вроде тоже хороший IDE. Либо Visual Studio.
    Ответ написан
    Комментировать
  • Насколько важно знать алгоритмов в яп Java и какие алгоритмы нужны?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    Рекомендую прочитать книгу Роберт Лафоре - Структуры данных и алгоритмы Java.
    К вопросу о том, сколько алгоритмов нужно знать скажу, что достаточно знать базовые алгоритмы и пожалуй, владеть английским, чтобы при необходимости уметь разобраться в нужном.
    Базовые:
    - линейный поиск
    - двоичный поиск
    - пузырьковая сортировка
    - быстрая сортировка

    А так можно покопаться в других алгоритмах тоже (алгоритм Беллмана-Форда, алгоритм Дейкстры, алгоритм А*, кодирование Хаффмана, алгоритм ruin & recreate для решения VRP &TRP, ханойская башня и т.д.). Сам сейчас разбираюсь с некоторыми из них, так как приходится применять их в проекте.

    Кстати, есть простое приложение для андроид, которое описывает суть разных алгоритмов при помощи инфографики.
    https://play.google.com/store/apps/details?id=wiki...

    А вот, тут репозиторий с алгоритмами на Java
    https://github.com/TheAlgorithms/Java
    Ответ написан
    Комментировать
  • Проблема с кодировкой с postgresql в IDEA, как решить?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    Проверьте кодировку используюмую в БД.
    Также попробуйте к урл для подключения к Бд добавить ?useUnicode=yes&characterEncoding=UTF-8
    Например,
    jdbc:postgresql://localhost:5432/example_db?useUnicode=yes&characterEncoding=UTF-8
    Ответ написан