私が2019年に取り組んだ技術活動


あいさつ

今年もQiita各記事には大変お世話になりました。
ここに今年取り組んだ技術活動の記録を残させていただきます。
※自分用メモであること、ご了承のうえ、
 お読みいただければ幸いです

1. vscodeの導入

私が活動させていただいているプロジェクトではサーバ開発に知見のある方があまりおらず、サーバにLANが繋がるだけのまっさらなWindowsを渡されるケースが多いです。
それもあり、TeraTermを使用してサーバ上のソースをvimで直接編集し、開発・テストとなるケースがほとんどです。

Qiita様に投稿されているWeb開発等の記事から刺激を受け、まずはエディタから変えてみようと適用したのがvscodeです。

結果としてvimプロフェッショナルでなくてもパフォーマンスを期待できるようになり、作業支援で投入されたメンバーにも喜ばれる結果となりました。
私自身としても昨年から適用しだしたソース管理:Gitとの相性もよく、管理面でも満足したパフォーマンスを出せています。
vimを使わなくなることはないですが、普段使いとしては完全にvscodeがなくてはならない状態になりました。
※こちらの記事を投稿させていただいています。
Visual Studio CodeをオフラインPCで使用する
Windowsで開発に使用するツールをまとめました

2.ブランチ運用

ソース規模が大きく、複数人同時開発でありながら基本的にGitではdevelopブランチのみで運用してました。
そうなると、大小様々なコミットがあり、煩雑化していたのでfeatureブランチを使いトピック毎にプッシュしてもらうように運用を調整しました。
これによりチェックした後でdevelopへ統合する事ができ、コミットも整理されるようになりました。
オンプレミス環境ですがGitHubでの開発に近く出来たと思っています。

3. 挑戦しきれなかったユニットテスト

私のプロジェクトにはまだ、xUnitが運用されておらず、また成果物で改修部のみのテスト仕様書が必要です。
作業に追われてと言い訳がましいですが適用できませんでした。
つまずいた点も超序盤ですが
・cmakeのインストールは可能
・makefileからCMakeLists.txtへの変更はタイミングを取れず未挑戦
・Google Testのインストールに失敗
ここで挫折。
この記事書いて、一番取り組むべき課題点であることが再認識できました。

4. JavaDoc

xUnitが動かせないなら責めてソースからテスト仕様書作らないかしらと、Doxygenに出会いました。ここからコメントは全てJavaDoc形式にしたいと舵を切りました。

5. 書籍「リーダブルコード」「レガシーコードからの脱却」との出会い

リーダブルコードはWeb記事で非常に良く拝見していたので一度読んでみたかった本です。
レガシーコードからの脱却を友人から勧めを受けて合わせて購入しましたが、とても良い本達でした。
リーダブルコードにて当たり前の記載もどうすればよくなるか見直せましたし、
レガシーコードからの脱却では、まさにアンチパターンに属していることを再認識できました。
プラクティス!
挑戦しきれなかったユニットテストが再挑戦するべきとここでも再認識しつつ、現在C言語である事からどのように構成すれば良いかを考えるようになりました。

6. デザインパターンとC言語でのクラス表現

煩雑としたプロジェクトソース構成を整理したいと思い、最初に考えたのはクラス化でした。
※以下ページを参照しました。
デザインパターン | TECHSCORE(テックスコア)
C言語で デザインパターンにトライ! デザインパターン一覧

非常にタメになりました。
これからも取り組みます。

7. DDD

ドメイン駆動開発は言葉としては知っていましたが上記の通りテスト駆動もできていなかったので詳しくは調べていませんでした。
しかし、値オブジェクトを理解してからは設計・開発の考え方が大きく変わり、現在適用出来ないかを非常に良く考えています。
軽量DDDなるものが、導入として良いステップになりそうなので、ここからトライしだしています。
軽量DDDではじめるゲーム開発 ドメイン駆動設計の基本と実践を解説

最後に

実環境にユニットテストを適用する事が最優先だと、この記事を書いて改めて認識できました。開発手法や考え方が大きく変わった1年でしたので、私としては良い1年に出来たと思っています。
来年の目標としては
・ユニットテストの導入
・DDDに基づく設計と開発
を中心にすすめていきたいと思っています。
来年にはレガシーコードから脱却だ!