表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。
異世界でもプログラマは不足していた  作者: ベル
第一章 図書管理システム
13/31

Step11. 開発準備

「ジン先輩ー、今回のプロジェクトの仕様書見たいんですが、どこにありますか?」


「ちょっと待ってな……これだ」


「おっふ」


 セキュリティレベルが高く、暗号化が施されていた(本人しか解らないやつ)

 薄々感じてはいたが、まともな仕様書は無さそうだ。


 仕様に嘘偽りが無い完璧なドキュメント、つまりソースコードを見て行くか……


「ソースコードを見たいんですが、どうやったら見れますか?」


「今作業中で、ビルドが通らない(プログラムが誤ってる)から少し待ってくれ。俺のソースコードは、2日くらい結合(マージ)してないが、大きな問題はないはずだ。転写(コピー)して渡すから記憶の魔導石(USBメモリ)を準備しておいてくれ」


「おっふ(2回目)」


 ダメ元で、恐る恐る聞いてみる。


「……バージョ(G)ン管理(i)システム(t)は使ってませんか?」


「なんだソレ?」


「いえ、何でもありませんっ」


 デスヨネ、使ってる訳ないですよね。


 説明しよう!

 バージョ(G)ン管理(i)システム(t)とは、ソースコードを管理するシステムのことで、プログラマ必須のアイテムだっ!


 ソースコードの履歴や差分を管理してくれて、他の人のソースコードを結合(マージ)してくれる優れもの。

 これが無いと、正直生きていけない。使わずに開発するのは、軽装で山に登るようなものだっ!


 ここは手を抜くために、全力を出すしかない。

 な……何を言ってるのか、わからねーと思うが、損して得取れという意味だ。


 プログラマにとって、機械的な単純作業は、失敗しても、成功しても得られる経験値は何もない。

 ただ集中力と時間を奪われて辛いだけだ。


 心が決まった。


 バージョ(G)ン管理(i)システム(t)とまでは行かなくとも、他の人のソースコードを結合(マージ)してくれるツール(アプリ)を作ろう。


 仕組みは簡単だ。2つのソースコードを1行ずつ比べて、一致しなければ、判定を保留して、次の行を見ていく、先の行のどこかで一致したら、新規に挿入されたコードとみなして、結合(マージ)する。


 機械的に対応できなかったり、判断に困る部分があれば、判断を促す表示をして、決めてもらう。大体こんな感じで、いけるはずだ。


 ソフトウエアを頭の中で組み上げる。


 ―戦術選定......汎用型決戦(ウォーターフォール)モデル


 ――要件定義......ソロミッションの(共有相手が居ない)ため省略


 ―――基本設計......心象世界に具現化(脳内で完了)


 ――――詳細設計......現場での判断を優先(作りながら考える)


「条件付きでオールグリーン、製造準備完了!いつでも行けます!」


「……ただ……成功率が60%未満です」


「成功率なんてのは単なる目安だ。 あとは勇気で補えばいい! ファイナル・ミッション承認!!」


「了解! ファイナル・ミッション、プログラム……ドライブ!」


  バキッ(何かが割れる音)


「よっしゃぁぁぁぁあ!」


 …


 ……


「……おい、サワタリ大丈夫か?」


 ハッとして横を見ると、ジン先輩が心配そうにこちらを凝視していた。


「……だ、大丈夫です。何でもありません。ご心配をおかけしました」


「なら、いんだが」


 あぶない、あぶない、感情が昂って軽くトリップしてしまった。気をつけねば。

 えっ、こんなことで盛り上がれるのかって?


 そうとも、プログラマは孤独な闘いであることが多く、自分の世界(固有結界)に入りやすい。

 独り言が多いのもその為だ。科学的に証明はされていないが、声を発することで、思考を整理しているとも言われている。

 もし近くにプログラマが居て、何かあっても生暖かく見守ってあげて欲しい。


 よし、気を取り直して、プログラミング開始だ!


 カタカタ…ターン!

 カタカタカタ…ターン!!

 カタカタカタカ…ターン!!


 カタカタカタ…俺のターン!!


 地味だがコーディング中は、こんなものだ。


 カタカタッ……

 カタカタカタ…最後のターン!!


「完成っと!」

 集中して、一気にやり切った。

 外の様子を見ると暗くなり始めていた。黄昏時というやつだ。


 完成したらやることと言えば……お披露目会(自慢大会)だ!

 いつもならジェシカを呼ぶところだが、今回はダメだ。内容がマニアックすぎて伝わらない。


 ここは頼れるジン先輩だ。


「ジン先輩、少しお時間よろしいでしょうか?」


「ん?なんだ。いいぞ」


「ソースコードの結合(マージ)するツール(アプリ)を作ったのですが、見ていただけないでしょうか」


「……ほう、それは面白そうだ」


「ジン先輩は2日間結合(マージ)してなかったんですよね?それで試してみましょう」


「そうだな。結合(マージ)もしようと思っていたところだ。フリートのとこに行ってソースコードを貰ってくるとしよう。付いてこい。ついでに紹介もしよう」


 2人並んで、反対側のデスクまで歩いていく。


「フリート、新しく入ったサワタリだ。仲良くしてやってくれ」


「いつも貴方は突然ですね。私はフリートと申します。以後お見知りおきを」


「私はサワタリと申します。こちらこそよろしくお願いします」

 丁寧な人だ。フリートさんは見た感じエルフ族のようだ。見た目は20代だけど、年齢は分からないな…


「フリート、さっそくだが、結合(マージ)したいんだが、どうだ?」


「先ほど、キリがついたので大丈夫ですよ」


「おお、それは良かった。あとサワタリが結合(マージ)ツール(アプリ)を作ったらしいんで、試してもいいか?」


「!?……それは興味深い、ぜひお願いします」


「分かました。ではさっそく、同じフォルダ階層にして、このツール(アプリ)を実行します」


「「ふむふむ」」

(二人の顔が近いなぁ……)


「はい、終わりました。結合(マージ)が出来なかったファイルは、衝突(コンフリクト)しているので、手動で解消(修正)を行ってください。今回は3つのファイルが衝突(コンフリクト)していますね。対象箇所を分かりやすく表記しているので、試しに1つ見てみましょう」


<<<<<<< ジン先輩のコード

void Rental()

=======

void Rental(Book book)

>>>>>>> フリートさんのコード


メソッド(部品)引数(パラメータ)が変わってますね。どちらかを残して、不要な部分を削除してください。今回はフリートさんのコードを残すのが良さそうですね」


「「!?」」


「なんだ、これは」

「なんですか、これは」


「めちゃくちゃ凄いじゃないか。手作業が当たり前だったので、こんな発想なかったぜ」

「私もです」


「お気に召していただき光栄です。他のファイルも結合(マージ)が終わっているので、見てみてくださいね」


「「うぉぉぉぉぉぉおおおお」」


結合(マージ)作業にイライラしていた日々は何だったんだ……ソースコードが消された時は、相手に怒りをぶつけることもあった。このツール(アプリ)があれば、そんなことに悩まされずにすむっ!! 画期的じゃぁぁぁぁないか!」


「私も同感です。プログラムで結合(マージ)をやろうなどと、考えたこともありませでした」


「それは良かったです。それでこのツール(アプリ)を社内の運用として、みんなで使っていきませんか?」


「「はい、よろこんで!!」」

 どこかの居酒屋で聞いたようなセリフだな……


 開発環境としては、まだ不満が残るが限られた納期(2週間)でやるにはこのくらいが妥当だろう。

 ちなみにツール(アプリ)は、その日のうちに社内に広まった。

 自分は帰ってしまって、その場に居なかったが、歓喜の声で溢れていたとのことだった。

評価をするにはログインしてください。
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
このエピソードに感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

↑ページトップへ