Mogic社内で実践しているトレーニングを紹介

教育コラム

【エンジニア連載】プログラミング

2025.04.15

インターン生、新卒に向けてエンジニアの仕事や考えを紹介する連載です。
今回は「プログラミング」についてです。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
<まとめ>
・良いコードは「誰にでも理解できるコード」
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

■ プログラミング言語
プログラミング言語はシステムを構築する手段です。目的に応じて選択します。

言語ごとに強みと弱みが異なります。構築アプローチが異なり、許可しないこと(= 制約)が異なります。制約により不適切な実装を防ぐことができます。

システムの要求に合わせて複数の言語を組み合わせることもあります。大部分は可読性が高い言語で実装し、パフォーマンスが必要な箇所だけ別の言語で実装するなどです。プログラミング言語の特性を理解して、適切に用いることが大切です。言語構造に沿わない機能はパフォーマンスが良くないので注意しましょう。

■ 良いコード
= 誰にでも理解できるコードです。シンプルなコードを目指します。

・読むのに時間がかからず、保守が容易です。
・機械も処理しやすくパフォーマンスにつながります。
・コメントもしっかり入れます。

■ エレガントなコード
エレガントなコードは長い期間、第一線で活躍します。探求してみましょう。

■ 低レイヤ
プログラミング言語は最終的にマシン上で動く制約があります。基本となる構造も共通します。そのためプログラミング言語同士には共通点が多いです。「何をどう抽象化しているのか」という点が異なります。低いレイヤから言語を見ることで、言語を正しく評価する眼を持つことができます。

■ フレームワーク
プログラミング言語の高レイヤにフレームワークが存在します。フレームワークも手段です。プログラミング言語と同様に強みと弱み、指向がそれぞれ異なります。

フレームワークを用いると開発が簡略化されます。ただ、個別の目的ごとに最適化しにくい、アップデートやセキュリティ面で影響を受けるデメリットがあります。そのためMogicではフレームワークは内製しています。社内ツールを内製するのも似た考えからです。既存のものからエッセンスを抽出することを心がけています。