底辺過ぎてちょっとビビる

26歳からIT業界にいるエンジニアが、まったく成長できてないことを確認するブログ。備忘録的に使いたいとも考えています。

すぐに忘れるプログラミングの作法【2013年を振り返る】

直近の作業から順に・・・

 



ASP.NETC#/Javascript/HTML/CSS)でWEBアプリケーションの開発業務
 DBはSQLServerで、既存のアプリケーションの機能追加業務。
 基本的に設計書というものは存在していなくてソースコードと既存の画面から
 把握していくというスタイル。
 C#Javascriptにつまずくかも、と思っていたけど実際はHTMLとCSSの段階で大き くつまずいてしまっていた。現在進行形。1月で終わる・・・予定。


・VC#.NETでパッケージソフトの開発業務。DBはOracle
 元になるパッケージが「FileMaker」というMicroSoftACCESSのようなソフトウェアで作成されていたものを完全に作り直すというもの。
 最初は要件定義からということだったが、アサインの時点ですでに要件定義は完了していて(実際は要件定義で漏れが多々あった)、基本設計から携わった。
 VC#での実装はせずに、まずは基本設計(と詳細設計を一緒くたにしたもの)の作成だけで終わった。


 とにかく作業が進まなかった。仕様が曖昧になっていたし「何が出来て、何が出来ないのか」を自分では判定できなかった。
 仕様が曖昧になってるものを設計書としてレビューにかけているので当然、指摘がバンバン出てくる。
 その指摘に対応できないまま、次に機能の設計書に取り掛からなくてはならずどんどん悪い方向に進んでいった。


 本来であれば、11月中に基本設計のレビューを完了させて、12月から実装フェーズへと進む予定だったが、リーダーが潰れてしまい僕自身もプロジェクトから外されることになってしまった。
 
 引き継ぎとして、一応資料みたいなものを作成したけれど、おそらくプロジェクトは崩壊してしまったんではないだろうか・・・。
 知る由もないが。
 正直12月からあのままあそこで作業する気にはなれないし、逆に良かったのかもしれない。
 だって、VC#の実装をあの仕様書からどうやって行うつもりなのだろうか。
 DBに関する仕組みもなにもないし、ER図というかDB設計書もない状態だし。
 
 ・C/Pro*Cで既存システムの改修。DBはOracle
  大○総研のシステム改修業務。
 業務的なことは正直なにもわからないままだった。
 このへんから何やったか段々忘れてきた。
 手帳を見て思い出すと・・・「約定処理システムの保守期限切れに伴うシステム改 修案件」
 OSがSoraris(UNIX)だったものをRHELLinux)に変更。
 OS変更に伴って、ソースの改修。ポーティング、というらしい。
 
 「あるシステム向けに開発されたソフトウェアを別のシステムで動作するよう修整・再構築すること。
  通常、ソフトウェアは特定のハードウェアやOSで動作するよう設計されており、別の環境に持ち込んでもそのままでは動作しない場合が多い。
  このとき、ソースコードの書き換えや再コンパイルなどを行い、その環境で動作するようソフトウェアを構築しなおすことを、
  移植あるいはポーティングという。移植のしやすさを「ポータビリティ」という。」
  
 C、Pro*Cだけでなく、シェルにも手を入れた。割りとviを使ってソースの修正をすることに慣れた。
 ベテランの人がいたので、シェルでどうしても解決できないことがあれば質問に行けたのが良かった。
 自分一人では決して解決できなかった。
 
 ミドルウェアとして、ハルフトとMQというものがあった。
 ハルフトについては余り関わることがなかったが、MQについて少し関わったのでどんなものか書いておく。

 

f:id:starscream1999:20131229062241j:plain

 


 最終的にC言語の改修部分はあまりにもスキルが低く対応できなかったため、シェルソースの作成に終始することになった。
 単体テストも時間がかかってしまい、リーダーさんには苦労と心配をかけまくってしまった。


 なぜに単体テストに時間がかかったかというと、テスト用のデータを上手く用意できずGDBでいちいち進めていたため、思うような進捗にならなかったのだ。
 データが存在しなければ、IF分岐やFOR文内で必ず弾かれるため、思った関数まで辿りつけなかったのだ。
 無理やり変数にデータを格納して進めても、操作を誤ればまた最初から実行せねばならず、時間だけが過ぎていった。
 
 あと文字コードの問題も常に頭を悩ませた。未だにスラスラ出てこないところを見ると完全に忘れている。
 プロセスチェックとか、なんか色々とコマンドを教わった気がするが、忘れてしまった。
 ネット環境があれば、ファイルを自分に送信したり出来たのに・・・。
 


 品川シーサイドで、上と似たような様な案件。
 どうでもいいけど、これを書いている最中に日本語の文字変換が糞みたいだった。MSのIMEが原因か?
 ちょっと流石にうっとおしいのでGoogleIMEに変更した。
 
 C/Pro*CでDBはPostgeSQL
 OSはRHELLinux)でDBがもともとOracleだったものをPostgeSQLへの変更に伴うソースの改修案件。
 これもポーティングと呼んでいいのだろうか?
 僕に与えられた業務はOracleからPostgreSQLへの変更に伴うSQLの調査で、Pro*Cの改修もあったが
 なんかソースがうんこだったみたいで失笑を買った。
 Oracleで使えた関数をPostgeSQLに直した場合どうなるかという調査も当然あったし、文字コードの問題にもぶつかった。
 
 <OraclePostgreSQLの違い>
 OracleC言語内にSQL文を盛り込んだ言語→Pro*C
 ポスグレ:C言語内にSQL文を盛り込んだ言語→ecpg
 
 Oracle:DBとの接続には→sqlplus
 ポスグレ:DBとの接続には→psql
 
 この現場で出会った人で評価が180度変わった人がいる。
 結構いい年したおっさんなのだが、脳性麻痺とは言わないが、なんか色々と麻痺していて会話がおぼつかないが
 技術的には割としっかりしている人だった。
 お菓子を配ったり、何かと気を配る人だったのだけど、僕をプロバーの人間だと勘違いしていたみたいで最初は下手に出ていたのに
 同じ外注だとわかった途端に手のひらを返してきた。
 その返しっぷりがはっきりしすぎていたのでびっくりした。
 ・・・というか僕の技術力があまりにも低くてそっちにびっくりしたんだろうと今は思うようにしている。
 


 ・C++Buiderでの運行管理システムの開発

 C++Builderってなんだよと思ったが、「エンバカデロ・テクノロジーズ社」の

C/C++統合開発環境IDE)でMicroSoftのVisualStudioみたいなもん。

まぁー、迷惑かけた記憶しかない。

デバッグをどうやってやるかでまず躓いて、グラフィックを作成するんでも

時間がとにかくかかり、何も出来ないまま終わった。

グラフィック作成についてはペインターっていうWindowsに最初から付属しているお絵かきソフトを使ってやったのだけど普段全く使わないだけに、何が正しいのかさっぱりわからなかった。

普通の三角形の物体?をデザインして、色を塗りつけるだけなのだが、まっすぐ

線を引けなかったり、色を完全に塗ったと思っていたら一部欠けてしまっていたり。

一日三角形の色塗りで終わったこともあったっけ。

業務的には、既存システムへの追加対応で、ベースになるシステムは存在していたので、関数なんかを参考につくり上げるだけだったんだけどね。

なんか毎日怒鳴られてばかりでつらい日々だったという記憶しかない。

福島に本社がある会社の人たちで、請負で開発しているから殆どの社員が福島の人たちだったはずなんだけど、社内の雰囲気はとにかく暗いし、どこかピリピリムードがあって居心地が悪かった。田舎の人たちは気さくな人が多いなんて大嘘だなと思ったな。

 

 ここまでずらずら書いてきたけど、やってることが多すぎると思う。
 言語だけでもC言語、Pro*C、ECPG、VC# VC++Javascript、HTML/CSSと6個から7個 になる。DBもOracle,PostgreSQLSQLServerと3つ。
 加えて、シェルもあるし頭がパンクしてしまうのも無理ないと思う。
 人間関係の構築もいちいち大変だし、顔と名前を覚えるのもすごく大変。

開発環境も色々すぎる。UNIX,Linux,VisualStudio、C++Builder・・・ソースも管理もその現場現場ごとに全く違うしね。
 


 早く何処かの会社に入って社内開発か何かで落ち着くべきなのかもしれない。
 まじで。