LCL Engineers' Blog

バス比較なび・格安移動・バスとりっぷを運営する LCLの開発者ブログです。

ALB固定レスポンスを利用してメンテナンス画面を表示する

Webエンジニアの森脇です。ALBでの固定レスポンスを利用して、メンテンナンスページを表示する際にいくつか考慮した点について紹介します。 ALBでの固定レスポンスとは ALBの固定レスポンスを利用することで、リクエストをWebサーバへ転送することなくALB自…

ECS サービスディスカバリでFargateのIPを自動的にDNSレコードへ紐づける

AWS

モバイルアプリエンジニアの山下です。 先日の記事ではデプロイ基盤を構築し、Fargateへ自動デプロイすることができました。 techblog.lclco.com これによりEC2の操作を意識することなく、柔軟にコンテナ数をスケーリングできるようになったのですが、LCLの…

metaタグを変えるためにreact-helmetを導入してみたけれど結局ES2015で実装した話

フロントエンドエンジニアの岡田です。 先日、Reactでmetaタグを変える必要があったので、react-helmetを導入してみました。ですが、うまくいかないケースがあり、結局はES2015で書き換えました。 今回は、react-helmet導入と、最終的なES2015のコードをご紹…

Switch Roleを利用して、同一アカウントでRoleを切り替える

AWS

AWSでは環境に応じてアカウントを分け、Switch Roleを利用して別アカウントへ切り替えることが一般的だと思いますが、同一アカウント内でもSwitch Roleを利用できることを知りました。

エンジニア以外とも輪読会をしたら良かった話

フロントエンドエンジニアの岡田です。 10月27日から一週間は、読書週間だそうです。 みなさん、読書していますか? 以前ブログでもご紹介しましたが、エンジニアチームでは輪読会を行っています。 techblog.lclco.com この輪読会を、他のチームにも広げてみ…

Chromeのデベロッパーツールでスマホ表示を維持したまま別タブに遷移するTips

Webエンジニアの川辺です。 今回はChromeのデベロッパーツールでスマホ表示を維持したまま別タブに遷移するという、ちょっとした便利ワザを紹介しようと思います。 手順 command + option + Iキー(Windowsの場合はF12キー)でデベロッパーツールを開きま…

CodePipeline/CodeBuild/ECR/ECS/Fargateのコンテナデプロイ基盤を構築してみました

AWS

モバイルアプリエンジニアの山下です。 今回は、AWSの以下のサービスを用いてコンテナデプロイ基盤の構築を試してみました。 CodePipeline CodeBuild ECR ECS Fargate AWSのドキュメントは丁寧で情報も豊富ですが、サービス毎に手順が書かれているため一連の…

Developers.IO 2018 Outnumberに参加しました!

Webエンジニアの森脇です。 先日、クラスメソッドさんの Developers.IO 2018 Outnumberに参加してきました。 クラスメソッドさんのブログで発表資料は公開されていますので、簡単なレポートをしたいと思います。 dev.classmethod.jp 今回はAWSがテーマで、弊…

rack-corsでCORS設定をする

Webエンジニアの森脇です。rack-corsを利用して、RailsでCORSの設定をしてみました。 github.com rack-corsの基本的な使い方 gemを追加して、cors.rbファイルに下記のように記載します。 originsに許可したいアクセス元のoriginを定義します。 Rails.applica…

iOSDC Japan 2018に参加してきました!

モバイルエンジニアの山下です。 去年に引き続きiOSDC 2018に参加してきました! 開催から時間が経ってしまいましたが、レポートとトークの一部を紹介させていただきたいと思います。 iOSDCとは https://iosdc.jp/2018/ iOSDC JapanはiOS関連技術をコアのテ…

capistrano-bundle_rsyncを利用したデプロイ方式に変更しました

Capitranoを利用してRailsアプリケーションのデプロイを行っていましたが、「capistrano-bundle_rsync」を利用する方式に変更しましたので、背景含めて紹介いたします。

Mackerelのアラートグループを利用して障害通知を抑制する

現在、障害通知の最適化を進めており、その第一弾としてMackerelのアラートグループ機能を利用して、障害通知の抑制をしました。手軽に実現ができ、便利だったので紹介します。

AWS EC2インスタンスの停止忘れを防止する

Webエンジニアの森脇です。 LCLでは、普段使わないテストサーバなど常時稼働が不要なEC2インスタンスは、必要に応じて手動で起動・停止する運用にしています。が、停止を忘れて起動したままになっているということが、時々発生してしまっています。 大した金…

npm scriptsで画像圧縮を自動化した際の課題と検討事項

フロントエンドエンジニアの岡田です。 LCLではフロントエンドエンジニアがマークアップも担当しており、画像の圧縮もエンジニアが行っています。 画像圧縮、面倒ですよね。。 いままでいくつか自動化を試しましたが、どれも長くは続きませんでした。 【画像…

xcprojectlintでXcodeの些細な問題を解決して心を整える

モバイルアプリエンジニアの山下です。 Xcodeで開発を進めていく中で、以下のような小さな問題がずっと気になっていました。 ファイルシステムとXcodeのディレクトリ構造で差異が発生する ディレクトリやファイルがアルファベット順にソートされていない 空…

LCLで2018年前半にチームとして新しく取り組んだこと

LCLでは、昨年の後半よりエンジニアメンバーが増えてきたため、今年からチームとしての取り組みをいくつか始めました。振り返りを兼ねて紹介したいと思います。

突撃!隣のフレックスタイム

モバイルアプリエンジニアの山下です。 先日の記事でも少し触れられていましたが、LCLでは先月からフレックスタイムがトライアル導入されました。 techblog.lclco.com 今回は、エンジニアメンバーへどのような使い方をしたかをアンケートで聞いてみたのでお…

npm scripsが特定の環境だけ動かない! という時に確認すること

フロントエンドエンジニアの岡田です。 LCLのフロントエンドでは、npm scriptsを使っていますが、たまに特定の環境だけ動かないことがあります。 今回は、ケース別に確認すると良いこと・試すと良いことをご紹介します。 ケース別の確認事項等 自分のローカ…

ジョインメンバーのためにmacOSの初回セットアップをチョットダケ自動化するTips

モバイルエンジニアの山下です。 LCLでは開発端末としてエンジニアメンバー全員にMacを支給しており、新しくメンバーがジョインした際もMBP or iMacを購入しています。 その際、ジョインメンバーには初日にmacOSの初回セットアップをしてもらう必要があるの…

子育て中のエンジニアが思う、LCLの良いところ5つ

フロントエンドエンジニアの岡田です。 LCLでは、今月からフレックスタイム制を試験導入しています。 これまでも在宅勤務時は16時で退社することが可能でしたが、フレックスタイム制により、さらに1時間早い15時に退社することができるようになりました。 そ…

React バージョンアップ(v15.3.2 → v16.4.1) を行いました

フロントエンドエンジニアの田中です。 React の導入からバージョンを変えずに古いまま使用をしていましたが、「使いたいと思った機能がバージョンを上げないと使えない」「Webに載っている情報は新しいバージョンで記述されていることが多いため、古いバー…

輪読会がうまく回りはじめた話

モバイルアプリエンジニアの山下です。 LCLでは今月から全社員を対象にしたフレックスタイム制のトライアル期間が始まりました。 エンジニアは以前からもフレックスに近い働き方が可能でしたが、いくつかの新しいルールが追加されました。 これまでの取り組…

地味に面倒なブランチ作成〜WIPプルリクエストまでをコマンド1つで行う

フロントエンドエンジニアの岡田です。 やる気がでない時の最良の方法は、「とりあえず始めてみる」ことだと聞いたことがあります。 今回は、やる気がでないときでもコマンドを1つ叩くだけで、ブランチ作成〜WIPプルリクエストまで作ってくれるように設定を…

SwiftFormatで機械的にコーディングルールを統一する

iOS

モバイルアプリエンジニアの山下です。 W杯開幕からほぼ全ての試合を観ているため、在宅勤務を活かして出社時間ギリギリまで寝る生活をしています。 今回は、LCLが運営している高速バス比較のiOS版の開発時に可読性を維持する支えとなっている『SwiftFormat…

E2EテストをPhantomJSから、Puppeteer + Headless Chromeへ移行しました

E2E

LCLでは、以前より「Capybara + PhantomJS」でE2Eテストを行っていましたが、「Puppeteer + Headless Chrome」へ変更しました。 元々は、軽くPuppeteerを触ってみるだけのつもりでしたが、できが良かったので本格的にE2Eテストへ導入しました。本記事では、…

一部 React のサイトに MobX を導入しました

フロントエンジニアの田中です。 以下記事にもありますが、弊社のサービス:夜行バス比較なびの React 実装部分に MobX 導入しました。 techblog.lclco.com 目的 そもそもの導入目的は、親コンポーネントが違うコンポーネント同士の連携を行いたかったからで…

CSSのコンパイラをsass-railsからnode-sassへ変更しました

フロントエンドエンジニアの岡田です。 先日、LCLが運営する夜行バス比較なびのCSSコンパイラを、sass-railsからnode-sassへ変更しました。 今回は、Node.jsへの移行にあたってRailsとの連携をどうしたか、移行で起きた問題などについてまとめました。 node-…

週末にもくもく会をしてみました

フロントエンドエンジニアの岡田です。 週末に社内のメンバーでもくもく会をしてみました。 ルールはただ一つ、仕事は禁止です。 もくもく会当日は、前から気になっていたスターバックスのポットサービスを頼んでみました。 オフィスがある晴海トリトンの2階…

1日のスケジュールを可視化してタスク消化率の最適化を図る

1日のスケジュールを可視化してタスク消化率の最適化を図る モバイルアプリエンジニアの山下です。 今年からGoogleカレンダーにその日のタスクを予定として登録しています。 これにより、以下のメリットがあります。 日毎に消化したタスクを後から見返せる …

LCLでの書籍購入制度の活用事例

Webエンジニアの森脇です。 最近では、福利厚生として書籍購入制度がある会社も増えてきたと思いますが、LCLも例に漏れず書籍購入制度があります。技術情報はインターネットで十分だったりするので、最近は書籍を読まない方も多いかもしれませんが、LCLでは…