2023年3月30日

SE一年目の現場開発知識メモ


Content
はじめまして。はるまきです。
22年度新卒入社の新人で、今回が初めての記事投稿です!

7月から現場配属となり、SEとしての仕事が始まりました。
最初は当然ながら、聞く単語は知らないものばかり。
ついていけるのだろうかと戦々恐々としていました。

そこで、少しでも早く知識を吸収できるよう、言語やフレームワークなど、
私の現場で使われる開発技術について、シートにまとめてみました。

こんなの

今回はその中で特に重要なキーワードや、学んだことについて共有していきたいと思います!

はじめに

このシートを作成して強く感じたのは、
一口に開発知識といっても、その種類は様々であること。

プログラミングの勉強を始めた!というタイミングでは、
まず「プログラミング言語」というジャンルが大きく目につきますが、
現場の仕事はプログラムの基本仕様だけでは成り立ちません。

ソースを書くためのエディタや、機能を動かす環境であるOSの知識なども必要です。
とにかく、例を挙げるとキリがありません!

そこでこの記事では、新人の私の視点で、
「わかりづらいけど重要なこと」をまとめていきます。

私自身の備忘録としてはもちろん、初学者の方の一助になれば幸いです。

ライブラリとフレームワーク

「わかりづらいけど重要なこと」として、まず私が挙げたいのが、
「ライブラリ」 と「フレームワーク」 です。

これらはどちらも、プログラミングを楽にしてくれるツールなのですが、
両者には少し違いがあります。

 

「ライブラリ」は、実装を簡単にする関数などがつまった道具箱のようなものです。
用途に合わせてライブラリを適用することで、自分で面倒な実装をしなくてよくなります。

料理で例えると、カット野菜、カレールー、鍋スープなど、一部の工程を楽にしてくれるものがライブラリでしょうか。
野菜を切る手間やスープ作りなどの工程を省略し、比較的簡単に料理を完成させられ、時間も短縮できるでしょう。

ちょうど現在私が勉強している「jQuery」は、JavaScriptという言語のライブラリです。
・DOM(Document Object Model の略。 HTML や XML 文書を取り扱うための API。)
・Ajax(Asynchronous JavaScript + XMLの略。JavaScriptとXMLで非同期にサーバとの通信を行うこと。)
と呼ばれる処理をはじめ、様々な記述を簡単にしてくれます。
最近は脱jQueryの動きなんていうものもあるらしいですが、それはまた別のお話。

 

対して「フレームワーク」は、ライブラリのような関数群に加え、機能開発のためのテンプレートを備えたものです。
フレームワークに従えば、そのフレームワークが示す機能を簡単に実装できます。

フレームワークは料理の例えでいえば、インスタント食品でしょう。
(料理なのかという話はいったん置いておきます)
インスタント食品は、既に料理の「型」がある程度完成しているため、
少し手を加えるだけで完成までこぎつけることができます。
しかし、ラーメン、カレーなどの「型」がきまっているという事は、
その料理を作りたい、という目的以外には適しませんね。

私の現場で用いられている「Django」は、Pythonという言語のWebアプリケーションフレームワークです。
Djangoを用いることで、少ないコードで「Webアプリケーションを」作ることができます。
InstagramやPinterest、Mozilla、National Geographicなどのよく知られたWebアプリでも使われています。
ただ、フレームワークについてはライブラリのように一部の関数のみを使う、ということがあまりなく、
全体を把握する必要があるという点で、学習コストが高い傾向にあるかもしれません。

このように、フレームワークとライブラリはそれぞれ、実装作業を助けてくれるものです。
これらなしにプログラミングをすることは、原料をすべて一から調理するようなものですね。
カレーなどをスパイスの調合から始めると考えると、とても大変そうですね。
自信や経験がなければ難しいことでしょう。

git -ステージングエリア、コミット

エンジニアとして必須の知識の一つ、「git」も個人的つまづきポイントです。

gitは、バージョン管理システムと呼ばれるもので、開発を段階的に実装するうえで欠かせないものです。
ソースコードを編集してアップデートしたり、逆に少し前の状態に戻したりすることが可能です。

複数人で一つの機能実装をするときにも重要です。
gitで自分のコードを公開したり、他の人の編集を自分の環境に取り込んだりしながら、
チームで開発を進めていくわけです。

gitの基本については、星の数ほどのページがあるでしょうが、
この記事では私の頭を整理する目的で、「add」「commit」「push」のコマンドについて書いていきます。

git環境で開発を始めて、ある程度コードを編集したら、ローカルリポジトリ(自分のPC内、編集履歴を管理する場所)から
リモートリポジトリ(ネット上、皆で扱うコードの大元)に変更を適用する必要があります。
そこで使うコマンドが

・add
・commit
・push

です。
実行する順番はこの通りなのですが、わかりやすくするために最後の「push」から説明します。

pushコマンドは、ローカルリポジトリの変更内容をリモートリポジトリにアップロード(押し出す)します。
pushされると、他の人がリモートリポジトリ上で変更を確認できたり、その人のローカルリポジトリにpull(pushの逆、ダウンロード)できるようになります。

commitコマンドは、pushする内容をローカルリポジトリに更新します。
ここでの変更内容自体も「コミット」と呼ばれます。
コミットには名前が付けられ、pushされると他の人からも内容が確認できます。
ある程度まとまった変更ができたら、commitコマンドを使ってローカルリポジトリに、
リモートリポジトリへpushするための弾丸を込めるわけです。

addコマンドは、作業ディレクトリとローカルリポジトリをつなぐ「ステージングエリア」に変更したファイルを登録します。
編集したファイルのうち、コミットに含めたいファイルだけをステージングエリアに登録していきます。
ステージングエリアに登録する作業がないと、作業途中やお試しのコードなど、
コミットしたくないファイルも問答無用で更新されてしまいます。
リモートリポジトリに届けたいものだけを選んで、薬莢の中につめていくわけですね。

・addコマンドで薬莢(ステージングエリア)に火薬(登録したいファイル)をつめ、

・commitコマンドで薬莢から弾丸(コミット)を作り弾倉(ローカルリポジトリ)に装填、

・pushコマンドでターゲット(リモートリポジトリ)に発射(push)!

正確ではありませんが、add~pushの流れをイメージするためにこう考えてみました。

まとめ

というわけで今回は、一年目の新人SEの目線から、
IT初学者が勉強の中で気を付けるべきポイントを紹介いたしました。

こうして自分にとって分かりづらかったことをまとめたり、アウトプットしてみると、
自分の中での理解をより助けるな、と実感しました。

もしこの記事を読んでいるIT初心者の方がいれば、ぜひ自分がつまづいたタイミングで、
筆を執って、考えを書きおこしてみていただきたいです。
この記事で紹介したことは、広大なIT知識の海のごくごくごくごく一部にすぎません。
ぜひ一人ひとりで知識をたくわえ、それを共有することで、学びの輪を広げていきたいものです。

はじめての記事作成でつたないところもあったと思いますが、
楽しい気持ちをもって作業することができました。
今後もこうして共有できる機会があればと思います。

ありがとうございました!

 

2023年3月30日 SE一年目の現場開発知識メモ

Category 開発ブログ(技術ブログ)

ご意見・ご相談・料金のお見積もりなど、
お気軽にお問い合わせください。

お問い合わせはこちら