• Существует ли какая- та тула, плагин или просто сервис который бы помогал улучшить код.?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    На sonar qube надейся, а сам «чистый код» и effective Java читай.
    Ответ написан
    Комментировать
  • Java Apache FPTS Client. Как победить 425 Can't open data connection при storeFile()?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день.
    А подскажите пожалуйста, ведь вроде вы пытаетесь подключиться через FTP, но используете FTPSClient
    https://commons.apache.org/proper/commons-net/apid...

    Может быть вам нужен FTPClient?
    https://commons.apache.org/proper/commons-net/apid...

    Могу предположить, что вы пытаетесь подключиться к FTPS, используя порт для FTP (21) и соответственно, возникает ошибка

    Вот, например при подключении к FTP у меня все ок:
    import org.apache.commons.net.ftp.FTPClient;
    import org.apache.commons.net.ftp.FTPClientConfig;
    import org.apache.commons.net.ftp.FTPReply;
    
    import java.awt.*;
    import java.io.*;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    public class Main {
    
        public static void main(String[] args) throws IOException {
    
            FTPClient ftp = new FTPClient();
            FTPClientConfig config = new FTPClientConfig();
            ftp.configure(config);
            boolean error = false;
            try {
                int reply;
                String host = "example.com";
                ftp.connect(host);
                ftp.login("example_user", "12345");
                System.out.println("Connected to " + host + ".");
                System.out.print(ftp.getReplyString());
    
                reply = ftp.getReplyCode();
    
                if(!FTPReply.isPositiveCompletion(reply)) {
                    ftp.disconnect();
                    System.err.println("FTP server refused connection.");
                    System.exit(1);
                }
    
                boolean changed = ftp.changeWorkingDirectory("public_html/");
                if (!changed) {
                    ftp.disconnect();
                }
    
                ftp.setFileTransferMode(ftp.BINARY_FILE_TYPE);
                ftp.enterLocalPassiveMode();
                InputStream inputStream = new FileInputStream("/home/admin/Desktop/newFile.txt");
                boolean stored = ftp.storeFile("newFile.txt", inputStream);
                if (stored) {
                    System.out.println();
                }
    
                ftp.logout();
            } catch(IOException e) {
                error = true;
                e.printStackTrace();
            } finally {
                if(ftp.isConnected()) {
                    try {
                        ftp.disconnect();
                    } catch(IOException ioe) {
                        // do nothing
                    }
                }
                System.exit(error ? 1 : 0);
            }
    
        }
    
    }
    Ответ написан
    1 комментарий
  • Когда в коде следует использовать интерфейсы (Java)?

    @bedward70
    DevMan прав - по парадигме всегда!
    На практике - любой написанный код (класс или интерфейс) требует расходов времени на создание и сопровождение. Сопровождать примитивный класс проще, чем примитивный класс и его интерфейс.

    Поэтому на практике, обычно, пишут интерфейсы:
    1. Как необходимую часть паттернов;
    2. Если "интерфейс - это контракт взаимодействия": разрабатывается библиотека или компонент, здесь интерфейсы - это часть неизменяемого контракта;
    3. Хорошая практика - все сервисы делать с интерфейсами. К этому подталкивают многие фреймерки JAVA, как пример: Spring и OSGi (Apache Felix);
    4. Для JUnit тестировая. Пример: при тестировании бизнес логики, реальные сервисы заменяются тестовыми заглушками. Соотвественно класссы бизнес логики должны использовать интерфейсы, которые при реальной работе земеняются реальными имплементациями, а в тестовом окружении - тестовыми заглушками.
    Ответ написан
    Комментировать