スマートフォン用の表示で見る設計と実装の狭間で。この広告は、90日以上更新していないブログに表示しています。実装10万行コード読んだらJava分かるよってTwitterに書いたらすげぇ勢いでRTされたので、調子に乗って捕捉エントリ書くよ。APIJDKインストールしたディレクトリに入ってるsrc.zipを展開すると入ってるから読むと良いよ。近くにあるのから読むってのはメンタル的に楽でいい。厳密にはOSSじゃなくて単に公開されてるってだけなんだけども、JavaプログラマなのにコアAPIのコード読んでないとか無いよね?どれから読めば良いか分からんかったら、java.langjava.utiljava.iojava.text辺りをまずはキチンと理解すること。コードを読み終わったら、それを使ってコードを書く事。OpenJDKhttp://hg.openjdk.java.net/jdk7/jdk7OpenJDKを読むことで、プログラム言語してのJavaではなくランタイムとしてのJavaを理解する事が出来ます。Java出来ますって言ってるのにOpenJDKのコードをチェックアウトした事も無いようならモグリである可能性は高い。サーバ編Tomcat7系最新http://svn.apache.org/repos/asf/tomcat/tc7.0.x/http://www.jcp.org/en/jsr/detail?id=315Jetty7系最新http://wiki.eclipse.org/Jetty/Contributor/BuildingJavaプログラマなら大体一度や二度はお世話になってるTomcat様ですよ。ServletAPIの仕様と併せて読むべし。Tomcatだけ読んでると世界に絶望しかねないので、口直しにJettyも読んでおくと味わい深いです。Servletコンテナ系は分かってきたなと思ったら、テキトーなWebアプリケーションを書いてwarにパッケージングした上で、そのWar内から利用していないと思えるサーバのコードをゴッソリ消した上で、そのWarがちゃんと動くかどうか確認すると良いとオモウヨ。databasehttp://www.h2database.comピュアJavaで高速に動作する上に高機能だけど、何か色々アレなH2Databaseはマジオススメ。アレってのは、どういう事かは読めば分かるかと。した何かを作るのにはH2databaseがマジ便利。LL系の皆様におかれましては、SQLite辺りがRDBとしては人気かと思いますが、JavaからSQLiteは面倒な事も多いので、H2Databaseをを使うと良いとオモウヨ。コードを全部読んだ上でRDBを使うと新しい地平が見えますです。フレームワーク編SpringFrameworkhttps://src.springframework.org/svn/spring-framework/Guicehttp://code.google.com/p/google-guice/source/checkoutSeasar2https://www.seasar.org/svn/s2container/trunk/Javaプログラマたるもの、DIコンテナを知らずに済むって話はありませぬ。出発点は大体同じだったような気がしないでもないけど、その思想が違う為に全く違った実装になるのです。DIコンテナが接続できるフレームワーク的な何かをひと通り追いかければ、Webアプリケーションを作る為のパーツは何でも揃うと思って間違いないので、DIコンテナは出発点であり終着点であるのです。JVM系言語編Scalahttps://github.com/scala/scalaJRubyhttps://github.com/jruby/jrubyプログラミング言語たるJavaを学習する為に、新しい言語のコードを読むというのはそれなりに敷居の高い事ではあるものの、Javaがどの様な価値を持つランタイムであるかを理解する為には、言語としてのJavaとは違ったパラダイムを持つ言語を理解するべきです。Scala辺りは何だか流行ってる気配があるけど、Scalaのコード書くだけで満足してはいけない。どの様に実装されているのか確認するのです。ツール編Mavenhttp://maven.apache.org/source-repository.htmlMavenリポジトリは最高だけど、ツールとしてのMavenは正直余り好きではない。やりたい事に対してコードの量が多すぎるのだもの。ビルド系ツールがやりたい事ってMavenの中に全部入ってる。したら、オレオレビルドツールを作る前に一度は読んでおかなくちゃ。eclipse勿論eclipse。他のIDEの話はきっと他の誰かが捕捉してくれる。NetBeansとかIntelliJとか。どれ使ってるにしても、自分が使ってるツールのコード読んでないとか大分ヤバい。ピカチュウが電気出さないくらいヤバい。eclipseにはJavaの理想と現実が詰まっている。Spyってプラグインが起動してコード読み放題。Spyを起動してorg.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor辺りを読めば良いとオモウヨ。利便性の裏に隠れて普段は見えない先人たちの努力の結晶がそこにあるから。こればっかりだとUIばっかりで辛い現実と直面する事になる。Plug-insを選ぶ。するとインストールされているプラグインの一覧が見える。Repository...を選ぶ。ユーザIDとパスワードとか聞かれるかもしれないけど「anonymous/anonymous」って入れとけばOK。現実に動くある種の理想を体現したオブジェクトモデルがならんでる。一方でオブジェクト指向における限界点みたいな所に到達している。それが何なのかはまた別のお話。これらのプラグインを読む事でオブジェクト指向の深淵を垣間見る事が出来るのです。その辺に幾らでもある動く訳でも無いうすっぺらい説明なんかよりも絶対に価値あるコードが今そこにある。org.eclipse.swt.win32.win32.x86_64僕の環境はWindowsだからプラットフォーム名がWindowsっぽいけど、それぞれの環境に合わせたプラットフォーム名のプラグインがインストールされている筈。実際に様々な要件を勘案する中でそういう訳にもイカンよね?というJavaが持つグロテスクな一面を見る事が出来る。メソッドしか持ってないクラス書いちゃう人って...m9」とか言ってる場合じゃない。オーバーロードされたOS#SendMessageを見るのだ。いう事が必要であると判断出来るケースもあり、その極端な位置にあるコードを見て考えるべき事は多い。何か10個以上ある様な気がするけど、どうせ最期まで読んでる人は居ないだろうって事で、ここは一つ。RedHat系のアレソレとか、他にも色々取り上げて無い素晴らしいコードはあるけど、そういうのはきっと誰かが補足してくれるさ。02:37一歩先行くJavaプログラマが読むべきオープンソースソフトウェア10選Tweet広告を非表示にする関連記事2008-12-12Macで32bitJDKを使う方法について。Spyを起動するには。テキトーなダイアログとか、エディタとか、ビューをアクティブ...2008-04-30mvnhackとmvncrawlerをCodeReposにコミットした話。Javaで開発する時には、eclipseを使うかと思うのだけど、...2008-01-09eclipseが抱えるWebコンテナとお話する的なアレ。GitでHTTPプロキシ越しにcloneする。読者になる検索リンクはてなブログブログをはじめる週刊はてなブログはてなブログPro最新記事logback.groovyで設定記述しようとしたらアレな事になった件についてGradle-WrapperにHTTPとHTTPSのプロキシを設定して動かす。GitHubにGradleでリリース作業する。同一のGroupIdかつ同一バージョンで複数のArtifactIdを依存ライブラリとして指定する。月別アーカイブはてなブログをはじめよう!taichitaichiさんは、はてなブログを使っています。あなたもはてなブログをはじめてみませんか?はてなブログをはじめる(無料)はてなブログとは設計と実装の狭間で。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。