11月27日

YAGNI

YAGNI – Wikipedia
You ain’t gonna need it

機能は実際に必要となるまでは追加しないのがよい

ソースコードは短い方が良い。→ 読みやすい・理解しやすい・バグが出にくい

とりあえずテストにパスするコードを書いて、あとのリファクタリングでソースコードを整理するというやり方でもよい。

KISSの原則

KISSの原則
Wikipedia の YAGNI のページに関連リンクがある。

Keep it simple stupid の略語。

ファイルアップロード

ファイルアップロードは、Springの公式サイトに書いてある実装がわかりやすい。

Getting Started · Uploading Files – Spring

ファイルを保存する処理は、Webページには書かれてなく、ZIPファイルをダウンロードした中の FileSystemStorageService クラス内にある。
Serviceクラスを作ってもいいが、必要な部分をコントローラにコピーしてもよい。

@RequestMapping(value = "アップロード先URL", method = RequestMethod.POST)
public String handleFileUpload(@RequestParam("file") MultipartFile file, Model model) {
        // file を保存
        String filename = StringUtils.cleanPath(file.getOriginalFilename());
        try {
            if (file.isEmpty()) {
                throw new StorageException("空のファイルです " + filename);
            }
            if (filename.contains("..")) {
                // This is a security check
                throw new StorageException("ファイル名に「..」が含まれてます " + filename);
            }
            Files.copy(file.getInputStream(), Paths.get("保存先ファイル名"),
                    StandardCopyOption.REPLACE_EXISTING); // 上書き
        } catch (IOException e) {
            throw new StorageException("Failed to store file " + filename, e);
        }
        return "uploadcomplete"; // 完了後に表示するjsp
    }

11月20日

発表に使用するパソコンについて

発表で使用するパソコンは、教師用を使用する。
パワーポイントのファイルは、各グループのBacklogにアップロードし、そのファイルに教師用パソコンから開く。

作成したWebアプリのデモは、各グループの誰かのパソコン上で動作しているものを使用する。
パソコンの液晶の裏側に貼ってあるホスト名(pck403xx)にアクセスすれば、教室内の全員がそこで動作するWebアプリを使用できる。

発表用パワーポイント
発表に使用するパワーポイントは、以下のテンプレートを使用すること。

発表資料

11月13日

新規ファイルを追加してもアイコンが「?」にならない
EclipseでGitを使用していれば、新規ファイルを追加すればファイルのアイコンに「?」がオーバーレイされるはずなのに、これが表示されないという問題が発生した。プロジェクト内のどこに新規ファイルを作っても、Gitの管理下に追加できない状況になっていた。

調べた結果、プロジェクトを格納しているフォルダの上位フォルダに .gitignore ファイルが作成されていた。
その内容が、

/プロジェクトフォルダ名/

となっていたため、既存ファイル以外のすべての追加が無視されていた。

問題の1行を削除してコミットすることで、新規ファイルに「?」アイコンが表示されるようになった。

同じ問題で困っていた人↓
https://stackoverflow.com/questions/12808656/cant-add-new-file-to-repository-in-egit

11月10日

アプリ内のリンク先URL
アプリ内のリンク先URLを記述しているところに「http://localhost:8080/アプリ名/…」と書いているところがあるが、ホスト名やポート番号は書かないこと。

実際にどこかのサーバーに配備した時に、そのリンクをクリックしたらユーザーのパソコンのWebサーバーにアクセスしようとするために、動作しなくなる。

    <!-- よくない例 -->
    <a href="http://localhost:8080/appname/hoge...">リンク先タイトル</a>

    <!-- 望ましい書き方 -->
    <a href="/${request.contextPath}/hoge...">リンク先タイトル</a>

複数の画面で共通に表示したい内容がある場合
ヘッダーやフッターなど、複数の画面で共通に表示したい内容がある場合は、共通部分だけを記述したJSPファイルを作成し、そのファイルをインクルードするとよい。

<body>

<jsp:include page="header.jsp" />

ページのコンテンツ

<jsp:include page="footer.jsp" />

</body>