タグ

ブックマーク / creators-note.chatwork.com (12)

  • ChatworkはPHPエンジニアの採用をより強化していきます、というお話。 - Chatwork Creator's Note

    プロダクト部で副部長をしています、田中(@tan_yuki)です。最近はたべっ子水族館をずっとべています。 私の主な仕事はプロダクト開発組織に関する採用・ピープルマネジメントに関するところがメインなのですが、最近、中途採用の方針を少し変更しました。その変更内容について、社外にも発信していこうと思い、ブログを書きました。 以下の文章は社内で共有した文章に少し加筆修正を加えたものになります。 ~ * ~ * ~ * ~ * ~ * ~ * ~ Chatworkで使われているプログラミング言語といえば、どういったものを想像するでしょうか? 私達はいままで、Scalaという言語を強くアピールしてきました。その功績もあり、多くのScalaエンジニアの方々を採用することに成功しています。もちろん、今後もScalaとは長く付き合っていくつもりです。 しかし、最近エンジニア採用の優先度の調整をし、P

    ChatworkはPHPエンジニアの採用をより強化していきます、というお話。 - Chatwork Creator's Note
    j5ik2o
    j5ik2o 2022/03/26
    この記事のとおりScala化は成功してますよ。刷新については継続中ですが新規開発はほぼScala。それに全面刷新するとは最初から断言してませんしScalaになると技術負債がないとも言ってませんが…。https://flxy.jp/article/8173
  • アジャイル開発におけるスケジュールを継続的に見直す - Chatwork Creator's Note

    こんにちは。都志(@louvre2489)です。 これは Chatwork Advent Calendar 15日目のエントリです。 Chatworkではアジャイルを前提に開発を行っています。プロジェクト特性やチームのルールに依って多少特色はありますが、ほぼ全ての開発がアジャイルに行われているのではないでしょうか(詳細は未確認)。 アジャイル開発に慣れてくるとどういう風に開発を進めれば良いかも共通知ができてくるのですが、アジャイル開発を導入し始める時によくわからなくなるポイントの1つとして『スケジュールをどのように可視化するか?』という課題があると思います。 この課題に対して、私の所属しているチームで行っているスケジュール作成の方法を紹介させていただきたいと思います。 アジャイル開発のスケジュールを立てよう 実はこの内容、以前に藤井 (@yoshiyoshifujii) が書いてくれていま

    アジャイル開発におけるスケジュールを継続的に見直す - Chatwork Creator's Note
    j5ik2o
    j5ik2o 2021/12/15
    チームの外とコミュニケーションを取れるように工夫してます
  • IFTTT連携の公開手順 - Chatwork Creator's Note

    こんにちは、サーバーサイド開発部の原田です。 今回はIFTTT連携の開発に関して、IFTTTがリリースされるまでのフローをご紹介できればと思います。 日語でのリリースに関する情報やノウハウが少なかったため、現在IFTTT連携を検討されている方や開発されている方に対して少しでも役立てばと思い、この記事を書こうと思った次第です。 IFTTT連携の開発方法 進め方 基的にはIFTTTが公開している公式ドキュメントに沿って開発を進めました。 (日語のドキュメントはないようです) platform.ifttt.com ドキュメントを読んだだけでは分からなかった箇所などは画面右下にあるチャットでIFTTTの方に適宜相談していました 開発の流れ 公開までの大まかなフロー 公開までの大まかなフローに関しては以下を参考にしてください platform.ifttt.com 今回はこちらの画像に記載されて

    IFTTT連携の公開手順 - Chatwork Creator's Note
    j5ik2o
    j5ik2o 2018/12/13
    開発の流れなど
  • IFTTT対応と開発について - ChatWork Creator's Note

    こんにちは、サーバーサイド開発部の原田です。 前回はこちらの記事でIFTTTというサービスおよび使い方についてご紹介しました。 creators-note.chatwork.com 今回はIFTTT連携の開発において苦労、および工夫した点について書きたいと思います。 IFTTT開発と問題点 IFTTT連携の開発において、使用した言語およびライブラリは以下のようになっています。 Scala Akka Http Kamon Circe etc... 基的にはIFTTTが公開している公式ドキュメントに沿って開発を進めました。 platform.ifttt.com システム構成図 大まかな構成図は以下になります。 また各システムの説明こちらです。 チャットワークIFTTT IFTTTからのリクエストを受けたり、チャットワークにメッセージ投稿するための(proxy的な役割の)システム 今回開発した

    IFTTT対応と開発について - ChatWork Creator's Note
    j5ik2o
    j5ik2o 2018/10/29
    JWT(JWS)をIFTTTからのリクエストの検証に使う事例
  • akka-httpでの総当たり攻撃(brute-force-attack)対策について - ChatWork Creator's Note

    こんにちはかとじゅん(@j5ik2o)です。 akka-httpで特定の失敗条件を元に、特定のリクエストをブロックするための仕組みを、akka-guardとして実装したので、設計思想や使い方に関して簡単にお知らせします。今回、想定したシナリオは、認証の総当たり攻撃(brute-force-attack)の対策で、認証の失敗回数が閾値を超えた場合、一定期間認証リクエストをブロックする対策を想定しています。 設計は主に僕がやりましたので僕の方から紹介します。実装は主に藤井(@yoshiyoshifujii)さんにお願いしたので、後半は藤井さん対応で。 akka-guard github.com 設計(担当:かとう) akka-httpで認証・認可を伴うAPIを公開した際に、セキュリティ対策の一貫として、総当たり攻撃(brute-force-attack)対策は必須にする必要がありました。さまざ

    akka-httpでの総当たり攻撃(brute-force-attack)対策について - ChatWork Creator's Note
    j5ik2o
    j5ik2o 2018/10/29
    総当たり攻撃対策を簡単にできるライブラリをリリースしました
  • JWT形式を採用したChatWorkのアクセストークンについて - ChatWork Creator's Note

    JWTを使うことは難しい? こんにちは、かとじゅん(@j5ik2o)です。最近、JWTに関する以下のブログが話題です*1。 どうしてリスクアセスメントせずに JWT をセッションに使っちゃうわけ? - co3k.org このブログで言及されているのは、JWTをセッションの保存先に選ぶことで「何が問題なの?」に書かれているリスクがあるよ、という話*2。確かにいくつか検討することがありますね。 auth0.hatenablog.com auth0の中の人?よくわからないけど、反論的なブログエントリが公開されています。この記事では、指摘の問題が起こらないように設計するのはあたり前では?という意見みたいです。まぁごもっともではないでしょうか。 私も技術そのものというより、要件に合わせて技術を組み合わせる設計の問題だと思っています。加えて、JWTを利用することはそんなに難しいことかという疑問があった

    JWT形式を採用したChatWorkのアクセストークンについて - ChatWork Creator's Note
    j5ik2o
    j5ik2o 2018/09/25
    書いた
  • ChatWork Liveの刷新とScala.jsについて - Chatwork Creator's Note

    こんにちは。クライアントアプリケーション開発部の田中です。 好きな麻雀の役は七対子です。 先日、ChatWork LiveのUIが変更されました。 詳細は下記を御覧ください。 blog-ja.chatwork.com UIについては今後デザイン部の方がブログを書くと思うので、今回私の方では技術的なところの紹介をしたいと思います。 (尚、この記事にはWebRTCやビデオ会議システムの話は全く出てきませんので、ご了承ください。) ChatWork Liveのフロントエンド技術について 実は今月のUI更新とは別に、JavaScript部分の大幅な変更を4月末に実施しています。 大まかな設計はすべて@kyo_ago氏がやってくれて、 私は敷かれたレールをただただ歩くだけだったので割と楽させてもらいました。 ChatWork LiveのWebクライアント側は主に以下の技術を使って実装されています。

    ChatWork Liveの刷新とScala.jsについて - Chatwork Creator's Note
    j5ik2o
    j5ik2o 2018/08/17
    Scala.js 本番稼働中!
  • コスパのよいScala開発マシンを求めて - Chatwork Creator's Note

    ごきげんよう、かとじゅんです。 某社のiMac Pro 138台導入の件はブルジョア感がハンパないですね…。それとは少し違う方向性で、Scalaのビルド効率化をテーマとして、今回は最新のパーツで自作マシン(OSはUbuntu)を組んでみました。そのマシンとMacとでコスパ比較してみたのでレポートします。 ハードウェア構成 ハードウェア構成は以下です。チップセットはIntell Z370で、CPUはCore i7 6コア(Coffee Lake)です。メモリは64GBです。費用は24万ぐらいです。今回は定格クロックである3.7GHzから5GHzにオーバークロックするので、CPUクーラーは簡易水冷を選びました。 Intel CPU Core i7-8700K 3.7GHz 12Mキャッシュ 6コア/12スレッド LGA1151 BX80684I78700K 【BOX】 出版社/メーカー: イン

    コスパのよいScala開発マシンを求めて - Chatwork Creator's Note
    j5ik2o
    j5ik2o 2018/06/14
    久しぶりに書いた
  • バグバウンティ(BugBounty)はじめました - Chatwork Creator's Note

    こんにちは。モンハンは弓か片手剣の田中です。 弊社ChatWorkでは昨年からバグバウンティの導入をし、先月報奨金制度をスタートさせました。 ChatWork BugBounty.jp - バグバウンティ・プラットフォーム 今回は、バグバウンティ導入についてのあれこれを書いておきたいと思います。 導入に至った背景 弊社が運営している「チャットワーク」は現在導入社数が16万社を超え、おかげさまで広く使われるようになりました。 しかし、サービスが成長すると同時に、セキュリティをどう担保していくかという課題がでてきました。 Webサービスを運営している以上、セキュリティ対策はその運営会社の一つの責任であり、出来る限り脆弱性によるリスクは小さく保っていきたいです。 日々の業務、新規機能開発との両立をどうしていくか・・・その一つの回答がバグバウンティでした。 バグバウンティとは? バグバウンティとは

    バグバウンティ(BugBounty)はじめました - Chatwork Creator's Note
    j5ik2o
    j5ik2o 2018/02/02
    お、たなやん、頑張ってるな。僕は盾斧!
  • チャットワークのID生成器 - Chatwork Creator's Note

    2018/3/18 追記 TISさんのreactive system meetupで発表する機会をいただきました。ありがとうございます。発表資料をリンクしておきます。 Distributed ID generator in ChatWork from TanUkkii 18桁になったメッセージID 2017年5月28日をもってチャットワークのメッセージIDは10桁から18桁になりました。みなさんお気づきでしたか? これはメッセージリンクを取得してみることで確認できます。 それまでは32bitでかつ連番のIDでした。今は64bitになり、また単調増加性だけを保証し、連番ではなくなっています。 この記事では新メッセージIDとそれを発行するシステムについて記述します。 枯渇しそうだったメッセージID チャットワークのメッセージ数は2017年3月時点で18億を突破しました。 lp.chatwork

    j5ik2o
    j5ik2o 2018/01/18
    うちで運用してる本格的なID生成器の話
  • Scala採用を決めて3年半たった、CTOの振り返り。アーキテクチャ刷新を成し遂げるために必要なこと - Chatwork Creator's Note

    メリークリスマス!ChatWork Advent Calendarもついにラストとなりました。 日の記事はChatWork CTOの山が担当です。 ChatWorkでは約3年半前に、PHPの独自フレームワークでつくられた大規模システムを、Scalaを使ってゼロベースでつくりなおすという決断をしました。 当時の記事:チャットワークの新しい開発言語とフレームワークを決める開発合宿を開催!その全貌を丸公開します。 その決断をした時に在籍していたScalaエンジニアは0人。まずブログで宣言してからスタートするという、なんとも無謀なプロジェクト進行ではあったのですが、当時の自分たちとしてはマジメも大マジメ、ここでなんとかしないとサービスが将来的に死ぬと背水の陣で挑んだプロジェクトでした。 あれから3年半。途中で大きく開発が頓挫しチームが絶望に包まれた時もありましたが、どうにかこうにか立て直しに成

    Scala採用を決めて3年半たった、CTOの振り返り。アーキテクチャ刷新を成し遂げるために必要なこと - Chatwork Creator's Note
    j5ik2o
    j5ik2o 2018/01/01
    あけましておめでとうございます!自作マシンに没頭してたので読めてなかった…。この三年半は大変だったけど楽しかった。まだまだやりたいことが一杯ですが、今年も頑張っていきたいと思います!
  • ドメインモデルの根拠とドメインモデル貧血症の対策について - Chatwork Creator's Note

    ChatWork Advent Calendar 2017の10日目の記事です。 こんにちは。かとじゅん([Twitter:@j5ik2o]) です。 何を書こうかと悩んだのですが、社内で意見を聞いたところ、やはりDDD関連がよいとなりました。 Scalaコードでわかった気になるDDD この記事も、もう四年前ですっかり古くなりました。最近どういう観点で実践しているかまとめてみます。(DDD初級者という方は、まず上の記事を読むことをお勧めします) DDDを実践するにあたっての個人的な問題点は2つあります。ひとつは、「いきなりドメインモデルを作ることができない」という問題。もうひとつは、ドメインモデルを作り上げても実装コードに役に立つ振る舞いが思いつかず、いわゆる「ドメインモデル貧血症*1」になりやすいという問題です。このような問題は、僕がコミュニティで関わった多くのエンジニアから耳にします。

    ドメインモデルの根拠とドメインモデル貧血症の対策について - Chatwork Creator's Note
    j5ik2o
    j5ik2o 2017/12/10
    久々にブログ書いた!
  • 1