質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

CI(継続的インテグレーション)

CI(継続的インテグレーション)は、アプリ開発においてビルドとテストを繰り返すことで品質改善と納期短縮を図る手法です。JenkinsやTravis CIなどの専用ツールを利用してプロセスを自動化・半自動化して効率的に実施します。

Q&A

解決済

1回答

2523閲覧

ビルドとは具体的にどういう意味でしょうか?

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

CI(継続的インテグレーション)

CI(継続的インテグレーション)は、アプリ開発においてビルドとテストを繰り返すことで品質改善と納期短縮を図る手法です。JenkinsやTravis CIなどの専用ツールを利用してプロセスを自動化・半自動化して効率的に実施します。

1グッド

4クリップ

投稿2017/06/24 14:12

前から気になっていた素朴な疑問なのですが、ビルドというのはどういう意味なのでしょうか?

特に以下の引用にあるような文脈におけるビルドという言葉の意味がいまいち何を指しているかわかりません。(サーバーサイドでビルドとは?)

クライアントサイドですと、最近ではwebpackでモジュール化されたJSファイルをひとまとめにすることをビルドするのように使われていたりして、これは理解出来るのですが、サーバーサイドでビルドって具体的にどんな行為を指すのでしょうか?

引用

CIツールでは「特定のイベントをトリガーにしてあらかじめ指定しておいた処理を実行する」という機能が提供される。トリガーとして利用できるイベントはツールによって異なるが、たとえば毎日特定の時間にビルドを実行したり、バージョン管理ツールへのコミットをトリガーにしてビルドを実行する、といったことが可能だ。もちろん、手動でビルドを実行させることもできる。
http://knowledge.sakura.ad.jp/knowledge/5293/

shunsukekato👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

コンパイルという言葉は分かりますか?
要するに人間が理解できるプログラムコードを機械語の実行ファイルに変換するという作業(それを実行するプログラムのことをコンパイラという)です。

その上で、こちらのリンクを参照されるのが分かりやすいでしょう。

最近のプログラム開発では、一から全て開発するのではなくてある程度出来合いのプログラム(ライブラリ等と呼ばれることが多い)を利用して開発を進めることが多いですね。
そういったライブラリは、自分自身でプログラムコードをコンパイルするのではなく、どこかから提供されたものであることが多いでしょう。(自分でライブラリを作ることもありますが)
その場合、自分自身で書いたソースコードと、出来合いのコンパイル済みプログラムであるライブラリを上手く関連付けて最終的な実行ファイルとするように変換をかけます。つまりコンパイル+関連付け、という作業を行っているわけですが、そういう作業のことをさしてビルドという言葉が使われています。

「サーバーサイドでビルド」というのは、多少難しい考え方になります。
やっていることはクライアントでやっていることと変わりませんが、なぜわざわざ「サーバーサイドでビルド」という表現になっているかというところが説明が必要なポイントかと思います。

通常(ここで言う通常というのも難しいのですが)は、サーバー内ではプログラムのビルドはしません。しない文化が常識の時代が長かった、という言い方のほうが正しいかもしれません。
色々と背景はあるのですが、例えば開発用に専用のソフトを買う必要があり、そのライセンスの関係でサーバー内で開発を行うことはできないルールにしているなどの理由があるかと思います。総じて、「サーバーでプログラム開発(コンパイルやビルド)をするメリットが特にない」からということになります。
そういう環境化では、基本的には開発環境と呼ばれる別の端末等においてプログラムをビルドし、サーバーにコピーして動作させる、という文化が通常でした。

ただし今は色々な環境変化により、例えばGitHubなどへのmasterブランチへのコミットをトリガーとして、自動的にサーバー内でビルド(コンパイル)~運用系へのプログラムの配置~本番運用開始・・・といったことを自動化することによって享受できるメリットが大きいようになってきました。
そういった、「開発環境でいったんビルドする」ということが不要だ、というような意味をこめての「サーバーサイドでビルド」という表現になっていると思います。そこにどれだけの意味やメリットがあるかというのは、上記のような背景を知っていないとなかなか把握できないと思います。

ちなみにリンク先で紹介されているJenkinsとは、上記のような作業の自動化を支援してくれるツールです。

投稿2017/06/24 14:38

編集2017/06/24 14:43
akabee

総合スコア1947

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/06/24 21:05 編集

ご回答ありがとうございます。サーバーサイドのビルドというのは、やること自体はローカルマシーンの開発環境で行ってるようなビルドと同じということなのですね! 例えば、githubのリポジトリにはJSにコンパイルしていない元のtypescriptのtsファイルをpushしといて、githubリポジトリとjenkinsを連携させて、jenkinsの方でtypescriptを普段、ローカルマシーンの開発環境で行なっているようなJSへのコンパイル、分割されたJSファイルの統合、圧縮などを自動で行い、本番環境で公開出来る状態にサーバー上でビルドするという訳ですね。(さらには、jenkinsで自動的にテスト→パス→ディプロイも可) サーバーサイドでビルドって、何をすることなのだろうと疑問でしたが、クリアになりました!ありがとうございます!
akabee

2017/06/25 03:34 編集

はい、非常に正確に理解されていると思います。(色々と私よりお詳しそうです) ポイントは、ビルドするためには長い間制約が多かった、という背景ですね。 typescriptのビルドにお金はかかりませんが、ある言語をビルドするためにはお金(ライセンス)がかかる、という時代が長かったんです。そうすると、サーバひとつひとつにライセンスを買ってるわけにはいかず、開発者のクライアント台数分だけにライセンスを買うことになります。 ビルド自体にはお金はかからなくても、ガチガチに環境構築をしたビルド専用環境でないとビルドができない、サーバにいちいちそういうセットアップはしていられない、というようなケースも多かったです。 そうするとサーバでビルドするなんて発想自体になかなかたどり着きません。 でも今は、ライセンスなんか買わなくてもいくらでもビルドできる言語ばかりですし、ビルド用の環境構築も非常に手軽にできるようになりました。 そうするとビルドやデプロイまで自動化すればよい、という発想になることも必然ですね。 自由度が高い、いい時代になりました。
退会済みユーザー

退会済みユーザー

2017/06/25 03:26

なるほど。そういった経緯があったのですね!自由度が上がったのは嬉しいことですが出来ることが沢山増えた分、覚えることも増えて大変ですね。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問