Chatwork Creator's Note

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

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

読者になる

チャットワークのID生成器

2018/3/18 追記

TISさんのreactive system meetupで発表する機会をいただきました。ありがとうございます。発表資料をリンクしておきます。

18桁になったメッセージID

2017年5月28日をもってチャットワークのメッセージIDは10桁から18桁になりました。みなさんお気づきでしたか?

これはメッセージリンクを取得してみることで確認できます。

f:id:cw-yasuda:20180105163109p:plain

それまでは32bitでかつ連番のIDでした。今は64bitになり、また単調増加性だけを保証し、連番ではなくなっています。

この記事では新メッセージIDとそれを発行するシステムについて記述します。

続きを読む

Scala採用を決めて3年半たった、CTOの振り返り。アーキテクチャ刷新を成し遂げるために必要なこと

f:id:cw-masaki:20171224110154p:plain

メリークリスマス!ChatWork Advent Calendarもついにラストとなりました。 本日の記事はChatWork CTOの山本が担当です。

ChatWorkでは約3年半前に、PHPの独自フレームワークでつくられた大規模システムを、Scalaを使ってゼロベースでつくりなおすという決断をしました。

当時の記事:チャットワークの新しい開発言語とフレームワークを決める開発合宿を開催!その全貌を丸公開します。

その決断をした時に在籍していたScalaエンジニアは0人。まずブログで宣言してからスタートするという、なんとも無謀なプロジェクト進行ではあったのですが、当時の自分たちとしてはマジメも大マジメ、ここでなんとかしないとサービスが将来的に死ぬと背水の陣で挑んだプロジェクトでした。

あれから3年半。途中で大きく開発が頓挫しチームが絶望に包まれた時もありましたが、どうにかこうにか立て直しに成功し、昨年度末に基幹となるシステムをリリース。今年にかけて中規模なサブシステムが2つほどScalaで新規に稼働するなど、まだまだPHPの部分が大きく残っているものの順調に切り替えが進んでいます。

ちょくちょく他社のCTOやエンジニアさんからアーキテクチャ刷新に関するアドバイスを求められることも増えており、一旦区切りとしても良いタイミングなので、このブログ記事でCTOとしての目線で振り返りと考え方をまとめてみたいと思います。

僕らの事例はキレイに成功したわけでもなく、またあくまで一例には過ぎないのですが、あまりここまで大規模なアーキテクチャ刷新の事例は少ないとも思いますので、少しでも参考になれば幸いです。

続きを読む

ChatWorkの開発組織運営

メリークリスマス!開発本部の id:cw-kasuga です。

この記事は

adventar.org

の 24 日目の記事になります。 明日はCTO山本の記事が掲載予定です。

現在、私は開発部門全体を統括するマネジメント専門おじさんです。 組織全体を束ねるようになって、大体2年位経つのですが、2年間何をしてたかと言うと 昨年は、年末の巨大リリース(Falcon:メッセージDB)に邁進した一年でした。 今年は、プロダクトをアップデートできる体制を作れるかに腐心した一年でした。 まだまだ、組織として改善しないといけない点はたくさんありますが、なんとか前進してる状態です。

advent calendar自体もあるメンバーが自主的に今年はやりましょうと動いてくれて、内心かなり嬉しいです。 私がどんな記事にしようかなーとメンバーに聞いてみたら、例外なくマネジメントの考え方の話が みんな聞きたいから書いてくださいと要望があったので、その辺を書いてみたいと思います。

組織体制によって、マネジメントに必要な機能が違うので 過去・現在・未来と言った切り口でお伝えします。

続きを読む

社内で「Webアクセシビリティ」を伝えるためにやったこと

こんにちは、守谷@emim)です。この記事はChatWork Advent Calendar 2017 - AdventarWeb Accessibility Advent Calendar 2017 - Adventarの23日目、掛け持ち記事です。

はじめに(まえおき)

ChatWorkでは今年の4月に、アクセシビリティ方針というのを発表しました。

ご存知ない方のために簡単にお伝えすると、(Web)アクセシビリティとはWebサイトを閲覧する際に誰もが簡単に確実に情報にアクセス(取得)しやすくするためのソースコードやデザインやコンテンツに対しておこなう設計施策のことです。世界標準規格が定められています。

日本の規格として出されているJIS X 8341-3:2016では、「高齢者・障害者等配慮設計指針-情報通信における機器,ソフトウェア及びサービス-第3部:ウェブコンテンツ」という名を持っていますが、最近は高齢者・障害者対応というより「情報アクセシビリティ」という観点で見られることも多くなってきました。

前述の弊社のアクセシビリティ方針では、「一定のアクセシビリティ基準を満たすWebサイトを作成するという方針を定めました」ということを公表したものです。そもそも、業務効率化につながるチャットワークというツールの概念と、誰もが使えるようにするというWebアクセシビリティの相性がとてもいいので、せっかくならばきちんと明文化しよう!と出した方針です。これらの経緯については、我々の思いをブログでも公開しています*1のでご覧ください。

ちなみにChatWorkのアクセシビリティ方針では、「誰かががんばる」というものではなく「全員で取り組む」ということを掲げています。現に、既存の制作フローに追記する形でWebアクセシビリティ対応がおこなえるということがわかり、全社を巻き込む形でワークフローにまで言及した形の方針を制定しました。

本題

ありがたいことに、アクセシビリティ方針を出した影響か、今年何件かセミナーなどで登壇させていただく機会がありました。

その際に、何気なく入れ込んだ社内啓蒙の方法として「職種に分けて資料を作って社内共有をした」と話した件について、だいたいポジティブに驚かれました。今回はその内容を少し紹介します。

*1:ChatWorkではデザイン部(デザイナー)主導で「アクセシビリティ方針」を決めましたが、他社のエンジニアから「デザイナーはWebアクセシビリティのことをわかってなくて困る」という声を結構聞きます。デザイナーには実装以外でもできることが沢山ある、というメッセージも込めてこの記事を書きました。

続きを読む

2017年暮れ、今年終了のもの10傑(マーケ施策)

はじめに

こんにちは、マーケティング担当の id:cw-hatsumi です。エンジニア/デザイナー以外で初となるエントリーです。 ChatWork Advent Calendar 2017 21日目。2017年の終わりに、2017年に終了が発表されたもの、終わったものをいくつか選んでみましたので、ご紹介したいと思います。

続きを読む