開発ツール

新卒エンジニアが感じた学生のうちに慣れておくとよい基本の3つのこと

オクトキャット

はじめに

社会人1年目、まだまだ技術力が低い水野です。

新社会人っぽい記事を、入社から半年近く経ってから(執筆時9月中旬)ようやく書きます。

僕が新入社員研修を終えて開発業務に入ってから、学生のうちにやっといてよかったと思ったことを3つ紹介いたします。
この記事は、特に開発経験が少ない方に読んでほしいです。

続きを読む


未経験Railsエンジニアが生き残るために取り組んだ3つのこと


はじめに

8月にリンクバルに入社しました福永です。

私はエンジニアとしての実務未経験でこの世界に飛び込みました。
一応、専門学校でRuby on RailsやAWSを勉強してきたのですが、最初の頃は実務で使われているコードがさっぱり分からなくて頭を抱える生活を送っていました。

そんな私が生き残るために実践してきた3つの解決法をご紹介します。
初歩的な内容ですが、私と同じように未経験エンジニアの方の参考になれば幸いです。

続きを読む


必見!iOSアプリ審査のためのスクリーンショット基準!


こんにちはリンクバルの前田です。今回はiOSアプリの審査でメタデータリジェクトされたので、その内容の一部をご紹介します。

iOSアプリ審査

いつも通り、iOSアプリを申請していると何故かメタデータのリジェクトが。。。

We noticed that your screenshots do not sufficiently reflect your app in use.

Please see attached screenshots for details.

続きを読む


踏み台サーバを用いてTableauに外部のMySQLサーバを接続する


こんにちは、リンクバルの佐藤です。

最近BIツールのTableauを導入し始めたのですが、Tableau単体では外部サーバーのMySQLに接続できません。

開発用DBはAWS上にあるので、接続するには踏み台サーバーを経由する必要があります。

なのでSSH ポートフォワーディング(SSHトンネルともいう)で踏み台サーバーを経由する方法を備忘録的に書いておきます。

一度踏み台にアクセスしてしまえば、あとは放置で大丈夫です。

お膳立て

以下のコマンドを打ってsshポートフォワーディングしましょう。 参考URLはこちらです。

ssh -f -N -L 10000:localhost:3306 ユーザー名@サーバーホスト名 -p 22

これでSSHポートフォワーディングが完了しました。 一応接続できているかをtelnetを使って確認しましょう。 飛ばしても問題ありませんが念のため。

telnet サーバーのホスト名 10000

10000はローカルの10000ポートを指定しています。 先ほど接続先の3306ポートにマッピングしたものと同じポートを指定しています。

Connected to localhost.とターミナルに表示されれば接続されています。 明記してませんでしたが、ここまですべてMacです。Windowsではtelnetはデフォルトでは使えないので、有効化してあげる必要があります。

さてここまでお膳立てしてあげてから、Tableauを起動します。

Tableau起動後

サーバーへMySQLといって、

  • サーバーホスト名
  • ローカルポート番号
  • ユーザー名
  • パスワード

をぽちぽちしてサインインしてください。ここまでの設定で接続できるでしょう。

設定が終わったらググってTableauを存分に使い倒してやりましょう。 Tableauの作図方法は次回書くことにします。 では。


開発者必見!Slackカスタム絵文字でコミュニケーションが楽しくなる。


リンクバル技術部エンジニアの中村です。リンクバル技術部では、Slackを活用してコミュニケーションをとることで、日々の開発業務を進めています。

関連リンク:リンクバル新規サービス開発チームにおけるSlack活用事例

リモートで働く社外の開発パートナー様とのやりとりもSlackを活用しています。

Slackが無い開発は考えられないと思う利用頻度です。

そんなSlackには、コミュニケーションが円滑になる、絵文字機能があり、Slackを使っているチームであれば利用していると思いますが、オリジナルの絵文字を追加できるのをご存知ですか?

自社で保有しているキャラクターのアイコンやアプリアイコンを、カスタム絵文字(Custom Emoji)として追加することで、コミュニケーションが楽しくなり、プロジェクトの雰囲気も良くなると思いますよ

この記事では、Slackのカスタム絵文字の登録の仕方を説明致します。

カスタム絵文字登録手順

Customize Slack

  • Slackを開き、チーム名の横の「∨」アイコンをクリック
  • 続いて、「Customize Slack」をクリック

customize_slack

Customoize Your Team 画面へ遷移します。

アイコン画像のアップロード

「Customoize Your Team」画面で、下記の手順でアイコンを登録します。

  1. 「Chose a name」で、アイコンに名前をつける
  2. 「Chose an emoji」で、アイコン画像をアップロードする。
  3. Saveボタンをクリック

ここでは、自社サービス「カップリンク」のアプリアイコンを登録しました。

登録完了

「Custom Emoji」一覧に、登録したアイコンが表示されます。これで登録完了です!

カスタム絵文字の利用方法

デフォルトで登録されている絵文字と同様に利用することができます。

おわりに

この記事では、プロジェクトが楽しくなり、コミュニケーションが円滑になる、Slackのカスタム絵文字の登録方法をご紹介しました。

リンクバルでは、自社サービスを一緒に開発するエンジニアを募集しておりますので、興味を持っていただきましたら、ぜひお問い合わせください!


CircleCIを使った自動チェックについて


街コンジャパンの開発ではCircleCIを使って、
コーディングルールやRailsのテストコードを自動チェックしています。

CircleCIの自動チェック処理はCircleCIのキューに一度貯めて、
コンテナという自動チェック処理を行うプロセスがタスクを取り出して一つずつチェックしているようです。

メリット

・開発者が複数でも一定の品質を担保することができる
・CircleCIのチェックが通らないとマージできないので実行できないコードを弾くことができる
・無料でも使うことができる
・GitHubのWebhocksと連携することができる
・GitHubアカウントで認証できる

デメリット

・ソースコードが多くなってくると徐々に遅くなってくる
・無料版では自動チェックをするコンテナが一つのため、キューがたまりやすく効率が悪くなる

コンテナを増やすポイント

コンテナが一つ場合は、15分以上コンパイルを待たないといけないこともありましたので、
開発効率を上げるためにCircleCIのコンテナを2つ使いました。
コンテナの数は開発人数にもよるとは思いますが、開発が忙しくなる時期にコンテナを増やすなどの利用も計画的にすることもできると思います。

まとめ

Githubと連携して使うことができますのでCommitごとにコーディングルールやテストコードを実行できますので、
一定基準の品質を担保しつつ共同開発をすることができます。
無料でも使えるので是非Githubでソースコードを管理されている場合は使ってみると良いと思います。
ちなみに、コーディングルールの自動チェックはRubocupというgemを使って、設定ファイルでコーディングルール管理をしています。

最後に

リンクバルではエンジニアの採用を募集しています。採用はこちら


リンクバル新規サービス開発チームにおけるSlack活用事例

PC

リンクバルの新規サービス開発チームで、チャットツールのslackがどのように活用しているかを、技術部中村が紹介致します!

リンクバルの開発メンバーは、積極的に新しいツールの導入・検討を行い、開発効率のUPに勤めています。

Slackを導入してよかったこと

  • PJを成功させる上で一番重要なのは、コミュニケーションです。
  • 席が離れたメンバーや、オフサイトの開発パートナーとのやりとりを行う時に、Slackを使うと気軽に簡単に連絡が取れるので、コミュニケーションが活発になりました。
  • 各種Webサービスとの連携が容易なので、簡易的なシステム監視が簡単にできるのもメリットですね。
  • PJチーム内のコミュニケーションにemailを使うことが少なくなり(特にエンジニア同士は皆無
    )、結果、メールの誤配信も起こらなくなりました。

Slackを導入するときに気を付けたこと

  • 導入にネガティブなメンバーもいるので、まずは、お試しで導入してみましょうということで、やってみることが重要です。他のチャットサービスも使用していたのですが、開発者は翌日からSlackばかり使うようになりました!
  • 必要なチャンネルを整備して、ある程度投稿ガイドラインを設ける。
  • 導入時は特に、賑やかしが必要です。導入起案者は、自ら積極的に書き込んだり、書き込んだら誰かが突っ込んでくれるという場の雰囲気をつくることが重要ですね。
  • 運用フェーズで気を付けたこと。

  • チャンネル作成を個人の自由にしたことろ、トータルで40チャンネルくらいになってしまい、どのチャンネルをウォッチしたらよいか、分からないカオスな状態に。1ヶ月書き込みが無いチャンネルは基本はアーカイブするようにしています。
  • ビジネスサイドも巻き込んで使う。英語表記のアプリで抵抗を示すメンバーも居るのですが、レクチャーをして、使って貰えるようにすると、使用するコミュニケーションツールが減り便利です。
  • #general で専門的な話しが始まってログを埋めるような場合は、Share機能を使って、適切なチャンネルに誘導します。#generalは、基本的には脱退できないので、必要以上に専門的すぎる話しで埋まらないように気を付けています。
  • チャンネルの使い分けについて

  • よく利用するチャンネルの一部について、紹介致します!
  • 共通系

    #general

    挨拶、勤怠連絡、全体連絡を行うチャンネルです。
    オンサイト・オフサイト混在のチームだと、お互い本当に仕事をしているのか、不信感を持ちやすかったりすることもあるので、存在感をお互いにアピールするためにも挨拶は重要だと思います。

    #current_status

    制作チームのメンバーが、現在やっていること、やっことをつぶやくチャンネルです。
    オフサイトとオンサイトで、作業が被っていたことがあり、対策として導入しました。
    簡易的な日報もこのチャンネルに投稿します。

    #voice

    思いついたアイデアはここにつぶやきメンバーに共有します。これが、メールやチケットで共有する仕組みだと、ハードルが高く、あとで書こうとおもったときには、忘れてしまうことが多々あります。

    職種別

    #dev

    開発に関する内容を投稿します。エンジニア同士で技術的なことを議論する場合はこのチャンネルです。デザイナーも使います。

    #design

    UI/UXDに関する内容を投稿します。

    #biz

    ビジネスサイドに依頼をするときは、このチャンネルを使います。

    #infra

    インフラエンジニアに依頼をするときは、このチャンネルを使います。

    運用・監視

    #reports

    デイリーで新規会員数や、売上をシステムから投稿します。
    目的は日ごろから指標を大まかに把握して、異常値が投稿された時には、すぐに気づいて調査が行えるようにするためです。

    #alert

    システム異常が発生したときには、このチャンネルに通知されます。
    CloudWatch, PagerDuty, New Relicと連携していて、異常が起きたときに、すぐに気づけるようにしています。
    Slackは、各種サービスとの繋ぎ込みが簡単なところが、良いですね。

    #notifications

    各種Webサービスの更新通知を投稿します。
    githubやbacklog, トレロと連携すると、開発チームのおおよその動きがつかめるので便利です。
    通知が多過ぎても見なくなるので、どの程度通知するかは、試行錯誤が必要です。

    #logs

    定期実行バッチが止まっていたことを経験に、バッチの処理結果ログを流すようにしています。時々眺めて、Cron処理が止まっていないかを簡易的に把握します。

    おわりに

    リンクバルでは、自社サービスを一緒に開発するエンジニアを募集しております。興味がありましたら、ぜひお問い合わせください!


    開発プロジェクトで「Trello」を使ってみた!


    リンクバルの開発プロジェクトで使用している課題管理ツール「Trello(トレロ)」をご紹介したいと思います。

    Trelloを採用した理由
    開発プロジェクトが稼働し始めた当初、開発メンバー同士でまずは大きい機能単位の課題を洗い出し、テキストベースでGoogleDocに書き込んでいました。
    当初は課題を記入するのも簡単で全体像が見えやすかったのですが、開発が進んでいくにつれて課題が先延ばしになるものや完了していくものなど、GoogleDocでの管理では大変になってきました。
    そこで、課題をカードとして作成て優先度の高いカードはリストの上に配置するという運用をカード操作だけできる「Trello」を採用し現在も使っています。

    Trelloの使い方
    まず、ボード(Board)を作ります。ホワイトボードのような位置づけです。
    次に、リスト(List)を作ります。ホワイトボードに縦線を引いて枠を作ったイメージです。
    最後に、カード(Card)を作ります。ホワイトボードに付箋紙を貼るイメージです。
    ボード上に複数のリストを作って、そこにカードを入れて運用します。

    例えば、「やること」「着手中」「完了」というリストを作成したなら、
    「やること」リストにカードを追加し、着手したらカードを「着手中」に移動し、完了したら「完了」に移動する。

    このように操作することで、どんなやることが残っていて、今何をやっていて、何が終わったのかを一つのボードで管理するができます!

    運用ルールのピックアップ
    現在、開発プロジェクトで使っている「Trello」です。
    mj2trello

    Trelloを使い始めた当初は私がボード(Board)のリストに課題を追加していましたが、
    気づいた人が誰でも登録できる「新着」というリスト(List)がとても役に立っています。
    %e6%96%b0%e7%9d%80

    とにかくまずは「新着」リストにカードを登録する。
    いつ誰が対応するか、優先度付けを出来るだけ早めにカードを移動することで、
    やるべき課題のボリューム感、対応時期がビジュアルで分かるようになります。

    今後の課題
    「Trello」を使ってみて課題だと感じることは、開発プロジェクト開始当初と比べて細かい課題の登録が多く、さらに20人近く同じプロジェクトを使っていますので、カードがとても多い状況になるリストが存在したり、優先度付けの運用をしている時に量が多く、並び替えが大変だったりします。

    この辺りを改善するために、一部のリストは別プロジェクトに移動させて管理したりなどの工夫もされていますが、その反面、一つのボード(Board)で全体の課題を全メンバーが目視で確認できる利点もありますので、状況に応じて「Trello」の柔軟性の強みを活かして上手くやっていく必要があると感じています。

    つぶやき
    背景を単色ではなく「いい感じ」に変えてビジュアル的にも良くしていきたいな。


    NewRelicのTransactionTrace機能がとても便利な件


    NewRelicの便利な機能を紹介します

    NewRelic公式サイト
    https://newrelic.com/

    このAPMの「Transaction Trace」というAPMのPro版の機能がソースコードのメソッド単位でレスポンスタイムが分かるので、サイトのチューニングやボトルネックを発見するのにとても役に立ったことがありましたので、記事にさせて頂きました。

    ライセンス料金
    https://newrelic.com/calculator

    Transaction Trace
    TransactionTrace

    Transaction Trace Detail
    TransactionTraceDetail

    このような具合でソースコード単位でボトルネックになっている箇所を見つけ出し、
    パフォーマンスのチューニングをすることができます。
    またデータベースで実行されたクエリを確認することもできます。

    最後に
    もしサイトが重く悩んでいましたらNewRelic APM Pro版を導入してみるのも良いかもしれません。
    フリーで登録後、14日間はPro版をトライアルできるようですので、NewRelicの導入がまだの方は試してみてはどうでしょうか。