S-Collection株式会社 システムについて

S-Collection株式会社のシステムサポート事業

Gitつかいこなしていますか?Git、GitHubのつかい方③—利用手順編―

簡単!GitHubを始めるための2ステップ

これまで、GitやGitHubの特色、Gitのインストール方法について紹介してきました。最後に、GitHubの使い方について紹介します。

 

GitHubスタート手順を丁寧に紹介

①アカウント作成

GitHubをつかうには、まずアカウントを作成する必要があります。GitHubのWebサイトにアクセスするとユーザー名、メールアドレス、パスワードを入力する欄が表示されますので、まずはここで登録をします。

 

②リモートリポジトリの作成

GitHubのWebサイトにログインした画面において、右上の+マークを押すと「New Repository」と表示されますので、そちらをクリックします。
リポジトリ作成画面になりますので、リポジトリの名前を入力したうえで画面下方にある「Create repository」ボタンを押します。これで、リポジトリが作成されます。

 

次の画面では、下記のようにコマンドが表示されます。
echo "# リポジトリ名" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/ユーザー名/リポジトリ名.git
git push -u origin master

 

各コマンドの意味は以下のとおりです。
READMEファイルを作成
ローカルリポジトリの作成
READMEをインデックスに登録する
コミットをする
リモートリポジトリの追加
リモートリポジトリに反映(pushする)

 

コマンドを実行すると、GitHubのWebページ上でpushしたREADMEが反映されます。
GitHubではREADME、ライセンス、.gitignore(Gitのトラッキングの対象外設定ファイル)をおくことを推奨しています。

 

上記のコマンドは、READMEの配置するためのコマンドになっており、READMEはGitのチュートリアルの役割にもなります。

 

最後に

GitHubの強みは、ソーシャルコーディングにあります。
プログラムソースコードクラウド上で共有して、他者とコラボレーションしながらプログラム開発できる環境が簡単に用意できるため、多くの人の力を借りてソフトをつくることができます。
GitHubにはSNS機能もあり、問題の共有、新しく書かれたソースコードの構成管理、および情報共有を行うことも可能です。

 

S-Collection株式会社もこのようなツールを活用することで、バージョン管理の徹底を行っています。それによってプロジェクトを正確に進めていき、質の高いシステムサポートを実現しています。

Gitつかいこなしていますか?Git、GitHubのつかい方②—インストール編―

クライアントツールも便利!Gitインストール

前回は、Git、GitHubの特色について紹介しました。今回はGitのインストール方法についてお伝えします。

 

すぐできる!Gitのインストール

Gitのインストールは、GitのWebサイトからインストーラーをダウンロードして行うことができます。

Linuxの場合は、yumやget-aptコマンドが使える環境であれば、コンソールから次のコマンドを入力することでインストールが可能です。
sudo yum install git-all
sudo apt-get install git-all

また、「コンソールには慣れていないのでGUIクライアントを使いたい」というユーザー向けには、SourceTreeというクライアントツールもあります。
使用するOSがWindowsの場合は、tortoiseGitというクライアントツールもサポートされています。

このように、Gitはユーザーがよりインストールして活用しやすいよう、多くの配慮がされています。次回は、このようにGitをインストールした後、実際にGitHubサービスを活用する方法について紹介していきます。

Gitつかいこなしていますか?Git、GitHubのつかい方①—概要編―

バージョン管理システムGit、GitHubの魅力とは?

システム開発をするうえで、バージョン管理システムは欠かせません。
一例をあげると、バージョン管理システムを導入すれば、複数人でソースコードの編集を行う際に、誰が、どんな編集をしたかを管理することができ、さらに以前の状態に戻すことも可能です。
今回は、そんなバージョン管理システムのひとつである、「Git」の使い方と「GitHub」というWebサービスについて紹介します。

 

複数人でも、個人でも!Gitという選択

Gitは、Linuxカーネルの開発のためにつくられたバージョン管理システムで、リリース以降ほかの多くのプロジェクトで採用されております。そのため大きなプロジェクトにも対応できるように、動作速度に重点が置かれてます。
また、Gitは「分散型」のバージョン管理システムのひとつです。
「集中型」のバージョン管理システムにおいてリポジトリ(開発過程が保存されるデータベース)はひとつですが、分散型では、複数人で共有するリモートリポジトリと、個人が作業するローカルリポジトリで構成されています。

Gitは、リモートリポジトリとローカルリポジトリに別れているため、最適なタイミングで同期させることができます。
また、ネットに繋がっていない状態でも、履歴の閲覧をすることが可能です。
特にオープンソースの開発であれば、Gitを選択して間違いないでしょう。

 

これが無料!ユーザーの声に応えるGitHub

Gitには、リモートリポジトリがあると先ほど紹介しました。
ユーザー自身がサーバーを立ち上げ、そこにリモートリポジトリを作成するということも可能です。さらに、基本的に無料でリモートリポジトリが用意され、活用できる、「GitHub」とよばれるWebサービスがあります。

GitHubは、ユーザーの「自作の作品を世に公開したい」、「修正を加えて欲しい」、「お手軽にGitの機能を試したい」の声に応えることができます。

GitHubに公開した作品は、基本的に誰でもみることができます。
インターネットでの公開を避けることも可能で、プライベートリポジトリを月額7ドル(約700円)で作成する有料サービスが用意されています。

実際にGitHubをつかうためには、端末にGitをインストールする必要があります。次回は、Gitのインストール方法について紹介します。

プログラミングをはじめよう②ー開発環境の紹介ー

言語に合った開発環境の種類を知っておこう

前回はプログラミングを行うメリットと言語の種類についてご紹介しました。
今回は開発環境についてご紹介します。

f:id:s-collection_system:20190415124827j:plain

1.開発環境を準備する

プログラミングを行うには開発環境を整えることが必要です。
開発環境とは、開発をするためのさまざまな機能を備えているソフトウェアで、プログラム入力、バグ取りやプログラム公開などを便利にできるようにしてくれます。
各言語によって開発環境が変わりますので、自分が使いやすいものを調べて設定していく必要があります。

以下、いくつか開発環境の例をあげます。

Eclipse((Java, PHPなど)

IBMによって開発された開発環境です。Plugin(プラグイン)と呼ばれる拡張モジュールを追加することにより、さまざまな機能を追加できることが特徴です。Javaの開発で使用されることが多いですが、PHPRubyなどの言語による開発も行うことができます。

Microsoft Visual Studio(C#など)

マイクロソフトが提供する開発ツールです。C#C++Visual Basicなどのさまざまな言語で開発をおこなうことができ、プログラミング初心者や新しい言語の学習に最適な環境です。

③PhpStorm(PHP)

このPhpStormはPHPの開発環境で、有償で提供されています。高機能で、PHPのほかに、Web開発に必要なHTMLやCSSJavaScriptSQLもしっかりサポートしています。30日間のフリートライアルがあるので、気軽に試すことができます。

Aptana Studio(Ruby)

こちらはRuby開発にお勧めですが、PHPやHTML、CSSJavaScriptにも対応しており、Web開発でよく使われる言語をカバーしています。無償で公開されていますので、導入しやすいです。

IntelliJ IDEA(Java)

IntelliJ IDEAはJavaの開発環境です。ほかにも、IntelliJ IDEAはAndroidアプリ公式開発環境の「Android Studio」のベースにもなっており、信頼性の高い開発環境です。幅広いJavaプログラミングを行う方にお勧めです。

 

2.プログラミングの仕様を知る

プログラミングをはじめるにあたって各言語の仕様を知る必要があります。
また、コーディングルール(企業やオープンソースコミュニティやあるいは特定のプロダクトごとに定められた、プログラムのコーディングにあたっての統一的なガイドライン)というものもあり、各言語ごとに標準的なものが決められているため、チェックすることをお勧めします。

しかし、プログラミングを行ううえで大切な要素は、暗記ではなく理解して使えるようになることです。
しっかりと自分が使用する言語のルールを知り、そのルールにしたがってプログラムを記述していく必要があります。

 

3.最後に

今後、情報化社会がより進んでいくにつれ、プログラミングを用いたシステム開発の需要はますます高まっていくでしょう。
それにともない、新しくシステムをつくる人の需要もさらに高まります。

S-Collection株式会社では、そういった技術者の方々とともに、よりよいシステム構築を支援する技術力を提供していきます。

※2019年4月15日更新

プログラミングをはじめよう①ーメリットと言語ー

プログラミングをはじめるうえで知るべきこと

プログラミングに興味があり、いざ動き出そうとしてもなにから取り掛かればいいかわからない方は多くいます。

そこで今回は、プログラミングをはじめるうえで、最低限必要な知識をご紹介します。

 

f:id:s-collection_system:20190415111640p:plain 

1.プログラミングをする2つのメリット!

まず、プログラミングに取り組むメリットを2点ご紹介します。

ノマドワーカーのように仕事ができる!

プログラミングはパソコンさえあれば作業ができます。
そのため、仕事の内容によっては、ノマドワーカーのようにカフェ、オフィスまたは自宅などといった、自分の好きな場所で自分の好きな時間に仕事ができます。

高い問題解決能力が身につく!

日本では、2020年にプログラミングの義務教育化が検討されているほど、社会全体で注目されています。
その理由としては、プログラミングを覚えることで高い問題解決能力が身につくからです。
プログラミングは、情報検索能力やエラー解決能力を身につけていくことへ直結します。

2.200種類以上ある言語から使用する言語を選択!

プログラミング言語は、世界になんと200種類以上もあります。
そのなかから目的に合った言語を選ぶことがプログラミングをするうえでとても大切です。
各言語の特徴や特性をしっかり理解して選びましょう。

ここでは代表的な言語である「コンパイル言語」と「スクリプト言語」の特徴を簡単にご紹介します。

コンパイル言語の特徴

コンパイル言語のように実行前にコンパイルを行うが必要なく、実行する際はコンピュータがソースコードを上から順番にコンパイルと実行をしてくれる言語です。
プログラミングしてから実行までを手間を抑え、容易に行える言語という点が特徴です。
なお、プログラム記述の誤りは、実行中にコンピュータが記述の誤りへ到達したときにエラーが上がります。
代表的な言語は下記の4つです。

JAVA
WebアプリからAndroidアプリまで幅広く使用されていて、いろいろなアプリケーションを作成することができます。また、エミュレータや実機での動作確認を簡単にできることが特徴です。

C++
産業用ロボットや家電製品、OS、OS上で動くソフトウェアによく使われています。C言語に「オブジェクト指向」を追加したもので、より効率よくプログラミングができるようにつくられており、C言語よりさまざまな拡張機能が追加されています。

オブジェクト指向:プログラムを「モノ」の組み立てのように表現して、コンピュータに動作をさせる考え方のこと。

C#
サーバー用のプログラムによく利用されています。また、WEBアプリケーション、WEBサイトなど、幅広く作成できます。企業向けの業務システムで利用されることも多いです。

スクリプト言語の特徴

コンパイルが必要なく、ソースコードを変換せずとも、そのままコンピュータがソースコードを上から順番に理解して実行してくれる言語です。

PHP
PHPはHTMLに埋め込むことができるため、Webアプリ開発でよく使用されるスクリプト言語です。「関数」(値を渡すと決められた処理を実行して結果を返してくれるとても便利なもの)が豊富にあるため、ほかのプログラミング言語と比較して初心者向きです。

JavaScript
PHPと同じく、Webアプリ開発でよく使用されるスクリプト言語です。Webサイトの外観デザイン、使い心地やサイト内の情報表示に至るまで、高機能な画面動作に使われています。

Python
人工知能(AI)やWeb開発など広い分野で使われています。文法のシンプルさと可読性の高さからプログラミング初心者にもわかりやすく、学びやすい言語といわれています。

Ruby
簡単なWebサービスから大規模なものまで開発ができます。たとえばTwitterクックパッドなどの業務システムで運用されています。手早く作成でき、すぐ動かせるので、バグ対応やコーディングのサイクルの速さが特徴です。

このように、それぞれの言語で特徴が異なります。そのため、使用する言語はしっかり特徴を理解して、作成するものに対して最適なものを選ぶ必要があります。

次回は、開発をするためのさまざまな機能を備えているソフトウェア、「開発環境」についてご紹介します。

※2019年4月15日更新

IoTとは何か?

リアルタイムでデータ収集できる最新技術とは!?

IoT(Internet of Things)とは、私たちの生活にあるさまざまなものがインターネットに接続することで、制御できたり、情報取得できたりする仕組みです。
例えば、牧畜、家電、自動車、スマートフォンなどの状態をインターネットを通じて逐次データ収集し、まとめることで、それらの状況をリアルタイムで把握することができます。
これにより、さらに最適な稼働状態を実現することが可能となってきました。
この背景にはコンピュータの発展や通信技術の確立があり、なかでも重要なブレイクスルーの要因となったのは、LPWA(Low Power Wide Area)と呼ばれる通信技術の進歩です。
LPWAネットワークは言葉通り、低い電力で広域に通信するための技術です。
この通信技術は、BluetoothLTEのような高速な通信が出来ませんが、システムの省電力性や電波の広域性、価格的に安価な性能を持ったものです。この特性はIoTとの相性が非常によく、多くの産業に応用できるようになった要因の一つです 。
実際にこの通信技術が活躍しているシステムの例をいくつかあげていきます。

 

・自動車事故自動通報システム(Automatic Collision Notification)

これは自動車が何かの原因でエアバックが作動した際に、この情報を管理センターまで送るための仕組みです。
この「エアバックが作動した」という情報を報告するためには高速なデータ通信は必要なく、省電力かつどこからでも通信が行われることの方が重要になってきています。

 

・トイレや農作物/牧畜の遠隔監視システム

トイレの空き状況をネットワーク上に公開することで、稼働状況を見える化できます。
また、農業分野では、作物の発育や家畜の放牧中の所在をすぐに把握することができるようになりました。
これらのシステムには、電波の送信機が安価であることが求められます。
IoTによって、今までは自分が足を動かしていたり、誰かが報告するのを待っていたりしたところから、自動的にインターネットを通じて情報が蓄積されるようになってきました。
こうした情報をいかに効率的に活用できるようになるかが、事業の拡張において、大きな差を生み出していきます。

 

S-Collection株式会社はイベント事業を始め、Webチケットの関連事業に携わっています。
これらにIoT技術を導入することによって、いち早く動員状況やイベント進行を確認したり、物販販売コーナーでスマートフォンとWebチケットを用いたりすることで、販売した客層を集計することができるようになります。
S-Collection株式会社もよりよいサービスを展開していくために、最新技術を積極的に取り入れていきます。

 

アジャイル開発とは~②内容・成功事例~

早いシステム開発を実現!アジャイル開発手法の魅力

前回はアジャイル開発手法が生まれた時代背景についてお伝えしました。今回は、アジャイル開発手法が誕生する以前に主流であったウォーターフォール開発手法と比較しながら、内容とメリットを説明します。


ウォーターフォール開発手法とは

かつてのソフトウェア開発手法の主流は「ウォーターフォール開発手法」でした。この手法は名前が示すとおり「滝(ウォーターフォール/waterfall)」のように、プロジェクトが上流(企画段階)から下流(案件定義、設計、実装、テスト)へ流れるように進行していくものです。この手法の課題としては、下流へいってから、問題や仕様変更があった際、上流へ戻って変更を加えることが難しく、変化への対応に課題があります。


アジャイル開発手法とは 

上流から下流への一定方向で進めるウォーターフォール開発手法と異なり「アジャイル開発手法」では「設計、実装、テスト」の小単位での開発を繰り返していきます。その繰り返しのなかで完成度を徐々に高めていきます。この手法は、ウォーターフォール開発手法のように役割別(システム設計者、プログラマーやテスターなど)にチームを編成するのではなく、関係者全員が一丸となって動く必要があります。


それぞれのメリット

ウォーターフォール開発手法は、それぞれの担当者が計画通りに作業を行うことで、プロジェクトは進行していきます。そのため、アジャイル開発手法ほど、こまめで綿密なコミュニケーションは必要とされません。
アジャイル開発手法は、プロジェクトの進行途中で当初よりよいものがあれば、そちらに舵を切って進んでいく柔軟さがあります。また、プロジェクトチームが一致団結して、小単位の開発を繰り返すため、早い段階である程度のプロダクトを見ることができ、関係者間で見解の違いがあった際などは、早い段階で気づくことができ、修正にかける工数を減らすことができます。


アジャイル開発の成功事例

アジャイル開発手法の成功事例を紹介します。連邦捜査局(FBI)にて、3万人以上のFBI捜査官・アナリスト・管理職が利用する巨大システムの開発にアジャイル開発手法が用いられ、成功した事例があります。(引用元:公共部門におけるアジャイル導入: FBIとロッテルダム港の事例
このプロジェクトは、採用されたウォーターフォール開発手法で、当初5年間、約500億円を費やしても完遂できない状況でした。
そこで、アジャイル開発のマネジメント経験のあるCIOとCTOを採用し、アジャイル開発手法に切り替えた結果、修正にかける工数を減らすことができ、たったの1年で、費用は約36億円でプロジェクトは完遂することができました。


最後に

この記事では、アジャイル開発手法を採用するメリットを説明してきました。
S-Collection株式会社では、アジャイル開発手法によって、お客さまと密なコミュニケーションを取りながら要望に合わせたシステムを短期で作り上げ、事業を支えていきます。