ブロックチェーン・AI・システム開発の株式会社INDETAIL

INDETAILで使っている技術を総まとめ。バックエンドやフロントエンド、プロジェクト管理まで

2017.12.01
tacck

こんにちは、tacckです。
札幌は雪が本格的に積もるようになってきて、もうすっかり冬の到来です。
そして、この季節といえば、そう「Advent Calendar」ですね!

今年は、INDETAILでもチャレンジしてみようということになりました。
普段の技術ブログとは少しテイストの異なった記事も、読める・・・はずです!

この記事は初日ということで、「INDETAILではだいたいこういう技術を使っているよ」という感じで、紹介してみたいと思います!

弊社のサービス

弊社は、大きく分けて二つの開発事業と一つの研究事業があります。
具体的には、

  • BtoB/BtoC向けの受託・ラボ開発
  • ゲームサービス運営
  • ブロックチェーン実証実験

となります。

とはいえ、おおよそ使う技術を分解していくと、

  • Web フロントエンド
  • Web/API バックエンド
  • モバイルアプリ (iOS/Android)
  • ネットワーク/インフラ (オンプレ/クラウド)
  • 管理ツール
  • ブロックチェーン

ということになります。

というわけで、上記に沿った形で少しずつ紹介していきます。

だいたいこんな技術を使っている

フロントエンド

JavaScriptでは、最近はAngularJSが多めです。
社内ではVue.jsを使いたいね、ということで、検証していたりもします。
とはいえ、jQueryもなかなか手放せない感じです。
その他、ReactRiotも使うことがあったりしますが、こちらはあまり数は多くないですね。

CSSフレームワークは案件に応じて、BootstrapUIkitMaterial Design Lite、あたりを利用しています。

エディタ/IDEは、AtomVS CodeSublime TextDreamweaver、、と、比較的メンバーの好みに任せていることが多いです。

その代わり、タスクランナーとしてGulpを使って、結果を揃えるような流れになっています。
最近はwebpackが有力になっているようですが、まだ案件では対応できていないです。

フロントエンドは、特にトレンドの移り変わりが大きいので、新しい技術を見つつ各プロジェクトで何が適用できるか、、というところを考えながら取り組んでいます。

バックエンド

基本的には、PHP or Javaで開発しています。

フレームワークは、

としています。
プロジェクトによって上記選択できない場合もありますが、選択可能な場合は上記で統一する流れになっています。

エディタ/IDEは PhpStorm含むIntelliJ IDEA勢 と Eclipse勢で別れている感じです。
ここは、プロジェクトごとの裁量になっています。
まれに、Vim派の人もいます。Emacs派は絶滅寸前。

バックエンドの領域としては、後述のインフラ部分にも関わりますがもっとクラウドネイティブなシステムにチャレンジしたいところですね。

モバイルアプリ

最近は、AndroidよりもiOSでの新規開発・保守が中心です。
CocoaPodsを使い、Fabricを使い、fastlaneを使い、、と、ツールを使って楽できるところは楽をしています。

自分たちでバックエンドも開発することもあって、FirebaseのようなmBaaSはまだ使いこなせていないのが正直なところですね。
Fabricも統合されたことですし、この辺りももっとチャレンジする領域だと思っています。

ネットワーク/インフラ

こちらは、クライアントのリクエストで色々と決まることが多いですね。
ただ、最近はAWSのような従量課金のクラウドも扱うことが多くなり、この点の変革は実感のあるところです。

弊社で開発・リリースしているサービスも、クラウドベースで稼働しています。
ただ、サーバレスアーキテクチャを積極的に取り入れるような思想には至っていないので、是非精進したいところです。

こんなプロジェクト管理ツールを使っている

今度は、管理ツール系の紹介をしてみます。

タスク管理

社内では、Redmineサーバを立てて利用しています。
基本的には、各プロジェクト単位でRedmineプロジェクトを作成し、そこでタスクをチケット化して作業を進めています。

最近はBacklog勢もいて、一部のプロジェクトでは利用中です。

ソースコード管理

ソースコード管理は、社内では実質Git一択です。
社内にGitBucketサーバを立て、そちらをほぼ全てのプロジェクトで利用しています。

プロジェクトによってはクライアントが用意したサーバを使いますが、こちらも最近はGit系のサービスを利用することが多くなってきました。

ブランチ管理としては、Git Flowベースになることが多いです。
Git Flowだと管理過多になることもあるので、その時はGitHub Flowベースにシンプルにした形にしたりもします。

情報共有

チャットツールは、ChatWorkを全社で利用しています。
社内で完結するものはChatWorkで行ない、クライアントとのやりとりはクライアントにあわせて行なう、、という形です。

静的な情報共有は、RedmineのWiki機能、GitbucketのWiki機能、、あたりを利用することが多いです。

ただ、ゲームサービス運営ではリアルタイムで細かい数字と計算結果の共有も必要になるので、Googleスプレッドシートを活用しています。
こちらは、エンジニアだけでなく、プランナーも関数やGASを駆使して効率化に努めています。

ブロックチェーン関連

ブロックチェーンでは、先日PoCの第一弾を完了し発表させて頂きました。

2017年10月12日開催★参加者100名超の熱気!No Mapsブロックチェーンセミナーレポート!

このPoC含め、Hyperledger Fabricを中心に現在も実証実験を進めています。

まとめ

いかがでしたでしょうか?

案件ベースなので最新のものを常に取り込む、ということはなかなかに難しいですが、ある程度メンバーの裁量で新しい技術にチャレンジして、良ければ社内に展開する、という取り組みも行なわれています。
やり過ぎると使うツールがバラバラになってしまうので、その辺りのバランスを取る必要はありますが、常に良い開発環境を求めるのがエンジニアだと思うので、これからも社内では積極的に取り組めるようにしていきたいと思います。

tacck Takuya KIHARA

エンジニア (モバイルアプリ、フロントエンド、バックエンド、インフラ) 得意なことは、領域をまたいで考え、開発すること。 ブログでは、主にAnsible、Docker、Raspberry Piのことを書いています。 好きなフィギュアスケートの技は、スプレッド・イーグルです。

「いいね」ボタンを押すと、最新情報をすぐに確認できます。