【DI】Java Spring Frameworkを語るスレ 5.0

2011/11/28(月) 02:17:11.86
前スレ
http://hibari.2ch.net/test/read.cgi/tech/1227196176/

公式
ttp://www.springframework.org/
2013/09/17(火) 01:31:13.33
でも、他人の担当部分の完成を待ってなんかいられない。
だから、「他人の担当部分」をダミーモジュールで
すげ替え可能にしておいて開発する。
2013/09/17(火) 01:31:48.82
>>132
銀の弾丸でも期待してたの?
アホじゃね?
2013/09/17(火) 01:34:19.67
すげ替え可能にすることで、
単体テストが可能になるし、責任の範囲も明確になる。
インターフェースで実装すべき機能も明確になる。

このようにシステム全体の結合度を下げ
大規模開発を行いやすくする。
そのやり方を標準化するフレームワーク
2013/09/17(火) 01:46:12.78
>>135
おお
こういうのはいいね
参考になるわ〜
2013/09/17(火) 09:33:08.26
>>122
経験がないなら想像力を働かせるしかない
フレームワークがなかったらどうなるか考えろ
138デフォルトの名無しさん
垢版 |
2013/09/17(火) 20:43:10.12
プログラマも思ったよりチームワーク、コミュニケーション能力がいりそうなんだよな

もくもく一人の世界にふける仕事じゃなかったのかね
2013/09/17(火) 23:52:30.20
>>138
職人芸で食っていけるほどの力がないなら、他人と力を合わせるしかないじゃない
140!ninja
垢版 |
2013/09/18(水) 14:41:08.16
今時職人芸なんて迷惑じゃね?
2013/09/18(水) 14:46:52.47
もくもく一人の世界にふける仕事ならJavaは選ばないだろー
2013/09/18(水) 16:39:44.86
>>140
なんで職人芸と迷惑が結び付くのかわからないんだが
お前の中では職人芸 = 読みにくいコードなの?
脊髄反射してんじゃねえよ単細胞
2013/09/18(水) 23:38:41.69
>>140
職人芸というのは、読みにくいコードを、
読みやすく書き直すことだよ。
わかってないね
2013/09/19(木) 13:42:47.00
>>142-143
職人芸と言われたら技巧的なコードを指すだろ
2013/09/19(木) 18:18:14.25
技巧的であっても誰にでも読み解ける文芸的なプログラミング
そんな職人に私はなりたひ
2013/09/19(木) 21:36:42.13
>>144
お前がそう思ってるだけだろ?

職人の技ってのは、読みやすいコードだよ。
2013/09/19(木) 21:41:42.53
>>146
それが読みやすくても、なぜ読みやすいか理解できないんだよ。
2013/09/20(金) 04:06:05.91
>>145
>文芸的なプログラミング
これいい表現だね

ちなみにちょっと前までデザイパターンとか必死に勉強して
いわゆる技巧的にコード(>>145で言うところの)書けるよう必死に努力して、実際に使ってプログラム書いてたわけだけど、
つい最近、文芸的なコードで書くほうがいいんじゃないかと結論に至った

プログラミング初心者に理解させやすいし、説明もしやすい=コスパが安くなるし、
どんなにソースコードのアップデートしても意外と問題が起こらない。
むしろ技巧的にやってた時のほうが問題起こりまくってた
149デフォルトの名無しさん
垢版 |
2013/09/20(金) 11:00:55.36
デザパタが技巧的って言われてもなぁ。

しかし、文芸的ってのは気に入ったw
今後はその方向で考えてみるか。
2013/09/20(金) 11:32:15.30
>>146
それこそお前が思ってることだろう
もちろんプログラマが目指すべき理想は読みやすいコードだが
言葉の印象とは別
2013/09/20(金) 18:06:46.54
お前らって言葉の定義も合意せずに議論しようとするよな
そういう奴らの言う「職人芸」ってたいてい本人だけの自己満足だろ
2013/09/20(金) 20:00:11.91
仕様とか勝手に考えてとりあえず組み込んでみるのって常識やん?
153デフォルトの名無しさん
垢版 |
2013/09/20(金) 20:57:29.93
webのプログラムよりゲームとかandroidのほうがやりがいがないか?
webの仕事なんか文字化けを修正するといった地味な仕事がおおそう
2013/09/21(土) 04:27:49.37
Androidはネイティブアプリ開発でも端末間でのハードウェア仕様の
微妙な違いで動かないとかありすぎて死ねる
ゲームとなるとこれがさらに死ねる
ガワネイティブ(WebView)アプリ開発となると、WebView内のパフォーマンスが
出なさすぎて死ねる

そろそろAndroid開発は撤退してWebの仕事に戻る予定
155デフォルトの名無しさん
垢版 |
2013/09/21(土) 23:28:50.67
なにかいろいろ苦労するのは、英語でかかれているものがおおいということでしょうか
開発者たちは、英語をよんで理解してやっているんでしょうか
本場がアメリカだから英語中心になるのはしょうがないけどな
156デフォルトの名無しさん
垢版 |
2013/09/25(水) 10:07:27.68
来月からspringを使う現場に行くことになりました、
strutsは使ったことありますか、
勉強になるサイト、参考書あれば教えて下さい!
2013/09/25(水) 10:25:28.64
springて何がいいの?
本買ったけどさっぱりわからん
158デフォルトの名無しさん
垢版 |
2013/09/25(水) 20:28:11.77
strusは,1.1,1.2,1.3とverionごとに書き方が違っていて互換性がない
環境によっては動かないこと多々ある。
>>157
チーム制作のときなど大勢のとき役にたつのではない。
フレームワークは、徐々になるしかないよ
2013/09/25(水) 21:11:51.49
>>158
日本人?
160デフォルトの名無しさん
垢版 |
2013/09/25(水) 21:26:16.26
失礼な日本人だよ
言いたかったのは個人プレーとか趣味でやるぶんには、必要ないかもしれんが、
大勢でチームでやるときは、必要だということ
大規模なシステム開発ではいるということ
2013/09/25(水) 23:28:18.96
大規模なシステム開発では逆に使わんよ
Javaとフレームワークも扱える人って条件での人員集めがかなり大変
むしろ1人か2人レベルの規模のwebアプリケーションで使われてることが多い
なんでワザワザ使ってんのって聞いてみたことあるけど本人達もよくわかってない感じだった

「ん〜。勉強のため?」みたいな答えが帰ってきて笑っちまったことがある
2013/09/26(木) 04:36:43.48
アホか。そいつらくらいだよ
2013/09/26(木) 11:31:31.26
>>161
えっ
フレームワークも使えないような技術者しか集まらないのに、そいつら全員に生Servletで開発させてんの?
クラス名はA0012みたいな感じですか?
2013/09/26(木) 13:09:12.87
元請けは>>161のような雑魚にはいちいち説明しないで「このとおり作ってください」って
指示するだけで、実際は当然FW使ってる
2013/09/26(木) 17:50:01.09
いずれにしても>>161の己が無知を知らなさ加減には釣られざるを得ない
2013/09/26(木) 21:41:31.18
少人数の下っ端はフレームワーク扱うんじゃなくて
フレームワーク使って設計したプログラムのほんの一部を実装するだけだろ
2013/09/26(木) 22:34:50.89
質問!そもそも大規模なwebアプリケーションってどのくらいのレベルのことなのですか?
今どきwebアプリケーションでそんな大規模な案件ってあるの?
よくソフトウェア開発で大規模大規模って言うけど具体的にはどのようなアプリケーションやシステムのことを大規模って言うでしょうか?
2013/09/26(木) 22:41:14.77
規模がおおきいアプリケーション
2013/09/27(金) 03:56:03.19
SIerでは開発者の数が多い、大規模プロジェクトのことをいうのが普通じゃね?
百人(人月じゃない)未満のプロジェクトは大規模とは言わない
2013/09/27(金) 07:10:54.28
デスマになるプロジェクトのアプリケーションの規模
2013/09/27(金) 20:30:30.95
ピーク時100人以上かつプロジェクト予算10億円以上が大規模かな?
2013/09/27(金) 23:57:08.78
プログラマ10人位上はもう大規模だ
2013/09/28(土) 10:05:31.71
SpringMVC+MyBATISの組み合わせいいね
174デフォルトの名無しさん
垢版 |
2013/09/28(土) 10:19:21.96
gitとかよく使われておる?
なんか現場って趣味と違って細分化されていて個人は歯車みたいなのかな
なんかつまらなそう
175デフォルトの名無しさん
垢版 |
2013/09/28(土) 10:22:51.84
そんなとこあるかも
ソースコード全体を知ることが少ない
2013/09/28(土) 12:30:06.08
>>172
Web屋の感覚だとそうかもな
大手SIerでは案件にもならない小規模未満だが
2013/09/28(土) 15:01:26.17
web屋で10人ってかなりデカいよね。でも逆に効率悪くない?
いまどきwebアプリケーションなんか一人で十分作れるだろ
大手SIer系は営業職、総合職、何もしない上司的な人も入れてってこと?
イマイチ何十人の人が一緒になってシステム構築のしごとするってのが想像できない
OSとか作ってるって言うなら別だが・・・
2013/09/28(土) 15:29:04.28
企業内のシステムとかだと、画面数が数百個を超えることは普通にあるからなあ。
2013/09/28(土) 15:42:35.21
>>177
いや、プログラマだけで100人越えてからが大規模プロジェクトの始まり
本物の大規模プロジェクトは1000人越えるケースもある。ただし実働してるのは(ry
それが想像できない人がなぜSpringのスレを見てるのかそっちの方が謎だわwww
2013/09/28(土) 15:55:57.65
数百画面っていっても1画面はどうせしょぼいでしょうに
3日くらいで1画面作れるような感じでしょ?
それで100人もいらないよなぁ
2013/09/28(土) 15:58:09.52
大規模プロジェクトを想像できないことと、Springスレを見ることは無関係かと。
2013/09/28(土) 16:05:42.09
>>180
無理。Excel方眼紙で設計書書くだけでも1画面当たり数週間かかる
2013/09/28(土) 19:19:34.31
>>180
お前優秀だな。
大規模プロジェクト取ってみたらいいじゃん。少数精鋭でやりますので粗利10億は確実です、とか言って。
2013/09/29(日) 10:04:42.82
お客さんは人月に支払うのが染みついてるから少数精鋭だとお金払ってくれないけどな
大手SIerが効率悪くても大規模プロジェクト続ける理由の一つでもある
185デフォルトの名無しさん
垢版 |
2013/09/29(日) 11:04:28.62
このごろ思うんだけどな
IDEがJavaコードをはきだすから本当の意味でのJava文法を精通している人
少ないと思うだけど
あと勉強量がおおいから人材不足になりやすいんじゃないのかな
業界が給料は安いのに高いスキル求めすぎ
2013/09/29(日) 11:44:16.37
「勉強」の範囲でおさまるものは大したスキルじゃない
2013/09/29(日) 13:00:48.87
>>186
言葉遊びはいいです。
人が勉強だと思ってやってることと、お前が勉強ではないと思ってることが
同じことを指していないとも限らないし。
2013/09/29(日) 15:59:36.25
>>184
大手は利益ってのもあるけど、キャッシュ・フローや人のフローを重視して
いかないと会社自体が回らないからね。まあ、大手っていうより人売りが
メインなところは全部か。
2013/09/30(月) 00:14:48.67
>>186
マスゴミと同じタイプの人間。乙
190デフォルトの名無しさん
垢版 |
2013/09/30(月) 20:00:43.59
アジャイル開発って現場で取り入られている?
2013/10/01(火) 10:41:28.51
>>190
利用例は有るけど、納期短縮手法だと勘違いした所は失敗してるようだ。
2013/10/01(火) 17:10:26.64
>>190
アジャイルの定義も曖昧だから、うちは完全にアジャイルですって言い切るところは少ないと思うけど、
アジャイルの手法を部分的に取り入れるのは今や当たり前
193デフォルトの名無しさん
垢版 |
2013/10/01(火) 21:33:16.00
仕事はあるが人が足らんといっている
人材を育てるのが難しいのか
やりたがる人すくないのか
ハードな仕事量でつぶれていくのか
毎日金と時間に追われる日々の日本人には、IT技術を身につけるのは難しいだろう
2013/10/01(火) 21:44:50.41
愚痴はマイタへ
2013/10/02(水) 00:14:52.41
俺まさに一人で作ってるけど、やっぱ簡単じゃない
やはりJavascriptがかなりネック
デバッグに時間かかるわ
それでも、俺に能力がないだけで、経験がある人ならかなり行けるだろうけど
2013/10/02(水) 01:27:21.92
俺も一人でやってるよー
サーバ側はSpringMVC、ブラウザ側はJavaScript。jQueryとかも使ってる。

JavaScriptでのデバッグはスレチになるけど、Chromeのデベロッパーツールの
JavaScriptデバッガ使えばかなり楽だよ。
ステップ実行やブレークポイントなども普通に使える。
オブジェクトのインスペクションも問題なし。
2013/10/04(金) 01:21:29.89
そんなことより今や開発ツールのほうが進化し過ぎてて、フレームワークなんか使わんでも、普通のwebアプリケーション程度なんて1人でサクサク作れるよな
2013/10/04(金) 03:43:59.79
>>197
普通がなにを指すかよくわからんが、定型的だったり面倒だったりするところを
フレームワークがやってくれるのにわざわざ使わない意味がわからない
ひとりだったら尚更他人の習熟度を気にしなくていいわけだし
2013/10/04(金) 04:14:57.47
どう作るかよりも、何を作るかがだいじ
2013/10/04(金) 07:37:15.27
>>197
それはasp.netのことだな
2013/10/04(金) 07:58:48.21
>>197
MS厨かいな
202デフォルトの名無しさん
垢版 |
2013/10/05(土) 13:35:11.16
本が高いので、業界にいる人は、割引する制度でもつくってくれんかの
安部さん
自民党だから土建屋とかを優遇しそうですね
この人たち本なんて買わなくてスナックとかの夜の仕事を潤わせそうですね
2013/10/05(土) 13:54:16.21
pdfとソース読めば済むだろ。
204尼利
垢版 |
2013/10/05(土) 15:14:11.58
>>202
読んだか?
205デフォルトの名無しさん
垢版 |
2013/10/06(日) 22:01:31.42
日本人がITが弱いのは時間がないのと重要な文献が英語で書かれていることが原因か?
あと奇人変人に冷たい国柄も影響してる?
206デフォルトの名無しさん
垢版 |
2013/10/06(日) 22:24:38.17
鬱病や現場から突然いなくなる人多いのでしょうか?
2013/10/06(日) 23:09:47.90
>>205,206
マイタへ
2013/10/06(日) 23:21:45.39
失敗に不寛容な文化と
人的労働コストを軽く見る時代錯誤のせいだよ
209デフォルトの名無しさん
垢版 |
2013/10/13(日) 23:09:43.17
フレームワークの仕組みを理解するためには、まずPHPでウォーミングする必要が
あるなと思った
いきなりフレームワークを理解しようとすると疲れる
2013/10/14(月) 02:52:56.18
遠回りし過ぎだろw
211デフォルトの名無しさん
垢版 |
2013/10/14(月) 03:22:51.19
なんかwebシステム理解しようとすると
PHP->jsp,servlet->struts->springの順がいいんじゃないかな

ところでeclipseがコードをはきだすからプログラマの立場は低下してる?
dreamweaver,wordpressもあるからデザイナーはどう?
SEをやっているとプログラムスキルは落ちてきますか?
2013/10/14(月) 07:11:42.10
どうせSpringに行くのにStrutsを挟む意義がよく解らんしPHPから入る理由も解らない。
PHPやStrutsで無いと理解出来ないことって何?
2013/10/14(月) 09:29:18.25
Spring-MVCとSpring-myBatis使ってるんだけど
mybatis側でトランザクション用のアノテーション付けておけば
DBに対する同時書き込みとかで特に考慮すべき処理って
実装しなくていいのかな?
一応ちゃんと動いてるっぽいし、あまりに簡単すぎて不安になったもんで。。。
2013/10/14(月) 10:23:27.30
@Transactional のことを言ってるとしたら、それでいいはず
2013/10/14(月) 12:58:34.29
>>214
ありがとう!更新系処理は、そのとおり@Transactional使ってる。
なんと、これで済んでしまうとは。。。
2013/10/14(月) 13:12:00.39
なにが「これで済んでしまう」のかは自分でちゃんと把握しておいた方がいいぞ
2013/10/14(月) 15:55:39.78
おkわかった。
一応、お手本となるサンプルをいくつか動かしながら作ってる。
http://www.javacodegeeks.com/2012/02/mybatis-3-spring-integration-tutorial.html
このへんとか。

SpringMVCのコントローラでリクエスト受けてから、
Serviceのinterfaceクラス->implクラス->Mapperクラス->MapperのXMLで定義されるSQL実行
って感じで最後はコントローラのコレクションでSQL実行結果を受け取り、
加工してブラウザに返す形。
トランザクションに関する部分は、ServiceImplの更新系メソッドに
@Transactional(rollbackFor = ******.class)
ってやるだけみたいなんで、これだけでいいのかと不安になってた。
2013/10/14(月) 21:56:43.16
コレクションの加工はServiceでやっとき
219デフォルトの名無しさん
垢版 |
2013/10/14(月) 22:28:56.73
>>217
このあたりはわからん
だけどこのあたりのことわからんと飯は食べることできん?
2013/10/14(月) 22:43:05.35
コレクションの加工はプレゼンテーションモデルで行う派。
2013/10/14(月) 23:10:18.22
>>219
派遣とかで行く分には知らなくてもいいだろうけど、自社サービスなら知らなきゃ作れんな
2013/10/15(火) 07:21:21.50
>>212
>>211でPHPって言ってるのがWebアプリフレームワーク使わない生PHPのことだとして、
単純に「リクエストを受け取ってレスポンスを返したり色々する」って一つ一つの動作を
自分で書くことと、その環境を準備するのに苦労が少ないってことじゃないの
Webの仕組を知らずにフレームワークを用いた開発から入るのが普通なのかは知らない
2013/10/15(火) 07:29:15.53
CGIてこと?
HTTP、サーブレットのことを知らないと痛い目にあうわな
2013/10/15(火) 20:16:13.10
>>213
そんなに心配ならPostgreSQLにでも繋いでログが出る設定にしとけ。
PostgreさんがBEGIN、COMMITを受け取って実行しているのが分かるから。
225デフォルトの名無しさん
垢版 |
2013/10/20(日) 15:46:56.36
phpでソフト作成のときもフレームワークを使うのか?
2013/10/21(月) 00:06:21.80
普通にcakeとか使うだろw
なにが言いたいの?
2013/10/26(土) 23:08:55.80
SpringMVCでREST-API実装して、リクエストマッピングに対して
@ResponseBodyアノテーション使ってJSON文字列を返しているんだけど
ログに

>Null ModelAndView returned to DispatcherServlet with name 'hogehoge_api':
>assuming HandlerAdapter completed request handling

ってのが出てて、ModelAndViewクラスを使ってないのになんか気持ち悪い。
web.xmlのほうでは
<servlet>
 <servlet-name>hogehoge_api</servlet-name>
 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
 <init-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>/WEB-INF/servlet-context.xml</param-value>
 </init-param>
 <load-on-startup>1</load-on-startup>
</servlet>

という定義で、servlet-context.xmlでもModelAndViewクラスは何も定義してないんだけど
これは気にしなくてもいいのかな?それとも設定間違ってる?
2013/11/02(土) 20:59:33.73
GalileoImpl#templatにJdbcTemplateがイネジェクトされ無いのですが、何故イジェクトされないのでしょうか?
jettyからはエラーログが吐き出されていないんですが

applicationContext.xml
<context:annotation-config />
<context:component-scan base-package="test" />
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource" /><!-- dataSourceは省略 -->
</bean>

@Component
public class GalileoImpl extends RemoteServiceServlet implements Galileo {
@Autowired
private JdbcTemplate template = null;
229228
垢版 |
2013/11/02(土) 22:26:19.90
ごめん、解決しちゃった。
環境は: GWT 2.5.1 + Spring 3.2.4

init()をオバーライドしたら、インジェクトされるようになった。
@Override
public void init(ServletConfig config) throws ServletException {
super.init(config);
WebApplicationContext web = WebApplicationContextUtils.getRequiredWebApplicationContext(config.getServletContext());
AutowireCapableBeanFactory facotyry = web.getAutowireCapableBeanFactory();
facotyry.autowireBean(this);
}

これだけの為に、3週間もかかってしまったorz\
2013/11/03(日) 09:33:14.91
いまいちスレも盛り上がらんけど、いい日本語PDFが公開されてるね。
http://d.hatena.ne.jp/tatsu-no-toshigo/20121023

ここの「Spring MVC 3.0/3.1/3.2 Cookbook」

PDF版(Spring3.0〜3.1)(約4MB)
https://googledrive.com/host/0BzR3hjGfqNYFMW9tYVZnY01SbEk/SpringMVC3.1.pdf
PDF版(Spring3.2のマージ途中のもの)
https://googledrive.com/host/0BzR3hjGfqNYFMW9tYVZnY01SbEk/SpringMVC3.2.pdf


あと、SpringMVCに関する説明はここも判りやすい。
http://www.beeete2.com/blog/?cat=21
2013/11/03(日) 09:58:41.71
>>230
知っている。これは便利。
うちの会社ではダウンロードできなかった。
2013/11/03(日) 10:40:40.23
会社でやるなw
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況