React Hook Formは非制御コンポーネントからどうやって変更を検知しているのか

こんにちは。エンジニアの根岸です。 コミューンには2年ほど前から副業で関わっていたのですが、昨年の12月に正社員としてジョインすることになりました。

コミューンのプロダクトには比較的長く関わっているのですが、知らないうちにフォームライブラリのReact Hook Formが導入されていました。 React Hook Formを使っていて、どうやって入力内容が変更されたことを検知しているのか疑問に思ったので調べてみました。

続きを読む

waiting for metadata lockにもう負けない。GCP CloudSQL上で開きっぱなしのTransactionの探し方。

🎍 あけましておめでとうございます🎍

エンジニアの前原です。

皆さん、年末はいかがお過ごしでしたか?

私ですか? 私は12/28の夕方まで障害の原因追求に奔走してました。なんとか年内に調査完了して安堵したのを覚えています。

折角なので今回はその問題について対処法と合わせてご紹介したいと思います。

(暫定的な対処というよりは根本対処のときの調査はこうしようね、という話です。暫定的な対処は mysql process kill とかでググれば色々出るはず。)

続きを読む

CTOのポエム

エンジニアのチームビルディング、チームマネジメントの際に私が徹底している10の項目です。これを守れば誰でもいいチームが作れます。

鶏を割くに焉んぞ牛刀を用いん

簡単なことをやるのに必要以上の複雑さを持ち込むのは「害」です。これはある種、美学の話かもしれません。

この心得の真意は「余分なものを削ぎ落とした美」を追求することです。勘違いして頂きたくないのは「最低限動く実装でよい」「継接ぎのコーディングで良い」などという意味ではありません。名著リーダブルコードの原点「読み手が最短時間で理解できる」実装がやはり理想なのです。

続きを読む

Next.jsとTypescriptが奏でるUniversal JSの世界 ~commune を支えるアーキテクチャ~

  • communeとは?
  • アーキテクチャの全体像
    • 概観
    • 組織アーキテクチャ
  • おもな要素技術のご紹介
    • バックエンド
      • Express + Passport + Sequelize
      • Cloud SQL(MySQL)
      • nginx (Let's Encrypt)
      • SendGrid
      • Elasticsearch
      • BigQuery
      • imgix
    • フロントエンド
      • Next.js
      • Redux
      • redux-saga
    • プロジェクト基盤
      • Typescript
      • Circle CI
      • Cloud Functions
      • Cloud DNS
    • (参考)Universal / Isomorphic JavaScript
      • 1. 型定義ファイル、定数ファイルを楽に共有できる
      • 2. 未知の領域への不安を和らげることができる
続きを読む

コミューンのCTOに就任してから1年半くらい経ちました

早いもので、2019年05月にコミューンにCTOとして参画してから1年半くらい経ちました。

私が言うのもあれですが最近勢いがついてきました。シリーズAの調達を終えてさらに加速が見込まれます。しかしそんな中でも代表の高田、橋本をはじめ社員は「勝って兜の緒を締めよ」状態です。
(高田)「やっとスタート地点に立っただけ。本当の戦いはこれからだ!」と主人公みたいな台詞を口にしていたりします。スタートアップの日々は戦場に近いのかもしれない、とすら感じます。

  • コミューンの開発組織が目指す究極のゴール
  • エンジニアチームの推薦図書
  • コミューンはTypeScriptを使っています
  • 組織づくりはたった1つのことしか意識しない
  • 採用はカルチャーフィット8割、スキルフィット2割


これだけだとまるで軍隊のような会社、と誤解されがちですが、裏では(ささやかですが)ちゃんと皆で調達の祝いをしました。会社が成長、存続できるのはスタッフの皆さんの活躍あってこそ。だから普段から経営陣は「本質的に」はたらきやすい環境づくりに励んでいます、本気で。


さて、いい機会なのでコミューンのCTOとして「今どんなことを考えて組織づくりをしているか」「どんなチームをつくりたいか」「一緒に働きたいエンジニア像」みたいな部分を筆の赴くまま書き残しておこうと思います。

続きを読む

【全文和訳】Next.js 9.2

 

 

(以下は2020年1月15日に公開された Next.js 9.2 の日本語和訳です。 以下原文 )

https://nextjs.org/blog/next-9-2

 

心躍る、Next.js 9.2の発表です:

  • Built-In CSS Support for Global Stylesheets: アプリケーションは .css ファイルをグローバルスタイルシートとしてインポートすることができます。

  • Built-In CSS Module Support for Component-Level Styles: .module.css を活用し、ローカルで見つかった CSS はアプリケーションのどこにでもインポートし、使用可能になります。

  • Improved Code-Splitting Strategy: Google ChromeチームがNext.js' code-splitting strategyを磨き、クライアント側でのバンドルを縮小することに成功しました。 また、HTTP/2 の利用率を上げることによって、HTTP/1.1のパフォーマンスを損なわず、ページのロード時間を改善しました。 

  • Catch-All Dynamic Routes: Next.js' Dynamic Routes は、catch-all routesへの対応により、様々なユースケースで活用できるようになりました。例:CMS-powered websites.

これらすべての恩恵は、過去のリリースに対応しています。アップデートを行うためには、以下のコードを実行するだけです:

$npm i next@latest react@latest react-dom@latest