今回は開発と関して重要な基本知識を勉強しようと思う。
今週の日曜日からまたswiftの勉強を続けるつもり、、、
##1.デバッグ、デバッグ
デバッグとはソフトウェアから発生する問題の原因を探して解決する過程を言う。
実際にコーディングを行う時間の相当部分をデバッグに割り当てることになる。
##2.コンパイル
コーディングの過程で使われるプログラミング言語は、人が調べ、作成しやすいように作られた言語である。
コンピュータは0と1の信号だけを認識するため、作成したコード自体をコンピュータが理解することはできない。
それで、コードをコンピュータが理解できる言語に翻訳することをコンパイルという。
それでコンパイル作業が要求される言語をコンパイラ言語といい、その例としてC、C++、Javaなどがある。
コンピューターはコンパイルされた言語を読むだけなのでコンパイラ言語は実行速度が速い代わりにコードを作成するたびに
コンパイル作業をしなければならない不便がある。
コンパイル言語は、用途に応じて0と1で構成された機械語だけでなく、
プログラミング言語と機械語の中間段階の様々な形態で翻訳することもある。
##3.インタープリター
コンパイル言語とは異なり、パイソン、ルビー、JavaScript、HTML、SQLなどの言語は翻訳作業を前もって行わずに
実行するたびに「インタープリター」というプログラムはコンピュータにコードを機械語に翻訳する言語である。
コンパイル過程が必要ないため、コードの修正が多い製品の場合は配布が楽ですが、実行速度は
コンパイラ言語に比べて遅く、プログラマーが組んだコードがそのまま露出され得るという短所がある。
参考までにインタプリタ言語でコンパイルされる場合がある。
タイプスクリプトという言語で、JavaScriptにより多様で強力な機能を組み込んだ言語である。
プログラマがタイプスクリプトでコードを構成しても
実行環境はJavaScriptなので、そのコードが読めないため、
JavaScriptと訳すコンパイル過程が必要になる。
参考までに、C言語はインタプリタ方式であって、インタプリタ言語ではない(上から順に実行する方式を意味するだけ)。
##4.ビルド
プログラムコードは1つのファイルではなく、数百以上のファイルをまたいで作成されますが、
完成し配布するには、特定の形態に圧縮したり変更しなければならない。
こうした過程をビルドという。
コンパイラ言語は当然ビルドにコンパイル過程が含まれる。
ビルドはコードを集めて1つの実行ファイルを作ったり、コードファイルの大きさを小さくしてより少ない容量のファイルにしたり、
他人が容易に読めないように難読化することもある。
##5.配布
プログラマーがコーディングを完成してビルドを終えた後、ソフトウェアをユーザが使うように配布する過程を言う。
ウェブサイトの場合には、作業結果をユーザが接続してブラウザで閲覧できるように反映する作業をいう。
##6. 環境変数
環境変数とはソフトウェアが回る環境毎に特定変数名に指定された値をいう。
環境変数を使用するソフトウェアは、各自の環境に指定された変数を基準に動作することになる。
各コンピュータの条件や用途に合わせてソフトウェアが回るようにしたり、セキュリティに敏感な情報をコードから切り離すなど、
環境変数も多様な目的と形態で活用される。
##7. ライブラリー
プログラマーがコーディングをする過程で、すべてを手作業で作るわけではない。
信頼できる企業や団体、個人が作成した良質なコードを
ソフトウェアの作成にもたらされ活用する。
このように必要に応じて使用できるように特定の機能をコードとして作成したものをライブラリという。
例えば、Javaには基本的にJavaライブラリーがありますが、
日常的にコーディングをしながらよく使われる関数がすべてライブラリに含まれていると考えればいい。
##8.フレームワーク
フレームワークには、既に特定の形態のソフトウェアが基本的な枠組みとなっており、
その上に、自分のコードを付添うことができるように構成されたものをいう。
構造が複雑で広く使われる形態のソフトウェアの場合、このようなフレームワークが提供され、これを基盤に製品を作るのに
スプリングやジャンゴが代表例である