はてなキーワード: javaとは
javaを極めてもphpを極めてもmysqlを極めてもlinuxを極めてもどーせ、5年後にはもっと良いものが使われて主流になっているでしょう。
「手に職を付けたい」程度の薄っぺらい理由でIT系ブラック企業の正社員を志望するのは絶対にやめた方がいい
そんな程度の情熱しか持ち合わせないなら絶対に「手に職が付く」事は無い。
よっぽど優秀なら話は別ですが、ブラック企業にしか就職できなかった貴方ですよ?無理ですね。
システムは能力が低い人、脳みそがそっち系用に構築されていない人にとって最初は相当つらいです。
耐え切れなくて100%逃げるでしょう。「手に職を付ける」だけなら他の仕事でもいいはずです。
理由2 体力的に耐えられない
IT系ブラック企業の場合、マニュアルなんて無いから投入時間に成果が比例しないです。その場合、一定の能力以下の方は、9時出社の25時帰宅になります。
成果の方程式は「投入時間 × (能力ー最低限必要な能力) ≒ 成果」ですから、無能だと成果はマイナスになります。デスマーチの発生ですね。
そして、大抵の場合ブラックIT企業のプロジェクトはリーダーがこれに当てはまります。デスマーチ確定ですね。
技術の変遷速度が速いため、常に学び続けないと時代遅れになってしまうからシステム屋さんなら常に付きまとう問題です。これは、ブラック企業だけの話ではないですね。
javaを極めてもphpを極めてもmysqlを極めてもlinuxを極めてもどーせ、5年後にはもっと良いものが使われて主流になっているでしょう。
でも、考えてみてください。システムの業務なんて理数系の勉強と似たようなものです。
新しい技術が来たとしても論理的に考える事が得意な人ならば文型理系関係なくこなせると思いますが問題は、貴方は、学生時代そういう人でしたか?無理ですね。
理由4 金銭面の見返りはほぼ皆無
頑張って成果をあげたところでブラック企業なんて金銭面の見返りはほぼ皆無です経営者に搾取されるだけです。
適度に手を抜いてある程度の成果が出せる人にしかおススメしません。3でも書いたとおりである程度能力があって、手抜きできる人にとってはブラック企業はヘルプがない代わりに放任に近いので凄く楽だと思います。ネット閲覧規制などもないですし。
福利厚生もちゃんとしてないくせに、正社員だから引継ぎするのが義務とかなんとか言われます。辞める時にめんどくさいですよ。
まずはバイトで様子見を見ましょう。「あ~ブラックだな」って思ったら適当なところでフェイドアウトするのがおススメです。
ブラック企業なので人間的にどうかと思う人がたくさんいます。上司の失敗は部下の失敗です。
良心……社会常識…人を信頼する気持ち……プライベートの時間……心と体の健康など、失うものはあまりに大きいです。
管理体制や教育制度が整っている会社はブラック企業にはなりません。つまり自力で学ぶしかないんです。
貴方は学校の勉強は良く出来た方ですか? もしそうでないならこの業界は茨の道ですよ?
人材が不足しているだけで人手が不足している訳ではありません。
システム業界は、正直にいえば人材不足です。人材が不足しているだけで人手が不足している訳ではありません。あなたが求められているわけではないのです。
http://lacucaracha.hatenablog.com/entry/2015/11/11/100336 の説明を見て、簿記や会計を初めて知る人が誤解されかねない箇所が多々あり、さすがにどうかと思ったので、自分で簿記のエッセンスをまとめました。
まず辞書をひいてみよう。国語辞典が手元にあればそれでひいてほしい。残念ながら手元にない人は、Web上の辞書をひいてみよう。
できれば複数の辞書をひいてみよう。複数の辞書の意味を見較べてみよう。
ぜひ本当に引いてみて欲しいのだが、今私が引いた結果を記しておく。
Wikipediaでは、 ( https://ja.wikipedia.org/wiki/%E7%B0%BF%E8%A8%98 )
簿記(ぼき、英語: bookkeeping)とは、ある経済主体が経済取引によりもたらされる資産・負債・純資産の増減を管理し、併せて一定期間内の収益及び費用を記録することである。より平易な言い方をすると「お金やものの出入りを記録するための方法」が簿記である[1]。
大辞林 第三版の解説 では ( https://kotobank.jp/word/%E7%B0%BF%E8%A8%98-132641#E5.A4.A7.E8.BE.9E.E6.9E.97.20.E7.AC.AC.E4.B8.89.E7.89.88 )
ぼき【簿記】
一定期間における経済活動を,一定の記録方法で帳簿に記録・計算・整理し,財産・資本・負債の増減を明らかにする計算制度。記入方法により単式簿記と複式簿記に分けられ,業種により商業簿記・工業簿記・銀行簿記・農業簿記などに分けられる。 〔「帳面に書きつけること」の意。英語 bookkeeping の訳語。福沢諭吉「福翁自伝」(1899年)にある〕
デジタル大辞泉では ( https://kotobank.jp/word/%E7%B0%BF%E8%A8%98-132641#E3.83.87.E3.82.B8.E3.82.BF.E3.83.AB.E5.A4.A7.E8.BE.9E.E6.B3.89 )
会社・官庁・組合など経済主体の活動を一定の方法で帳簿に記録・計算し、一定の時点で総括して損益の発生や財産の増減を明らかにする技法。記帳方法によって単式簿記と複式簿記に分けられる。
日本大百科全書(ニッポニカ)では ( https://kotobank.jp/word/%E7%B0%BF%E8%A8%98-132641#E6.97.A5.E6.9C.AC.E5.A4.A7.E7.99.BE.E7.A7.91.E5.85.A8.E6.9B.B8.28.E3.83.8B.E3.83.83.E3.83.9D.E3.83.8B.E3.82.AB.29 )
世界大百科事典 第2版では ( https://kotobank.jp/word/%E7%B0%BF%E8%A8%98-132641#E4.B8.96.E7.95.8C.E5.A4.A7.E7.99.BE.E7.A7.91.E4.BA.8B.E5.85.B8.20.E7.AC.AC.EF.BC.92.E7.89.88 )
企業や政府のような特定の経済組織体が管理する資本や財産の価値変動を一定の表現技法にのっとり記録・計算し,その結果を伝達する行為,またはその表現技法をいう。〈帳簿記録〉という用語に由来するとされ,日本では1873年(明治6)大蔵省公刊のアラン・シャンドAlexander Allan Shand(1844?‐1930,イギリス)《銀行簿記精法》で簿記という訳語が使われて以来,一般化した。この技法は現在あらゆる経済体制を問わず,さまざまな組織で用いられている。
とそれぞれ説明されている。
どの辞書や辞典を見ても、共通する言葉がある。例えば「経済主体」や「経済組織体」といった言葉。「帳簿」、「記録」、「計算」、「一定」も共通している。「技法」という言葉や、「増減」といった言葉も目につくだろう。
どの辞典でも使用されている同じ単語を、うまく抜き出して意味をまとめてみよう。こんな感じになるだろうか。
経済主体が行う経済活動(これを取引といったり、財産などの価値の変動ともいうようだ)を、一定の方法で記録したり、計算する。その結果を帳簿に書いておく。場合によってはそれを伝達する。これを簿記という。
さらに簡単にまとめてしまえば、「お金やものの出入りを記録するための方法」を簿記という。
1.ある個人や集団がいて、
3.増加したり、減少したりしたときに、
4.それを帳簿に書いておく。場合によっては誰かに伝える。
ということが簿記のエッセンスである。簿記が行っていることはこれだけだ。とても簡単なことに見えるだろう。
よくある間違いは、簿記=財務諸表をつくるもの、といった短絡的な勘違い。財務諸表がまず何かわからない人も多いと思うが、主に会社が、ある期間の業績などをアピールするために作成している書類で、決算書と呼ばれることもあったりする、くらいの意味合いを抑えておけば十分だ。
いままで見てきたように、簿記そのものは、財務諸表ではない。財務諸表を作る上で役に立つが、簿記自体は財産の変動を記録して帳簿に書いておく、といった意味合いしか無い。したがって、簿記の説明で「財務諸表の説明だけしかしない」のであれば、それは間違いだ。簿記から財務諸表を作ることができるよ、といった説明ならば、もちろん間違いではない。簿記と財務諸表は別の言葉であり、意味は等しくはならない。
例えて言うならば、プログラミングをする上で様々なプログラミング言語があるわけだが、では、ある言語を持って、「それだけ」をプログラミングと呼ぶか?というようなものだ。「Java言語でプログラミングをする」という文は間違っていないが、「プログラミングをすること=Javaである」というようなことを言われると、それは誤解である。C言語やPythonや他にもいろいろプログラミングをする上で利用されるプログラミング言語はあるのだから。「USBメモリー=USB」みたいな、誤解されかねない意味の略し方になりかねない。
財産という言葉を聞くと、簿記や会計を全く知らない人は、現金(硬貨とか紙幣)だったり、あるいは、金の延べ棒みたいなものとか、袋にドルマーク($)が描かれたものをイメージとして浮かべがちだ。実際に簿記でもそれらは対象になるのだが、「お金自身の動きだけをもって、簿記である」と勘違いしてほしくない。あくまでも、「財産」の変動を対象にしている。この財産とは「経済的な価値を持つもの」全部を指すのだ。だから現金以外もいろいろ入ってくる。
例として、火災や天災などが挙げられる。(他にも会計的なものはいくらでもあるが、知らない人がわかりやすいのはこれ以外には少なかろう)
火災や天災によって、ある会社の工場や営業で使っている自動車が焼失したり、破損することがある。このとき、会社からお金は減っていないが自動車が使えなくなってしまうために、財産として計上している「自動車の価値」を減少させる。複式簿記の仕訳で書けば、
○月☓日 (借方) 火災損失(天災損失などもあるだろう) □□□万円 / (貸方) 自動車(車両運搬具だったりもするが) □□□万円
といったようになる。よくわからないところが多いと思うが、「お金そのもの」がどちらの側にも無いということを確認してほしい。
「簿記=お金」のイメージが学び始めのころはついてまわると思うが、だんだん学習が進むにつれて、お金そのものを扱っているといった見方では説明できないものがたくさん出てくる。むしろそういうものばかりになる。
それゆえに簿記の言葉を説明するときには、「財産」とか、「経済的な価値変動」といったような、お金よりも抽象的な言葉で説明せざるを得なくなる。わざわざ難しそうな言葉を選んでいじわるをしているわけではなくて、正確な言葉を使わないとあとあと矛盾がたくさん出てくるゆえだ。定義がピンとこない人の方が多いと思うが、誤解しないでほしい。
記録する対象が商業であれば、商業簿記になる。ここでいう商業とは、ものを仕入れて、仕入れた商品をそのまま販売することをいう。スーパーマーケットの(惣菜みたいなそのお店で調理していないで、)袋詰されて並んでいるものは対象に含まれる。加工している場合にはその加工にかかった費用を計算する必要があるので、商業簿記では取り扱われない。
工業簿記は、商業簿記とは異なり、仕入れたものを加工して販売する。典型的なのは自動車産業のようなものだ。鉄やガラスなどを加工して、自動車を作り、それを売る。加工する途中で、工員が作業を行う必要があるし、加工のために工具や電気代、燃料代などがかかるだろう。そういった加工を伴う簿記が工業簿記の範囲である。(工業とついているので、工業だけと思われるかもしれないが、加工を伴うものであれば工業以外でもよい。例えば洋服をオーダーメイドで作製する個人商店なども、布地を加工して服に仕立てるので、工業簿記の範囲だ。生の牛や豚をさばいて、畜肉にする作業も加工を伴っているので工業簿記である。テクニカルタームだが、そういうときは副産物や連産品として処理したりする。金額的な重要性によって会計処理が変化することがあるが)
他にも農業簿記や銀行簿記といった言葉もある。それぞれ農業で使用される簿記、銀行業務で使用される簿記である。(私も詳しくは知らない)
ここまでは、業種に応じた簿記の違いであった。複式簿記と単式簿記の違いは、記録のとり方(これを記帳方法と呼ぶ)の違いである。
単式簿記は、記録を取るときに、科目を一つだけにしぼって記帳する方法である。家計簿や子供のおこづかい帳のようなものだ。(と書くと、ほとんど使われていないと思われるかもしれないが、少し前までは東京都は単式簿記で記帳していたし、他の自治体は、今でも単式簿記によるところもあると思われる)
○月☓日 おこづかい 500円
などと、お小遣い帳に記帳する。もしおこづかいから、おやつを買ったときには、
○月△日 おやつを買った -300円 (あるいは支出欄があれば、そこに300円と書く)
などと書いていけば良い。この「○月☓日 おこづかい 500円」といった部分を仕訳と呼ぶ。
複式簿記は、記録を取るときに、科目を左側と右側の両方を立てて記帳する方法である。
○月☓日 (借方) おこづかい 500円 / (貸方) おこづかい受贈益 500円
などと、帳簿に記入することになる。この、「○月☓日 (借方) おこづかい 500円 / (貸方) おこづかい受贈益 500円」の部分を、単式簿記の時と同じく、仕訳と呼ぶ。(受贈益という言葉が気になるかもしれないが、今回は説明しない。正確に書くための前提知識がそれなりに必要なので。今回は例に挙げただけなので、もらって得した、というくらいの浅い理解で十分だ)
この、仕訳を書く帳簿を仕訳帳と呼ぶ。(たまに普通仕訳帳と読んだりもするが、その場合特殊仕訳帳があるケースがほとんどだ)
単式簿記は科目が1つで、複式簿記では科目が2つになることがわかるだろう。これは正確に言うと、複式簿記は科目を書く欄が「左側と右側と2つある」という理解をしてほしい。したがって、もし、お母さんだけでなく、その日にお父さんからもおこづかいをもらったとしたら、複式簿記で仕訳を作ると以下のようになる。
○月☓日 (借方) おこづかい 1200円 / (貸方) お母さんからのおこづかい受贈益 500円 / お父さんからのおこづかい受贈益 700円
右側が2行になったことがわかる。左側は1行のままだ。そして、右側の金額を合計すると、左側の金額の合計と一致していることもわかるだろう。これも複式簿記の仕訳である。このように、右側が2行になったりすることもあるし、反対の左側が2行になったりすることもある。もっと行数が増えることもある。仮におじいさんやおばあさんからももらったとしたら、3行、4行と増えることになるだろう。(狭義の簿記の範囲外だが、連結財務諸表の合算の仕訳などが典型例だ)
このように、複式簿記は「左側と右側」にそれぞれ科目を立てるゆえに「複式」簿記と呼ばれる。
(余談だが、行列簿記など、他の記帳方法も存在する。自分も詳細は知らないが)
複式簿記の場合、仕訳帳に仕訳を書いたあと、勘定科目ごとに総勘定元帳と呼ぶ別の帳簿に転載する。この転載する作業を「転記」と呼ぶ。(この後もいろいろ話はあるが、まあこれくらいのことがわかれば複式簿記のイメージが持ってもらえるはずだ。)
いろいろ例を挙げて説明してきたが、今までの内容をまとめる。
1.簿記とは「経済価値の増加や減少を記録して、帳簿につけること」を意味する言葉である。
2.簿記の頭に○○簿記と言ったように、修飾語がつくときには、その修飾語は業種や記帳法(帳簿の記入形式)を詳しく説明している。前者は商業簿記や工業簿記など。後者は単式簿記や複式簿記といった言葉がよく使われる。
3.複式簿記という簿記は、仕訳が左側と右側の2つに分かれている。左側の合計と右側の合計は同じ金額になる。単式簿記は1つである。
といったことを説明してきた。おそらくこれだけ知っていれば、簿記という言葉がおおよそ何を意味するかわかるはずだ。(会計という言葉はまた別の意味になる。単語が違うということは、当然その意味は違うのだから)
もしこれを読んだ人に子供さんがいたりして、その子供に「簿記って何?」と聞かれたとしても、今までの内容を漏れ無く、内容を興味を持てるようにある程度やさしいものに組み立てなおして説明してもらえれば十分わかるはずだ。
簿記という言葉の意味については、会計方面に接点がない人は、今までの内容を理解してもらえれば、十分である。もちろんこれから会計を学ぼうとしている人も、今までの説明で、これから学ぶ内容と矛盾が起こらないように配慮して説明してきたので、そこそこ役に立つはずだ。
原文:https://blogs.apache.org/foundation/entry/apache_commons_statement_to_widespread
原題:Apache Commons statement to widespread Java object de-serialisation vulnerability
翻訳日:2015年11月12日(午後にタイトルを日本語にしました)
----
Apache CommonsのJavaオブジェクトのデシリアライゼーション脆弱性に関するステートメント
著者:Bernd Eckenfels(コミッター), Gary Gregory(Apache Commons副責任者)
AppSecCali2015 でGabriel Lawrence (@gebl) と Chris Frohoff (@frohoff) によって発表された "Marshalling Pickles - how deserializing objects will ruin your day" は、信頼されないソースからシリアル化されたオブジェクトを受け取るときのセキュリティ問題をいくつか明らかにしました。主な発見は、Java オブジェクト・シリアライゼーション(訳注:seriarization/シリアル化/直列化=ネットワークで送受信できるようにメモリ上のオブジェクトデータをバイト列で吐き出すこと。シリアル化されたJava オブジェクトはRMIなどのリモート通信プロトコルで使用される。)を使用する際に任意のJava関数の実行や操作されたバイトコードの挿入さえもを行う方法の説明です。
Frohoff氏のツールである ysoserial を使って、Foxglove Security社のStephen Breen (@breenmachine) 氏はWebSphereやJBoss、Jenkins、WebLogic、OpenNMSといった様々な製品を調査し、(http://foxglovesecurity.com/2015/11/06/what-do-weblogic-websphere-jboss-jenkins-opennms-and-your-application-have-in-common-this-vulnerability/) に各々の様々な攻撃シナリオを記述しています。
両者の調査活動は、開発者がJavaのオブジェクト・シリアライゼーションに信頼を置きすぎていることを示しています。認証前のシリアル化されていないオブジェクトにも。
Javaにおけるオブジェクトのデシリアライゼーション(訳注:de-serialization/非直列化=ソフトウェアで扱うことができるように、送受信されたデータを元に戻すこと)が行われるとき、大抵は想定された型にキャストされ、それによって、Javaの厳しい型のシステムが、得られた有効なオブジェクトツリーだけを保証しています。
不幸にも、型のチェックが起こるまでの間に既にプラットホームのコードが生成されて、重要なロジックは実行されてしまっています。そのため、最終的な型がチェックされる前に、開発者のコントロールを離れた多くのコードが様々なオブジェクトの readObject() メソッドを通じて実行されてしまいます。脆弱性のあるアプリケーションのクラスパスから得られるクラスの readObject() メソッドを組み合わせることで、攻撃者は(ローカルのOSのコマンドを実行するRuntime.exec()の呼び出しを含めて)機能を実行することができます。
これに対する最も良い防御は、信頼されていないピア(通信相手)とは複雑なシリアル化プロトコルを使うことを避けることです。ホワイトリストのアプローチ http://www.ibm.com/developerworks/library/se-lookahead/ を実装するように resolveClass をオーバーライドするカスタム版の ObjectInputStream を使うと、影響を制限することができます。しかしながら、これは常にできることではなく、フレームワークやアプリケーションサーバがエンドポイントを提供しているような時にはできません。簡単な修正方法がなく、アプリケーションはクライアント・サーバプロトコルとアーキテクチャを再検討する必要があるため、これはかなり悪いニュースです。
これらのかなり不幸な状況において、エクスプロイトのサンプルが見つかっています。Frohoff氏は、 Groovy ランタイムや Springフレームワーク、 Apache Commons コレクションからのクラスを組み合わせるサンプルのペイロードに gadget chains (ガジェット・チェーン)を見つけています(訳注:provided)。これはこの脆弱性のエクスプロイトのためにより多くのクラスを組み合わせられることは完全に確実なことで、しかし、これらは今日、攻撃者が簡単に得られるチェーンです。
(Twitter画像)https://blogs.apache.org/foundation/mediaresource/ce15e57e-94a4-4d7b-914c-8eb8f026659c
この脆弱性のために利用される(訳注:blamed)ことができない確かな機能を実装するクラスができ、安全性が信用できないコンテキストにおけるシリアル化を利用されないようにするような既知のケースの修正ができたとしても、少なくとも分かったケースだけでも継続的に修正していくことが要求されます。モグラ叩きゲームを始めるだけであるかも知れませんが。実際にはこれは、オリジナルチームが Apache Commons チームに警告が必要だと考えていない理由で、それゆえに比較的、活動開始が遅れました。
Apache Commons チームは InvokerTransformer クラスのでデシリアライゼーションを無効化することによって commons-collection の 3.2 と 4.0 のブランチにおける問題に対処するために、チケット COLLECTION-580(http://svn.apache.org/viewvc/commons/proper/collections/branches/COLLECTIONS_3_2_X/src/java/org/apache/commons/collections/functors/InvokerTransformer.java?r1=1713136&r2=1713307&pathrev=1713307&diff_format=h) を使っています。議論されているやるべきことのアイテムは、変化させる仕組み毎(per-transformer basis)に、プログラマティックに有効にするような機能を提供するかどうかです。
これには前例があります。Oracle と OpenJDK JRE の一部であったり、バイトコードを挿入して実行することを許したりする com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl クラスで、セキュリティマネージャーが定義されているとデシリアライゼーションを拒否します。
これはシステムプロパティ jdk.xml.enableTemplatesImplDeserialization=true とすることで無効にできます。Apache Commons Collection は、本来よりもこの実行モデルは一般化していないため、セキュリティマネージャーの存在と独立したこの機能を無効化することを計画しています。
しかしながら、明確化のために述べておくと、この便利な"ガジェット"は、唯一知られている方法でもなければ、特に未知のものでもありません。そのため、インストールされたものを強化されたバージョンの Apache Commons Collection に置き換えることが、アプリケーションをこの脆弱性に対抗できるようにするわけではありません。
このブログポストのレビューのために Gabriel Lawrence に感謝したいと思います。
Apache Commons Collection は、Java コレクションフレームワークに加えて追加のコレクションクラスを提供する Java ライブラリです。InvokerTransformer はコレクションにあるオブジェクトを(特にリフレクション呼び出しを通じてメソッドを呼び出すことで)変換するために使うことができる Transformer ファンクションインターフェースの実装の一つです。
一般のSallyによる2015年11月10日午前10字15分にポスト | コメント[1]
コメント:
SIerが欲しがるプログラマーなしでもシステムできちゃう製品あるでしょ。
分岐をアイコンのようなやつでつなげるとか、ものっすごく単純にしたドメイン固有言語をコピペするだけでシステム完成するやつ。
パソコンのノの字も知らないオッサンは、上流の設計をそのまますぐに設定をしてお客に売る。
人月がめっちゃ安くなるよ―!!っていうアイドルと付き合えちゃうくらいなレベルの妄想をもっているらしい。
でもね。
今まで見てきたけど全部燃えてたよ。
ガソリンがたんまり仕込まれている焼夷系の地雷なんだよあれは。
大体お客さんは安い安いとか言っときながら、SIでシステム買おうとしているから絶対に自分らの社内ルールに合わせた複雑な要望を持っている。
社内ルールをパッケージに合せることや、システムの設計と社内のルールを歩み寄らせるというのは理想だが根付いていない。
本来ならばシステム担当役員が企業全体のフローごと改革するような強い権限を持っていればいいが、システムを買う窓口になっているお客サンがわのSEは普通の平だし、ヘタしたら外部の人間だし、
だから企業ごとのカスタマイズが必要になるのだが、あのノンプログラマー大丈夫系製品はほっとんどかゆいところに手が届かない。
ノンプログラマー大丈夫ってことは、プログラミングでの抽象度の高い操作を極力無くしてほぼ設定段階で済ませようとしているのだとおもう。
そしてノンプログラマーでも大丈夫系製品なので本当にノンプログラマーで構成された上流たちが、お客の要望をきいて「できそうじゃね?」「販売元にきいてみっべ」「いざとなれば誰か外注すっか」みたいなノリでやりがち。
で、「仕方ないプログラマ様にきていただぐべ」とかなるんだけれども
プログラマ様も謎の製品について学習するコストもかかってしまって余計時間がかかってしまう。
はっきりいってピュアJavaで書いてくれたほうがわかりやすい。
この手の製品で本当に挙動が分からなくて、サポートに電話しても要領を得なくて、でも上からは「おら、やれよバカ」っていわれて
しかたないからClassをデコンパイルして読んで、できません…っていうこともできないから、結局別プロセスで動かす逐一データを変換するような物をつくらなくちゃならなくなった。
それ誰が面倒を見るの?
納期に迫られてしかたねーしかたねーでとりあえず作ったし、オレは外部の人間だからすぐ抜けちゃうけどさ
こんなことここ五年で4回くらいみた。
簡単にする仕組みは良いよ。
ブラックボックスだし小回り聞かないし、でも色々な要望がでてきて結局袋小路に追い詰められるんだよ。
使って良いのはプログラミング言語の上を覆うくらいのフレームワークまでだね。
あとね。
作っている途中で思い出す感じなんだよ、
そんな状態なのに機能が制限されている簡単ツールなんて使うなよ。
ねえねえ。
for(var i = 0; i < list.length; i++){ }
にしておいた。Windowsにjsファイルでスクリプトを食わせたら動いたけど、XulRunnerよ、Array.forEachは使えないんだなきっと。ふざけやがって。計6時間消費、Array.forEachを何とかつかってやろうと思っていたが。
Mozilla が Microsoftなどに負けたのは、ふつうに使える開発ツールが無さすぎなんだよ。傾斜生産方式を見習えっての。
少し直してはアドオンパッケージングして、ロードさせてアプリ再起動させて実行、また直してはアドオンパッケージングして、ロードさせてアプリ再起動させて実行で、たかが1文字間違えていただけで見つけるのに数十分もかけさせられてたら萎えるわ。alertも使えないし、console.log とかいうのも ctrl+shift+J で出る画面になにも表示されないし。
Visual Studioはサイコーだね!!Java なんて手を出さなくて助かったわ。重くてすぐオチる Eplicse なんて使っていたらストレスたまるし。
落ちました。
色々あってこの後、基本情報技術者試験、応用情報技術者試験、情報安全確保支援士試験と取れました。
その、ありがとうございました…。
基本情報とかだけじゃなくて、JavaとかPHPとか、各DBあたりのベンダー試験なんかも。
むしろJavaの試験に受かってないとコーディングできないとか、ナントカ試験もってないとSE業務できないとか、徹底してほしいわ。
あんなもんじゃ実力がわからないって言うけど、ソフトウエア開発の現場って、どう見ても水準に達してないのに経歴が長いってだけで技術力があるってことになってる連中が多すぎ。
こいつJavaの入門書レベルも読んだことないだろって感じのやつがコーディングルールを決めてたり、VB6の時代で知識止まってるオッサンがC#やらVB.NETのコードレビューやってたり。
認定試験受かってたら、最低限、そういう連中はフィルターに掛けられるしな。
単純にダメな奴には開発をやらせなければいいんだけど、そのダメかどうかを判定する立場に経歴が長いってだけのダメな連中がついてるから、まともな選別とか無理だわ。
今作ってる典型的なJavaのMVCモデルのWebシステムでの話。
結論から言うと、プログラムやクエリを和訳したレベルまで細かく書くのは無駄だと思ってる。
特に一番嫌いなのが、クエリを和訳した文をそのまま詳細設計書内に書けって言ってくるレビュアー。今のチームのレビュアー様である。
テーブルと列、検索条件、ソート順、結合あるなら結合条件も書けと言ってくる。
まあ単純な主キー検索等しかないシステムなら別にいい。書くよ。
だがそんな単純なクエリだけでそこらのシステムが成り立ってるならこんなこと言わない。
大体今日びORMも導入せず処理の途中にクエリをベタ書きするような糞システムもそうそう無い(とはいいつつ去年見た)っていうのに。
クエリを和訳したような設計書を書くくらいなら、いっそ設計書からクエリを自動生成できるようにすればいいじゃないかっていうことで、余所の部署で作られたマクロ付きの設計書を拝借してきて今回DB関連は全部そっちで定義してある。
にも関わらず、「ここにもさらっと書いておいてよ」とレビュアー様はのたまう。いやいやさらっと書けないから別のドキュメントにしてるんですが。
んでレビュアー様のご指摘どおりに直していくと、結局別出しにしていたクエリ設計書と全く同じことを詳細設計書にも書くハメになる。
そこそこ大きなプロジェクトで、基本設計、詳細設計、さらにプログラム設計書を作ることになったのだが、このレビュアー様がレビューしまくってして書き直させまくった結果、詳細設計書とプログラム設計書はフォーマットが異なるだけで記載内容がほぼ一緒になってしまったのだ。
当時設計書の修正だけでかなりの工数を使った結果上からも下からも総ツッコミを喰らってかなり痛い目見てるはずなのに、また同じことを繰り返しているから救いようが無い。
プログラムが書けない典型的な文系SE様に今更Javaでプログラム書ける様になれとは言わない。
ただ詳細設計のレビュアーを任されるような立場ならば、せめてそのシステムで使われてる言語やフレームワークの特性ぐらいは把握しておくべきだ。
それも嫌ならせめてフロー図くらい読めるようになってほしい。フロー図作れって言っておいていざ作ったら「このひし形って何?」って聞かないでお願いします。
何が得意なのか謎、もしくは特化した言語を持たない人は不明と書いている。
褒めだろうが悪口だろうが質問でもなくても何でも回答してくれる。
このクラスはask.fmを愛するプロフェッショナルな人しかなれない。
Python | http://ask.fm/hamukazu |
C++ | http://ask.fm/EzoeRyou |
Haskell | http://ask.fm/tanakh184 |
回答率が下がるがそれなりに回答を付けてくれる。
C# | http://ask.fm/chokudai |
C++ | http://ask.fm/nico_shindannin |
Java | http://ask.fm/hyuki0000 |
不明 | http://ask.fm/chomado |
質問を選びすぎて回答率が低い。
PHP | http://ask.fm/tokumaru |
Vim | http://ask.fm/ShougoMatsu |
PHP | http://ask.fm/anatoojp |
リストラ予備軍。
Vim | http://ask.fm/mattn_jp |
不明 | http://ask.fm/KensukeFurukawa |
不明 | http://ask.fm/todesking |
社内SEとして2社ほど経験したけれど、社内SEで必要なのは技術力よりも社内政治力だとつくづく思う。
感じたことをつらつらと書いてみる。新しいことをするには立場と権力がないと何もできないということをつくづく感じた。
社内SEになりたいと思う人は、ちゃんと考えて入った方がいいと思う。
2chなんかでIT系の採用の話があると「学生のときに勉強してた新人は変なクセがついてつかえない。なにも知らない新人のほうが伸びる」みたいな人がよくいるんだけど、こういう事を言ってる所は地雷だよな。
これを言ってるのは、言ってる本人が勉強したことなくて、職場のガラパゴス化した技術しかしらなくて自分自身に変な「クセ」がついてるんだと思うわ。(実際にはスキルにクセなんてないんだけど)
で、自分が劣ってるんじゃなくて「勉強してるやつは変な癖がついてダメだ」って合理化してんの。
「クセ」といえばよく、はじめに学んだ言語が○○だとクセがついてダメだとか、最初にIDEでやるとダメだとかいう説があるじゃん。
プログラミングのスキルをスポーツのフォームみたいに捉えてるんだろうけど、こういうのも言ってる本人がダメっぽいな。
世の中には言語を一個覚えるのがやっとみたいな人と、簡単に複数の言語を覚えられる人がいて「プログラミングのスキルはクセがつく」という発想をしてしまう人は、前者のほうなんだろうと思う。
自分が言語一個覚えるのに四苦八苦するのを、世の中みんなそうだと思って「クセがつく」と称してるの。
CのベテランがJavaの現場にきて、悲惨なコードを書いてるとかあるけど、それはCのクセがついてるからじゃなくて本人にJavaを勉強する気がないからだよね。
「クセ」と言われてるのは、学習曲線が一年くらいで伸びなくなって複数の技術を身につけるのが困難な人が、最初に学んだ技術しか使えないのをそう言ってるだけで、そういう人からしたら確かに「クセ」が存在するんだろうけど、そういう人を前提に新人教育を考える必要はないと思うわ。
IDEから入るとコマンドラインが使えなくなるって話も、そういう人はコマンドラインから入ってもすぐ学習曲線は頭打ちになって、どのみち大したこと技術者にはならないだろうし。
営業職とか数値目標がほとんどな職種だといいのかもだけど、それ以外全然駄目な制度だよね?
上手く行ってる例を聞いたことがないんだけど。
目標管理シートドリブン開発はくそ - razokulover publog
http://razokulover.hateblo.jp/entry/2013/12/20/084359
ITエンジニアの評価制度をどげんかせんといかん - ぐだぐだ言ってないでコードを書けよ、ハゲ。
http://kheiakiyama.hateblo.jp/entry/2013/12/22/145210
http://d.hatena.ne.jp/JavaBlack/20131222/p1
2013 年くらいにこの辺でも騒がれてたけど、そんで今実際どうなってるの?
なんかもっといい評価制度(笑)ができてそれが実は水面下で広まってたりするわけ?
惰性でこんなん使い続けてる会社ばっかってことは、人事ってやっぱり『企業の即戦力じゃないから人事をやっている』ってことなのかな?
少なくとも自分たちの業務の中でも重要な部分に能力発揮出来る人が少ないって事はまぁそう言われちゃっても仕方ないよね?
そんな気がするなー。