サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
猫
blog.cybozu.io
「ソフトウェアテストをカイゼンする50のアイデア」勉強会を実施しました! こんにちは!Officeチーム所属のAndroidエンジニア、宮﨑(@Tirobou999)です。 先日、社内で 「ソフトウェアテストをカイゼンする50のアイデア」の勉強会 を実施したところ、 テスト改善のモチベーションの高いメンバーが多く集まり、議論が非常に盛り上がりました。 皆で議論している中で、非常に中身の濃いアウトプットが出てきたので、 これを 社外に発信しないのはもったいない と思い、今回ブログを書かせていただきました! 勉強会を開催した背景 今回、勉強会を開催した理由ですが、 先日行われたJasst2024に参加した際、 Fifty Quick Ideas To Improve Your Tests」(日本語訳:「ソフトウェアテストをカイゼンする50のアイデア」) について紹介されているセッションがあり、
こんにちは!DOGO プロジェクトでソフトウェアエンジニアとして活動している @nissy_dev です。 DOGO プロジェクトでは、画面刷新を進めていく中で CI の実行時間が長く不安定になってしまい、開発生産性に大きな影響が出ていました。今回の記事では、CI の課題改善のために取り組んだことを紹介します。 目次 DOGO について CI を改善することになった背景 CI の改善のために取り組んだこと ビルド時に tsc を実行しない .next/cache を除いて、artifacts にアップデートする E2E テストをより多くの shard 数で分割する Playwright のブラウザのインストールをキャッシュする PR ではコード差分に関連するテストのみを実行する Hydration の挙動によってテストが flaky になっていた問題の解消 CI の改善の結果 今回取り組ま
クラウド基盤本部Cloud Platform部の pddg です。この前までチームだったんですが部になったらしいです。 引き続き精力的に cybozu.com のインフラ基盤の移行に取り組んでいます。 今回はKubernetesマニフェストのバリデーションのための仕組みを検討していたときに発見した、GitHub Actionsのちょっとハックっぽい、もしかしたら便利かもしれない手法について紹介したいと思います。 TL; DR 背景 テナントごとに分散しているマニフェスト kubeconformによるバリデーション テナントもNecoが使っているスキーマ定義ファイルを使いたい! internalリポジトリのclone トークンの作り方 GitHub Actionsのカスタムアクション GITHUB_ACTION_PATH には何が入っている? ファイルを配布するアクションを作る パラメータで
こんにちは。サイボウズ・ラボの内田( @uchan_nos )です。 SSD の自作という活動について、キオクシア株式会社の社員(元キオクシアを含む)にお話を伺う機会がありましたので、ご紹介します。 インタビューの様子は、電子の森ラジオ(電子工作とプログラミング系ポッドキャスト)にて配信しています。 エピソード 019 自作SSD 打ち合わせの様子 普段の収録と異なり、今回は企業からオフィシャルな立場で収録に来てくださるということで、事前に打ち合わせを行いました。 収録に向けた打ち合わせの様子 弊社の東京オフィスにある会議室での打ち合わせの様子です。 写真の左から順に、内田(サイボウズ・ラボ)、日下様(キオクシア)、米澤様(キオクシア)です。 事前の打ち合わせでは、主にどのような話をするかと、出してはいけない話題について確認しました。 企業の看板を背負って出演することの責任をひしひしと感じ
Garoon開発チームのぱくとま (@pakutoma) です。 Garoon開発チームを紹介する全5回の記事も今回が4回目です! 前回:GaroonのFour Keysを改善するHanamiチームの紹介 今回は、Garoonのパフォーマンスを改善する新チーム、Nozomiチームを紹介します! Garoonをストレスなく使ってもらうためのチーム Nozomiチームは、Garoonのパフォーマンス改善に取り組むチームです。 Garoonをたくさんの人にストレスなく使ってもらうことを目標としています! パフォーマンス改善に取り組むNozomiチーム Garoonは、数万人規模の大企業でも活用していただいています。 数万人のお客さまが毎朝一斉にメールチェックをしたり、一日のスケジュールを確認したりする時間帯がGaroonのピークタイムになります。 そんな時にGaroonがもっとサクサク動作するよ
こんにちは、kintone フロントエンドリアーキテクチャプロジェクト(フロリア)でエンジニアをしているはた丸です。 昨今は何かとSDGsが話題になる世の中なので、フロントエンドのテストコードも持続可能なものを作っていきたいと考えています。 この記事ではフロリアのチームの1つであるMiraチームがテストを自動化するうえで意識していることをお伝えします。 自分のチームに自動テストを導入できるか不安な方、導入後に継続できるか心配な方に寄り添えると嬉しいです。 はじめに、Miraチームの概要やテスト手法の全体像について知りたい方は、次の記事をご覧ください。 目次 📝 前提 ♻️ Integrationテストをがんばる a11yを意識した実装をしておく ヘルパー関数を用意する QAとエンジニアで協調する ♻️ E2Eテストをがんばりすぎない おわりに サイボウズではフロントエンドエンジニアを募集
こんにちは。DOGO(どうご)チームのまっつー(@ryo-manba)です。DOGO チームでは、「サイボウズ Office」 のフロントエンド刷新を行っています。この記事では、フロントエンド刷新を進めていく中で取り組んでいるアクセシビリティ改善について紹介します。 ※ この記事は Cybozu Frontend Advent Calendar 2023 の 1日目の記事です。 DOGO とは 刷新前の問題点 アクセシビリティ改善の取り組み 輪読会の実施 OSS をフル活用したコンポーネント実装 改善事例:DatePicker Poca11y チームとの協力 おわりに DOGO とは DOGO は、サイボウズ Office のフロントエンドを刷新するプロジェクトです。独自のスクリプト言語で書かれた MPA(Multi-Page Application)を、Next.js の App Rou
こんにちは、サイボウズでスクラムマスターとして働いている村田です。 2023年8月から kintone の新規機能を開発するチームに移動し、週3日(火水木)勤務で専任スクラムマスターとして活動しています。 それ以前の約1年間は、kintone のヘッダーを React 化するチームでスクラムマスターとエンジニアの役割を兼務していました。 活動紹介 blog.cybozu.io 以前所属していたチームはゴールを達成して現在は解散しています。この活動で得られた学びを Spotify で配信しているので、お時間があればこちらも聞いてみてください。 open.spotify.com 今回は前と今のチームでスクラムマスター兼務と専任両方の経験を通して得た違いを共有したいと思います。 兼務時代 スクラムマスターとエンジニアの兼務を始めた理由 エンジニアとスクラムマスターの兼務を始めたのは今から2年前で
こんにちは。 フロントエンドエキスパートチームの BaHo です 2023 年 10 月 31 日(火)にサイボウズのフロントエンドエンジニア主催で第一回BARフロントえんどうを開催しました。 本記事では、当日の様子やセッションについて紹介します。 BAR フロントえんどうとは BARフロントえんどうは Web フロントエンドのトピックをテーマに、登壇者や参加者の間で情報を共有することで知見を深めてもらおうというコンセプトの勉強会です。 第一回は「フロントエンドリアーキテクト」をテーマとして開催しました。 セッション内容 今回はメインセッションとして Japan Node.js Association の古川さん、株式会社出前館の白石さん、株式会社サイボウズの Nokogiri さんのお三方に発表していただきました。 発表間に設けた質疑応答タイムでは多くの参加者から質問があり、どの発表も盛
ご覧いただきありがとうございます。 涼しくなってきましたが、皆様いかがお過ごしでしょうか? 広告が関係ないシステムはサードパーティクッキーへの影響はないと思っていたので寝耳に水だったのですが、 社内システムにて、サードパーティクッキー規制影響するケースが判明しました。 システムへの影響が大きいことが分かったので、現象および影響についてまとめます。 みなさまの対応状況や誤った記述の指摘など、コメントやSNSコメントなどで教えていただけますと大変参考になります。 サードパーティークッキー概説や規制の経緯はインターネット上に詳しく書かれたものがあるのでそちらを参照してください。 本格化するサードパーティ・クッキー規制 Firefoxではサードパーティクッキー規制がデフォルトでロールアウトされています。 Safariは以前よりサードパーティクッキーを規制していました。Chrome, Edgeでも規
こんにちは、kintoneチームの川向です。 ソースコードハッシュ値計算ツールであるsverを導入してCIの高速化を行ったので、その紹介をさせてください。 この仕組みにより、通常は1時間かかるCIの実行時間が最善のケースでは20分程度に短縮可能になりました。 導入前の課題 解決方法の検討 sverを使ったテストのスキップによるCI高速化 kintoneでのsverの利用方法 sver設定ファイルの書き方 キャシュの保存先(GitHub Actions Cache、Amazon S3) sverを使ったジョブの書き方 sver情報生成ジョブ: ハッシュ生成とキャッシュの存在確認 ビルドジョブ: 依存ファイル以外に依存しないことの確認 テストジョブ: ジョブ成功後にキャッシュ保存 下流ジョブのifの書き方 結果 課題と今後の展開 まとめ 導入前の課題 kintoneのCIの大まかな構成は以下の
こんにちわ。フロントエンドエキスパートチームの@nus3_です。 最近、社内用の npm パッケージを作る必要があり、そのパッケージは依存が少なく、実装もシンプルだったので、npm パッケージの作成には Deno と dnt を採用しました。 dnt とは dnt は Deno で実装したモジュールを CJS、ESM に対応した npm パッケージに変換してくれるビルドツールです。 使い方も簡単で、次のように dnt が提供するbuild関数にエントリーポイントや出力先などの必要な情報を渡すだけです。 import { build } from "https://deno.land/x/dnt@0.38.1/mod.ts"; await build({ entryPoints: ["./mod/index.ts"], // Denoで実装したモジュールのエントリーポイント outDir:
Garoon Hanamiチームの土屋(@tsuchikazu)です。以前、この記事 Garoon開発チームを紹介します! 2023 でGaroonの開発チームの全体について紹介しました。今回は、その中の1つであるHanamiチームについて紹介します。 PHP Conference 2023でもHanamiチームでの取り組みを、チームメンバーが発表しました。そちらもぜひご覧ください。 speakerdeck.com Hanamiチームとは リリースプロセスを改善するチームです。現在、Webエンジニア 4人、QAエンジニア2人の6人(そのうち他チームとの兼務が3人)で構成されています。 Garoonは20年以上前にパッケージ製品からスタートし、その後クラウド版のサービスの提供も開始しました。クラウド版のリリースプロセスも、パッケージ製品時代のプロセスを模倣しており、以下のような課題を抱えてい
DOGOプロジェクトのマスコット こんにちは。サイボウズOffice開発チームの西谷です。 昨年より、私たちは”DOGO”と銘打ち、サイボウズOfficeのフロントエンド部分をNext.js App Routerを用いて刷新しています。 本ブログではこの刷新プロジェクトの概要やこれまでの取り組みについてご紹介します。 プロジェクト発足の背景 刷新の方針 刷新後のサイボウズOfficeを支える技術 アプリケーションフレームワーク モニタリング テスト インフラ CI・CD これまでの取り組み Next.js側で画面のルーティングを制御する リリースパイプラインの構築 全画面共通部分の実装 今後の取り組み メンバー募集しています! プロジェクト発足の背景 サイボウズOfficeはこれまで、パッケージソフトウェアとしていくつものバージョンを重ね、クラウドサービスへ転身し、時代に合わせて様々な形に
こんにちは。サマーインターンシップ2023のKubernetes基盤開発コースに参加した、高橋 (TAK848) と花田 (hanapedia) です。 Necoチーム では現在コンテナレジストリの可用性を高めるため、コンテナレジストリミラーをクラスタ内にデプロイしています。 しかし、クラスタが数百台程度まで大きくなり、レジストリミラーからコンテナイメージを同時に大量にPullするようになりました。 そのため、イメージの取得に数十分もの時間がかかってしまう問題が起きました。 この問題に対処するため、Spegel というステートレスなレジストリミラーの動作検証を行い、PodのイメージのPullのタイミングを制御するカスタムコントローラー cat-gate を開発・検証しました。 その成果を紹介します。 課題 KubernetesではPodを起動する際、コンテナイメージを取得する必要があります
こんにちは、はじめまして。 グローバル向けAWS版kintoneのバックエンドエンジニアをしている齋藤 ( K.Saito (@SightSeekerTw) / X ) です。 突然ですが、Kubernetes にWebアプリケーションのコンテナをデプロイするために Deployment を作成し、 Deployment によってデプロイされた Pod に Service を経由してリクエストを転送していることが多いと思います。 Deployment のローリングアップデート (strategy type が RollingUpdate) により更新を行った際には紐づく ReplicaSet が新たに作成され、その ReplicaSet に紐づく Pod がデプロイされ、更新前の ReplicaSet の Pod が停止/削除されていくわけですが、皆様は何をもって新しい Deploymen
こんにちは! 2023年新卒エンジニアの伴野・谷・和渕です。 サイボウズでは、2023年エンジニア新人研修の集大成として、チームに分かれてソフトウェア開発を行う実践演習が行われました。この記事では、各チームがどんな成果物を作成したのかを、チームごとにご紹介したいと思います。 エンジニア新人研修全体については以下の記事で詳しく紹介されています。ぜひそちらもご覧ください。 blog.cybozu.io 概要 実践演習では3チーム(「チーム gogo!」・「明日から」・「TEMBIN」)に分かれ、それぞれ一つのソフトウェアを2週間で開発しました。「サイボウズ流チーム開発を新メンバーだけで実践できた」「未知見の課題に対してどう行動すればよいか考えるきっかけになった」というコンセプトのもと、自由な発想で取り組みました。 チーム gogo! チーム gogo! では、演習開始時に Mastodon や
こんにちは!kintone フロントエンドリアーキテクチャプロジェクト (フロリア) で、エンジニアとして活動している @nissy_dev です。 以前投稿したチーム紹介記事の中で、コンポーネント単位での共通ヘッダー部分の React 化に取り組んでいることを紹介しました。それから約半年の期間を経て、React 化した共通ヘッダーを全ページへ適用することができました。kintone の7月版のアップデート情報にも記載されています。 今回は、このリリースの流れや技術的な詳細について紹介したいと思います。技術的な内容については、昨年の 12 月にマイクロフロントエンドに挑戦しているという記事を公開しているので、マイクロフロントエンドを実際に適用してみた感想などにも触れたいと思います。 目次 React 化した共通ヘッダーの全ページへの適用 リリースの詳細な流れ Closure Tools に
ご覧いただきありがとうございます。 皆様は RFC7644 SCIM と呼ばれる仕様はご存じでしょうか。 SCIMとは"System for Cross-domain Identity Management" の略で、システム間でのID管理を自動化する機能です。 この機能を実装すると、Microsoft Entra ID(旧Azure AD)やOktaなどのID管理システムでのユーザー情報の変更を自動的に連携先のシステムに反映させることができます。 Microsoft Entra IDやOktaなどId管理システムは連携用のカタログを公開しており、数クリックで連携させることができます。 Microsoft > Tutorial: Configure Kintone for automatic user provisioning Okta > Cybozu (cybozu.com) 本記事で
主催のkoba04による写真 こんにちは、フロントエンドエンジニアの@shisama_です。 6月30日にサイボウズ東京オフィスで開催された「Cybozu Frontend Day 2023」の資料と開催レポートを公開します。 「Cybozu Frontend Day 2023」は、サイボウズのフロントエンドエンジニアが集まりフロントエンドに関する知見を共有する社内イベントです。 発表資料 発表資料は以下の通りです。発表者が公開している一部の資料については、発表者の許可を得て掲載しています。 Pages RouterとApp Routerでのi18n対応の違い 発表者: @nissy_dev zenn.dev 誰でも簡単⁉️👀 絵文字ができるまで😃👍 発表者: @oguemon_com speakerdeck.com Node Streamでメモリ性能改善、そしてWeb Stream
こんにちは。シニアスクラムマスターの天野 @ama_ch です。 サイボウズの開発組織において、今後の成長を加速させるためには、組織の基本単位をスクラムチームのような自律的な小さなチームにしてスケールさせることが非常に大切だと考えています。サイボウズは比較的スクラムが普及している組織ではありますが、組織内のすべてのチームがスクラムを採用しているわけではありません。 フレームワークとしてスクラムを採用するかどうかはチームの自由です。しかし、健全なチーム環境を整えることはすべてのチームにとって重要です。チームやチームワークに関する情報は巷に多く存在しますが、我々のようにすでにある程度の規模で活動しているプロダクト開発組織で、チーム環境を整えるために実践的に使える情報がないことが悩みでした。 そこで、これまでのチームに関する学びと実践を踏まえ、サイボウズの開発組織の文脈において、スクラムを実践し
こんにちは。kintoneチーム所属Androidエンジニアのトニオ(@tonionagauzzi)です。 本日は、社員の誰でも気軽に情報発信できるようにするにはどういった仕組みやマインドがあるとよいのか、一部の社員で話し合ったことを共有します。 背景 話し合った内容 Q&A 意見 おわりに 背景 サイボウズでは、技術ブログの「Inside Out」やコンテンツメディアの「サイボウズ式」など、社員の誰でも積極的な発信ができる環境をさまざまな形で提供しています。 しかし、いざ自分で発信するとなったら、サイボウズの社員にはまだまだ心理的ハードルがあるようです。 私はキャリア入社1年目ですが、前職時代は気軽に個人発信や会社のQiita Organization、技術書典などで発信をしてきました。 もっともっと発信をしたい!という想いを持ってサイボウズにやって来ましたが、数ヶ月経ってみると、会社の
開発本部 People Experienceチーム オンボーディング担当の久宗(@tignyax)です。 2023年もエンジニア新人研修を行いましたので、軽い紹介と、講義資料および一部講義動画を公開いたします。 2023年のエンジニア研修について コンセプト 今年のエンジニア研修のコンセプトは以下です。 (例年のコンセプトからアップデートを行いました。) 『新入社員メンバーに、"自信を持ってチームにジョインできた!" 』 コンセプトを実感できるように、以下のことを学んだり体験してもらえるようなエンジニア研修を設計していきました。 開発・運用本部のチーム/人や体制、風土/文化 これからのチーム活動となる前提、共通の知識 具体的な方法としては以下のコンテンツになります。各コンテンツにもそれぞれコンセプトを設定しました。 学習コンテンツ(リアル講義・動画視聴) チーム体験 配属面談 実践演習 ス
こんにちは、サイボウズの永田です。 私は、サイボウズの開発本部、アジャイル・クオリティで、アジャイルの品質を探求する活動をしています。 この記事では、2023年3月9日、JaSST Tokyo 2023のテクノロジーセッションで発表させていただいた内容を、より解説を入れながら紹介します。 結合テストの自動化にQAはどうかかわっていったか 今回取り上げる事例では、kintoneのフロントエンド刷新プロジェクト(フロリア)で結合テストの自動化を決定した際に、QAメンバーがどのように関与し、困難に直面しながらも、信頼性の高いテストコードを作成するに至るまでの過程をご紹介します。 フロリアについては次のブログをご覧ください。 blog.cybozu.io テストのポリシー ~このミッションにおけるQAのチャレンジ~ フロリア内で新しく3つのチームが立ち上がった際、各チームのテスト戦略の中心を、自動
はじめに こんにちは、モバイルエンジニアのオジマです。 Swiftにはバージョン 5.1からProperty Wrapperという強力な言語機能が追加されています。SwiftUIの@Stateなどでも馴染みが深いのではないでしょうか。 Property Wrapperは@StateなどのすでにAppleが用意しているもの以外にも、自身でオリジナルなProperty Wrapperを作成し利用することができます。私が携わっているプロダクトでも自作のProperty Wrapperを利用しています。 今回、サイボウズのiOSプロダクトで利用している自作のProperty Wrapperのうち2つをOSSとして公開しました。 この記事では、公開したそれぞれのProperty Wrapperの利用方法について紹介します。 CachePropertyKit 概要 CachePropertyKitはi
こんにちは! kintone DXチームでエンジニアをしている tasshi です。 今回はkintoneエコシステムの開発者体験(Developer eXperience: DX)を向上させる、私たちの活動について紹介します。 3行まとめ エコシステム開発者向けのSDKや、管理者向けのCLIツールなどを開発しています 利用ライブラリへのOSSコントリビューションも業務時間内に行っています 英語をチームの第一言語として活動しています 目次 3行まとめ kintone DXチームってなんですか? kintone DXチームのビジョン・コンセプト ビジョン コンセプト kintone DXチームのプロダクト kintone/js-sdk cli-kintone (v1) 利用ライブラリへのOSSコントリビューション 1. yargs/yargs#2269 2. axios/axios#5614
こんにちは。新規IAMプロダクトでフロントエンドアーキテクトを担当している@shisama_です。 この記事では、開発スピードを上げるためにGitHub Actionsを使ってプルリクエストごとにレビュー用の検証環境をGoogle Cloud Run(以下、Cloud Run)に構築する仕組みについて紹介します。 今回紹介する内容のサンプルのリポジトリはこちらになります。 github.com この仕組みは業務委託でお手伝いいただいていた@chimame_rtさんが考案し設計してくれました 👏 はじめに フロントエンドチームが抱えていた課題 プルリクエストごとに Cloud Run に検証環境を構築する Step 1. プルリクエストにラベルを適用して GitHub Actions を起動 Step 2. Next.js のビルド Step 3. Google Cloud の認証 Ste
サムネイル こんにちは、フロリアでエンジニアとして活動している irico です。 現在 kintone ではフロリアというプロジェクトの中で、Closure Tools から React への移行作業に取り組んでいます。 今回は、そのフロリアのチームの 1 つである Reactone チーム が採用した「Storybook をフル活用したテスト手法」についてお話します。 Storybook によるテストアプローチ Storybook の v6.4 から play 関数が導入され、v6.5 から Interaction tests が可能になりました。 これによって Story 上でテストを実行するだけでなく、実行したテストの動作確認がブラウザ上で可能になりました。 今までは Jest や Vitest 上で Testing Library を利用する際、DOM 操作の視覚的な確認が難しく
こんにちは、Cy-PSIRTの久保です。本記事では報奨金制度の通年実施のご案内と、昨年分の振り返りについてお知らせしたいと思います。 サイボウズ脆弱性報奨金制度とは サイボウズ脆弱性報奨金制度は、弊社サービスに存在する脆弱性を早期に発見・改修することを目的とする制度です。対象製品の脆弱性を報告いただいた方に、謝礼として報奨金をお支払いしています。検証に際して参加者ごとに専用の環境を提供しており、本番環境への影響を気にすることなくご参加いただけます。 cybozu.co.jp 脆弱性報奨金制度 (通年) 期間 2023年4月21日(金) から通年で実施 今年から年度間の休止期間を挟まず、通年での実施となります。 ルール 脆弱性報奨金制度のルールは脆弱性報奨金制度ルールブックおよび、脆弱性認定ガイドラインをご覧ください。また、対象製品はサイボウズ脆弱性報奨金制度の「対象となる製品・サービスおよ
次のページ
このページを最初にブックマークしてみませんか?
『Cybozu Inside Out | サイボウズエンジニアのブログ』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く