タグ

ブックマーク / devblog.thebase.in (50)

  • 10年開発してきたPHPアプリケーションにPHPStanを導入した - BASEプロダクトチームブログ

    Tech Dept. 基盤グループエンジニアの @tenkoma です。 BASEには50以上のPHPプロジェクトのプライベートリポジトリがあります。 (アプリケーションは十数個で、残りの多くが、アプリケーションが依存するライブラリです) 過去4年ほどの間に新規に作られたリポジトリにはほぼ最初からPHPStanが導入されていますが、それ以前から開発していたリポジトリには導入されていないものが多数ありました。 それらのリポジトリにPHPStanを導入していったので、なぜ導入したか、導入方法、得られた効果について紹介します。 PHPStanとは PHPコードを実行せずに、実行時にエラーになりうる箇所を検出するツールです。PHPStanを利用しCIに組み込むと、テスト実行せずに検出できるバグの一部は、PHPStan解析で指摘してくれるので、コードレビューの負担が減ることが期待できます。 なぜPH

    10年開発してきたPHPアプリケーションにPHPStanを導入した - BASEプロダクトチームブログ
    tenkoma
    tenkoma 2023/08/21
    後からPHPStanを導入する方法について書きました
  • ElasticsearchとKibela APIを使ってSlackでのCSお問い合わせ対応業務を改善した話 - BASEプロダクトチームブログ

    この記事はBASE Advent Calendar 2020の11日目の記事です。 devblog.thebase.in BASE株式会社 Data Strategy チームの@tawamuraです。 BASEではオーナーの皆様や購入者様のお問い合わせに対して、Customer Supportチームが主となって対応をしています。その中でもいくつかの技術的なお問い合わせに対しては、以下のようにSlackの専用チャンネルを通して開発エンジニアに質問を投げて回答を作成することになっています。 CSチームから調査を依頼されるお問い合わせの例 これらのCS問い合わせ対応は日々いくつも発生しており、CSお問い合わせ対応を当番制にして運用してみた話 でもあるように週ごとに持ち回り制で各部門のエンジニアが対応しているのですが、どうしても調査や対応に時間が取られてしまうという問題が発生していました。 dev

    ElasticsearchとKibela APIを使ってSlackでのCSお問い合わせ対応業務を改善した話 - BASEプロダクトチームブログ
    tenkoma
    tenkoma 2020/12/11
    すごく便利です
  • GitHub Actionsとrelease-it npmでリリース作業を自動化する - BASEプロダクトチームブログ

    BASE BANK 株式会社 Dev Division でSoftware Developer をしている清水( @budougumi0617 )です。 みなさんの開発現場でも社内ライブラリ・モジュールとして開発しているコード・GitHubリポジトリがあると思います。 そのようなリポジトリはパッケージ管理システムを経由して利用することがほとんどですが、そのためにはリリース作業を行う必要があるかと思います。 私のチームでは先日GitHubリポジトリのリリース作業をGitHub Actionsで自動化したので、記事ではその内容を共有したいと思います。 TL;DR 今回はGitHub Actionsとrelease-it npmを使っています。 github.com www.npmjs.com 上記の技術を組み合わせることで次のような自動リリースのワークフローを構築しました。 (Pull Re

    GitHub Actionsとrelease-it npmでリリース作業を自動化する - BASEプロダクトチームブログ
    tenkoma
    tenkoma 2020/11/26
  • BASEの日付ライブラリについて - BASEプロダクトチームブログ

    自己紹介 こんにちは。BASE株式会社のフロントエンドチームの谷口です。 日は、BASEのフロントエンドで使用している日付ライブラリについてお話しします。 BASEの日付ライブラリについて BASEでは、frontendという領域が出来始めた当初、最もメジャーな日付ライブラリであるmoment.jsを使用していました。 その後、デザインコンポーネントの開発など、frontend領域が成長していく中で より使い勝手の良い別の日付ライブラリが検討され、date-fnsが採用されました。 現時点で、ほぼ全てのコードがdate-fnsに移行済みです。 date-fnsについて date-fnsについて少し説明すると、公式にもありますが下記のような特徴が上げられます。 moment.jsやday.jsがDateオブジェクトをラップして扱うのに対し、純粋な関数を必要な分だけ読み込んで使用することが出

    BASEの日付ライブラリについて - BASEプロダクトチームブログ
    tenkoma
    tenkoma 2020/11/05
  • エンジニアの評価グレード制の導入について - BASEプロダクトチームブログ

    こんにちはBASE株式会社取締役EVP of Developmentのえふしん( @fshin2000 )です。 今回は、年末の給与改定から運用を開始する評価グレード制導入のお話を書いてみたいと思います。 これまで人材採用時の給与決定や社員の評価時には、マネージャ間で相談し役員承認の上で給与を決めていましたが、その基準や空気感は詳しく社内のメンバーに共有できていませんでした。理由として、中途主体の採用だとどうしても前職給与に影響され、人によって給与にばらつきがでてしまうため、体系だった形に整える機会がなかったのですが、今度、社内に評価グレード制というものを導入することになり、各給与レンジの方に求めるスキルや意識についてまとめたのでこちらで公開いたします。 評価グレード制というのは、一般的に等級と呼ばれるもので、一定サイズ以上の会社のご経験がある方なら、類する制度はどこでもあると思いますので

    エンジニアの評価グレード制の導入について - BASEプロダクトチームブログ
    tenkoma
    tenkoma 2020/10/13
  • データベースをリファクタリングしたお話 - BASEプロダクトチームブログ

    基盤チーム所属の沖中( @okinaka )です。 「リファクタリング」という言葉、エンジニアのみなさんならご存知でしょう。 システムの振る舞いを変えずに内部を改善することを指す言葉です。 一般的に、コードの修正を指すことがほとんどですが、今回はデータベース設計のリファクタリングについてお話ししたいと思います。 絶版になってしまいましたが、データベース・リファクタリング という書籍に様々な手法が紹介されていて参考になります。英語で良ければ 原書 はまだ入手可能ですね。 データベース・リファクタリング 作者:スコット W アンブラー,ピラモド・サダラージ発売日: 2008/03/26メディア: 単行 Refactoring Databases: Evolutionary Database Design (Addison-Wesley Signature Series (Fowler)) (

    データベースをリファクタリングしたお話 - BASEプロダクトチームブログ
  • 事業継続のためにPHPを使ったサービスを継続的に進化させていくこと - BASEプロダクトチームブログ

    BASE株式会社取締役 EVP of Development / PAY株式会社取締役 / BASE BANK株式会社マネージャのえふしんです。 新型コロナによる非常事態宣言下で起きたことについては、大変勉強をさせていただきました。 非常事態宣言下の巣ごもり消費、リアル店舗等でご活躍されている事業者様のEC利用が急増する中で、BASEにおいても例外ではなく、サービスに訪れるトラフィック急増、4月から5月の頭にかけては、サービスの安定性にも影響が出てしまうという状況が発生していました。 その中で起きていた一つの事象を解決した件が以下のCTOによる記事です。 devblog.thebase.in この記事はCTOやSREチームやWebアプリケーションのエンジニアの活躍で、負荷急増の問題解決をした一つの事例となります。 この対策を通じて、改めて認識したことがあります。 それは、 BASEに訪れる

    事業継続のためにPHPを使ったサービスを継続的に進化させていくこと - BASEプロダクトチームブログ
    tenkoma
    tenkoma 2020/09/10
  • 「もうさばき切れない」アクセスが激増したECプラットフォームにおける負荷対策 - BASEプロダクトチームブログ

    はじめに CTOの川口 (id:dmnlk) です。 5月にオンラインmeetupをさせて頂きその中で「具体的な負荷対策に関しては開発ブログで!」と言っていた件ですが気づいたらもう9月になりかけていました。 コロナ禍においてネットショップ作成サービス「BASE」の利用者様が急増しました。 www.nikkei.com 5 月には 100 万ショップを超えるショップオーナー様にご利用していただいております。 今まで EC 事業を行っていなかった飲店様や様々な業種の方が利用をはじめていただき、ショップオーナー様も購入者様共に短期の見通しでは想定をしていないアクセスが発生しました。 その途中でシステムとして対応しきれない面もあり、アクセス負荷によるサービスの不安定を招き皆様にはご不便や販売時間を変更していただくお願いなどをしてしまい大変申し訳ありませんでした。 現在では安定しておりますが、その

    「もうさばき切れない」アクセスが激増したECプラットフォームにおける負荷対策 - BASEプロダクトチームブログ
    tenkoma
    tenkoma 2020/08/27
    スピーダッ
  • テストを5倍速にする - BASEプロダクトチームブログ

    この記事はBASE Advent Calendar 2019の20日目の記事です。 devblog.thebase.in PAY株式会社でテックリードを務める東と申します。 主にバックエンド全般に広く携わっています。最近はサーバーアプリばかり書いていますがインフラもわりとやります。 当ブログの読者の方には弊社のことをご存じない方もたくさんいらっしゃるかと思いますので、簡単に社の紹介をさせていただきます。 PAY株式会社はBASE株式会社の100%子会社で、オンライン決済サービス「PAY.JP」とID決済サービス「PAY ID」などの決済サービスを開発・運営している会社です。 「支払いのすべてをシンプルに」をミッションに掲げ、お金を扱うすべての事業者・個人がもっと豊かな生活ができることを目指しています。 さて、決済というミッションクリティカルなテーマを扱うにあたって、品質保証は最も重要な課題

    テストを5倍速にする - BASEプロダクトチームブログ
    tenkoma
    tenkoma 2019/12/20
  • php-buildでの複数PHPバージョンビルドを自動化する - BASEプロダクトチームブログ

    この記事はBASE Advent Calendar 2019の16日目の記事です。 devblog.thebase.in エンジニアの田中(@tenkoma)です。 あなたのマシンにインストールされているPHPのバージョンは何ですか? 仮想マシンやコンテナで開発環境を作ることが増えているので、ホストOSにはPHPが入ってない・気に掛けたことがない、ということも多いかもしれません。 僕は、新しいバージョンを試すためにphp-buildを使ってmacOSでビルド・インストールしています。(また、プロジェクト毎にバージョンの切り替えがしやすいようdirenvを使っています) 今回はphp-buildを使った複数バージョンビルドを、コードを書いて少し省力化してみたので紹介します。 多くのバージョンのPHPをそろえてみました。ただし、Catalinaでは7.0.19未満の動作が実現できていません 前

    php-buildでの複数PHPバージョンビルドを自動化する - BASEプロダクトチームブログ
    tenkoma
    tenkoma 2019/12/16
    ニッチな自動化のことを書きました
  • 名刺をリニューアルしました! - BASEプロダクトチームブログ

    こんにちは、Design Groupに所属している森(@mrkzk)です! 少し前にBASEでブランドプロジェクト始めましたという記事を公開したのですが、今回はその一環で行われた名刺リニューアルにフォーカスしてお話ししたいと思います。 なぜ名刺リニューアルを行ったのか 勉強会やミートアップでたびたび「可愛い!」とお褒めいただくBASEのこの名刺 実はこの名刺、代表の鶴岡がデザインしたものなんです、BASEのマルチカラー全開で可愛いですよね。 可愛い。可愛いのですが!よくよく見ると、、現在のブランドガイドライン上だとブランドを毀損していることになります。そしてちょっと情報が多い。 今回のリニューアルではブランドプロジェクトの一環でこの背景に溶け込んでしまったティピを救いBASEのブランドを守ることをメインに、プラスでBASEのそれぞれの個性や、ニュートラルな印象を落とし込んだデザインに変更す

    名刺をリニューアルしました! - BASEプロダクトチームブログ
    tenkoma
    tenkoma 2019/11/20
  • PHPカンファレンス北海道2019に3名が登壇&協賛しました - BASEプロダクトチームブログ

    こんにちは!この度は9/21(土)に北海道の札幌で開催されたPHPカンファレンス北海道にBASEが協賛&3名が登壇いたしました!今回はめもりー(@m3m0r7)、東口(@hgsgtk)、川島(@nazonohito51)の3名から参加レポートをお届けします! 会場 札幌市民交流プラザというでっっっっかい!!! 会場をカンファレンス会場として開催されました。圧倒的開放感のある建物で、贅沢に空間を使ってます。いやー・・・さすが北海道。 弊社はゴールドプランにてスポンサーシップさせていただいているので、スポンサーブースを設営させていただきました。BASEで買えるショップオーナーさんの商品を来場者の方にお配りして、BASEというサービスを皆さんに知ってもらいました。会場で配られるコーヒーと一緒にお楽しみいただけたみたいです。 またスポンサーブースとは別に、弊社から3名が登壇しました!以下登壇者各位

    PHPカンファレンス北海道2019に3名が登壇&協賛しました - BASEプロダクトチームブログ
    tenkoma
    tenkoma 2019/09/25
    waiwai
  • builderscon tokyo 2019 に登壇しました - BASEプロダクトチームブログ

    みなさん、こんにちは!めもりー (@m3m0r7) です。 8/29 (木) から 8/31 (土) にかけて行われた builderscon tokyo 2019 に PHP で JVM を実装して Hello World を出力するまで というセッションタイトルで登壇させていただきました。 PHP で JVM を実装するとは? Java というファイルは class ファイル、つまり 中間コードにコンパイルされ、 それを VM, つまり Java Virtual Machine 上で理解をして動かします。 この VM の部分を PHP で実装するということです。 トーク自体は 60 分枠でしたが、内容を濃くしすぎてしまうと、60分ではおさまらない内容となってしまい、どこを削るかという葛藤の中でスライド資料を作成していました。 セッションについて セッションでは Hello World

    builderscon tokyo 2019 に登壇しました - BASEプロダクトチームブログ
    tenkoma
    tenkoma 2019/09/03
  • PHPアプリ開発をPhpStormでスムーズに始められるよう、設定ファイルとドキュメントを用意する - BASEプロダクトチームブログ

    BASE株式会社 Product Dev Division ソフトウェアエンジニアの田中(@tenkoma)です。主にPHPアプリ開発を担当しています。 BASEでは、PHPアプリ開発で使うエディタに制限はありませんが、希望する人はPhpStormを使えます。 PhpStormは設定を全くしなくてもかなり快適に使えると思いますが、多少設定するとより快適になります。 この記事では主に、開発環境とIDEを連携させアプリケーション開発をスムーズに始めるため、以下の設定について紹介します。 Xdebugと連携してリモートデバッグを可能にする PHPUnitと連携してテストをIDEから実行可能にする PHP_CodeSnifferを使ってコーディングスタイルを適用する EditorConfigを追加してコーディングスタイルを開発者で共有可能にする Xdebugと連携してリモートデバッグを可能にする

    PHPアプリ開発をPhpStormでスムーズに始められるよう、設定ファイルとドキュメントを用意する - BASEプロダクトチームブログ
    tenkoma
    tenkoma 2019/08/22
    PhpStormネタ、書きました
  • 私がコードレビューの際に気をつけているコメントの書き方 - BASEプロダクトチームブログ

    こんにちは、BASE株式会社 ランニング部部長の元木です。 日々、社員に運動不足解消を促す傍ら、Owners Marketingというチームでバックエンドエンジニアをしています。 さて、弊社ではソースコードを変更した際に必ずメンバー間でコードレビューを行ない、OKが出たコードだけをデプロイすることになっております。 今ではほとんどの開発現場でコードレビューを取り入れていると思いますが、読者の中には 「レビューのコメントって、どう書いたらいいのか分からない」 「こんな事を言って嫌な顔をされたり、喧嘩にならないか心配」 などと、苦手意識を持っている人もいるのではないでしょうか? そこで、今回は私がコードレビューの際に気をつけているコメントの書き方をご紹介したいと思います。 気を付けているポイントとレビューコメントの書き方の例 私は、レビューで指摘事項をコメントする際のポイントは 「いかに分かり

    私がコードレビューの際に気をつけているコメントの書き方 - BASEプロダクトチームブログ
    tenkoma
    tenkoma 2019/08/19
  • GopherCon 2019に参加、海外カンファレンスでLT登壇した経験を振り返る - BASEプロダクトチームブログ

    こんにちは!BASE BANK株式会社 Dev Divisionでソフトウェアエンジニアをやっている東口(@hgsgtk)です。先日、7月24日〜7月27日にアメリカ・サンディエゴで開催されたGopherCon 2019に参加してきました。初めてのアメリカ、初めての国際カンファレンスで、初めての英語でのLightning Talkをしてきました。当日の会場の様子も含めてGopherCon 2019の参加レポートをします!参加した結果、やっておいてよかったこと・やっておいたほうが良かったことといった反省点などもまとめます。 GopherCon 2019とは GopherCon 2019とは、プログラミング言語Go関連で世界最大級の国際カンファレンスです。今年は6年目となり、世界中から1800名弱のGopherが参加したようです。7月24日から27日にかけて4日間開催されました。 BASEでは

    GopherCon 2019に参加、海外カンファレンスでLT登壇した経験を振り返る - BASEプロダクトチームブログ
    tenkoma
    tenkoma 2019/08/19
  • PHPカンファレンス福岡2019にBASEが協賛&2名のメンバーが登壇&4名のメンバーが参加しました! - BASEプロダクトチームブログ

    こんにちは!この度、6/29(土)に開催されたPHPカンファレンス福岡2019にて、BASEがスポンサーとして協賛&2名のメンバーが登壇いたしました!今回は川島(@nazonohito51)・めもりー(@m3m0r7)・東口(@hgsgtk)・田中(@tenkoma)の4名より参加レポートをお届けします! 会場レポート みなさん、こんにちは!基盤チームのめもりー (@m3m0r7) です!今回、私は参加者として、PHP カンファレンス福岡に参加してきました! BASE では、カンファレンスへ登壇や参加といったメンバーのコミュニティ貢献活動を積極的に支援しており、今回PHPカンファレンス福岡も業務として参加してきました これが決まったのは、実は先週だったこともあり、ホテルや飛行機などの予約が大変でしたがそれでも無事参加することができました。 ということで会場レポをお送りしたいと思います。 会

    PHPカンファレンス福岡2019にBASEが協賛&2名のメンバーが登壇&4名のメンバーが参加しました! - BASEプロダクトチームブログ
    tenkoma
    tenkoma 2019/07/02
    協賛&参加しました
  • BASEでエンジニアリングマネージャーから再びエンジニアに戻って感じたこと - BASEプロダクトチームブログ

    こんにちは、CommerceDevというチームでエンジニアをやっています島田です。 このチームは、Eコマースプラットフォーム「BASE」のサービスの根幹を作る事をミッションとし、ショップオーナーの管理画面や決済機能の改善に取り組んでいます。チームができる前は決済チームのエンジニアリングマネージャー(以下EM)をやっていたのですが、いまはEMを移譲しエンジニアとして働いています。 今回はマネジャーを移譲した理由を含め僕がBASEに入社してからのチーム変化を書きたいと思います。 EMになるまで 僕が入社した当時、社内にエンジニアは10名程度でした。現在は約50名のエンジニア組織になりました。 エンジニア以外の社員も増え、それに伴ってかつて問題ではなかったことが問題になったり、これから問題になるだろう課題も抱えるようになっていきました。人が増えると組織としてやることが増えますが、エンジニアも例外

    BASEでエンジニアリングマネージャーから再びエンジニアに戻って感じたこと - BASEプロダクトチームブログ
    tenkoma
    tenkoma 2019/05/24
  • CircleCIとecspressoによるECSへのデプロイメントパイプライン - BASEプロダクトチームブログ

    こんにちは。SREチームの山根(@fumikony)です。 このブログでも東口(@hgsgtk)が何度か紹介している即時資金調達できる金融サービス「YELL BANK(エールバンク)」のインフラまわりに関わっています。 今回は、YELL BANKのデプロイメントパイプラインを構築したときの工夫などを紹介します。 インフラ構成 インフラ構成図 まず大まかなインフラ構成について説明します。上の図は構成図です。 YELL BANKではGo言語でAPIサーバを開発しており、ビルドしたコンテナをECSのFargateモードを使って動かしています。 コンテナレジストリにはAWSのECRを使っています。 また複数AWSアカウント構成をとっていて、番・ステージング・開発の各環境ごとに個別のAWSアカウントを用意しています。 今回のデプロイ機構ではこれらの環境のうち番環境(prd)およびステージング環境

    CircleCIとecspressoによるECSへのデプロイメントパイプライン - BASEプロダクトチームブログ
    tenkoma
    tenkoma 2019/04/11
  • PHPer Kaigi 2019にBASEが協賛&3名のメンバーが登壇しました! - BASEプロダクトチームブログ

    こんにちは! この度、3/29(金)から3/31(日)に開催されたPHPer Kaigi 2019 にて、BASEがゴールドスポンサーとして協賛&3名のメンバーが登壇いたしましたので、今回のそのレポートを書いていきたいと思います! 会場レポート 今年の会場も去年と同じく練馬区立区民・産業プラザ Coconeriホールにて開催されました。入り口ではロールアップバナーが出迎えてくれます。 アイキャッチ画像にもありますとおり、当にたくさんPHPerたちが集まっていました。「同窓会のようなカンファレンスにしたい」という実行委員長の言葉もあって、PHPerたちが楽しみながら互いに交流を深める仕掛けがたくさんあり、あちこちで盛んな交流が行われていました! トークの採択を通して選ばれた登壇者による発表ももちろん、アンカンファレンスによる突発的な発表、IRT(Interactive Round Tabl

    PHPer Kaigi 2019にBASEが協賛&3名のメンバーが登壇しました! - BASEプロダクトチームブログ
    tenkoma
    tenkoma 2019/04/03
    PHPerKaigi で初めて発表してきました