顯示具有 clean code 標籤的文章。 顯示所有文章
顯示具有 clean code 標籤的文章。 顯示所有文章

2013年6月6日 星期四

[Clean Code] ClientTest.java

      public class ClientTest {
    private static final int PORT = 8009;
    private static final int TIMEOUT = 2000;

    Server server;
    Thread serverThread;

    @Before
    public void createServer() throws Exception {
        try {
            server = new Server(PORT, TIMEOUT);
            serverThread = new Thread(server);
            serverThread.start();
        } catch (Exception e) {
            e.printStackTrace();
            throw e;
        }

    }

    @After
    public void shutdownServer() throws InterruptedException {
        if (server != null) {
            server.stopProcessing();
            serverThread.join();
        }
    }

    class TrivialClient implements Runnable {
        int clientNumber;

        TrivialClient(int clientNumber) {
            this.clientNumber = clientNumber;
        }

        public void run() {
            try {
                connectSendReceive(clientNumber);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    @Test(timeout = 10000)
    public void shouldRunInUnder10Seconds() throws Exception {
        Thread[] threads = new Thread[10];

        for (int i = 0; i < threads.length; ++i) {
            threads[i] = new Thread(new TrivialClient(i));
            threads[i].start();
        }

        for (int i = 0; i < threads.length; ++i) {
            threads[i].join();
        }
    }

    private void connectSendReceive(int i) throws IOException {
        System.out.printf("Client %2d: connecting\n", i);
        Socket socket = new Socket("localhost", PORT);
        System.out.printf("Client %2d: sending message\n", i);
        MessageUtils.sendMessage(socket, Integer.toString(i));
        System.out.printf("Client %2d: getting reply\n", i);
        MessageUtils.getMessage(socket);
        System.out.printf("Client %2d: finished\n", i);
        socket.close();
    }
}




以上是我在閱讀時發現這段Code內容有誤後,寫信反應給出版社 ,然後主編就更正這內容給我

,相信不久就會在出版社網站更新,先貼出來給需要的讀者。



PS. 感謝陳主編






AI 時代的影響(2026-10-24的心得)

  寫了半個世紀程式、 曾出版《Clean Code》教全世界工程師把程式碼寫乾淨的 Robert C. Martin(Uncle Bob), 最近公開表示他已經有超過 95% 的時間不再逐行閱讀 AI 寫的程式碼。 一位一生都在強調「程式碼是寫給人讀的」宗師級人物,何以敢做出...