サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
掃除・片付け
blog.cybozu.io
こんにちは、Cy-PSIRTの久保です。本記事では報奨金制度の通年実施のご案内と、昨年分の振り返りについてお知らせしたいと思います。 サイボウズ脆弱性報奨金制度とは サイボウズ脆弱性報奨金制度は、弊社サービスに存在する脆弱性を早期に発見・改修することを目的とする制度です。対象製品の脆弱性を報告いただいた方に、謝礼として報奨金をお支払いしています。検証に際して参加者ごとに専用の環境を提供しており、本番環境への影響を気にすることなくご参加いただけます。 cybozu.co.jp 脆弱性報奨金制度 (通年) 期間 2023年4月21日(金) から通年で実施 今年から年度間の休止期間を挟まず、通年での実施となります。 ルール 脆弱性報奨金制度のルールは脆弱性報奨金制度ルールブックおよび、脆弱性認定ガイドラインをご覧ください。また、対象製品はサイボウズ脆弱性報奨金制度の「対象となる製品・サービスおよ
サムネイル こんにちは!kintone のフロントエンド刷新プロジェクト(フロリア)の@nkgrnkgrです。 フロリアでは、kintone のフロントエンドの ClosureToolsで書かれたコードを React に置き換えています。 本記事では フォーム画面の UI の状態管理に使うライブラリを選定する際に、どのような検証と意思決定を行ったかについて紹介します。この記事が UI の状態管理を行う際に何かの参考になれば幸いです。 kintoneのアプリ作成フォーム はじめに アプリ作成フォーム画面 アプリ作成フォーム画面とは? ユーザーの操作と状態管理で考慮すべきこと ライブラリを選ぶ上での前提 今回の選定で考慮したライブラリの種類と特徴 3つのライブラリの特徴 Redux(ReduxToolkit) について Zustand について Jotai について 利用状況とプロダクト要件を
こんにちは。SRE/データストアチーム の飯塚です。 私たちのチームではデータベースを代理で操作したり情報を取得したりするサービスをいくつか作り、それをプロダクトチームが利用できるように gRPC 経由で提供しています。ところで、ある日突然「分散トレーシングを活用していくことになったので、あなたのチームのサービスも対応させてください」とお願いされたらどうすればよいでしょうか?私はこれまでにいろいろなカンファレンスで分散トレーシングや OpenTelemetry についての講演を聞いていたので、理念は理解した、便利そうだ、導入してみたい、と思ったことは何度かありました。しかし実際に導入しようとして SDK のドキュメントを開いてみると、理解しなければいけない(ように見える)概念や、使い方をマスターしないといけない(ように見える)API の数に圧倒されてしまい、後回しにしてしまっていました。
初めに kintoneチームの前田です。 kintoneはサーバーサイドがJavaで書かれていて、最近ではこれが結構な分量になっており開発上の障壁となっています。 その解消のため、kintoneチームではコード分割を進めています。 今回は、コード分割の目的や具体的方針、取り組みをチームでうまく進めていくための工夫、 これまでに得られたことや今後の見通しについてご紹介します。 コード分割とは kintoneがリリースされてから10年経過し、その間に継ぎ足し継ぎ足しでコードが追加されてきました。 最近ではコード行数が35万行を超えてなお増えており、それに伴い複雑性も増している印象があります。 このまま何もしないと、コードの調査や影響範囲を確認するのがどんどん大変になっていったり、 新しくチームに参加した人がコードを把握するのにいままで以上に時間がかかってしまうことが懸念されます。 このような問
こんにちは。シニアスクラムマスターの天野 @ama_ch です。 サイボウズ開発本部では、2022年5月に大規模な組織変更を実施しました。詳細は下記の記事をご覧ください。 blog.cybozu.io 今回の組織変更では、職能ラインと人材マネージャーを整備した結果、新たにスクラムマスター職能が誕生しました。 本記事では、スクラムマスター職能を作った背景や、現在の取り組みを紹介します。 サイボウズ開発本部におけるスクラムマスター職能の定義 サイボウズ開発本部におけるスクラムマスターの責務は、「チームを健全に保つことに責任を持つ役割」と定義しました。2020年版スクラムガイドには、スクラムマスターは「スクラムガイドで定義されたスクラムを確⽴させることの結果に責任を持つ」と書かれていますが、組織のすべての人がスクラムチームに所属しているわけではないため、チームがスクラムをしているかどうかは職責に
開発本部 People Experience チーム内にあるコネクト支援チーム所属の西原 @tomio2480 です。 2023 年が明けてすぐ 1/10(火) から 1/13(金) に開催された「 Regional Scrum Gathering Tokyo 2023 」にサイボウズはシルバースポンサーとして協賛しました。これに関連して Day2 にスポンサーセッションを行いましたので、そのレポートを記します。 サイボウズのスクラムマスター育成・評価事情を語る会 開発本部では昨年末にあった組織体制の変更に伴い、スクラムマスター職能に約 15 名のメンバーが所属することになりました。これにあわせて、スクラムマスターの成長支援や評価の体制を今回登壇する 3 名が整備しました。本セッションは新たに整備された新体制について、対談形式のセッションでした。実際に公開されたセッション概要は、以下 Co
初めに こんにちは! kintone開発チームでソフトウェアエンジニアをしている池田 (@motacapla) です。 今回が初投稿となります、よろしくお願いいたします! kintoneではHTTPリクエストのURLをルールベースで処理して書き換えたり、特定の属性値を設定するため UrlRewriteFilter (以降urlrewriteと呼びます) という機構を利用していました。 しかしながらurlrewrite自体は既に10年以上リリースがなく、複数のルールに当てはまるリクエストも存在しており、メンテナンスや学習のコストが高まっている問題がありました。 このurlrewriteで実現している処理は Spring Frameworkの標準的な機能で代用することが出来るため、有志の方が集まって2022年夏頃から移行作業を進めていました。 移行時の課題と解決策 今回の移行では、主に3つのポ
1. はじめに こんにちは!kintone 開発チーム所属モバイルソフトウェアエンジニアのトニオ(@tonionagauzzi)です。 Cybozu Advent Calendar 2022 の24日目の記事です。 私が所属しているkintoneモバイルチームではモブプログラミングが浸透しており、開発作業の7割以上をオンラインで画面共有するやり方でモブプロしています。 そのモブプロに関する記事ですが、今回は、既にモブプロをやっているkintoneモバイルチームに新人の私が入って感じた抵抗感についてです。 私が9月に入社してから4ヶ月間の抵抗感と乗り越え方について紹介することで、次に来る新人さんを「大丈夫だよ」と後押しできれば幸いです! ※ 本記事におけるモブプロとは、一般的なモブプロではなく、kintoneモバイルチームが採用しているモブプロのことを指します。 2. モブプロの基本 モブプ
この記事は Cybozu Advent Calendar 2022 の20日目の記事です。 はじめまして、QAエンジニアのなかたです。 私はkintoneのフロントエンドリアーキテクチャプロジェクト(フロリア)の共通ヘッダー部分のReact化を担当するAppShellチームに参加しています。 AppShellチームはスクラム開発を採用したクロスファンクショナルなチームです。今回はチームに参加して取り組んだこと、感じたことについてお話ししたいと思います。 フロリアの詳細、AppShellチームの詳細については次の記事をご覧ください。 エンジニアとの距離が遠かったテスター時代 私は以前テスターとして従事し、テストの設計と実施を中心に行っていました。 テスターとエンジニアは拠点が異なり、直接コミュニケーションをとる機会はほとんどありませんでした。 仕様や挙動に関する疑問が出たときのやりとりをテキ
フロントエンド刷新プロジェクトの開発サイクルを加速するデプロイパイプラインの改善 この記事は Cybozu Advent Calendar 2022 の 19 日目の記事です。 18 日目はこちら → チームメトリクスと感情データを活用した「ふりかえり」の手引き 20 日目はこちら → エンジニアとの距離が近くなっていいことたくさんだったQAの話 こんにちは!! kintone フロントエンドリアーキテクチャプロジェクト (フロリア)のAppShell チームでプロダクトオーナーをしている tasshi です。 kintone フロントエンドリアーキテクチャプロジェクト (フロリア)、およびAppShellチームについてはこちらの記事をご覧ください。 今回はフロリアの開発で利用しているテスト環境へのデプロイパイプラインを紹介します。 目次 フロントエンド刷新プロジェクトの開発サイクルを加速
みなさんこんにちは。kintone フロントエンドリアーキテクチャプロジェクト(フロリア)で、エンジニア兼スクラムマスターとして活動している村田(@kuroppe1819)です。 この記事は、Cybozu Advent Calendar 2022 の 18 日目です。 17 日目はこちら → バンドルサイズに優しい tree shakeable なライブラリを作成する 19 日目はこちら → フロントエンド刷新プロジェクトの開発サイクルを加速するデプロイパイプラインの改善 現在、フロリアには兼務も含めて約 30 人のメンバーが参加しています。フロリアは小さな 4 つのクロスファンクショナルチーム体制で、それぞれが独立したスクラムチームとして活動しています。 今回はその中のひとつのチームである、kintone の共通ヘッダー部分の React 化に責任を持つチームで運用しているふりかえり手法
こんにちは。開発部のyokotaso です。 アプリケーションの基礎的な部分で3rd-partyライブラリが大量に使われているときHyrumの法則はよい気付きを与えてくれます。 With a sufficient number of users of an API, it does not matter what you promise in the contract: all observable behaviors of your system will be depended on by somebody. [拙訳] API利用者が多い状況下では、プログラムの仕様は意味をなしません: システムの観察可能な挙動に誰かが依存するからです。 https://www.hyrumslaw.com/ サイボウズのJava系のプロダクトはJava6の時代から開発が続けられています。 Java6時代
こんにちは。cybozu.com Cloud Platformチームの pddg です。Cloud Platformチームでは現在、精力的に cybozu.com のインフラ基盤の移行に取り組んでいます*1。その取り組みの一環として、gRPCを用いたスキーマファーストな開発を推進しています。 今回はスキーマを記述したprotoファイルのレビューにおいて一部のレビュー項目をCIで自動的に確認されるようにし、レビュワーの負荷を軽減できたのでその方法についてご紹介します。 ※ これは Cybozu Advent Calendar 2022 15日目の記事です。 背景 cybozu.com のバックエンドでは、これまではサービスのAPIのスキーマをドキュメント等によりカバーしてきました。これはその実装チームが整備し、適宜更新していくものを指します。しかし、こういったドキュメントはしばしばメンテされ
こんにちは。kintone チームでQAエンジニア兼スクラムマスターの「とうま」といいます。 本記事は、Cybozu Advent Calendar 2022の12日目の記事になります。 サイボウズにはザツダンの文化がありますが、ザツダンの浸透具合やメリットについて紹介します。 ザツダンについては以下の記事も合わせてご覧ください! teamwork.cybozu.co.jp はじめに 私は 2022 年 9 月にキャリア入社した身で、サイボウズは 5 社目になるんですが、チームにザツダンを根付かせるのはとても難しいと感じていました。 サイボウズは存在意義として「チームワークあふれる社会を創る」というのを掲げているので、ザツダンに対しては比較的肯定的な人は多そうではあります。 とはいえサイボウズは 1000 名近い従業員がおり、多様な個性を重視しています。 多様な人がいる中、本当にザツダンは
こんにちは、生産性向上チームの @miyajan です! この記事は、Cybozu Advent Calendar 2022 の一日目です。philips-labs/terraform-aws-github-runner を使ってオートスケールする GitHub Actions のセルフホストランナーを構築・運用している知見を書きます。 この話題については過去に発表しましたが、それから一年以上経って変更も多いため、あらためてブログ記事にしました。 背景 サイボウズには、サイボウズ社内のネットワークからしかアクセスできないシステムに依存して開発しているチームが複数あります。これらのチームが GitHub Actions を利用したいと思っても、GitHub が提供する Actions のランナーからはサイボウズ社内のネットワークにアクセスできません。このため、サイボウズ社内の開発チームが G
こんにちは、フロントエンドエキスパートチームの @mugi_unoです! kintone では フロントエンドの刷新プロジェクト(通称フロリア)が進行中です。 blog.cybozu.io kintone の開発では E2E 主体の自動テストを整備していましたが、 フロントエンドの刷新に合わせて、新たにフロントエンド側でのテストコードを積極的に書いています。 テストを書くことに不慣れなメンバーもいるため、日々 Pull Request 上でのレビューやペア・モブ作業を通じて、知見の共有が行われています。今回はフロントエンド刷新のテストを書いてきた中から、筆者が有用だと感じた知見やノウハウを紹介したいと思います。 目次 💡「実はそれ最初からパスしてるかもしれない」 期待する操作で期待する結果になることを厳密に検証する 他のテストケースによって前提条件を担保する 💡「テストコード上のロジッ
こんにちは。開発副本部長の okady です。 サイボウズ開発本部では2019年に組織変更を実施し、当時のインタビュー記事で私はこんなことを言っていました。 「マネージャー、いないと無理なら、またつくればいい」 サイボウズの開発本部がマネジャーをなくしてみた「いないと無理なら、またつくればいい」 | サイボウズ式 そして今回の記事は、当時の私自身の言葉に応えるタイトルにしました。 「マネージャー、いないと無理だったので、またつくりました」 2019年の組織変更から3年が経ち、目的は概ね達成できました。しかし、思い通りにいかなかったことや当初想定していなかった問題もたくさんありました。そして2022年5月、開発本部の組織力をさらに強化すべく再び大きな組織変更に取り組むことを決断しました。 この記事では、2019年の組織変更とその後を振り返った上で、2022年に実施した新たな組織変更についてご
こんにちは、フロリアでQAエンジニアをやっている中園です。 現在サイボウズではkintoneのフロントエンドリアーキテクチャプロジェクト(フロリア)と称して、Closure Tools から React へと置き換えるプロジェクトが進行中です。 今回は、フロリアのチームの1つであるMiraチームのテスト手法について紹介します。 フロリアの詳細については次の記事をご覧ください。 フロリアについて フロリアでは、次のような構成でそれぞれのチームがオーナーシップを持って活動しており、テストの方針はチームごとに決めています。 プロダクトオーナー: 1名 エンジニア: 3-4名 QA: 1名 スクラムマスター: 1名 フロリアのチーム構成 チームのミッションに合わせたテストの目的 Miraチームでは、kintoneのデザインやふるまいを変えずに、利用者に気づかれない形でReactに置き換えるというミ
こんにちは、QA(品質保証)エンジニアの矢引です。今回はDevOpsのチームのQAエンジニアが本番環境のログを定期的にチェックすることでプロダクトの品質向上を行っている事例を紹介します。 Claraとは 今回の取り組みを行っているClara開発チームを簡単に紹介します。 Claraとは、オンラインストアと販売管理システムを開発・運用するプロジェクトです。オンラインストアというのは弊社のクラウドサービスであるKintoneやその他関連サービスを、顧客(Kintoneのユーザー)が購入するためのシステムです。もう一方の販売管理システムとは、クラウドサービスの売り手として受注・見積・請求などを弊社のオペレーターが行うためのシステムです。いずれもグローバル市場向けに開発されています。 運用データを製品開発に活かす取り組み DevOpsでは、運用データを高速かつ継続的に開発にフィードバックして製品開
こんにちは、モバイルエンジニアの中村(@Kyomesuke)です。 私が担当している kintone の iOS アプリでは、脱レガシーを目指して Apple 製の新しいフレームワークやビルドツールの導入/移行に取り組んでいます。 今回はその取り組みの一つである、ライブラリマネージャーを CocoaPods から Swift Package Manager(SPM)に移行した件について紹介します。 CocoaPods から SPM に移行を決めた理由 サイボウズの開発本部では徐々に Apple シリコン搭載の MacBook が普及しており、ビルド速度の面での開発環境改善が進んでいます。 ただし、ライブラリマネージャーとして CocoaPods を利用しているプロジェクトの場合、環境構築が困難であり新規メンバー参入の障害となっていました。 これは、CocoaPods が Ruby 製である
こんにちは。クラウド基盤エンジニアの飯塚です。 サイボウズが提供している多くのクラウドサービスでは MySQL をプライマリデータストアとして利用しています。安定したサービスを提供するためには MySQL の有効な利用法やアンチパターンについてキャッチアップする機会が定期的に必要となりますが、ちょうどよいタイミングで High Performance MySQL, 4th Edition が刊行されていたため輪読会を開催しました。輪読の目標としていた範囲が先日完了したため、その報告をさせていただきます。 この本について 名著と言われている「実践ハイパフォーマンス MySQL 第3版」(High Performance MySQL, 3rd Edition) の改定版であり、前の版から著者陣を変えて2021年末に発売されました。 www.oreilly.com 前の版が刊行されたのは2012
こんにちは、kintone フロントエンドリアーキテクチャプロジェクト (フロリア) に所属している 21 新卒の西川 (@nissy_dev) と左治木 (@sajikix) です。 フロントエンド刷新プロジェクトへの配属から約 1 年が経ち、プロジェクトに関わる中で多くの学びがあったので振り返ってみました。 目次 自己紹介 西川です 左治木です kintone フロントエンドリアーキテクチャプロジェクト(フロリア)とは 配属されてみて実際どう? プロジェクトから学べたこと 小規模なチームでのスクラム開発 Testing Trophy を意識した QA とのテスト設計 アクセシビリティを考慮した UI の開発 現在取り組んでいること いきなり刷新プロジェクトに配属されるのってどう? チームに任された裁量が大きく、新卒でも技術選定やより良い設計の提案をしながら開発できる 新規開発した機能に
こんにちは!フロントエンドエキスパートチームの@nus3_です。 kintone のフロントエンド刷新プロジェクト(フロリア)では、品質を保ったまま開発を加速させるためにフロントエンドのテストを積極的に行っています。 今回はそんなフロントエンドのテストの実装例をいくつか紹介します。この記事がフロントエンドのテストを行う上での参考になれば幸いです。 テストに使用する主なパッケージ コンポーネントのテスト 補足: Testing Library の記法をチェックしてくれるeslint-plugin-testing-library カスタムフックのテスト 補足: React v18 では @testing-library/react の renderHook を使う 参考リンク 色々なテスト事例 setTimeout を使うコンポーネントのテスト 補足: Storybook の story を使
こんにちは。生産性向上チームの平木場(@korosuke613)です。最近はよくダーツを投げています。好きな料理は辛麺1です。 この記事では、Developers Summit 2022 Summer で発表した「生産性向上は一筋縄ではいかない 〜改善を進める上で生じる課題との付き合い方〜」に寄せられた質問に対して回答します。 はじめに 先日 Developers Summit 2022 Summer というイベントで生産性向上チームの活動を発表してきました。 タイトルは「生産性向上は一筋縄ではいかない 〜改善を進める上で生じる課題との付き合い方〜」です。 Developers Summit とは翔泳社さんが定期的に開催しているソフトウェア開発者のためのカンファレンスです。 2022/07/21 に開催された Developers Summit 2022 Summer は「アジャイル・De
cybozu.com Cloud Platformチームのhsnとtomoです。今回はサイボウズで証明書更新の自動化を安全に行うための工夫をご紹介します。 背景 サイボウズではcybozu.comのサービスを提供するために数多くの証明書を取得し、管理しています。 今まではそれらをすべて手動で取得し、入れ替えを行っていました。 しかし、元来の運用ではいくつかの問題が浮上してきました。 手動更新の際は認証局によって更新手順が異なります。 具体的にはドメインの所有確認(DCV: Domain Control Validation)と証明書のダウンロード手順を、それぞれの認証局が独自に提供しています。 そのため、ドメインの更新手順書は複雑に長くなってしまいます。結果として更新の準備に時間がかかり、実施の際にミスも発生しやすくなっていました。 サイボウズでは証明書の有効期限が切れる1か月前に管理用の
こんにちは、グローバル向けAWS版kintoneのバックエンドエンジニアをしている@ueokandeです。 8月になって暑い日々が続きますね。そして8月と言えば、Amazon Aurora MySQL-Compatible Edition version 1 with MySQL 5.6 compatibility(以下Aurora MySQL 5.6)のサポート終了までおよそ半年となりました。 グローバル向けAWS版kintoneでは、Aurora MySQL 5.6を採用しているバックエンドサービスがいくつかあり、チームで移行作業に取り組んできました。この移行作業は単なるアップグレードだけではなく、ダウンタイムなしでデータベースを移行するチャレンジにも取り組みました。この記事ではAmazon Auroraの移行作業の全貌と、移行戦略を紹介します。 Aurora MySQL 5.6のサポ
kintone フロントエンド刷新プロジェクトリーダーの @koba04 です。この記事では kintone フロントエンド刷新プロジェクトにおける Web パフォーマンス方針について紹介します。 kintone フロントエンド刷新プロジェクト(フロリア)とは プロジェクトの現状 なぜ Web パフォーマンスに取り組むのか Web パフォーマンスと生産性 kintone においての Web パフォーマンス 誰もが利用可能にするための Web パフォーマンス Core Web Vitals をメトリクスの中心に Core Web Vitals とは ローディングのパフォーマンス インタラクティブ性 レイアウトの安定性 なぜ Core Web Vitals を計測するのか SpeedCurve を活用した計測 Web パフォーマンスに取り組みやすい状態を作る これから 参考 kintone フ
こんにちは、モバイルチーム・Androidエンジニアの東條です。 今年の5月に Google I/O 2022 のイベントがありました。 モバイルチームでは、私を含めた6名のAndroidエンジニアがイベントの中で興味のあるセッションを一つ選び、その内容について紹介するLT会を開催しました。 LT会の詳細については 社内のAndroidエンジニア達を集めてGoogle I/O報告LT会をやってみた で紹介しています。 私はセッションの中からJetpack Composeのパフォーマンス面でのベストプラクティスについて紹介した Common performance gotchas in Jetpack Compose のセッションについて発表しました。 なお、当該セッションは公式ドキュメントの Composeのパフォーマンス とほぼ同じ内容でした。 このセッションを選んだ理由は、私が担当して
こんにちは、開発本部データサイエンティストの山口です。 製品やサービスのユーザー向けにコンテンツを制作している方は、一度は以下のように考えたことがあるのではないでしょうか。 「このコンテンツは本当に効果があったのだろうか?」と。 ここでは「コンテンツ」を「特定の認識・行動を、ユーザーに促す情報のまとまり(テキスト、音声、動画など)」を指すものとします。また、コンテンツの「効果」は「コンテンツの狙い通りにユーザーの行動が変化したこと」を意味するものとします。 多くの場合、コンテンツの視聴回数だけではユーザーの行動の変化までを知ることはできません。また、ユーザーの行動に変化があることがわかったとしても、それがコンテンツの効果なのか、別の要因によるものなのか、判別が難しい場合が多いでしょう。 この記事では、サイボウズが制作した製品の機能解説動画を例として、CausalImpactというパッケージ
次のページ
このページを最初にブックマークしてみませんか?
『Cybozu Inside Out | サイボウズエンジニアのブログ』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く