プログラミング

プログラミング共通

ITエンジニアの仕事で英語が必要な場面

ITエンジニアとして仕事を行っていく上で英語は必要でしょうか?最大限の努力をもって逃げ回れば必要ではないですが、プログラミング言語が英語からできていることを考えると少しは必要です。 ITエンジニアは、ほんの少し英語ができるようになっておくと...
プログラミングLinux

Linux おすすめディストリビューション紹介(2023年)

Linuxのディストリビューションとは何か?2023年現在、主に使用されているディストリビューションを紹介します。 Linuxディストリビューションとは まずLinuxとは何か?最も狭義には、Linuxはカーネルと言われるOSの根幹部分のみ...
プログラミング共通

プロセス間通信の比較 お薦めの3つの方法と避けるべき古い方法

プロセス間通信(interprocess communication, IPCと呼ばれます)は、プロセスとプロセスの間で通信する方法です。古来より様々な方法が考案されてきました。Wikipediaにもたくさん載ってます。 様々な方法の中には...
プログラミング共通

プロセス構造、スレッド構造、モジュール構造 よりよいITエンジニアとしての設計

プロセス構造、スレッド構造、モジュール構造、これらの設計をしっかりできるITエンジニアは多くありません。 設計にも実装にも広範な知識と深い思考力が必要だからです。その勘所を伝えるための記事です。 プロセス、スレッド、モジュール プロセス構造...
プログラミング共通

マルチプロセスとマルチスレッド 使う場面と使い分け

マルチプロセス、マルチスレッドを使うとき マルチプロセスとか、マルチスレッドは難易度が高いです。 以下のように、非同期処理、多重処理、定期処理で使用します。 非同期処理 処理Aと処理Bがあって、二つの処理を別々に処理したいとき非同期処理を用...
プログラミングC++

C++で性能測定(時間測定)する方法 C++11のchronoを使う

性能測定 スループットを測る、つまりある処理の時間を測るのは、プログラムを書いている限りよくあることです。 製品性能が要件を満たしているかを確認する テスト項目に性能があるから 社外で性能がらみの不具合発生 いろいろなところで時間を測ること...
プログラミング

ITエンジニアが知っておくべき不良に強いログ・トレースの出力方法

製品におけるログ・トレースは、ITエンジニア(設計者、開発者)にとって生命線です。 社内のテストのときも有効ですし、社外で不良が出たときも迅速に対処するためにとても必要なことです。 ログ・トレースをどうやって出力すべきかを説明します。C++...
プログラミングC++

ストラウストラップ著【プログラミング言語C++】第4版 C++の聖書か、辞書か、凶器か?

プログラミング言語C++ プログラミング言語C++という本を紹介します。 ストラウストラップが書いた名著(迷著、冥著)です。 C++を愛するプログラマとしては絶対に避けては通れない本で、C++のバイブル(聖書)と呼ばれています。辞書として使...
プログラミング その他

Windows 10 22H2で開発者は生き生きとする winget, WindowsTerminal, WSL

Windowsの22H2アップデートが来ました。普段ならWindowsアップデートについて、何の感想もありませんが、今回は開発者にとって有意義なアップデートです。 Windowsアップデート22H2 ちょっと前にWindowsアップデートが...
プログラミングRust

Rustのメモリ管理 最強の管理方法 所有権、ムーブ、参照、借用

Rustのメモリ管理 C言語のメモリ管理はとても扱いにくいものでした。間違ったプログラマが悪いのかもしれませんが、世界中のエンジニアが徹夜してメモリ関係の不良と向き合ってきました。メモリ関係のバグはプログラミング言語が何とかしてくれよ!!と...