Chatwork Creator's Note

ビジネスチャット「Chatwork」のエンジニアとデザイナーのブログです。

ビジネスチャット「Chatwork」のエンジニアとデザイナーのブログです。

読者になる

Chatwork のプロダクトフェーズと技術選定の流れ

こんにちは!
Chatwork 株式会社のプロダクトマネージャー (PM)、宮下 (@ryugoo_) です。
2013 年にモバイルアプリエンジニアとして入社し、 2014 年に Android 専任になり、 2019 年からは PM に転向してそろそろ 2 年になろうとしています。

さて、今回はエンジニアから PM になった私から見た、 Chatwork の技術選定の流れの変化について話してみようと思います。

f:id:cw-miyashita:20201129204458p:plain
技術選定の歴史

  • 2013 年 - PMF を目指すために
  • 2014 〜 2016 年 - 技術的課題を解決するために
  • 2017 〜 2020 年 - ユーザー影響を最小化するために
  • これから - 攻めた技術選定を、ユーザーのために
続きを読む

PHPのレジェンドシステムをEC2からKubernetesに移行する話 その4 〜Kubernetesクラスタの更新戦略に合わせたアプリケーションの移行戦術〜

こんにちは!SRE部のcw-ozakiです。

creators-note.chatwork.com creators-note.chatwork.com creators-note.chatwork.com

今回はその3の続きで、Kubernetesクラスタの更新戦略に合わせてアプリケーションをどのようにして、クラスタを移行していくのか戦術を考えていきます。

続きを読む

品質管理担当者としてSonarCloudさんがジョインしました!

こんにちは。都志(@louvre2489)です。

突然ですが、みなさんの開発/保守しているシステムのソースコードは読みやすいですか?それとも読みにくいですか?

自信を持って「読みやすいです!」と答えたいところですが、「う〜ん・・・」となってしまう方は多いのではないでしょうか?

私たちも同様の悩みを抱えています。ソースコードはどれだけ責務分割を意識して丁寧に書いても、長年の開発/保守の中で徐々に複雑化し、読みにくくなっていってしまうと思います。

そのような悩みを抱える中で、Chatworkでは全社的にSonarCloudを導入することにしました。まだ導入したばかりなので手探りで運用している点もありますが、本ブログではChatworkでのSonarCloud運用事例をご紹介したいと思います。

「SonarCloud(または後述するSonarQube)」は日本語の情報も少なく、決して馴染みのあるツールではないと思いますので、本ブログを通してSonarCloudのメリットを知っていただいて導入検討のきっかけになれば、と思います。

続きを読む

ULID生成器をScalaで実装してみた

おはこんにちは、かとじゅん(@j5ik2o)です。 今回の記事は、IDフォーマットの一種であるULIDの実装についての記事です。

ULIDよーわからんという人は、以下の僕の記事を参照してみてください。 zenn.dev

ID生成をどうするか議論によくなりますが、最近はソート可能なUUIDとしてULIDが話題にあがります。128ビットでかつ文字列型のキーが許容できるのであれば、ULIDはよい選択肢になりそうです。

続きを読む

簡単!Chrome拡張でオレオレChatwork!

自己紹介

こんにちは。竹川です。@tttyya
2020年4月1日より新卒としてChatworkに入らせていただきました。
サーバーサイド開発部(Scala)にて、やらせてもらってます。

Chrome拡張作り始めたキッカケ

同じScalaチームの先輩と、
「Chatworkに新機能が付くならどんな機能が欲しい?」という雑談をしていました。

とある機能の話になったとき、
「この機能、軽くChrome拡張で実装してみたことあるんですけど」
と涼しい顔で画面共有しながら自慢してきました。
「軽く!!!????Chrome拡張で機能を追加!!!??」とビックリ仰天。
それは、機能としてしっかり動作していて、こんな立派なものが軽く作れるの???Chrome拡張スゲーーーー!!!と思いました。

何を隠そう、わたくし竹川、フロントエンドは知識も経験もほぼ一切ないのです。
どれくらいの工数で、どれくらいの苦労で実装されたのか。そう軽く作れるものなのか。
わからない…わからないならやってみよう。
さぁ竹川も軽くChrome拡張を作ってみよう。というのがキッカケです。

続きを読む

対象別 アクセシビリティ啓蒙例

こんにちは、守谷(@emim)です。

当Creator's noteでは茶藤さんというキャラクターも爆誕し、今月はCreator's Note強化月間!となっているのですが、守谷個人的には週末におこなわれるイベントに照準を合わせて、ひとりWebアクセシビリティ強化月間!開催中です。

あ、ぜひ、Webアクセシビリティの学校 オンライン特別授業(デザイナー特集)もどうぞ〜。現在最終調整真っ只中です✊🏻

a11yschool.doorkeeper.jp

さてさて今回は、前回のエントリー祝 🎉 アクセシビリティ改善チームができました! - Chatwork Creator's Noteに入りきれなくなって泣く泣く断念した、「エンジニア以外向け」におこなったWebアクセシビリティの啓蒙施策を紹介します。

ポイントは「私が知ってる情報を全員が知っているわけではない。」という前提を忘れず、いつでも疑問に応えられる知識を蓄えつつ、対象に合ったアプローチをする、というところです。

続きを読む

iOS アプリのタイムラインで info タグを表示する実装について

こんにちは。モバイルアプリケーション開発部の iOS アプリエンジニア、安宅 (@at_aka) です。

Chatwork の iOS アプリは現在、絶賛 Swift 化の真っ最中です。私もメインのプロジェクトの傍ら、タイムラインのメッセージ表示回りの Swift 化をやっています。これが少し手の込んだことをしているので、本日は Chatwork の iOS アプリがどのようにして info タグを表示するのか説明してみようと思います。

エッジケースのケアまで含めると話が大きく広がります。それに Swift のコードを読んでも面白くないでしょう。ですので、デザイナーの皆さんにも分かるように Swift のソースコードは極力出さずにエッセンスを書いてみます。

なお、Swift 化の前と後とでは、実装方法に少なからず違いが出ています。Swift 化したメッセージ表示はまだリリースされていませんが、ここは Sneak Preview ということで Swift 版での実装をベースに話を進めます。

続きを読む