- 締切済み
勉強方法について
アプリ作成を目標に学習をしているのですが、分からないことが多く手が進みません。おすすめの勉強法やサイト等があれば教えて頂けると嬉しいです! 現在の目標は、SpringFrameworkでjavaを用いた勤怠管理アプリの作成としています。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- cametan_42
- ベストアンサー率62% (162/261)
あくまでザックリとした「一般論」として。 学ぶべきは「インタプリタの実装法」だ。 「え?言語インタプリタってアプリと関係ないじゃん?」 って思うかもしんないけど、実は大枠の枠組みは全く同じなんだ。 ユーザー入力を促してその入力を解析する -> それに対して適切な処理をする -> 出力する これの繰り返し、だ。 この構造をRead-Eval-Print Loopと呼ぶ。略してREPLだ。 REPLこそが「アプリ作成」の枠組みで「言語インタプリタ」とその枠組みを共有してる「設計の基礎」となる。 そして、これを外すと、Welcome to the World of Spaghetti Code!になる。 GUIではこの基本的構造を、何故か別名としてMVC(Model-View-Controller)と呼ぶが基本発想は全く同じなんだ。 MVC: https://ja.wikipedia.org/wiki/Model_View_Controller > おすすめの勉強法やサイト等があれば教えて頂けると嬉しいです! 正直言うと、Javaには明るくないし、「他言語で書かれているインタプリタの開発法」なんつー書籍はあるんだけど、ターゲットがJava、ってのは良く知らない。 検索をかけてみると、最近出た本ではJavaとCを使ってインタプリタの開発法を解説している本があった。 インタプリタの作り方 -言語設計/開発の基本と2つの方式による実装-: https://book.impress.co.jp/books/1122101087 もちろん、僕はこの本は読んでないんで(主力言語が違うから)、実際本屋に行ってどんな本なのか、どんな風に書かれているのか、自分で判断して欲しい。 なお「プログラミング言語実装」として考えると「字句解析」「構文解析」は重要になるし、それはそれで面白い技術ではあるんだけど、「一般的なアプリ実装」で考えるとそれらは枝葉末節になる・・・重要なのは読み込み部(Read)、評価部(Eval: Evaluator)、印字部(Print)と言う3つのパーツを「どう組み上げて」「どう組み合わせるか」だ。特に重要なのは評価部をどう実装するのか、言い換えると「アプリのエンジン部分」の実装法だな。そこが(Javaのコンテクストで)分かりやすく書かれているのか、ってのが評価ポイントになるだろう。 また、「Java インタプリタ 作り方」で検索して、適当な、短い、分かりやすい記事を探してみてもいいだろう。例えばこんなんだ。 https://www.google.com/search?hl=ja&q=java%E3%81%A7%E4%BD%9C%E3%82%8B%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%97%E3%83%AA%E3%82%BF%20REPL%20%E4%BD%9C%E3%82%8A%E6%96%B9 あるいは、Wikipediaでも漁って、自力でBrainfuckインタプリタをJavaで実装してみる、ってのも知見を広げるのに有効だろう。 Brainfuck: https://ja.wikipedia.org/wiki/Brainfuck