サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
GPT-4o
note.com/shift_tech
はじめに皆さん、こんにちは。SHIFT サービス改革部の森川です。 3月から開発チームのマネージメントポジションとなりました。 テスト管理ツールの"CAT"や、テスト設計を支援するツール"TD(TEST DESIGNER)"などの社内外問わず広範にご利用いただいているツールの開発部署で日々マネージメントに奔走しております。 管理職といえば、チームの皆さんが頑張った成果を数字にまとめて、上層部に素早く伝えるのが、一つの重要な責務ですよね。 報告は可視化と透明化が肝心、ということでBIツールを導入してみました。 やったこと以下の3つの情報を、1つのBIツールに一元的にまとめてダッシュボードを作って可視化しました。 売上・商談情報のBI化 製品利用状況のBI化 エンジニア生産力のBI化 まだ道半ばのものもありますが、形にはなってきているので、言語化&公開してみることにします。 こういうのは完成を
はじめにこんにちは。 株式会社SHIFTのブラッドフォード です。 ついに Storybook の v7.0 が正式リリースされましたね! 早速利用していますが、設定や記法がシンプルになり使いやすくなりました。 Storybook といえば、コンポーネント管理を目的としたライブラリですが、最近はテストもこなせるようになりました。 公式では「インタラクションテスト」という名前で紹介されています。 今回はこの「インタラクションテスト」を使ったフロントエンドのテストを紹介します。 うまく活用できれば、単体テストや結合テストは「インタラクションテスト」に集約できるかもしれません。 執筆者プロフィール:ブラッドフォード 株式会社SHIFT DAAE部所属のフロントエンドエンジニアです。 最近は keyball を使って仕事しています。 おさらい|フロントエンドのテストまずはフロントエンドのテストにつ
はじめにこんにちは。SHIFT DAAE(ダーエ)開発グループ所属のNogamiです。 皆さんは、負荷テストを行う際に、普段どんなツールを使われていますか? 今回は、システム開発に欠かせない「負荷テスト」に使用する、6つの負荷テストツール(サービス)について解説させていただきます! 6つの負荷テストツール(サービス)1.「JMeter」「JMeter」は負荷テストツールを検討する際に、必ずといっていいほど名前が挙がるオープンソースのテストツールです。 ローカル環境にインストールすることができ、テストシナリオの作成やテスト実行を行うことができます。 引用:Apache JMeter テストシナリオは、コーディング不要で、GUI上で作成することができます。 「JMeter」は20年以上に渡り利用されているツールであり、数多くのプラグインや関連サービスが存在します。 多数のプラグインで機能を拡張
はじめにSHIFTからシステム・アイに出向中の斎藤です。少し前にECSでECRからdocker pullをしようとした際にエラーが出てかなり解決に時間がかかってしまいましたので、その時の状況と解決方法を共有します。 エラー内容ECSでECRからdocker pullをしようとすると、以下のようなエラー文が出ました。 ResourceInitializationError: unable to pull secrets or registry auth: execution resource retrieval failed: unable to retrieve ecr registry auth: service call has been retried 3 time(s): RequestError: send request failed caused by: Post https
こんにちは。株式会社SHIFT DAAE部の栗山です。 今日はAWS Cognitoを「裏側」の認証・認可サーバーとして使用するためのAPIを紹介します。 CognitoにはHosted UIというログイン画面が組み込まれており、これを使用すると認証処理を実装したり、そのための画面を作成する必要はありません。パスコード認証画面も、SNS認証画面もすべてCognitoが用意してくれます。 しかしながら、このHosted UIはデザインの自由度が低く、とくに一般顧客向けのシステムでは利用するのはなかなか難しいと思います。そこで今回はHosted UIを使用せず、Cognitoに対してAPIサーバからアクセスするようにして、Cognitoの各種認証機能を使用するためのAPIを紹介したいと思います。 ※タイトルの「裏側」というのは、ユーザーが直接Cognitoにアクセスする構成ではなく、Cogni
はじめにこんにちは。SHIFT DAAE 開発グループ所属のsakuraiです。 NestJSとReactを利用した開発を行う中、 おなじTypeScriptで書いているのであれば、共通化したモジュールを利用したい。 フロントエンドとバックエンド単位ではなく機能単位でPRを作成したい。 という思いがあふれてきたので、npm workspaceを利用してモノレポ化しました。その際に実施したことを今後の為にまとめておこうと思います。 モノレポ化の手段についてまずは、モノレポ化の手段を検討しました。 Turborepo(https://turbo.build/)といったツールの利用 NestJSのMonorepo mode(https://docs.nestjs.com/cli/monorepo) といった方法もありますが、 npm v7以降から利用できるnpm workspaceを選びました。
はじめにSHIFTの三谷です。 11月から、新しいお客様先に入って仕事をしています。新しい環境にはワクワクしますが、お客様からの信頼を築き上げるまでが大変ですよね。私も「よーし、信頼されるようにコツコツ頑張っていくぞ」なんて考えていたんです。 しかし、そんな私にとって衝撃の出来事が起きました。 入って2日目にして、もうお客様から信頼を得てしまったのです。 (自分で言うのもなんですが、いったん語らせてください!笑) 一体何があったのか。 今回は、短期間でお客様の信頼を得るまでの一部始終を記事にしました。 私はIT業界でアジャイルに特化した部署に在籍していますが、今回の記事は、業界や職種に関係なく活かせる内容となっています。 ぜひ色々な方に読んでいただけたら嬉しいです。 参画前日|めちゃくちゃ踏み込む今回のお客様先には、私とSさん(私と同じくSHIFT在籍)がアサインされることになっていた。こ
はじめにSHIFT DAAE の shinagawa です。表題の通りNode.jsで作成したコンテナのイメージサイズの軽量化に挑戦しました。 背景近年の多様化・高速化するビジネスに対応するITシステムの構築を実現する「クラウドネイティブ」の構成要素の一つとして 「コンテナ」という仮想化技術が存在し、当部門でも活用を進めております。 このコンテナイメージを作成するにはアプリケーションコードやライブラリ・モジュールなどの依存物、ランタイム等を1つのイメージとして組み立てて作成しますが、 この構成要素が増えるとイメージサイズが肥大化し保管時のストレージのコストの増加やイメージの転送、環境への展開に時間がかかることになります。 従ってイメージのサイズを削減することは、これらの点を改善することにつながります。 ここではネット上で紹介されている、あらゆる打ち手を組み合わせてコンテナイメージの軽量化に
こんにちは、自動化アーキテクトの森川です。 アドベントカレンダーと言えばブログ、ブログといえばアウトプット、日ごろのアウトプットといえば日記かWIKIですよね。 ということで本日は去年の9月頃に技術検証をスタートして仮運用~公開まで1年ほどかけて育てた社内WIKIに関するお話をさせていただきます。 WIKI導入のきっかけ会社の成長に合わせて組織がスケールしています。 技術部門だけでも3年で4倍、500~600名の組織になり、技術ナレッジや人とスキルの情報共有が追いつかないという課題が発生しています。 もちろんこれらについてはスキルマップの整備や、情報可視化が正式な施策として進められています。一方でエンジニア・コミュニティな目線では、ナレッジを気軽にアウトプットして共有する草野球的な場所がほしいなぁ、と思いました。 『そうだ、エンジニア向けの社内WIKIだ!』 と思い、社内をかけまわって承諾
はじめにこんにちは、SHIFTの開発部門に所属している Katayama です。 GitHub Actions の CICD で、AWS 環境に Deploy する際に最も簡単なのは AWS のクレデンシャルを GitHub Actions のSecretに登録して、パイプライン(yaml)でそれを利用する事だと思う。 具体的には以下のような感じ。 - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v1 with: aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} aws-region: ap-northeast-
はじめにこんにちは、SHIFT の開発部門に所属しているKatayamaです。今期から転属になり、開発を担当していくことになりました。 現在、基本的な事から学ぶ研修中です。開発部門では新しく学ぶことがたくさんあり、それらを自身の振り返りアウトプットとして発信していけたらと思います。記事が溜まったら、noteのマガジンにもまとめる予定です。 今回はExpressのエラーハンドリングの実装方法について、その実装方法のオプションについてと、middlewareを使った実装方法について理解したので、それについてまとめておこうと思います。 Expressとはhttps://expressjs.com/ ExpressのデフォルトエラーハンドリングExpressにはデフォルトのエラーハンドリングが実装されており、以下のようなコードを書くとちゃんと500エラーが返ってくる。 const express
はじめにこんにちは、自動化アーキテクトの森川です。 本日はCircleCIのパイプラインに関するTipsです。 やりたいことCircleCIのクラウド環境でE2Eテストをまわすとき、VMからテスト対象へのアクセスが必要となります。 開発環境にIPアドレス制限がかかっていることは「あるある」です。 IPホワイトリストのオプション契約をしていれば万事解決ですが、POCフェイズではそのようなリッチな環境は望めません。 CircleCIで開示されているIPアドレスリストを使うのはセキュリティ的に難しい場合もあるでしょう。 IP アドレスの範囲 - CircleCI Note: Jobs can use any of the address ranges above. また、このアドレス リストは、本機能を有効化しているすべての CircleCI ユーザーと共有されることに注意してください。 そこで
はじめにこんにちは、SHIFT の開発部門に所属しているKatayamaです。 開発をしていく中に静的解析・構文チェックが常に走る状態になっておらず、開発後に一気に静的解析・構文チェックを実行すると、中々悲惨な事になってしまいます・・・。というわけで今回は JavaScript の開発をする上では必須とも言える静的解析・構文チェックツールである ESLint・prettier の設定を 1 からやってみたので、それについて書いていこうと思います。 合わせて、ESLint・prettier の設定に合わせた VS Code の設定も行ってみたので、それについても書いています。 ※なお、今回 ESLint の設定を行うプロジェクトは、Node.js で ES Modules を利用して実装しているものにります。Node.js で ES Modules を利用するための設定についてはNode.j
はじめにSHIFT DAAE部 shinagawa です。 最近、JSのランタイムである「Bun」が話題になっているのを目にしました。 ちょっと調べてみると、スピードやパフォーマンスについて注目されているようでしたが、 特に気になった点は、実装にZigという言語が利用されていることでした。 ※ Zigについて Zigは、アンドリュー・ケリーによって設計された命令型の汎用の静的型付けのコンパイル型システムプログラミング言語である。 この言語は「堅牢性、最適性及び保守性」向けに設計されており、コンパイル時のジェネリクス、リフレクション、クロスコンパイル及び手動メモリ管理をサポートしている。 Zig (プログラミング言語) - Wikipedia他の言語と比べて情報量がそれほど多くは無かったのですが、実行バイナリを小さくできる点と、 ビルドの標準のオプションでWasmが吐ける点が素晴らしいと思っ
はじめにはじめまして!SHIFT DAAE(ダーエ) 開発グループ所属の武藤です。 早速ですが、supabaseご存知でしょうか?最近試しに使ってみたところ、バックエンドに欲しい機能が簡単に作成できるサービスだったので、Webアプリケーションの開発デモを交えてご紹介します。 なお、当記事は2022/6/28時点の情報をもとにしています。 supabaseについてサービス概要subabaseは、認証やデータべースといったバックエンドに必要な機能を提供している、いわゆるBaaSの1つです。 BaaSの他サービスとしてはGoogleのFirebaseが有名ですが、supabaseはそのFirebaseに取って替わるサービスであると謡っています。まだPublic Beta版(企業以外のほとんどのユースケースに耐えうる)ではありますが、大きな注目を集めているオープンソースの1つです。 機能supab
はじめにSHIFT DAAE(ダーエ) 開発グループ所属の武藤です。 うっかりSolidJSに触れてみたら、沼にハマりそうです。そんな個人的に第一印象抜群のSolidJSは、高パフォーマンス&Reactの様にコードが書けることが特徴の、最近注目を集めるJavaScriptフレームワークです。 早速、ご紹介していきます。入門編としてご覧ください! SolidJSとは概要ReactやVueと同じく。宣言型のJavaScriptフレームワークです。仮想DOMを使用せず、一度作成された実DOMノードをSignalやMemoといったプリミティブの変化に伴い部分的に更新させることで、高パフォーマンスなUIを実現しています(SignalとMemoについては後程の実装で触れますので、分からない場合はとりあえず読み飛ばしていただいて大丈夫です)。 Reactの様に書けるJSX, Fragment, Cont
こんにちは。インフラエンジニアの北野です。 kustomizeを使用する機会がありましたので、そこで得た知見を紹介したいと思います。 kustomizeについて知りたいかたの一助になれば幸いです。 kustomizeとはKustomizeは、複数のKubernetesクラスターを管理する状況において、リソースの構成や設定などをYAML形式で記述したマニフェストファイルをシンプルに管理できる便利なツールです。 Kubernetesではリソースの構成や設定などをYAML形式で記述したマニフェストで管理を行います。 マニフェストに定義した構成や設定を、マスターノードに登録することで、「Infrastructure as Code」を実現しています。 インフラの設計や設定がCode化されていると、構築が大変捗りますよね。 しかし、実務において、使用するクラスターは一つだけではなく、開発環境、本番環
はじめにこんにちは、SHIFT の開発部門に所属している Katayama です。 バックエンドでは配置する資材のサイズについて気にする事はないが、フロントエンドの場合は違う。 ブラウザの読み込み速度は利用者の快適さに直結するので、できるだけフロントエンドの資材のネットワーク転送量は少ない方がいい。 そこで今回は、以下に挙げた 3 つの方法を使って、できるだけネットワーク転送量が少なくなるようにし読み込み速度を向上させるという事をやってみた。 ①webpack-bundle-analyzerを用いて webpack で build する際に bundle サイズを小さくする ②HTML/CSS/JavaScript を縮小する(minify) ③gzip による圧縮する 以下でそれぞれの方法についてみていく(①・② については、実際にその方法を試すのは純粋な webpack ではなく、Vu
はじめにこんにちは。SHIFTのインフラ・アーキテクトの岡田です。 テストツールのLocustを使用してAPIの性能テストを行う機会がありました。そこで得た知見を、よく使用する機能に絞って紹介したいと思います。「Locustを使ってすぐに性能テストを始めたい!」という方の一助になれば幸いです。 Locustって何?Locust( https://locust.io/ )はWebアプリケーションやAPIの性能テストを行うための、オープンソースの負荷テストツールです。同様のものとしてはJMeterやk6などが有名ですが、Locustの特徴は何といってもPythonでテストスクリプトを書けることです。 テストスクリプトは普通のPythonプログラムなので、使い慣れたIDEはそのまま使用できます。また、Pythonの豊富なパッケージを使ってテスト結果を処理したり、CI/CDに性能テストを組み込むこ
スクラムマスター目指して日々勉強中!SHIFTの三谷です。 先日、スクラムマスターの資格「PSM I」を無事取得しました!! やったー!! そこで、実際に取得した私の経験に基づいて、 PSM Iを取得することに、メリットはあるか? PSM Iの取得は、どんな人におすすめか? について、私の考えを述べたいと思います。 そもそもPSM Iって何?PSM(Professional Scrum Master)は、Scrum org.が認定しているスクラムマスターの資格です。 レベルはI~Ⅲまであります。PSM Iが最も易しく、スクラムガイドの記載内容と、その応用が問われます。 スクラムマスターの資格といえば、CSM(Certified Scrum Master)、LSM(Licensed Scrum Master)を想像する方も多いでしょう。その2つの資格との大きな違いは、以下の3つです。 研修の
RGAでインフラエンジニアをしている川合です。 以前SHIFT EVOLVEでOpenAPIについて発表したのですが、この時はライトニングトークだったということで持ち時間も少なく、あまり詳しくは話すことができなかったので、以下の2点についてここで少し詳しく書いておこうと思います。 OpenAPIというものはなにかの概要解説 OpenAPIを用いた開発手法について簡単な説明 ※元のスライドはこちらをご参照ください。 https://speakerdeck.com/shift_evolve/apihuasutofalsekai-fa ※コードはこちらにありますので合わせご参照ください。 https://github.com/kwryoh/oapi-sample OpenAPI とはOpenAPIはRESTful API記述方法のひとつです。 APIの各パスやリクエスト・レスポンスの形式の仕様を
はじめにこんにちは、SHIFT の開発部門に所属している Katayama です。 Node.js のプロジェクトに限らずだが、開発をする上では少なからず何かしらの OSS のライブラリに依存する事があると思う。 今回は Node.js を例に、ライブラリを利用する際にそのライブラリのライセンスをチェックする方法についてみていきたいと思う。 結論 どうやるのか?NPM License Checkerとsimple-git-hooks、lint-stagedを利用する。 [study@localhost node-express]$ yarn add --dev license-checker simple-git-hooks lint-staged { ... "scripts": { ... "prepare": "npx simple-git-hooks" }, "lint-stage
はじめにはじめまして!21年新卒としてSHIFT DAAE(ダーエ)開発グループに所属されました田中です。 DAAEでの新卒研修終了後、初めてアサインされたプロジェクトにてサーバーサイドKotlinを使ったDDD開発に取り組むことになりました。当初DDD開発未経験だった頃からそのプロジェクトに携わり早1年…、DDD開発の経験談やその魅力を少しでも共有できればと思いここにまとめます。 |DDD(ドメイン駆動設計)とはドメイン駆動設計の著者エリック・エヴァンスさんは、DDDは以下の4つから成り立つと言っています。 ・Focus on the core complexity and opportunity in the domain ドメイン(*1)の中核となる複雑さと機会にフォーカスする ・Explore models in a collaboration of domain experts
はじめにこんにちは、SHIFT の開発部門に所属している Katayama です。 Node.js(ES6 で実装)における ESLint・Prettier の設定を 1 からやってみたでは、以下のように書いていた通り、コードのスタイルルールは Prettier の設定にしつつも、ESLint にそのルールを組み込み、ESLint のチェック時にコードスタイルのエラーも表示されるようにしていた。 今回はフォーマットルールに沿っているか?も静的解析でチェックをしたい(ESLint のルールとして検証する構成にしたい)ので plugin:prettier/recommended を extends に入れる このように設定すると、Integrating with Lintersで触れらているように、以下の画像の通りエディター(VS Code)上でスタイルのエラーが表示され、煩わしかったりした。
はじめにこんにちは!Unit~E2Eのテスト自動化を生業にしている、いしいと申します。 ユニットテストに限らず、何かを始めようと思ったとき、人は様々な壁に直面しますよね。知識・経験の問題、コストの問題(金銭、時間)、メンタルの問題(納得感、不安感)、それらが複合的に結びつく社内政治的な問題などなど・・・。そして、それらの壁を乗り越えて第一歩を踏み出すことには大変な困難を伴います。 この記事では、ユニットテストを書いていくのにあたって、どのような壁・問題があるのかを確認し、それに対してどのようにアプローチをすれば乗り越えられるのかを考えていこうと思います。 ユニットテストの壁とその乗り越え方メンタルの問題根本的にモチベーションが上がらない それはユニットテストのメリットや魅力に理解、納得がいっていないからです。人間、無駄なことをやりたいとはなかなか思えません。仮に、無駄と思いながらやったとし
どうも自動化アーキテクトの森川です。 卵はどちらかといえば白身が好きな方ですが、どうやらそれは我が家が超固ゆで派で、いつも黄身がパサパサで月のミニチュアの様だったからだと思います。今では半熟卵が大好きです。 数年前にとある中堅Excel王国からSHIFTに転職した自分としては、なるべくExcelマクロやVBAには触れずに純粋なプログラミング言語やフレームワークを触って過ごしたいと常々思っています。 しかしながら望むようにはならないものです。 VBAであれこれExcelのIN/OUTを自動化したり、COMコンポーネントで自動処理したり、まだまだMS-Officeと業務は切っても切れない我々人類なのですね。 先日もとある自動ツールをVBAで開発していましてGitでバージョン管理していましたが、なにぶんExcelファイルはZIPアーカイブみたいなものですから変更履歴がさっぱり見えない。 コミット
こんにちは。CAT推進グループ 小田柿 です。 最近はKubernetesでのGitOpsが流行っていますよね。でもうちはKubernetesなんて使ってないレガシー環境だし、そんな意識の高い概念は無関係だと思っている方も多いかと思います。 でもGitLabの定義によればGitOpsとは、 (引用) GitOpsを実践しているインフラチームは、コードとして保存された設定ファイル(Infrastructure as Code)を使用します。 インフラチームはIaCを使用して、マージリクエストで変更を実施するようになります。インフラの変更がコード化され、再現性があり、追跡可能になります。ヒューマンエラーが発生する余地が少なくなり、全員で同じ情報を共有できるようになります。 (参考)GitOpsとは とのことなので、コンテナもKubernetesも関係なく、バージョン管理システム上にCI/CD用
こんにちは、テスト自動化アーキテクトの坂本です。 みなさん、E2E自動テストされていますか? 今回は、PlayWrightについて紹介します。 PlayWrightは、2020年2月にリリースと比較的新しく、Selenium,Cypressなどと比較すると認知度はまだまだです。 しかし、後発のツールということもあり、色んな便利機能があります。 そんなPlayWrightの魅力の一部を紹介したいと思います。 PlayWrightってなに? Microsoftが中心になって開発しているブラウザを操作するためのライブラリです。簡単にいうとE2Eテストツールです。 サポートしている言語は、Node.js(javascript,typescript), Python, Java, .NETと幅広く対応しています。対象ブラウザはChromium / Firefox / WebKit / Chrome
『IT自動化の力でビジネス加速を全ての企業に』”IT自動化の専門会社”、リアルグローブ・オートメーティッド(RGA)技術ブログ編集部の馬塚です。今回のnoteは、これまでの技術情報の配信から毛色を変えて、インフラエンジニアでない技術者でも Kubernetes を活用してコンテナアプリケーションの開発ができるようになったお話をエピソード形式で投稿します! このnoteを読んで、自分もコンテナ技術の活用にチャレンジしてみよう!と思ってくださる方がいらっしゃれば嬉しいです。 前編と後編の2本立てでお届けいたしますー。 ―――――――――――――――――――――――――――――――――― 私がインフラエンジニアとして駆け出しの新人だったころ、Kubernetes (以下、k8s) については「すごく便利なツールがあるらしい」程度の知識しかなかった。それまでは web アプリ開発などコードを書く業
次のページ
このページを最初にブックマークしてみませんか?
『SHIFT Group 技術ブログ』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く