エンジニアの副業は週1からでも可能?副業の例や探し方も解説
- ITエンジニア
- 副業
Webディレクターのみなさん、どんな案件やっていますか?
昨今のWeb制作現場では、システム開発が関わる案件に出くわすことも少なくありません。理系出身のディレクターであればある程度予備知識があると思いますが、文系出身のディレクターには敷居が高く、苦手意識もあるでしょう。
しかし、システムエンジニアとの打ち合わせや指示内容を伝えるための共通言語を覚えておく必要があります。
“最低限”と言いつつボリュームがかなりありますが、焦らずひとつずつ理解していきましょう。
目次
「サーバーサイド」とはその名の通り“サーバー側”です。他には「バックエンド」という言い方もあります。サイトにアクセスしたユーザーが使っている機種などを判別してサイトを出し分けるプログラムだったりサイトの会員管理機能を開発するなど主にユーザーから見えない部分の機能に関してプログラミングなどを実施する対象の総称です。システムエンジニアは大半がサーバーサイドの何かを作ることをしています。
「クライアントサイド」というのは皆さんが使っているパソコンやスマートフォンなど、ユーザーのそれぞれの環境のことを指します。「フロントエンド」とも言います。サーバー側とは違い、ユーザーがHTMLやJavaScriptなど直接目に触れる部分のことを言います。
プロジェクトを実施する前に、実装すべき機能や満たすべき性能を明らかにした要件定義を行います。この要件のうち“実装すべき機能を明文化したもの”を「機能要件」と言います。基本的にはお客さんが挙げてきた要望で現実的に実装可能なものを明記したものになります。
反対に「非機能要件」とは暗黙の了解的な内容になります。お客さんの要望としてあがっては来ないですが、例えば「Webサイトの閲覧がストレス無く表示される読み込み速度か?」「アクセス集中によりサーバーが落ちないか?」など要件では挙げられないまでも、システムエンジニア側とユーザー側の両者で話し合い、求めている要件を詳らかにする要件になります。
ディレクターが作成する「ワイヤーフレーム」や「画面構成図」と似ていますが、システム開発の機能に特化して作られている資料になります。画面遷移情報やクライアントサイドの挙動は載せません。
動的に処理する箇所についてプログラマが判別できるように記載するものです。ディレクターが直接目にすることは少ないかもしれませんが、そういったものも作っているのだと理解しておきましょう。
MySQLなどのデータベースで使用されるテーブル(表)のデータ項目を定義した資料です。エクセルのシートに近いイメージですが、列を「データ項目」、データの種類を「データ型」、データを特定するための「キー」と呼ばれ、記述ルールが決まっています。
単体テストは1つの機能が単体で動くのかを個別にテストしていくことです。結合テストとは単体テストで問題無かった機能を組み合わせて行うテストです。機能が複雑であればそれだけテストにも時間がかかります。余裕を持って実施できるようにスケジュールを考慮しておきましょう。
Webサーバーを構築するにはOS、Webサーバー、データベース、開発プログラムを選別してそれらを組み合わせて構築していきます。その中でも最近主流なのがオープンソース・ソフトウェアのLinux、Apache、MySQL、PHPの組み合わせです。
それぞれオープンソースなので無料で導入でき、カスタマイズ性も高いので人気の組み合わせになっており、これらの頭文字をとってLAMPという組み合わせとして語られることが多いです。他にもデータベースをPostgreSQLに選択した場合のLAPPやWindows Serverを選択した場合にWAMPと言い換えたりします。
Secure Sockets Layerの略で、インターネットなどでセキュリティ通信を行うためのプロトコルのことです。HTTP通信との組み合わせであるHTTPSなどが有名ですが、ファイル転送のFTPやメール送受信におけるSMTP、POP3などでも利用されています。
Virtual Private Networkの略で、離れた場所を仮想の専用線で安全なデータ通信をする仕組みのことです。出張先などで社内ネットワークのフォルダにアクセスできるのはこの仕組みのおかげです。社内では情報システム部門とインフラ部門が詳しいでしょう。
サーバーに情報を送るために、URLの後ろに「?category=hogehoge」などと付ける変数のことです。SEOなどで使用した方いるのでは無いでしょうか。変数自体は任意なので単純な記述なら自由に付けられますが、あとで意味不明にならなようにルールは明確にしておきましょう。
入力フォームのデータをサーバーにリクエストする際の定義です。GETの場合は主にデータを取得したい際やデータベースの書き換えが必要の無い処理の場合に設定します。
POSTは、データベースの情報を追加、更新、削除などで使用したい場合に使用します。ディレクターとしては、入力フォームから何をさせたいかをエンジニアに伝えられれば大丈夫です。
クライアントサイドで動作するスクリプト言語です。サーバーやデータベースに依存することが無く、HTMLソース上からCSSとともに関連付けられて読み込まれるため、基本的にはフロントエンドエンジニアが組み込みを担当します。
ただJavaScriptでどのような挙動ができてそれらを何と呼ぶかは知っておいた方が良いでしょう。アコーディオン、フローティングメニュー、タブ切り替え…などなど。
世界中で広く利用されているプログラム言語のことです。JavaScriptと混同している人もたまにいますがまったく別物です。JAVAはOSに依存せず、様々な環境で動作するため汎用性が高いというのも人気の理由です。
C言語など他の言語の優れた機能を取り入れたプログラム言語のことです。こちらもオープンソースなので幅広く利用されており、CGIなどのサーバーサイドでの動作も得意な言語です。1987年に登場したのでかなり歴史があるので敬意を持って接しましょう。
サーバーの上で動作するスクリプト言語のことです。HTMLとの相性が良いことに加え、データベースと連携した書き込みや読み込みができるため、Webの現場では主流となっている言語です。
バージョンのアップデートがそれなりにあります。セキュリティなどが強化される反面、動作しなくなる機能なども出てくる場合があるので、切り替えによる影響には注意は必要です。
日本人が開発した世界的プログラミング言語です。Rubyは絶妙にバランスのとれた言語で、Web開発の世界ではPHPと比較される場面もあります。どちらもそれほど使い勝手が良いということです。比べるならばPHPはプログラミングがそれほど得意では無くてもとっつきやすい言語、対してRubyは少なからずプログラミングを知っている人に人気のある言語といえるでしょう。
どちらの言語を選択するかは開発担当者に委ねるところですが、判断基準は開発後のメンテナンスが可能かどうかでしょう。Webサイトを作成して納品した先の企業にはRubyの開発者がいなくてメンテナンスできないなどとならないようにしましょう。
正式にはApache HTTP Server(アパッチ エイチティーティーピー サーバ)という名称で、世界中でもっとも多く使われているWebサーバソフトウェアです。LAMPでも触れたようにオープンソースで展開されており、大規模サイトから個人宅のサーバにまで幅広く利用されています。
Web上のテクノロジー情報を提供しているw3techsによると2018年3月時点での利用状況は全世界で47.1%、2番手にはnginx(エンジンエックス)という新しいサーバーソフトが37.4%とじりじりと追い上げてきております。各サービスのシェアなどはディレクターとして知っておいた方がいい情報でしょう。
データベースは読んで字のごとく、データの蓄積された情報のことですが、コンピューターの世界ではデータベース管理システムのソフトを指すことが大半です。データの操作にはSQLというデータの操作を行うためのデータベースへの問い合わせ言語を使います。
古くから有償のデータベースソフトとしては古くからアメリカ企業であるオラクル社の製品であるOracle Databaseがシェアを誇っていたが、近年はLAMPの項目でも触れたオープンソースであるMySQLやPostgreSQLなどが主軸になっています。
集中型バージョン管理システム Subversionを指します。ディレクターやフロントエンドエンジニアの方などはクライアント型のTortoiseSVN(Windows向け)を目にする機会が多いのではないでしょうか。昨今はGitに主役を奪われがちですがその理由として。
複数人数で使用する場合に変更した内容がバッティングしたり、作業者の意思疎通を含めてコントロールしないと管理するのが大変というデメリットがあります。
Gitとはプログラムソースなどの変更履歴を管理する分散型のバージョン管理システムのことです。自分のパソコンなどに全ての変更履歴の複製が作成されるため、どのパソコンからでもソースの管理・変更ができるというものです。SVNと比べると管理メリットが大きいのが特徴です。
GitHubとはGitHub社という会社が運営しているウェブサービスのことです。上記で述べたGitの仕組みを利用して、世界中のエンジニアが自身のプログラムコードやデザインデータなどを公開することができるサービスです。Gitと混同されがちですが、Gitは仕組み、GitHubはそれを利用したウェブサービスと理解しましょう。
Webディレクターというのは守備範囲が広く、運用業務の進行管理する人、新規サイト制作の設計及び進行管理をする人、上流工程の要件定義から携わる人、見積もり作成や金額交渉など営業的な役割を求められる人、など企業や業種によって求められるディレクター像は変わってきます。
そんな中でやはり、システム開発系の案件ができるようになっておいたほうがディレクターとしてさらに幅は広がります。プログラムを組める必要はありません。ただ、言葉の意味や概念、理屈などは押さえておきましょう。
こちらもおすすめ!↓
2024年 東京都内の優良プログラミングスクール20選
Workship MAGAZINE