開発中になんとなく変数名やメソッド名を決めてもモヤモヤするときありませんか?
「書いてみたけどこれでちゃんと伝わるかな〜」
「もっと良い名前がある気がする...!」
そんな時はこの"name_it"でみんなに聞いてみましょう! このサイトでは自分が悩んでいる変数名やメソッド名を投稿し、 みんながアンケートに投票や更なる選択肢の追加などを行って よりよいネーミングを共有していくエンジニア支援サイトです。
私たちCammelは2年前に「アジャイルを学び、実践する」という理念の元、大学の同期で立ち上げた開発チームです。 チーム開発の中で私たちが頭を抱えている課題は「メンバーに伝わるコード」を書くことの難しさでした。 最近の開発では命名規則を決めたり、リファクタリングをチームで行うことで、この課題に取り組んできました。
「リーダブルコードーより良いコードを書くためのシンプルで実践的なテクニック」にはネーミングについて以下のように書かれています。
「名前に情報を詰め込む」 つまり、名前を見ただけで情報を読み取れるようにする
最善の名前とは、誤解されない名前である
このように情報の詰め込み方や誤解のされないネーミングのためには、開発者としての経験や知見がとても重要であると私たちは考えました。
本プロダクトname_itでは、開発者の知見を元により良いネーミングへの知見を得ることができます。
ネーミングに関する悩みを持つ人が悩みを投稿し、 回答者が投稿に対する回答としてネーミングの選択肢に投票や選択肢追加をします。
学習された翻訳エンジンによってネーミングを生成するcodic: プログラマーのためのネーミング辞書とは異なり、実際のエンジニアの経験や知見を元にした生の票によってより伝わりやすいネーミングのための知見を得ることができます。
暫定的に名前を決めるためであれば、ユーザはcodicを利用すると思います。 しかし、私たちのname_itではリファクタリングやチームでのコード共有のタイミングに焦点を置きました。
name_itを使うことでより良いネーミングへの知見を共有してもらいたいと考えています。
GitHub連携によりユーザ登録ができます。
より経験のあるエンジニアの票に重み付けがされるようになっています。
markdown形式で投稿に対する説明を記述できます。 これによって回答者は説明文だけでなく実際のコード(markdownによるコード埋め込み)といった背景情報を元に投票や選択肢追加ができます。
また、コメント機能を使ってより良いネーミングについてのディスカッションを行ったり、 投稿をお気に入り登録して投票結果を追うことができます。
開発者の経験を元にした投票結果によって、リファクタリングやチームとのコード共有の際に必要な知見を得て、ネーミングに対する悩みを解消することができます。
回答者のベストアンサー率を追加することでより信頼のできる回答者がわかるようにしたいと考えています。
投稿へのラベリング機能を追加することで似たような悩みを持つ人の投稿を検索できるようになります。
GitHub Readme Statsによる、より多くのパラメータを用いたランクを採用したいと考えています。
今後ユーザや投稿が増えていくことによって、name_itにより良いネーミングの知見が集まる場所になると考えています。
- より開発経験のある人の票に価値があるようにGitHub Readme Statsの統計データを使用しました
- 想定するユーザ層(実際に私たちと同じように一度決まったネーミングに対して時間をかけて再考する人)の調査のためにTwitterのPoll機能で投票を取りました
- 基本的な機能が備わった段階でフィードバックをいただくためにTwitterにてリリース情報を投稿しました(v0.1.2リリース時)
- オリジナルアイコンを作成しました
- 毎日DailyScrumや振り返りなど可能な限りアジャイルチックな開発を目指しました(詳しくはWikiをご参照ください)
- 1Week=>1Day=>1Hourのフラクタルスプリントを採用して開発を進めました
- Vue.js
- vue-markdown
- bootstrap-vue
- Firebase
- Firebase Hosting
- Cloud Firestore
- CircleCI
- PC
- スマートフォン
- ユーザ情報と投稿情報を相互に結び付けるデータベース構造
- GitHub情報を利用した投票数設定