はてなキーワード: strutsとは
これは規模じゃなくて難易度の話だろ
難易度の話をするならCで言うポインタの理解なりの例えがあるんじゃないか?
javaだとなんだ、、、オブジェクト指向なコード書けることか?
元増田に話しとくとjavaで開発するにもHadoop、strutsやらのフレームワークや
jspなどなど色々ある
Androidアプリはその中じゃそんなに難しい部類ではないと思う
別の言語使ってもAPIやらフレームワークやらOSやら言語以外の知識と理解は山ほど必要だ
別の稼ぎ口があってプログラマが向いていないと思うなら、今なら遅くないから
引き返したほうがいいな
似たように苦しむ事が多いが腹をくくってる
色々教えてください偉い人。
自分で考えろってのはご尤もですが、色々な方の意見が聞いてみたいのです。
・Struts(ver2じゃないほう)上でのJava(max2000行程度)
・perl(max7000行程度)
・c/c++(ちょっと)
・Haskell(ほんの少し)
・VisualBasic(.NETじゃないほう)(ほとんど忘れた)
・HTML/CSS(セマンティック厨)(HTML5は勉強中)(バイトでWEBデザイン経験有)
・javascript(簡単なものなら)
・MovableType(CMSとして利用。ちょっとした企業サイトレベルくらいのものの構築。簡単なプラグインの作成とかも)
・Apache(セットアップと最低限の設定くらい)
・Tomcat(同上)
・Linux(CentOSとUbuntu。セットアップとちょっとした設定程度)
・AdobeのDTP系製品(CS2)(雑誌編集経験有、ただし学生レベル)
・Oracle(10g)(Bronzeレベルの知識とちょっと触ったことがある程度の経験)
・postgreSQL(ちょっと触ったことがある程度)
・会計関連の知識(日商簿記2級)(大学で管理会計をかじった)
・数学系の知識(論理とか集合やらの基礎。大学で計算機科学をかじった)
・印刷物/WEBサイトのデザイン(独学だけどそれなりに。一般人よりはそれっぽいデザインが作れるかと)
受託開発は固いけど確かに虚しい。
自分がやりたい事やるにも金かかるからなぁ
特にHttpServletRequest世代とStruts+Spring+ibatis(hibernate)辺りだともう常識が何も通じない位違う。
効率はいいけど、既に何年も動いてるシステムだと変える気なくなるし、
UserAgentなしでアクセスすると。。
http://marj.jp/
HTTP Status 500 - type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception javax.servlet.ServletException at org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:545) at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:486) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482) at com.hmsystems.common.struts.extension.HmsActionServlet.process(HmsActionServlet.java:28) ...
http://pkga.jp/
HTTP Status 500 - type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception java.lang.NullPointerException at com.hmsystems.sns.presentation.struts.RequestProcessor.processForwardConfig(RequestProcessor.java:91) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482) at com.hmsystems.common.struts.extension.HmsActionServlet.process(HmsActionServlet.java:28) at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507) at javax.servlet.http.HttpServlet.service(HttpServlet.java:696) at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)
両方ともHM SYSTEMSさんが作っていたんですね。
http://www.youtube.com/watch?v=k6_1P2EKKYo&feature=PlayList&p=56E3E51E650A4CE7&index=0
巷のPerl Mongerな人たちの間で話題の『モダンPerl入門』を読み始めた。
第1章はオブジェクト指向のトレンドの話で、とても興味深く読んだのだが、同時に「なんでこれPerlで実装せなあかんの?」と疑問に思った。ていうかオブジェクト指向やりたいならJavaやC#でいいじゃん。
継承という基本的な概念もないし、コンストラクタなんかも用意されていない。ゆえに、MooseとかのCPANモジュールを使って実装しなければいけないのだけれど、その分敷居が高くなって初心者には判りづらい。初心者でも現場に投入できるような、強力なオブジェクト指向機構が用意されているJavaやC#といった言語、StrutsやASP.NETといったフレームワークなんかとは全然違う。
私はメインがPHPとASP.NET(C#)という人間で、Perlはバッチプログラムとかクローラの実装とか雑用処理なんかに使っている。PHPは小規模プロジェクトでアジャイルな開発がしたい時、ASP.NETは大規模プロジェクトに呼ばれた時用の懐刀という感じで使い分けている。PerlでWebサービスを作ることももちろん出来るけれども、どちらかというとスピードが優先される開発に用いるものだと思うし、OOPを用いた大規模なプロジェクトにPerlを使おうとする理由がよく判らない。無駄に難しいし、そもそも本書を読めるレベルでPerlを理解している人の頭数がかなり少ないだろうから、実装しても保守コストがやたらかかる。Livedoorやmixiやはてなのような大規模サイトはPerlで動いているようだが。。。
『モダンPerl入門』は内容も書き方も素晴らしい良書だけれど、その辺りが引っかかった。「PerlでOOPを使う理由(APS.NETやStruts+Javaを採用しない理由)」は何なのだろうか? 私のプログラマーとしてのスキルが低いだけだと思うが、よく判らないので誰か教えてくだしあ。教えてダンコーガイ!
ほぼ年齢が変わらん増田です。こんばんわ。
あなたは贅沢を言ってますよ。正直自分でファイル構成を書いて、コンパイル環境やテスト実行環境やサーバー立てだって大変なのにチームでやるとなるとはっきり行ってああいう統括してくれるものがないと無理です。少なくともマッピング書いてみんなが理解してくれるのは物凄い事ですよ。
ずっとWeb何それおいしいの?っていう、過去の遺産を改修していく部署につっこまれてたので最近になって初めてStrutsとかTomcatとか触って感動。
なんて管理が楽なんだろう。開発環境作るのにこれだけでいいなんて!
と、素で涙が出そうでした。チーム間のやり取りも良好です。
ま、やめるんだけどね。
最初からこの部署にいたら幸せだったろうなと本気で思う。
ちまたじゃ、みんなフレームワークのことを当たり前のように論じててすごいなーと思うんだ。尊敬するぜ。だから、ミーハーなオレもフレームワークが気になって仕方ない!
だから、30歳近いプログラマのオレがプライドを捨てて優秀なハテナ住人に聞くが、
だが、そこまでだ。
Javaだと、Struts、Spring、Seasar、Wicket等をよく目にするけどよぉ、ドキュメントの量どんだけだよ。
入門ドキュメントだけ見ると簡単そうに思えるけど、仕事で使えるレベルまで理解が深まるまでどんだけ時間かかんだよ。
起動遅い、動き遅い、定型パターンを外れたら、やる方法が見つかんねー。
で、苦労して作ってもよぉ、結局は、HTMLがピロッって出力されるだけで、見てくれが変わるわけでもなく、全然努力が報われん。
これって、どゆこと?
Servlet+JSP+簡単なライブラリ 程度で十分じゃね?
PHPだと、Zend Framework、CakePHP、symfony等をよく目にするけどよぉ、ドキュメントの量どんだけだよ。
入門ドキュメントだけ見ると簡単そうに思えるけど、仕事で使えるレベルまで理解が深まるまでどんだけ時間かかんだよ。
デバッガの使い方分かってねーオレが悪いとは思うんだが、開発効率悪いぞ。(フレームワーク以前の話だが…)
統合開発環境何使えばいいの?わざわざクラス名や関数名覚えてられんぞ。(フレームワーク以前の話だが…)
何で、拡張子変えたがる。何で、変なテンプレートエンジン使う。エディタで認識されねーから開発効率悪いじゃねーか。デザイナがコーディングした分かりくいHTMLコードをよ、何で編集してるわけ?
ついでに聞くけどよぉ、ORマッピングライブラリって使えるの?
確かに書くコード量は少なくなっていいんだがよぉ、目に見えて遅いと思うのはオレだけか?
ディスクアクセスは明らかにボトルネックになるのに、巨大なライブラリのコードを毎回走らせるんだよ。普通のサーバじゃ余裕なの?
話題がそれたが、
実は、みんな、上司や先輩に言われて使ってるだけなんじゃないの?
ハテナ住人の優秀なエンジニアは、どんな目的でフレームワーク使ってんだ?教えて偉い人!
ま、誰も見ないんだろうけど。
なんかまとまってないけど、書いたので乗せる。ほとんど愚痴だよ。
このへんからぼろぼろ出てきてるけど、まぁおおむね理解できる。
http://d.hatena.ne.jp/higayasuo/20070923
http://d.hatena.ne.jp/habuakihiro/20070922
http://d.hatena.ne.jp/jYoshiori/20070826/1188150596
けどなんなだかなぁという気が最近している。
スーツ族がつまらない連中の代名詞であるのは良いとして、「スーツ族の煽りの結果、せっかくの良いものが台無しだぁ??」みたいな既定路線の論調はなんなんだろうという気になる。
RoRでもStrutsでもなんでもいいんだけど「オープンソースの成果を世に普及させたい」とか、「俺の仕事場で楽しく使いたい」というのならば、道具としては工業製品としての品質を持っていないと駄目なんだけどって言いたい。
で、また特有の色眼鏡で「あーまたサポートがどうのとか、枯れてないと駄目だとか言い出したよー」って言われそう。そういうファクターも大切だと言いたいけど、ここでいいたい品質って言うのは、フレームワークが持っているべき「誰が使ってもそれなりの物を作れる」っていう品質。StrutsとかRoRが低い品質だって言いたい訳じゃない。素敵なフレームワークだと俺も思う。
けど、スーツ族とかSIerの存在が馬鹿すぎて駄目だとかそういうのはどうよと思う。
スーツ族とか頭の固いおじさん達の方がこのイット業界といえども圧倒的に多数なんだからそういう人たちでもうまく使えるようにするという進化を何度も繰り返すべきであり、その繰り返しは許容すべきモンなんじゃないだろうか。
物理的な工業製品の進化を見ても分かるように、「馬鹿でも使える」というキーワードはとても大切で、これは複雑さが人類史上maxなソフトウェアといえども忘れてはいけないことの一つだと思う。「馬鹿でも使える」のを物理的な仕組み作りじゃ無理かもしれないということの解の一つとして「設定より規約」があるのかもしれないし、「いやいや、自動XML生成ツールで克服だよ」があるのかもしれない。
とにかく、そういった人たちの否定は、進化の否定、技術者としての自分の否定になるんじゃないだろうか。
あと、
非スーツ族 == ネット専業とかパッケージベンダーとかコミッタ
とかの文脈であって、たいていSIerの中の人間は馬鹿にされがちだけど、SIerの中にもコミッタは当然いるし、理解が深いのも多いよって言いたい。 逆にSIerで、技術が専門職である人間(業界専業のSEだとこの話の対象から外れるが・・・)の場合、千差万別のシステムを見てるので、尋常じゃない位の知識量と技術力が蓄積されている。
そういう人たちが大規模なシステムを組むときに、普通プログラマ達がそれなり作ってそれなりの品質になるように苦心するわけ。上に挙げたようなエントリを書く人やそれにbookmark入れてコメントするような意識の高い人たちばかりだったら、理想郷になるんだろうけど。。。
これは…ひどい…
そもそも勉強会でStrutsというあたりで既に身の程知らず感がひしひしと出ている。しかも書籍。
俺はプログラマ脳なので、プログラマの考えることしかわからんが、そいつらに言っておいて欲しいと思う。
「プログラマは、プログラムに何ができて何ができないのかわかってなくて、小さなプログラムすらきちっと仕上げられない奴の立てた企画に全力を投球することはない。また、仮に全力投球したとすると、その企画野郎からみると全力で妨害をしているようにしか見えないだろう。外注費も期間も膨れ上がること間違い無しだね」
プログラミングが若いののやるしょぼいことだと考えているのなら、大間違いだ。
企画がまずくてもプログラマが働いてくれることがあるのは、解決すべき問題が美味しそうだからであって企画が上手だからとか偉いからではない。
猛獣になめられたら鞭打ったって動かないし下手すりゃ逃げだしたり頭からかじられたりするよ。
まあ、この増田さんは重々承知なんだろうけれども。
そんな奴らが部下だったら俺仕事させないなあ。
物凄い簡単なプログラムを書かせて、満足行く出来になるまでずっと直しを命じるね。しかもはっきり言ってしまうよ。
「お前たちは自分を有能だと思っているようだが、俺はお前たちが無能だと思っている。無能でなくなるための教育はするが、有能になるまで仕事には使えんし評価は最低をつける。昇給はないと思え」