タグ

ブックマーク / blog.cybozu.io (18)

  • フロントエンド刷新プロジェクトを成功に導くためのテスト手法の紹介 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、フロリアでQAエンジニアをやっている中園です。 現在サイボウズではkintoneフロントエンドリアーキテクチャプロジェクト(フロリア)と称して、Closure Tools から React へと置き換えるプロジェクトが進行中です。 今回は、フロリアのチームの1つであるMiraチームのテスト手法について紹介します。 フロリアの詳細については次の記事をご覧ください。 フロリアについて フロリアでは、次のような構成でそれぞれのチームがオーナーシップを持って活動しており、テストの方針はチームごとに決めています。 プロダクトオーナー: 1名 エンジニア: 3-4名 QA: 1名 スクラムマスター: 1名 フロリアのチーム構成 チームのミッションに合わせたテストの目的 Miraチームでは、kintoneのデザインやふるまいを変えずに、利用者に気づかれない形でReactに置き換えるというミ

    フロントエンド刷新プロジェクトを成功に導くためのテスト手法の紹介 - Cybozu Inside Out | サイボウズエンジニアのブログ
    yuzu441
    yuzu441 2022/10/18
  • kintoneの内部を(こっそり)Reactに置き換えるチームがあるってホント? - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは!フロントエンドエキスパートチーム兼 Mira チームで活動している@nus3_です。 サイボウズが提供するkintoneは 10 年以上にわたり多くのユーザーにご利用頂いています。現在、kintone の開発が引き続きスケールできるように、Closure Toolsから React へと置き換えるフロントエンドリアーキテクチャプロジェクト(フロリア)が絶賛進行中です。 フロリアの詳細については次の記事をご覧ください。 Mira ってなんですか? フロリアプロジェクトにはいくつかのチームがあります。それぞれのチームはフロリアのゴールを達成するために、チームごとにオーナーシップを持って日々活動しています。 フロリアのゴールの一つに 「kintone のすべてのページが React によって表示されている」というものがあります。このゴールを達成するために、kintone の内部をこっ

    kintoneの内部を(こっそり)Reactに置き換えるチームがあるってホント? - Cybozu Inside Out | サイボウズエンジニアのブログ
    yuzu441
    yuzu441 2022/04/15
    ボケやすさ観点面白いな
  • モバイルアプリのインターフェースをトレース実装する会の成果報告 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、モバイルチームの中村(@Kyomesuke)です。 モバイルチームでは、現在トレンドになっているユーザーインターフェースの実装方法を探求することを目的として、他社アプリのインターフェースやアニメーションを SwiftUI でトレース実装する会を開催しています。 記事ではその成果の一つをご紹介いたします。 この勉強会について 「モバイルアプリのインターフェースをトレース実装する会(自称モイト会)」は1回あたり1時間不定期で開催している勉強会です。 モバイルチームはいくつかのプロダクトチームに分かれているのですが、その垣根を超えて有志のメンバー4,5人が参加しています。 トレース実装をするインターフェースについては、サイボウズの製品に活かせそうなものとしてカレンダーやカンバンのような複数データの制御を扱っていそうなアプリに着目して選定しています。 特にユーザーの操作に伴う動的な構

    モバイルアプリのインターフェースをトレース実装する会の成果報告 - Cybozu Inside Out | サイボウズエンジニアのブログ
  • MySQL 8.0 への移行が完了しました ~さようなら全ての MySQL 5.7~ - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。クラウド運用チームの飯塚です。 私たちは cybozu.com 番環境の MySQL を昨年末から順次 8.0 系へアップグレードしており、前回の定期メンテナンスにおいて全てのインスタンスのアップグレードを完了しました。この記事では、私たちが MySQL 8.0 への移行に取り組んだ理由と必要になった対応について紹介します。 なぜ MySQL 8.0 へ移行したのか GTID-based レプリケーションにおける制限の緩和 再起動時に AUTO_INCREMENT のカウンタが巻き戻る問題の解消 実際に対応が必要だった MySQL 8.0 の変更点 utf8mb4 の照合順序のデフォルト値の変更 SQL_CALC_FOUND_ROWS と FOUND_ROWS() が deprecated に Connector/J のメタデータ取得処理の性能低下 sys.innodb_lo

    MySQL 8.0 への移行が完了しました ~さようなら全ての MySQL 5.7~ - Cybozu Inside Out | サイボウズエンジニアのブログ
  • サイボウズの「開発・運用組織」で働く環境 @ 2020 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは〜!リングフィットアドベンチャーを6ヶ月ほどやっているのですが体重の変化がない開発部所属の hokatomo です💪💪 2016年に ymmt さんが「サイボウズエンジニアの職場環境 @ 2016」を公開しました。 あれから変わった面があるのと、2019年1月に中途入社した者として「こういう制度や文化があるんだ!」と驚いた部分があったので、忘れないうちに2020年度版を書きます:) この記事で、「サイボウズの開発や運用で働くってどんな感じ?」と気になってくれている方に、少しでも様子が伝わったら嬉しいです。 筆者である私はエンジニアではなく、開発部所属で社内コミュニケーションの部分を担当しているので、その目線で書いています。 目次 働く場所・時間は自分で決める、コアタイムなし 書籍購入、勉強会参加支援、コミュニケーション支援他さまざまな制度 開発組織を横断して支える、たくさ

    サイボウズの「開発・運用組織」で働く環境 @ 2020 - Cybozu Inside Out | サイボウズエンジニアのブログ
    yuzu441
    yuzu441 2020/10/15
  • Node.js Dual Packages (CommonJS/ES Modules) に対応した npm パッケージの開発 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。フロントエンドエキスパートの平野(@shisama_)です。 フロントエンドエキスパートチームでは業務時間の 30 % の時間で技術探究を行っています。 今回は探究した技術の中から Node.js の ES Modules(以下 ESM)についてと Dual Package (CommonJS/ES Modules) に対応した npm パッケージの開発について紹介します。 ES Modules の特徴 ESM はブラウザ互換 ESM は Strict モード ESM は非同期 ESM は静的解析可能 Node.js の ESM 対応について Dual Package(CJS/ESM)に対応した npm パッケージの開発 Conditional Exports によるファイルの指定 .mjs と .cjs require など CJS 特有の機能を使う ESMから CJS ファ

    Node.js Dual Packages (CommonJS/ES Modules) に対応した npm パッケージの開発 - Cybozu Inside Out | サイボウズエンジニアのブログ
  • 2020年のエンジニア新人研修の講義資料を公開しました - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。コネクト支援チームの@tignyaxです。 みなさま、夏はどう過ごされたでしょうか? 私は、夏が好きなのに今年は夏らしいことが出来なくて寂しいなぁとなっています。。。 さて、今年2020年もエンジニア新人研修を行いましたので、その紹介と講義資料を公開いたします。 2020年のエンジニア新人研修について 基的には2019年と同じ形*1での実施となりました。 最初の1週間で必修講義をしたあと、新人の皆さんには2週間ずつ3チームを体験してもらいました。 チーム体験のコンセプトは、新人に「興味のあるチームで実際に業務を体験し、配属希望を決める参考になった。」と言ってもらうことです。 各チーム体験では座学や研修を中心にするのではなく、業務体験が中心です。 チーム体験を通して、配属先を検討する材料にしたり、いろんなチーム/人/業務を知ってもらえる機会となります。 必修講義 誰に: 開発/

    2020年のエンジニア新人研修の講義資料を公開しました - Cybozu Inside Out | サイボウズエンジニアのブログ
  • LernaとYarn WorkspacesでMonorepo管理 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、フロントエンドエキスパートチームの小林(@koba04)です。 記事では、Lerna と Yarn Workspaces を使った Monorepo 管理について解説します。 Monorepoとは 記事では、単一のリポジトリで複数のモジュールやパッケージ(今回の場合は npm パッケージ)を管理する手法を Monorepo と呼んでいます。 有名なところだと、Babel や Jest、Create React App などが後述する Lerna を使い複数パッケージを単一のリポジトリで管理しています。 他にも React も Lerna は使っていませんが単一リポジトリで複数パッケージを管理しています。 また、上記のようなライブラリ以外にも企業で利用している npm パッケージを Monorepo として管理している例もあります。下記は Shopify の例です。 pack

    LernaとYarn WorkspacesでMonorepo管理 - Cybozu Inside Out | サイボウズエンジニアのブログ
  • リモート・モブプログラミングという働き方 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは!kintone開発チームの太田 (@kigh) です。 この記事では、自分のチームで2年以上続けているリモート・モブプログラミング(以下「リモート・モブ」)について、 進め方の具体例や所感、実際にやる上でのTipsを紹介したいと思います。 リモートワークが急速に普及する中、リモート・モブは働き方の選択肢の一つとして存在感を増してきていると思います。 この記事から少しでも参考になる点が見つかれば幸いです。 リモート・モブプログラミング この記事では、テレビ会議システムなどのツールを使いつつ、物理的に離れたチームでモブプログラミングをすることをリモート・モブと呼びます。 現在、kintoneの新機能開発メンバーは6拠点のオフィスに分散し、また多くのメンバーがカジュアルに在宅勤務を活用するリモートチームとなっています。 また2018年から2年以上、全ての設計・実装タスクを原則モブプロ

    リモート・モブプログラミングという働き方 - Cybozu Inside Out | サイボウズエンジニアのブログ
    yuzu441
    yuzu441 2020/02/28
  • npmとyarnの脆弱性とpostinstall - Cybozu Inside Out | サイボウズエンジニアのブログ

    フロントエンドエキスパートチームの小林(@koba04)です。 先日、npmから脆弱性についての発表がありました。 調べていく中でいくつか思うところがあったので解説も兼ねて書いていきたいと思います。 The npm Blog — Binary Planting with the npm CLI npmの利用者としてやるべきことは、 npmのバージョンを6.13.4以上にあげる yarnのバージョンを1.21.1以上にあげる です。 npmのバージョンが6.13.4になったNodeもv8, v10, v12, v13系でそれぞれリリースされたので、そちらを利用することも可能です (yarnのバージョンは別途あげる必要があります)。 nodejs.org npmによる発表では、今回発表された脆弱性は2件あるため、それぞれ個別に考えます。 binに任意のパスを指定出来る件 npmパッケージはpa

    npmとyarnの脆弱性とpostinstall - Cybozu Inside Out | サイボウズエンジニアのブログ
    yuzu441
    yuzu441 2019/12/28
  • 2019年のエンジニア新人研修の講義資料を公開しました - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。皆様、夏はいかがお過ごしでしたか。 私は毎年実家に帰省し、そして毎年体調を崩すので、絶対風水的になんか合わないんだと思っています。コネクト支援チームのsakay_yです。 先日、2018年の新人研修資料を公開し、たくさんの反響をいただきました*1。ありがとうございました。 2019年もエンジニア新人研修を行いましたので、その紹介と講義資料を公開いたします。 2019年のエンジニア新人研修について 今年の研修は、組織運営チーム*2が取りまとめ、以下のような3構成となりました。 必修講義 誰に: 開発/運用部に配属される新入社員​ 何を: どのチームに行っても必要となる基礎的な知識/技術/ツールを学び、体験できた 選択講義 誰に: 学びたい人が​(=新入社員に限らず) 何を: 興味があることを学べた チーム体験(2週間 * 3チーム) 誰に: 開発/運用部に配属される新入社員

    2019年のエンジニア新人研修の講義資料を公開しました - Cybozu Inside Out | サイボウズエンジニアのブログ
    yuzu441
    yuzu441 2019/09/05
    今年はpythonでwebサーバー実装しろって課題ないのか
  • 業務利用しているOSSの休日個人開発は業務か? - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、OSS推進室長の岡田(@y_okady)です。 先日公開したOSSポリシーについて、たくさんのご意見をいただきました。ありがとうございます! その中の一つに、労務管理上の懸念についてのご指摘がありました。上長からの指示がなくても、業務利用しているOSSの休日個人開発は業務にあたるのではないか、というものです。 僕としては、OSSガイドラインの導入にあたっては社員が無意識の時間外労働をしないよう会社側に留意してほしい、そのことは会社のリスク管理と、社会全体の労働者保護につながることであるし、労務管理について理解することは社員人にとっても有益であろう、というあたりかしら— Kazuho Oku (@kazuho) 2018年9月11日 これについて、社員のオープンソース活動を支援する役割を担う「OSS推進室(OSPO)」で話し合って見解をまとめたのでご紹介したいと思います。 技術

    業務利用しているOSSの休日個人開発は業務か? - Cybozu Inside Out | サイボウズエンジニアのブログ
    yuzu441
    yuzu441 2018/09/14
    自分は勉強会に遊びに行く感覚で行ってるのでいいけど、会社は「もっと後輩とかを連れて行け」というならこのくらいのこと考えて欲しい
  • さようなら ImageMagick - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、アプリケーション基盤チームの青木(@a_o_k_i_n_g)です。 一般的な Web アプリケーションがそうであるように、サイボウズのグループウェアにも画像をサムネイルで表示する機能があります。サイボウズでは日々数万件やそれ以上のサムネイルを生成しており、それらは全て ImageMagick によって生成されていました。 そこで得た知見はこちらの記事で公開されています。 blog.cybozu.io しかし現在、サイボウズから ImageMagick は消え去りました。その理由と、我々が取った代替手段について紹介します。 ImageMagick を外した理由 言うまでもなく ImageMagick は優秀なツールで、画像変換に関する何らかのサービスやツールを作る場合には採用の第一候補になることでしょう。あらゆる画像フォーマットに対応し、出力画像をきめ細かに制御できる膨大なオプシ

    さようなら ImageMagick - Cybozu Inside Out | サイボウズエンジニアのブログ
    yuzu441
    yuzu441 2018/08/21
    “ImageMagick は壊れた画像も変換できる という謎機能があり”
  • 我々はいかにして技術選択を間違えたのか? 2016 - Cybozu Inside Out | サイボウズエンジニアのブログ

    どうも!アプリケーション基盤チームの横田(@yokotaso)です! kintoneなどで利用していたJavaフレームワークのSeasarのEOLに伴い、S2Daoからの脱却を試みたのですが、パフォーマンス問題や障害を発生させてしまうなど問題を多々発生させてしまいました。 同じ過ちを繰り返さないという強い決意のもと、今回の失敗をブログで公開いたします。 失敗をあえて公開する点で斬新かつ濃いブログ記事となっております! 失敗体験の公開は恥だが役に立つ! 移行先の選定の失敗 移行先として選定したプロダクトは Hibernate*1です。 Hibernateを選んだ理由としては Spring Framework を選定した Spring Frameworkで Interface + アノテーションでプログラミングするならSpring Data JPA が有力 JPAに準拠したのORMの中でも、H

    我々はいかにして技術選択を間違えたのか? 2016 - Cybozu Inside Out | サイボウズエンジニアのブログ
  • サイボウズエンジニアの職場環境 @ 2016 - Cybozu Inside Out | サイボウズエンジニアのブログ

    泰宇(@ymmt2005)です。今回はサイボウズエンジニアの働く環境を詳細にご紹介します。 働く場所 働く時間 机・椅子・PC 社内情報システム 開発用ソフトウェア 開発用共有サーバー 勉強や研修の機会 制度と風土 オープンソース活動 働く場所 サイボウズの開発拠点は現在国内外に 5 箇所あります。 東京(東京日橋タワー) 大阪(梅田阪急ビルオフィスタワー) 松山(あいおいニッセイ同和損保 松山三番町ビル) 上海 ベトナム オフィスで働くのが基ですが、サイボウズには自分の好きな時間・場所で働けるウルトラワークという制度があるので、自宅や実家で働くことも可能です。どの程度可能かというと、 Amazon から宅配便が届くから、 雨・雪が降っているから、 電車が混んでいて乗りづらいから、 急に子供が熱を出したから、 といった様々な理由で、連絡一ついれれば在宅勤務できます。後述する社内情報

    サイボウズエンジニアの職場環境 @ 2016 - Cybozu Inside Out | サイボウズエンジニアのブログ
    yuzu441
    yuzu441 2016/05/26
    事務の人の環境良すぎやww “開発以外の事務職であっても全く同じスペックの PC が支給されています”
  • Javaの謎のパフォーマンス劣化現象との戦い - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。アプリケーション基盤チームの横田です。 Javaの謎のパフォーマンス劣化にまつわる調査をしていたのですが、1ヶ月の苦労の末に原因がわかりましたので、報告させていただきます! 公開後に頂いたはてなブックマークでのご指摘・社内でのタイポ・読みにくいなどの指摘を受けてたので、謹んで修正させいただきます。 修正した内容につきましては、記事の最後を参照してください。 忙しい人のためのまとめ jdk-7u4以降のjdk-7 *1 でJavaのパフォーマンスが劣化する謎の現象 CodeCacheの容量限界に近づくとJITコンパイラを停止してコンパイルしたコードを捨てる機能が原因だった 起動オプションで回避できるので、長期運用するときは -XX:-UseCodeCacheFlushing, -XX:ReservedCodeCacheSize=128m をつける 上のオプションを設定した時に、C

    Javaの謎のパフォーマンス劣化現象との戦い - Cybozu Inside Out | サイボウズエンジニアのブログ
  • もうサムネイルで泣かないための ImageMagick ノウハウ集 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちわ、アプリケーション基盤チームの青木(@a_o_k_i_n_g)です。好きなみかんは紅マドンナです。 今回は、サイボウズのサムネイル事情について記事を書きたいと思います。サイボウズに限らず通常の Web アプリケーションでもサムネイル作成はよくあると思いますが、ハマりどころが多く涙しているサムネイリストも多いかと思います。これからの時代を生きるサムネイリストが快適なサムネイルライフを送れるよう、知見を共有したいと思います。 弊社では画像変換ツールに ImageMagick を用いており、従って知見は ImageMagick 固有のものがほとんどです。 画像比較は人間の眼で行うべし サムネイル周りに何か修正を入れたら修正前後の画像を比較しましょう。機械によるバイト列の比較では画像の良し悪しがわかりません。頼れるのは人間の眼だけです。肉眼で確認しましょう。 比較できるツールを作ると良

    もうサムネイルで泣かないための ImageMagick ノウハウ集 - Cybozu Inside Out | サイボウズエンジニアのブログ
  • nginx の設定をレビューするときの観点をまとめてみた - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。 インフラチームの野島(@nojima)です。 チームのメンバーに nginx の設定について気をつけるべき点を共有するために、レビュー観点を書きました。 せっかくなのでここで公開します。 ほとんどの項目は自分やチームのメンバーの実体験に基いています。 レビュー観点 server server_name が他のやつと被っていないか。 listen する IP アドレスが同じ場合、server_name で区別できないといけない。 TLS を使う場合、SNI をサポートしないクライアントでは TLS 用の設定が default_server のものが使われる点にも注意。 TLS を使う場合、listen ディレクティブに ssl オプションを書いているか。 location location のマッチの順番に注意 正規表現の location は前方一致の location より

    nginx の設定をレビューするときの観点をまとめてみた - Cybozu Inside Out | サイボウズエンジニアのブログ
  • 1