プログラミング言語の変化

こんにちはmtjです

プログラミングは基本勉強し続けていくものというのは大体のプログラマが思っている事だと思います。

自分のメインとしているC#も2012年頃と比べるとかなり書き方が違います。(バージョンでいうと5.0から8.0or9.0)

しかし、.Netの互換性等もあり最新のOS向けのプログラムは最新Verで作らないといけないわけではないので
10年前のC#でも現代で動かすことが可能です。
勉強をやめてしまっている人でもプログラムを書くことは可能ですが古い書き方になってしまい
最新の書き方で書かれているものならば理解自体が難しくなってしまうと思います。

言語が進化していれば自ずと勉強していくものですが 言語自体が古く進化がない言語だと勉強が止まってしまうので
その場合はかなり努力が必要だと思います。

そういう意味でも若い人がCobol、VB6等を頑張って保守するのでなく現在の流行りの言語を行わせ
年配者が古い言語を保守すべきなのではないかと感じました。
古い言語を勉強すること自体は幅も広がり悪いことでは無いと思いますが 古い言語を専門にしては先細りの分野なので
将来性が薄いと感じてしまいます。

リファクタリング

既存のソースコードに新しい機能や変更を加えようとするとき、
まず既存のコードをリファクタリングします。
そして切り出したり共通化したクラスやインターフェースなどを、
ソリューションやプロジェクト内のどこに記入するべきか考える必要があります。

全体の設計思想や、選択したフレームワークによって、
適切な場所があるはずですが、なかなか上手く収まらない事もあります。

そのような場合は、自分が全体の設計思想に対する理解が足りていないか、
ソリューションやプロジェクトが上手く構成できていない事がうかがえます。

リファクタリングは基本的には必要な時に行いますが、
例えばテストファースト開発のように、
開発サイクルの中で常時行う方法もあります。

年末の大掃除と同じように、まとめて後でやろうとすると大変です。
普段から少しずつ行っていればリスクも少なく、
ソリューションやプロジェクトの構成もより明確になってゆくものだと思います。

リファクタリングであまり悩むことが無いよう、
安心して開発できる環境を目指したいと思います。

HTMLからPDFに変換

あるC#案件でHTMLからPDFファイルに変換する必要があった時の話。

C#で使用できるPDFライブラリを探し、PdfSharpにたどり着きました。
少し面倒だが日本語フォントにも対応できます。
しかし、PDFドキュメントの作成方法がGraphicsオブジェクト並のローレベルな描画メソッドなので、HTMLから変換するのは手間がかかりすぎ。

次に見つけたのが、HtmlRenderer.PdfSharp。
これは今回したいHTMLからPDFをそのまま実現できるライブラリ。ありがたい。
ですが、日本語フォントの出力方法が不明。
内部的にPdfSharpを使用しているが、バージョンが古いため日本語フォントを使用する方法が異なり、方法がわからない。

他に良いライブラリも無く、どうしたものかと思っていたが、別に変換が出来れば方法は何でも良いので、
コマンドラインでHTMLからPDFに変換できるソフトを探し、wkhtmltopdfを見つけました。
日本語フォントにも対応でき、正しくPDFに変換できました。

実装がC#なので、C#から使用できるライブラリを探しましたが、こだわる必要が有りませんでした。