未熟学生エンジニアのブログ

プログラミング・Web開発をする大学院生のブログ

初めてのOSSへのプルリクエスト(ドキュメント編)

初めてのOSSへのプルリクエスト(ドキュメント編)

今回プルリクを送ったリポジトリ

github.com

Djangoで作られたECサイトのプロジェクトです。 このサイトで実際に運用されています。http://getsaleor.com

なぜこのリポジトリを選んだか

単純に自分が結構参考にしていたリポジトリだったからです。 現状バイト等でも綺麗なコードを読む機会があまりなかったので、大きめのOSSのコードリーディングをやってみたいと思ったのが始まりです。

なぜプルリクを送ろうと思ったか

どうせならコードリーディングだけじゃなくてコントリビューションもやりたいと思い、何気なくcontribution guideを読んでいたところ、typoに気づきました。 typoに気づいたら、これはコントリビューションチャンス!ということでプルリクを送ろうと決めました。

プルリクを送ると決めてから調べたこと

コントリビューションガイド

READMEから見つけた。以下のことについて注意して読んだ。

  • issueを立てるべきか
    • issue文のテンプレはあるか?
  • pull request文のテンプレはあるか?
  • テストについて

読んだ感じだと、どうやら特にやれることはなさそうだった。(今回はドキュメントのfixなので特にテストする必要もなく、CIに任せることにした)

マージされた似たようなプルリクを調べる

Githubの左上の検索ボックスから、「Fix typo」と検索

以下のような似たようなプルリクが見つかった。

https://github.com/mirumee/saleor/pull/3100

forkする

今回、実は先にリポジトリをクローンしてpushしてみたが、pushがリジェクトされてしまった。 ブランチ名を見ると、tetsufe:fix-type のようにコロンで区切られていた。 forkすると、こんな感じで表示されるらしかった。 そういうわけでforkしてからプルリクを送ることにした。

forkからpull requestの送り方は以下を参考にした。

qiita.com

ブランチ名

マージされた似たようなプルリクを調べる https://github.com/mirumee/saleor/pull/3100

  • タイトル
  • issueを立てるべきかどうか

修正する

ドキュメントを修正します。今回はPotsgreSQLと書かれていたのをPostgreSQLに直しました。これだけです。笑

一応、プロジェクト全体を検索し、ここしかその間違いがないことも確認しました。

コミットメッセージ

コミットメッセージは特殊である必要はないらしかったので適当に"Fix typo in docs about search" としました。英弱ですね。

プルリクの作成

pull requestをリンクから作成するとテンプレが自動生成される。しかもfork元に自動的にプルリクが作成される楽々仕様でした

$ git push
Enumerating objects: 9, done.
Counting objects: 100% (9/9), done.
Delta compression using up to 12 threads.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (5/5), 436 bytes | 436.00 KiB/s, done.
Total 5 (delta 4), reused 0 (delta 0)
remote: Resolving deltas: 100% (4/4), completed with 4 local objects.
remote: 
remote: Create a pull request for 'fix-typo' on GitHub by visiting:
remote:      https://github.com/TetsuFe/saleor/pull/new/fix-typo
remote: 
To github.com:TetsuFe/saleor.git
 * [new branch]          fix-typo -> fix-typo

この https://github.com/TetsuFe/saleor/pull/new/fix-typo リンクから行くと、勝手にプルリクのテンプレが入力された状態でフォームが出てきました。

f:id:swiftfe:20190210202158p:plain

プルリクのタイトル

コミットメッセージと同じでもOKらしかったので、そうしました。

プルリクの本文

I want to merge this change because... のプルリクのテンプレに従って、

I want to merge this change because potsgreSQL is wrong, postgreSQL is correct.

と書いた。意味はわかるはず。

完成!

github.com

プルリクを作成すると、CIが回り、そして終わります。この辺はさすが質の良いオープンソースプロジェクト感があります!

f:id:swiftfe:20190210202310p:plain

迷ったところ

pull requestのテンプレが見つからない(あとでわかったが、forkしてpushした時にコンソールに出てくるリンクからプルリクを作ろうとすると自動的にテンプレ文が入力された状態で始まる仕様らしかった。)

後日、マージされました!

github.com

メンテナの方からも感謝の言葉をいただき、割とテンション上がりました。笑

今度はコードでコントリビュートしたいですね!

皆さんも簡単なところからOSSへのプルリクエストを送ってみてはいかがでしょうか?

2019年の目標を再考する

基本は2019年の2/10に書いています。

2018年末から2019年始にかけて掲げた目標をもっと粒度を細かくしようと思います。 というか細かくしないとすぐ発散してしまう。

こんな感じでTwitterでも書いてますが、どこに書いてあるかわからなくなるのでブログにまとめます。

2019年始に掲げたmust, should, want

swiftfe0.hatenablog.com

さらに細かく、具体的にする

上の方から順に具体的なものを置くようにしました

まずは太字を優先的にやっていきます

must

「ホクマ」関連

  • saleorを参考にテストを書く
  • 「ホクマ」を新学期(3、4月)成功させる
    • 登録ユーザ数+100を目指す(現在1/5時点で自分の知らないユーザが40くらいなので、その10倍 としていたが、2/10に下方修正。実際2倍くらいが限界と思われる。1月のビラ貼りの効果が実質0だったため。当初はビラのみで+100~を見込んでいた)
      • 実現の方法:新入生にダイレクトビラ配り+SNS
      • 総取引金額+5万円以上(参考書一冊1000円 *50冊 。これも下方修正。目標ユーザ数が半減したので金額も半減)
  • 「ホクマ」のデータベース設計を再考、実装
    • 読書
      • 「データベース実践入門」
      • 「達人に学ぶSQL
    • n+1問題を最低一つ解決(下方修正)
    • インデックス(努力目標。必要なほど数はない)
    • 正規化(すべてのテーブルで実施)
  • 監視
    • mackarel導入
  • DBバックアップcron作る
  • コントリビュータを招くためにドキュメント整備
    • ]x] 2/9 done README整備
    • ] ] ドキュメント整備
    • ] ] テスト整備
    • ] ] CI整備

技術書典出店

  • 「ホクマ」のインフラ環境を理解しなおしてブログ記事を書く
    • nginx
    • postgres
    • docker
    • ssl
    • QA

ノベルゲーム関連(3月以降)

  • ノベルゲームのシナリオを書く
    • いきなり書き始める
  • ノベルゲームで使えるレベルのイラストを描けるようになる
    • 土日に絵を描く
  • ノベルゲームの実装
    • Swiftでの実装
    • TDD( 「Test-Driven iOS Development with Swift 4」を読む)

区切りの目標(自明なので下の方にした)

  • 卒業する(省略)
    • 全国大会発表
      • 2月投稿
    • 研究会発表
  • [x] 1/16 done! 就職する(自分でお金を稼いで親から自立する)

技術

  • ある一分野に精通する
  • サーバーサイド・インフラ
    • Web architecture 101 の各構成要素を理解・使ってみる
  • プログラミングの基礎
    • SOLID原則
      • SIP、OCP、DIPを特に実践

いったんこの辺で。一応下にshouldとwantも残してます

should

  • MVC・MVVM・Redux
  • Swift4をマスターする
    • Swiftyなコードを書く
  • iOS dev sapporoの発表枠参加を複数回する

want

  • ]x] パラレログラムやる
    • [x] CD/DVDリーダー?買う
  • サークルで作るものに協力する
  • サークルで学祭出展

仕事(一部1月のものから移動)

  • バイトでちゃんと報酬に見合った仕事をする
    • 組織の全体でコミュニケーションの円滑化
      • ビデオ通話を活用してコード・デザインレビューをしながら実装の相談(最低2週に1回)

個人開発サービス「ホクマ」のコンセプトを再考する

「ホクマ」とは

2018年10月にリリースした、北大生限定のフリマサービスです。(でした)

http://swiftfe0.hatenablog.com/entry/2018/10/06/094817

  • 商品の出品
  • 購入
  • チャット
  • 商品・金銭の受け渡しはあって直接

元々のコンセプト

リリース当時は以下のコンセプトを念頭において作っていました。

  • 北大生限定のサービス
    • 他のフリマサービスよりも安心して利用できると考えている(同じ大学の学生との取引なので、相手の素性が分かっている)
    • 北大生限定という「北大愛」を持って利用してもらえる
  • フリマサービス
    • 大学生の要らなくなった教科書をより多くのお金に換えられる
      • 教科書などは使わなくなるが、古本屋などで売ると大したお金にならない
      • フリマサービスで売った方が高く売れる
    • お金のない学生は安く教科書などを買える

数ヶ月経った後の変化

運用を続ける上で考えの変化や気づきもありました。

  • 「会って渡す」ことによる出会いが何かを生むのではないか
    • 実際に開発者の自分も利用することで良い出会いがあった
    • せっかく北大生限定のサービスとしてユーザを集めたので、他にも「出会い」を中心としたローカルサービスとして発展させられないか(「ジモティー」の成功例もある)
      • 元々、フリマサービスだけでは売るもの・買うものがなくなった人は利用しなくなってしまうことが多い
        • 特に教科書を買うシーズン以外は使われないのではないか
        • 「出会い」は、買い物よりも希少性が高く、このサイトを使う価値となるのではないか
        • 「出会い」は定期的に欲しくなるものではないか
          • 新しい趣味の友達がほしい(趣味が変わる、増える度に欲しくなる)
          • 何度か段階的にチームに人数を増やしたい
          • 面白い人がいたら会いたくなる

今後の「ホクマ」のコンセプト

そんなことを考えた結果、

「ホクマ」を「北大生のためのフリマサービス」から、「北大生が欲しいものを手に入れられるサービス」へと発展させていこうと考えています。

今後は

  • フリマ
  • 仲間の募集

この二つを軸にした機能を展開し、「モノ」「お金」のやりとりだけでなく、「仲間」を見つける手助けをしていきたいと考えています。 北大生同士なので、「身近な出会い」も魅力として推していきたいです。

もちろん、僕自身も「ホクマ」を通じて色々なチャンスを掴んでいけたらと考えています。笑

2019年のmust・should・wantを整理する

must

区切りの目標

  • 卒業する(省略)
    • 全国大会発表
    • 研究会発表
  • 就職する(自分でお金を稼いで親から自立する)

仕事

  • バイトでちゃんと報酬に見合った仕事をする
    • 組織の全体でコミュニケーションの円滑化
      • 責任の明文化
      • ビデオ通話を活用してコード・デザインレビューをしながら実装の相談(最低2週に1回)
      • ミーティングでの意思疎通
        • 何をやるべきか
        • 何がやりたいか
        • 不満・改善策

サービス

  • 「ホクマ」関連
    • 「ホクマ」を新学期(3、4月)成功させる
      • 登録ユーザ数+400を目指す(現在1/5時点で自分の知らないユーザが40くらいなので、その10倍)
      • 総取引金額+10万円以上(参考書一冊1000円 * 100冊)
    • 「ホクマ」のインフラ環境を理解しなおしてブログ記事を書く
      • nginx
      • postgres
      • docker
      • ssl
    • 「ホクマ」のデータベース設計を再考、実装
      • n+1問題
      • インデックス
      • 正規化
  • ノベルゲーム関連
    • ノベルゲームで使えるレベルのシナリオを書けるようになる
      • 短編の投稿(「なろう」「scraiv」「Twitter」)
    • ノベルゲームで使えるレベルのイラストを描けるようになる

技術

  • ある一分野に精通する
  • サーバーサイド・インフラ
    • Web architecture 101 の各構成要素を理解・使ってみる
  • プログラミングの基礎
    • SOLID原則
    • テストを書けるようになる
      • Djangoでテストを書いてみる
      • 「Test-Driven iOS Development with Swift 4」を読む
  • 技術記事を書く
    • 最低月一回

should

  • MVC・MVVM・Redux
  • Swift4をマスターする
    • Swiftyなコードを書く
  • iOS dev sapporoの発表枠参加を複数回する

want

  • パラレログラムやる
    • CD/DVDリーダー?買う
  • サークルで作るものに協力する
  • サークルで学祭出展

その他

  • サークルメンバーをサポートして何か良いサービスを作ってもらえたら嬉しい

フリマサイト 「ホクマ」の類似サービス、「ジモティー」の簡単な分析をしてみました

「ホクマ」に新機能を追加したい

北大生限定Webフリマアプリ「ホクマ」では、サイト上で「出品」と「購入」ができるというサービスを提供しています。

hufurima.com

最近、「出会い」要素をもうちょっと追加したいという考えになり、どのようにそれを落としこもうか考えて、Twitterでアンケートをとったりしていました。

WHY: なぜ「出会い」要素を追加したいのか

  • 個人的に、「出会い」を増やしたい(ほどほどに)
  • アンケートをした結果、「一緒に勉強する友達」を募集する機能などは需要があるらしい
  • シーズン通して使われる機能がほしい(「出会い」はシーズンに左右されにくい)
    • 現状、「出品」・「購入」の機能だけで、新しい学期からまだ遠いため、教科書などのやりとりも少ない
    • 新学期には取引の活発化が予測されるが、新学期シーズンが終わればせっかく登録してくれたユーザが離脱してしまうだろう

でもどうするのが正解だろうか?

「出会い」(マッチング)を実現するために、どんな機能を作ればいいのか?はわからなかった。

  • 「一緒に勉強する友達」のように絞ってしまう方が良いのか?
  • 「友達募集」のように広く使いやすい方が良いのか?

そこで、類似サービスである「ジモティー」を見て参考にすることにした。

ジモティーの場合、同じCtoCのサイトではあるけど、商品の売り買いだけじゃなくて、もっと他のこともできる。

例えば、「譲って・助けて」っていうカテゴリーがあって、「英会話を教えてください」みたいな募集から、「旅行に行くからおすすめの場所教えて」とかまである https://jmty.jp/hokkaido/coop-les

ジモティーでは、「募集」に以下の大カテゴリがある。

  • 売ります・あげます
  • 中古車
  • 里親募集
  • メンバー募集
  • 譲って・助けて
  • アルバイト
  • 正社員
  • 教室・スクール
  • 不動産
  • イベント
  • 地元のお店

「出会い」っていうコンセプトで行くと、

  • イベント
  • メンバー募集
  • 譲って・助けて

あたりが該当する

イベントに関しては、ジモティーでもfacebookと同時投稿している人が多いようだし、あまり需要はないかもしれない https://jmty.jp/hokkaido/eve-fes/article-bo0gt

「メンバー募集」はどうなんだろう。

ジモティーでは、 「メンバー募集」の中に「友達」っていうサブカテゴリがあって、 「ラーメン友達募集」 https://jmty.jp/shizuoka/com-fri/article-bo8kw とか 今からのみませんか! https://jmty.jp/tokyo/com-fri/article-bo8ki とかの投稿がある

「友達」以外にも、「バンド」とか「スポーツ」とかがある 社会人のサークル設立とか、そういう需要があるらしい。 https://jmty.jp/hokkaido/com-spo/article-bl956

「ホクマ」を見てくれる人がどれくらいいるかはわからんけど、こういった「サークルメンバー募集」とかを掲示しとくのはありなんかも。(まあツイッターとかホームページとかあるから微妙なところではある)

結論

ホクマでやるなら、以下のあたりで大雑把にやる方がいいように思った。

  • 「oo友達募集」
  • 「教えて・知りたい」
  • 「イベント」
  • 「買わせて・譲って」

理由

  • ジモティー」がこんなアバウトなカテゴリわけでも一定のユーザ数(北海道でもだいたいどのサブカテゴリでも1日1募集くらいはあった)を保っていること
  • 「ホクマ」は実験的サービスなので、まずは自由な使い方をしてもらった方が思わぬ使い方に気づかせてくれるかもしれない
  • 上記のカテゴリなら北大生にも需要がありそう

その他、気づいたこと

それと、他に気づいたジモティーの面白いところとしては、いろんなカテゴリで投稿(投稿というのは上の https://jmty.jp/hokkaido/com-spo/article-bl956 のようなもの)ができるけど、そのフォーマットは同じということ。

つまり、「友達募集」カテゴリのフォーマットも、「売ります」のフォーマットも全く同じだということ。 これがUI/UX的にいいのかはわからないけど、ある程度利用者がいるということを見ると、色んなカテゴリがあってもその投稿フォーマットは同じで問題ない、あるいはその方がむしろ見やすい/使いやすい可能性があるということ

「フレーズ英単語1800 センター対策編」サポートについて

お問い合わせ先

下記メールアドレスからお問い合わせください。本アプリはユーザーの皆様からの要望に答える形で新機能や単語の内容など、これからも改善を行なっていく予定です。ぜひお気軽にお問い合わせください。ご要望があれば、LINE@などのサービスも開始する予定です。

phraseeitango1800あっとまーくgmail.com

(「あっとまーく」を@に変えてください。迷惑メール対策のため、一部表記を変更しています。)