program study story

プログラムの勉強 アウトプット

サーバーサイドエンジニア メモ

サーバーサイドエンジニアとは
サーバーサイドの処理を実装するエンジニア
代表的な処理。
ECサイトにおける商品の検索、新規データの登録、
更新などがあります。
・プログラミングスキル
 インタプリタ型言語
Ruby,PHP,PythonはWebアプリケーション開発で利用され、
Python機械学習やデータ分析などで多く利用される。

・開発フレームワークの知識とスキル
Ruby・・Ruby on Rails
PHP・・Laravel
Java・・Spring
・データベースの知識とスキル
 MySQL・・オープンソースのデータベースでRubyPHPなどのWeb開発で多様
OracleSQL server・・商用データベースで、業務システムによく利用される
・フロントエンドの開発スキル
 HTMLやCSSJavaScriptを使ってユーザーが使うWeb画面を作るスキル
HTML・・Web画面の骨組みを作る言語
CSS・・HTMLで作成した骨組みに対してデザインを適用する言語。
JavaScript・・ユーザー登録画面などで登録ボタンを押した時の入力漏れチェック
など、動的な処理を実装するための言語。
・サーバー、ミドルウェアの知識とスキル
 多くのシステムやアプリケーションはWebサーバー上で稼働しています。
つまり、サーバー環境を作らないと、これらを動かすことができません。
代表的なWebサーバー
Apache
Apache・・オープンソースのソフトウェアで、多くのWebアプリケーションで使用されている
Apacheに代わるソフトウェアとして、近年シェアを伸ばしているのがNginx
・開発環境(OSと仮想環境)の知識スキル
 これらは開発環境を構築する際や、プログラムをリリースする際に必要になる。
開発環境でよく使用されるOSはLinux
特にRubyPHPを使ったWeb開発はほぼLinuxといっても過言ではない。
 開発環境は、
1.PC上にLinuxの仮想環境を作る
2.Linuxコマンドを使って仮想環境の中にRubyなどをインストールして作成
仮想環境を作るには、仮想化サービスを使う。
代表的なものには、VirtualBoxやDockerといったものがある。
・Web関連の技術の知識
 代表的な技術に、
HTTPなどの通信プロトコル、クッキー、キャッシュなどがあります。
サーバーは、HTTPという通信プロトコルを利用して、
PCやスマートフォンといったクライアント端末と通信を行う。
HTTPは、インターネット上でテキストや、画像、動画などを転送しており、
Webの基盤となっている技術。
 クッキーはぱうわーどなどユーザー情報を一時的に保存する仕組みのことで
ユーザーのログイン状態を保つといった用途で使用されます。
キャッシュはWebページの情報を保存し、ユーザーが再度ページを訪れた際に
より早くページを表示することを可能にする。

IoTやAIを使った開発を行う場合は、異なるスキルと知識が必要。
技術の移り変わりが激しいため、どの技術が主流となるかを見極める洞察力や、
柔軟にスキルセットを変更できる臨機応変さも重要となるでしょう。常に最新の
技術動向を押さえながら、スキルを身につけていきましょう
オープンソースとは
公開(open)されたソースコード(source)のこと。
オープンソース使用例
・ソフトウェアのコストを抑えたいとき
 プログラムを無料で利用することができる。ソフトウェアの中には
高額なライセンス費用がかかることがある。
オープンソースのソフトウェアなら無料なので、コストを抑えることが出来る。
・手軽に自社向けのソフトウェアを開発したいとき
一から自社用にソフトウェアを開発するには大変な手間がかかります。
あらかじめ出来上がっているオープンソースを利用すればその手間を減らすことが可能。
ソフトウェア・・・パソコンを動かすためのプログラムの総称。
オープンソース
メリット:
・自由にカスタマイズが可能
・自分で問題の発見や解決ができる
・開発元の倒産などで使えなくなることはない
デメリット:
・マニュアルがまとめられていないことがある
・開発元にバグ修正の責任はない
・開発元のサポートが受けられない場合が多い