たとえるなら
料理のレシピです。「玉ねぎをみじん切りにする」「中火で5分炒める」と手順が書かれたレシピのとおりに調理すると料理が完成するように、ソースコードに書かれた手順のとおりにコンピューターが動くと、アプリやWebサイトができあがります。
もう少しくわしく
ソースコードは、プログラミング言語で書かれた指示書の文章そのものを指します。現場では単に「コード」と呼ぶことが多く、「コードを書く」はプログラムを作ること、「コードを読む」は他の人が書いた指示書を理解することを意味します。中身はただのテキストで、専用のソフトがなくても開いて読むこと自体はできます。読めるかどうかは、その言語の文法を知っているかどうかだけの差です。
コードは拡張子つきのテキストファイルとして保存され、機能ごとにフォルダで整理されます。中身は、条件によって処理を分けるところ、同じ処理を繰り返すところ、まとまった処理に名前をつけたところの組み合わせです。小さなアプリでも数千行、大きなサービスでは数百万行にもなり、ひとりで全部を把握することはできません。だから、誰が読んでもわかることが重視されます。
混同しやすいのがプログラムや実行ファイルとの違いです。ソースコードは人間が読み書きする文章で、そのままでは動きません。コンピューターが実行できる形に変換(ビルドやコンパイル)したものが実行ファイルで、こちらは人間には読めません。配るときは実行ファイルだけを渡し、ソースコードは手元に残すのが一般的です。だから市販のソフトの中身は見られず、逆に自社で持っているコードなら中身をいつでも確かめられます。
現場の流れはこうです。変更履歴を記録する道具(Git)でコードを管理し、作業するときは本体から自分用の枝を分けて書きます。書き終えたら他の人に読んでもらい(コードレビュー)、指摘を直してから本体に合流させます。誰が・いつ・どこを・なぜ変えたかが全部残るので、不具合が出たときにさかのぼって原因を探せます。ひとりで直接本体を書き換えることは、まずありません。
落とし穴でいちばん怖いのは、パスワードや接続情報をコードに直接書いてしまうことです。履歴に残り続けるうえ、外部に出てしまったときに取り返しがつきません。次に多いのが、意味を確かめずによく似たコードをコピーして貼る進め方と、使わなくなった処理を消さずにコメントで残し続けること。使わない処理は履歴に残っているので、安心して消してよいものです。
働きはじめたばかりの人は、書くより先に読む練習を積むのが上達の近道です。動いている機能をひとつ選び、画面に出ている文字を手がかりにコードを探して、処理を上から追ってみる。これを繰り返すと書く手も動くようになります。エンジニアではない立場の人は中身を読む必要はありませんが、「コードを直す」が指示書の書き換えだと知っておくと、依頼の会話が通じやすくなります。
ソースコードは会社にとって大切な資産で、著作権の対象にもなります。外部に開発を頼むときは、完成後にソースコードを納めてもらうのかどうかを契約で決めておくことが重要です。受け取っていないと、後から自社で直せなくなります。逆に、誰でも見て使えるように公開されたコードはオープンソースソフトウェアと呼ばれ、いまの開発はその土台の上で成り立っています。
現場での使われ方
「そこの処理、コード見せてもらえますか?」
その機能がどういう指示で動いているのか、直接読んで確認したいという場面のひとことです。仕様書が古いときは、コードのほうが確実な答えになります。
「コードがきれいだから、修正がすぐ終わりました」
指示書が整理されていて読みやすかったので、直す場所がすぐ見つかったという意味です。「きれいなコード」はエンジニアにとって、はっきりした褒め言葉です。
「その修正、どのファイルのコードを触りましたか?」
変更した範囲を確かめる質問です。触った場所が分かれば影響が出そうな機能の見当がつき、どこまで確認し直すべきかを決められます。デグレを防ぐための確認でもあります。
「ソースコードは納品物に含まれますか?」
開発を外部に頼むときの重要な確認です。含まれていなければ、あとから自社や別の会社で直すことができず、同じ会社に頼み続けることになります。契約前に決める話です。
よくある質問
ソースコードとプログラムは同じものですか?
日常会話ではほぼ同じ意味で使われますが、厳密にはソースコードが「人間が書いた指示書の文章」、プログラムが「それをコンピューターが実行できる形にしたもの」を指します。ソースコードはそのままでは動かず、実行できる形に変換する手順が必要で、これをビルドやコンパイルと呼びます。
ソースコードは誰でも見られるのですか?
会社が作ったものは通常、関係者しか見られないように管理されています。一方で、誰でも見て使えるように公開されているコードもあり、これはオープンソースソフトウェアと呼ばれます。どちらの扱いなのかは会社やプロジェクトによって違うので、必ず配属先のルールを確認してください。
「ソース」と「ソースコード」は同じ意味ですか?
同じです。現場では「ソース」「コード」と略して呼ぶのがふつうで、「ソースを見る」「コードを直す」のように使われます。情報の出どころを指す「ソース」と混ざりやすい言葉ですが、話の流れで判断できます。社内で通じている呼び方に合わせるのがいちばん実用的です。
ソースコードが読めるようになるには何をすればいいですか?
全部を理解しようとせず、いま動いている機能ひとつに絞って追うのが近道です。画面に出ている文字でコード内を検索すると、その処理の入口が見つかります。最初から設計を理解しようとせず、読めた範囲を少しずつ広げていくのが結局いちばん速い進み方です。詰まったら、その処理を書いた人に聞くのが速いこともあります。
開発を外注したら、ソースコードはもらえるのですか?
契約の内容によって変わります。納品物に含める取り決めをしていれば受け取れますが、そうでなければ受け取れない場合もあります。受け取っていないと後から自社で直せなくなるため、契約を結ぶ前に、誰が保守を続けるのかと併せて確認しておくべき点です。後から交渉するのは難しくなります。