はてなキーワード: シェルスクリプトとは
開発言語は基本的にPHPとJavascriptの職場。
別に複雑なコードでもないし、PHPやJSでも、まがりなりにもコードを書いてる人なら見ればわかるでしょって感じなんだけど。
スマホアプリ作るときも、JSならだれでもメンテナンスできるからってmonacaとかいうJSでアプリが開発できるやつを採用したけど、Webとはアーキテクチャが違いすぎるから結局一部の人間にしか触れなくて、そんなマイナーなプラットフォーム採用した意味なかったし。
ちょっとしたツールを作るときも、Windowsアプリとして作ったほうが使い勝手いいから、VB.NETかC#で作ろうって話になってもベテラン勢が猛反対して、無理やりPHPでWebアプリとして作ることになったし。
サーバーで使うシェルスクリプト(.sh)も未経験の俺が、ネットでチョコチョコとググって改修して、すごいびっくりされたことがあるけど、こっちからすればなんであんたらは触れないかっていう感じだし。(黒魔術的な書き方もあるらしいけどもちろんそんな書き方ではない)
Windowsサーバーで使う .BAT ファイルを書くときに、.BATファイルの仕様では黒魔術的なテクニックを使わないと実現できない仕様だったからほかの言語にしませんかって提案したけど、.BATでないとほかの人が保守できないからと却下。
無理に.BATで書いて、逆に変なテクニックを駆使した保守性皆無のコードになってたし。
どの言語を使うかって話題になると、自分の使ってる言語以外を使うとアイデンティティが崩壊するかのような勢いで反対する。
Haskellみたいにまったく思想の違う言語ならともかく、似たような言語で、かつifとループと配列とサブルーチンの概念を把握していたら理解できるような書き方しかしてないコードでも、普段使ってない言語って時点で理解不能に陥るんだよな。
パイプでつないでawk使ってハッカー気分かもしれないけどお前の書いてるスクリプトクソクソクソオブクソだから
おとなしく
subprocess
<追記>
本物のハッカーである皆さんはどしどし使ってくれて大丈夫ですよ^^;
そうですね、熱くなって言い過ぎました。
個人がターミナルに打ち込む一度きりのコマンドはOK、ファイルに保存した瞬間に違法としましょう。
<追追記>
いやあ思いのほかBuzzっちゃって^^;
awkは適当に思いついたから入れただけでパイプ使ってるんだから他のコマンドも入ってますよ^^;
grepとかsedとかPythonで同様のことができる(実行時間が現実的な範囲で収まる)ならPythonの関数でお願いします。
読めないのか
読めませんよ。意図が。$1、$2とだけ書かれててそこにどういう値が入っているべきなのかコメントは書かれてませんし^^;
ハッカーの皆さんは当然コメントも書いてくださってますよね^^;
NOV1975 追記で日本語が読めない増田だということがわかったし、業務を任せられない増田ということもわかった。君は一体何の増田なんだ
http://itpro.nikkeibp.co.jp/atcl/column/14/346926/101101158/
Q1.役所の仕事なんて全国でほぼ一緒なのに、なんで自治体ごとに別のシステムを作るの?
A1.地方自治体の事務や財務について法律で決まっているのは大枠だけだよ。
それを実務≒内部規定に落とし込むのは各役所ごとなので大枠は似てても実務プロセスは全然各役所で違うよ。例えば同じ業務でも独自の語彙があったり、下手すると同じ語で市町村ごとに意味が違ったりするよ。
Q2.なんで新規で作らないの?
A2.80年代ぐらいにやったよ。その結果が政令市クラスに残ってて今回京都市が更新しようとしてるような、メインフレーム上のシステムだよ。
A3.みんなが使ってるWindowsとかLinuxとかのOSがなかった時代のコンピュータだよ。IBMとかがベンダーごとに作っていてOSもベンダー謹製だよ。性能はいいけどメチャ高いよ。
システム内でクローズして専用線以外では他とつながってなかったから、汎用機からPCサーバへの移行を「オープン化」と言うよ。
オープンソースソフトウェアとは全然関係ないよ。
Q3.使いまわしってどうやってやるの?
A3.80年代とかに作ったシステムで動いてるCOBOLとかPL/IとかをLinuxとかUnixとかWindows上で動く言語にコンバートしてリコンパイルするよ。
DBのデータも階層型データモデルからリレーショナルDB用にコンバートして移行するよ。こういう開発形態を「マイグレーション」と呼ぶよ。
あと、バッチジョブ制御もJCLという汎用機用の言語で動いているよ。これもそのままでは動かないのでコンバートするよ。
コンバート先はperlだったり、シェルスクリプトだったり、ベンダごとの独自スクリプトだったりするよ。
COBOLとかの実行プログラム移行も大変だけど、帳票の大量印刷はたいていバッチジョブでこなしてるので、JCLの移行もめちゃ厄介で大抵もめるよ。
Q4.80年代のものを使いまわすとか。新規で作ればいいじゃん
A4.お金が無限にあればできるよ。今の時代にお金があった時代のシステムをフルスクラッチで再開発するととんでもない予算になって市役所内の決裁が通らないよ。
しかも汎用機時代の納品は割といいかげんだったのか、仕様書が残ってなかったりするから、費用はさらにかさむよ。
Q5.そんなんでよく運用できてたな
A5.当時はSEが汎用機の付属品みたいについてって、困ったらオペレーターとして介入して動かしていたみたいだよ。
そうやって現場感覚バリバリでやっているので、オペレーターしか知らないプロセスがあったりするよ。
マイグレーション開発では総合テスト中にそういう隠しプロセスが「発見」されたりするよ。こわいね。
上記の通り仕様書がないことも多いうえ、システム課に限らず市役所の人員は基本ローテーションするよ。
導入当初の担当者が残っていることは珍しいし、30年も前に導入した汎用機のことなんてここ10年に入った職員にはわからないよ。
Q7.なんで入札にしたの? 現行ベンダに指名してやらせたほうが良くない?
A7.金額がでかいから、たぶんどこの市役所でも入札案件だよ。
随意契約(随契)は無理だし、入札業者を発注者が指定する指名競争入札は談合の温床になってたから最近はあんまりやらないよ。
(裏技としてRFPを指名したいベンダーに書かせて公募型指名入札にしたり、RFPの段階でハードを全部特定ベンダで型番まで指定するというのがあるけど、公になると多分問題になるよ。こわいね)
Q8.じゃあ役所は悪くないの?
Q8.悪いよ。
入札案件はRFPで書かれた各項目をどれだけ満たすかの技術点と、価格点で決まるよ。点が高ければだいたい自動的にそのベンダーに決まるよ。
なので、技術点の項目に現行システムの調査にかかる項目を入れるとかして、現行機の開発・保守ベンダが高得点を取れるようにしておけば価格勝負してくるベンダーをはじけた可能性はあるよ。
もちろん現行の会社に嫌われて逃げられたとか、役所が現行の会社をめっちゃ嫌いになって声をかけなかったとかもあるかもしれないけれど、可能性は低いと思うよ。
A9.ここまで述べたようにこの手のマイグレーションは火薬庫だよ。火を噴いても爆発しなければラッキーぐらいなので、強いて言うなら入札したことが悪いよ。
A10.前にマイグレーションをやったことがあるSEだよ。もうやりたくないよ。今は転職してSIerじゃなくなったからやらなくてよくなったよ。うれしいね。
しょぼいSEだからここに書いたことは個人の体験に基づく参照情報だよ。一般的じゃないことを言ってたり、間違ってたら教えてもらえると助かるよ。
(2017.10.13 追記)
Q3がかぶっていたよ。恥ずかしくてなきそうだけどブコメに番号で言及してくれている人がいるから忍んでそのままにするよ。
あと、「オープン化」の定義が違くない?という指摘があったよ。確かに増田が間違っていたので、記事の主旨から外れるけど補記するよ。
メインフレームは本文で述べたようにOSからハードまでメーカー謹製なので独自仕様のカタマリだよ。
これに対しPCサーバは標準規格で作られているよ。こういう標準規格に基づくサーバをオープン系と呼ぶよ。
独自規格でクローズしたコンピュータから、そうでないオープン系に移行するからオープン化なのであって、専用線とかは関係なかったよ。半可通な知識で語ってしまったよ、ごめんね。
京都市で火中にいるシステムズさんのサイトの解説がこの増田よりも分かりやすくて正確だから気になる人は見てほしいよ
http://www.migration.jp/column/column01.html
完全に余談だけどオープン系のx86サーバに移行しても、システムはそんなにオープンにならなかったりするよ。
H系に頼むとDBが拝承DBになったり、Fに頼むとシステム管理が全部SystemWalkerになったり、要するにベンダ独自のミドルに入ってがっつりロックインされたりするよ。
今の自分が何をやってきたのかと言われれば・・国立系現代美術研究機関で仕事をしている。
そこで何の仕事をしているのかと言われれば、ネットで美術作品に関するWebサイトの制作や
システム、サーバ管理作業やベンダー企業と打ち合わせを行いながら、世間に情報を発信している仕事だ。
プログラムこそ書けないが、PremiumPro、AfterEffects、Photosho、Illustrator、Dreamweaverを使いな
がら画像加工や映像制作、写真撮影、簡単コーディングやJavascript、シェルスクリプトをゴリゴリ書いて
仕事している。自分では何でも屋と呼んでいる。これがクリエイティブと言われればどうかはわからないが・・・。
アーティストとかデザイナーが嫌いですと言っていた自分ではあるが、知らない人間がそう言う世界の事を
言うのも失礼だと考え、正社員をやめてデザイナーになるため、まずは安いWeb制作スクールに通ってみた。
短期間だがサイトの作り方とAdobeツールの使い方を教わった。
ところが自分にはWebコーディングやデザイン考え方は理解できたが、デザインセンスや色彩感覚に欠けていた。
スクールへ通った後、派遣会社へ「Web制作がしたい」と登録したが、ポートフォリオを見せた途端にボロクソに言われ、不採用が続いた。
そんな中、あるWeb制作会社で「君、サーバ管理の方がいいかも」と言われてしまったがデザイナーになりたいとしと考えて断った。
その言葉をきっかけに「デザイン能力がないなら」せめてサーバ管理でもと考えて、Linuxスクールに通った
(その間は派遣で時給は安いがWeb制作会社で簡単なコーディング作業と画像修正作業、印刷会社でのDTP業務をして凌いだ)。
Linuxの勉強はすればするほど面白くなり、そちらの知識にのめり込んだ。サーバを学とネットワークの仕組みも知りたくなる。
最後にはネット知識で自作PCを組み上げてLinuxをインストールしてWebサーバとメールサーバを構築した。
ただ、自宅でWebサーバを構築すると言っても外部への公開はリスクが高すぎるので勉強機としてdebian系やredhati系OSなど
をデュアルブートさせたり、HDDでRAIDを組み上げたりして遊んだ。そのうちにレンタルサーバでドメインを取得、CMSで個人
ブログを立ち上げるも自分のポカミスからクラッキングにあいサイバー犯罪課の取り調べを受ける経験もした。
Web制作やデザインの仕事はなかったが、浅いネットワーク知識が幸いしてか、データセンターで映像サーバを扱う仕事に就き、
NagiosやらCisco機器、RAID、VM、セキュリティ知識、IP、デジタル映像知識、映像機器や編集の知識を得ることができた。
映像と言っても映画なのでDCPやKDP、3D映像の知識も会社で二週間研修させられた。仕事によっては夜中の仕事やAKB48ライブ
の収録に立会ったり、キアヌ・リーブスの舞台挨拶で生キアヌと打ち合わせしたりもしながらも、この日記を思い出しながら
それ以降は大企業の子会社でのWeb制作部門で勤務したり、IT資格もいくつか取得した。また途中で大学にも通い、好きだった
美術史や写真史、表現を学び、論文をいくつも書いた。その途中で亡くなった親父がフィルムカメラをくれたので、フィルムカ
メラにハマり出し、父親の形見の中判フィルムで撮影、フィルム現像、プリント額装して、個展までするようになった。
給料こそ高くはないが上記の研究機関で「何でも屋」で仕事をしている。
元々現代アートが幼少期から父親が集めていたアート関連の書籍を読んで、ドナルド・ジャドやフランク・ステラなどのハード
エッジアートに興味があったこと、簡単なシステム保守やサポートができること、フィルム現像や写真撮影ができること、ライ
ティング(照明)ができることが幸いして、作品の保管からシステム、ベンダーとの打ち合わせまでを任される仕事で採用され
ることになった。かなりの倍率だったようだが自分のように多く経験してきた方や知識、現代アートへの興味がある人は少なか
「オリも混ぜてくれよう。
実際には作ったりしないけど見るのは好きだおう
なのになんでオリを混ぜてくれないんだおう
お高く止まっちゃってさ!フン!もうこねぇよ!バーヤバーヤ!!!!
こうは書かれたものの、この気持ちもあって、それを理解するために色々と仕事と制作の仕事をしながら
勉強をしてきた(つもり)だけど、やってよかったと思う。
10年前の自分はデザイナー、アーティストがクリエイターという選民思想を持って「普通の会社員」を見下して
いるという、ルサンチマンに囚われていた。でも、仕事の業種に関わらずどんな仕事だって「創り出す」こと
は必要なのであって、それはどんな職種であっても創意工夫は必要であり皆がクリエイターである。
創り出すことが華やかに見えるのは一部だけであって、世の中にはもっと沢山のものが作り出されている。
たまーにWebのデザインや写真作品を制作することがあっても自分は「デザイナー」や「アーティスト」
とは言わない、それを言ってしまうと自分の創造の可能性を広げられなくなりそうで怖いから。もちろん周囲に
はデザイナー、ライター、アーティストの知人・友人はぐんと増えたが今はそれらの人を僻むことも今はしない。
しかし、あの日記を匿名日記を書けたことは自分の人生における仕事を大きく変えたと思うし、過去に自分が
そういう思いから出発しているから、どんな職業の人でも会う時には、まずは首を垂れて尊敬することか始めている。
それとこの言葉も気にしながら。
「未来に先回りして点と点をつなげることはできない。君たちにできるのは過去を振り返ってつなげることだけなんだ。だから点と点がいつか何らかのかたちでつながると信じなければならない。自分の根性、運命、人生、カルマ、何でもいいから、とにかく信じるのです。歩む道のどこかで点と点がつながると信じれば、自信を持って思うままに生きることができます。たとえ人と違う道を歩んでも、信じることが全てを変えてくれるのです」
ScalaとかKotlinとかいろいろ言ってる奴いるが10年後にはどうせJavaが勝ってる。
Javaはnull安全じゃない!とかほざく奴はもちろん@CheckForNullアノテーション使ってから言ってるよな…?
フレームワークは流行り廃りがあるから微妙だが、勉強するならSpringにしておけ。それだけでいい。
Webブラウザに標準搭載のJavaScriptが無くなることもまずありえない。
あとやるならjQueryね。AngularJSとかすぐ廃れるから。
学習コストが高いものって結局広まらないからさ…素直に現実を認めよう。
AnsibleやFabric使ってるやつがいるがどうせ10年後にはブームが去り技術的負債となっている。
シェルスクリプトで代用できるのだからシェルスクリプトでやっておけ。
これだけ広まったRDBが今後使われなくなることはまず考えられない。
そもそも便利なのかちゃんと考えてる?
「日々Dockerfileをメンテして開発環境がこんなに楽になります!」
「Dockerなので本番とも開発者同士でも同じになります!」
馬鹿じゃねーのかw?
Dockerfileメンテなんて手順書メンテとかシェルスクリプトメンテしてんのと大して変わらねーよw
そのDockerfileから作ったものが本番と同一だなんて保証はねーって気づけボケが
それと「同じDockerfileから作ったものだから環境差異はありません」なんて寝言まだ言ってるの?
yumもaptもリポジトリがセキュリティアップデートやらで変化する以上
いつも同じ結果になるわけじゃねーだろが、(バージョンロックする方法はあるけどめんどいだろ)
本番でもコンテナを使ってますってやつら以外無理してDocker使う必要ないんじゃねーか?
お前らが欲しいのは軽いVMであって細切れのコンテナじゃねーだろ?
initを潰して,supervisor入れてプロセス管理して・・・ってどう考えてもお前らが望む世界じゃないんじゃねーか?
流行りのコンテナぽくしたいならLXDやらsystemd-nspawnの方がよっぽど筋がいい
というわけでよく考えなおせ
続き書いた
毎度毎度、バージョンアップで非互換な修正加えてコードの修正が必要になって、Gemも上がって依存が壊れて
いつまでやってんだよw
Railsのプロジェクトでどれだけの人が最新版に追従できてんだよ?テストを書いてれば余裕?
本当かよ?正直に言ってみろよ?実際はレガシーRailsの山だろw
ヘルパーやらマイグレーションの仕組みやら最初は良いかなと思ったけど、どう考えてもやり過ぎだ
短くかけるとか喜んでるやつは一度考え直せ
それで良いんだって?自分がコントロールできない知らないコードに依存して結局バージョンアップで地獄みてるだろw
最低限中で何が起きてるか理解しとけよwまあ理解できるころにはRailsでなくても良かったんやwってなるけどなw
RAILS_ENV=productionだとstaticファイルは自分で返さないassetコンパイルで小さくしましょう
→ developmentで動いてたけど本番だと動きませんでしたw
毎度毎度、アホみたいにGem入れやがって、もう自分で把握できる状態じゃねーだろ?
bundlerだから完璧にvendoring出来ますだって?
本当かよnaitive extensionのGemなんてどう考えたってRails管理外のヘッダファイルに依存すんだろ
めんどくせーなbundlerもこけるし、rbenv使ってrubyのバージョン揃えろとか
ホントめどくせーよ
deployもcapistrano便利とか言ってるけれど、そんなに便利じゃねーよw
あんなDSL覚える時間あんならシェルスクリプト書けるようになっとけ
rackサーバがたくさんあってよかったねじゃねーよ集約しろ馬鹿w
unicorn, pumaで比較しましたとかアホ記事書いてる暇あるなら集約するかなにかしとけ
この手の話すると信者が使わない方法もある・選択しない方法もあるとか擁護してくるけど
そりゃあるけどそれ調べんのがめんどくせーって言ってんだよw
何でもかんでもレールに乗せてそれを強要してくるような感じがすんだよw
http://qiita.com/mesaka/items/41ec09a4dae3fba6dd6c
Qiitaに登録しているGitHubアカウントを見ると、たしかにGitやGitHubが苦手なんだなあというのを感じる。
それはまあともかく、プロフにあるURLを踏むと合同会社を設立されていることがわかる。
ついでに言うとWantedlyにも企業ページを作っていて、そこのプロフ等にも不穏なことが書かれているのだけれど割愛。
ここまで公開している立場で、あのコメント欄の態度は自分の首を絞めていないか?という疑問はさておき、GitHubの名前を検索したらTwitterアカウントが出てくる。
https://twitter.com/mesaka2009
いろんな人間に裏切られて鬱病になりました。もう人生に疲れています。 PHPは大好き!早く正社員になってもいいです!! ※このツイートはフィクションが含まれています。検挙件数稼ぎの警察の方の自宅に来襲はご遠慮下さい。
bioの内容が不穏すぎるがさておき、このTwitterアカウントを検索するとDMMの面接で落ちて逆恨みしたり、コロプラの面接で号泣していたことが既に増田でヲチされていたことが分かる。
すでに指摘されているが、妻子持ちでTwitterにはこの時期かなり不穏なこともつぶやいていたらしい。
件のQiita記事に関しては「書いてあることが事実ならチャットワーク社が反省すべきことはあるけど、この人の数年レベルの普段の言動から見ても、書いてある内容をそのまま鵜呑みにして語ることはできない」と思った。
ちなみに去年のカレンダーにはこんなこと書いてたのに、どうしてしまったんだろうなあ。
http://qiita.com/advent-calendar/2015/free-engineer
(追記)該当の記事を見たら、コメントにフリーランスおじさんを焚き付けてるおじさんが新たに登場してた。調べたらこの人も特定人物にケンカ売りたいだけの記事をQiitaに書いてた。
品位が問われるAdvent Calendar -- シェルスクリプトはどこでも動く! - Qiita
http://qiita.com/richmikan@github/items/5f53a14a79874d56a2ff
http://togetter.com/li/1056218
ちなみにこの人は松浦智之氏で最近『Windows/Mac/UNIX すべてで20年動くプログラムはどう書くべきか』という本を書いている。著作者情報によれば1975年生まれの40代。ついでに言うと、件のフリーランスおじさんはWantedlyに生の職務経歴書のpdfを公開していて、そこから年齢が40歳であることがわかる。なんだ、プログラマーは40超えたらこんな風におかしくなってしまうのか。プログラマー35歳定年説は正しかったのかもしれない。
http://vim-jp.org/vimdoc-ja/change.html#filter
Vimにはフィルタコマンドといって、テキストを任意のUNIXコマンドで処理するExコマンドが用意されている。
用意されていて、実際強力なんだけど、Vim組み込みの機能で間に合うことも多くて、下記以外はあまり使っていない気がする。
以前はVimの正規表現に慣れないからとPerlを使ってたりもしたけれど、Vimの正規表現も悪くないかなとなって。こう。
簡単な計算をするときに使う。1行に計算式を書いて「:.!bc<CR>」あるいは「!!bc<CR>」とすると計算ができる。
「<C-r>=」で代用できる。
長めのコマンドを実行するときに使う。「:%!sh<CR>」とすると書いたシェルスクリプトを実行できる。
最近はBashの<C-x><C-e>で良い気がしてる。こちらだとヒストリで戻って<C-x><C-e>として再編集することもできるので。
簡単な整列をするのに使う。ビジュアルモードで選択して「!column -t<CR>」とすると整列ができる。
(デフォルトのセパレータがスペース二つなので、一つにしたければ-oオプションを指定して「!column -to' '<CR>」という風にする)
vim-easy-alignやvim-aligntaが入っているならそれでいいかも。
それぞれJSON、XML、HTMLを整形するのに使う。JSONは「:%!jq .<CR>」、XMLは「:%!xmllint --format -<CR>」、HTMLは「:%!pup<CR>」。
ただ「jq . <JSONのファイル> | vim -」としていたりして、直接Vimの中で使ってない場合が多いかも。
連番を振る時、重複行を削除する時、指定した列を抜き出す時、などなど、色々なことに使える。
それぞれ「:%!awk '{printf"\%-6d \%s\n",NR,$0}'<CR>」、「:%!awk '\!a[$0]++'<CR>」、「:%!awk '{print$2}'<CR>」といった風にする。
自分も前に富士通に居て既に退職してます。後で詳しく書くけど、ソフトウェア開発職に居たです。
彼のへの感想。
富士通はクソでっかい会社なんだし、サイト見ればメインフレームやってるのだって判るんだから、開発職を希望したらメインフレーム関連の開発やる可能性あるのは当然予見出来るだろうし、それを想像してなかったのなら情弱とかブコメで言われてしまうよね。あと何も記述が無いから想像だけど、「それほど有能ではない」と判断された可能性もある。と言っても学生が思う「開発者として有能かどうか」ってのと会社でのそれってのは別物で、要するに学生自身が自分が実績もあって優秀だと思っても、会社的にはそうでないのよね。そうなると(後述の富士通に入社して10年が経った人の話にもあるのだけど)新人の能力の客観的な判断材料って大学と資格(応用情報レベル以上)程度なのよね。資格に関しても基本情報なんてMARCHクラス以上の人間なら受けたら取れて当然だから、「有能かどうか」の判断材料にならない。就活の際に本気でIT業界に入りたいかどうかの判断材料にはなる程度。自分の同世代で富士通本体に入ってソフトウェア開発関連に配属された人のプロフィールを見たけど、確か偏差値的には少なくとも神戸大学とか千葉大学あたりの修士卒しか居なかった覚えがある。あと確か2~3人がソフ開持ってた気がする。だから、この増田がどの程度だったのかなと。
ただ、20万人月案件が具体的に何かは判らないのだけど、自分の在籍していた当時でも炎上巨大案件というのはあって、(自分が知ってるのは確かデジタルテレビがどうのこうのとか言ってた)、そういうのに入社して間もなく入ってしまうと自身の勉強等が出来なかったり潰されたり最悪死んだりするんで、そういう意味でも逃げるのは正解の一つ。(自分は炎上案件に放り込まれた新人が寮で死んでたとか話を聞いたことある)
はあ、としか。この人がこう判断した際の判断材料にするであろう自己の体験を具体的に書いてないので、意識高い系がフカしてるようにしか見えない。あと、たった3年しか居なくてあの巨大企業の経営とか体制とか理解出来るんかね?と思わないでもない。自分とは部署が違うだろうから当然かもしれないけど、自分の体験とは違うなーって感じ。自分は、外から見たら馬鹿みたいな事やってるように見えるかもしれないけど、経緯や目的や巨大企業特有の問題があってそうなってるんだなって思う事が多々あった。
近い時期に入社したと思われる。具体的な話が自分の経験と一致してる。特に、富士通のソフトウェア開発と言えばミドルウェアの開発が主だというのは、富士通内部じゃないとなかなか(特に学生なんかじゃ)判らないかなと。
それでこれらの話を見てどんな人が富士通(というか大企業)に向くのかなと考えたんだけど、「やりたいこと」そこまで明確じゃないけどコンピュータは嫌いじゃないって感じで、地頭がまあまあ良くて勉強に関しても要領よくやれる(要するにそこそこの大学に行って卒業した人)、それでそこそこ安定した職・収入目当てな人かなと。ってコレ書いててふわふわしてる人みたいであんまり良い印象の人物像じゃないな。マッチングミスはどうしても起きると思うし、学生の頃に思う「やりたい事」って往々にして変わったり間違いだったりするし、そもそも学生の頃に明確な「やりたい事」がある人の方が少数派でしょ。だからこういうそこそこ優秀だけどふわふわしてる人の方が良いんじゃないかなとか。逆に、ちゃんと「やりたい事」が明確にあるけどまあ安定はしたいって人はどうしたらいいのかって言うと、自分みたく大企業の子会社を狙うと良いんじゃないかなと。子会社ならその会社がやってる事が理解しやすいし、入った後の配属の希望も大きく違ったものにはなりにくいし。まあ子会社は子会社で色々アルかもしれないけど。
入社は10年ぐらい前。入ったのは富士通の子会社で主にミドルウェアの開発をやっている所でした。入社して1~2年したら子会社の統廃合とのことで富士通本体と連携してる部署(自分がそうだった)は富士通本体になりますとのことで富士通本体の方に移ったという経緯ですね。別に待遇とか元々本体と同じだったから変わらず、事務関連が小回りきかなくなったぐらい。入社してから退職までは5年ぐらいでした。辞めた理由は実家の事業を継ぐ事にしたため。
入社して数ヶ月の時にある温泉地にある某所でその手の開発をやってる子会社沢山と
富士通本体のソフト開発配属の人達で研修をやったのだけど、その際に富士通本体の人達と知り合った。(この際に全員のプロフィール冊子が配られた)そのときは流石子会社に入る人達と本体とじゃレベルが違うな~と思いましたね。(ちなみに自分はMARCHより下の院卒。)
自分が配属されたのは某製品部署のAPI部分チーム。その製品がC言語やJava言語からも使えるように出入り口を用意する部分。中でやってる事は指定されたIPのポートにプロトコルに沿ってデータ投げるだけなんだけどね。ちなみに配属希望の際は「そこそこの忙しさの所がイイ」と言っていました。「バリバリに働きたい」と言ってた同期は多忙でヤバい所に配属されてました。他にもチームがいくつかあったけど、それらのうちの一つは例の「山奥の工場」でしたね。自分が配属された当時はC言語のAPIをリニューアルするって開発してたのだけど、設計担当がJavaしかやったことない人で色々とC言語の流儀に反してて後々のメンテが大変でした。まあそれでもリニューアル前よりは遙かに良くて、以前はユーザに見せてる関数名が ○○search1 ○○search2 ○○search3 とかでしたね(ちなみに機能はそれサーチか?思うのもあった)。もっと酷かったのが初期製品のJavaの公開メソッドで、マニュアルには「このメソッドの引数○○を□□を指定した場合は戻り値のObjectを△△にキャストしてください。××を指定場合は…」という「これ製品にして売ってたんだ…」と思うレベル。もちろんコレがダメだったってのは開発側も認識していて当時は既にリニューアル済みだったけど。リニューアル済みでも少し微妙だったけどね。
これは、ミドルウェアの開発をやってる人達って基本的にC言語が主でJavaとかをやってる人がほぼ居なかったからだと思う。上司もそういうのは良くないってのは認識してた。対象OSはWindowsとLinuxとSolarisだったけど、そんなにたいした事やってなかったからほぼ同じコードだったような。ソケットの一部だけ違ってたっけかな。
それでそのバージョンの開発が終わったあたりで、.NET Frameworkが出始めてきたので次バージョンでは.NET FrameworkのAPIを作る事になりまして、自分が少し勉強していたのでそれの設計から担当する事に。当時は.NET Framework 1.1で今思えば少し時期が早かったと思う。2.0でGenericが出てからやった方が良かったと思うんだけど、そういうの政治的判断だし結果論だしなー。それまでにRubyとかオブジェクト指向言語に触れてその辺の勉強もしていたので、.NET用のAPIに関しては設計も実装も結構良い感じに出来たと思う。ああ、そういえばRuby用のAPIも効率化の開発ツールとかの名目で仕事中に勝手に作ってたなあ。他にもC言語のAPIも内部実装がクソすぎ!とキレてユーザ公開関数インターフェースだけ同じで中身をフルスクラッチした事も。もちろん絶対にLDしてるんで完全に趣味なんだけどな。これでAPIはC言語とJavaと.NETになった訳だけど、現場の案件で使われたのってほぼ全てJavaだったと思う。(開発中のサーバのテスト用アプリはC言語だけど)。要するに自分が数年関わったコードが世の中ではほぼ使われてない訳でして、取りそろえとして必要だったとはいえ世の中の役に立ってないってのは嬉しくは無かったですね。まあ、大企業の仕事なんてそういうもんです。.NETに関してはそのバージョンが出る頃はその製品があまり売れてなかったんだか使われたって話は聞かなかったですね。ほほほ。大企業に勤めるのならこういう覚悟は必要かもね。
で、.NETのAPIが出来たあたりに開発ネタがなくなって保守気味になってきたので、人員整理と作業整理との事でインストーラと切りたいけど一度やったからには切れない補助製品の担当が増える事に。インストーラはWindowsがInstallShieldというクソみたいな言語上で作られたもの。LinuxとSolarisがシェルスクリプトでのもので、InsallShieldの方のコードはあまりにクソなのでリファクタリングさせてもらった。この辺の開発は少なかったのだけど新OS対応(Vistaとか)とか保守作業が大変だった覚えある。
んで、これらの作業が終わったあたりでこの製品でやることが無くなってきたのと同時に、この製品の派生製品の話が出てきてて、それは1機能1exeで提供されてて、それらを纏めるバッチ処理機能部分を担当することに。バッチ処理の内容・順番を記述するのにXMLを使う事になったのでXMLのパーサが必要なのだけど、色々調べたら富士通内部でパーサ作ってたのでそれをもらって使う事に。そのパーサはC++からじゃないと使えなかったのだけど、趣味でC++で勉強してたので何とかなった。あと、結構OSの知識(プロセスとか)が必要でWindowsとLinuxとSolarisで動くコードを書く必要があってまあまあ大変でした(と言ってもifdefで切り分けるだけなんだけど)。けど、これらの開発は自分が一から設計してコードを書いていたので楽しかったですね。それでこれが完成するかしないかあたりで、このバッチ処理機能が他の開発中の製品のバッチ処理に使えないかとか話が出てきたあたりで自分が退職する事に。(退職の話は1年ぐらい前に話し合って決定済み)引き継ぎをして退職ということになりました。最後は溜まった有給を使う予定でまだ在籍中だけど部屋を引き払って実家に帰ってたのだけど、打ち合わせに来て欲しいって言われてしまい実家から何日か通ったのは良い想い出。というかまさか実家から朝8時に間に合うとは思って無かった。
振り返ってみて残業時間は月40~60時間が多かったかな。100時間超えた時は上司に怒られた。あと退職前の1年ぐらいはうちの事業本部(だったかな?)単位で残業禁止になってホントに残業0時間になった時期があった。他の部署の人の話で、どう考えても狂ってる上司の話とかを聞いてると上司とかの運は良かったと思う。あと、やっぱり仕事でみっちりプログラミングが出来たのは運が良かったと思う。富士通のソフト開発で C C++ C# Java シェルスクリプト InstallShieldとか(そんなに深くはないけど)色々やれた人間はそうそう居ないんじゃないかな。同期とかの仕事は年上の人の派遣の人に指示出したり取り仕切ったりする仕事とか、保守サポートみたいな開発じゃない仕事の話も良く聞いていたので、ソフト開発のキモを体験出来たのは良かったです(こなみ)。