OSSをはじめてみた話

ポエム

概要

Rubel スクリーンショット 2017-07-17 23.59.44.png

数ヶ月前くらいからOSSとしてソースコードをgithubに公開しながらCMSを開発しています。 何の目的で始めたかについてダラダラとかきます。

OSSとは

OSSの定義についてWikipediaを参照してみます。

オープンソースソフトウェア(英: Open-source software, 略称: OSS)とは、ソースコードが利用可能で、著作権保持者がどんな目的のためでもソフトウェアを、学習、変更、そして配布するための権利を提供するというライセンスに基づいたソフトウェアである[1]。オープンソースソフトウェアは何れも共同で開発されている。オープンソースソフトウェアは最も著名なオープンソース開発の例であり、しばし(技術的に定義される)消費者生成メディアや(法的に定義される)オープンコンテント運動と比較される[2]。  Wikipediaより引用

三行でまとめると、

  • ソースコードを公開している
  • 共同開発
  • フリーライセンス

という特徴を持ったソフトウェアのことです。

予め言っておくと、現在私が開発しているプロダクトは"共同開発"という要件を満たしきれていないので、厳密にはOSSとはいい難いのかもしれませんが、細かいことは気にしない方向でお願いします。

#何を開発しているのか マークダウンで記事を書くことのできるCMSを開発しています。 バックエンドはLaravel、フロントエンドはReactで開発しています。

screencapture-admin-rubel-dashboard-new-post-1500641283831.png

開発のきっかけ

"自分のプロダクトを持ちたかった"

  • 自分が使いたいと思うものを自分の好きなように開発したい
  • 自分が開発したプロダクトを誰かに使ってもらいたい

"技術力の向上を図りたかった"

  • 新しい技術を使ってみる機会を持ちたい
  • 仕事やプライベートで学んだことを実践する場

「作りたいから作る、作るのが楽しい、その結果がスキルアップにつながれば良いなぁ」というそんな感じのスタンスではじめました。

なぜCMSなのか

  • Wordpressを辞めたかった
    • 使わない機能が多い
    • Qiitaライクでシンプルに記事を書きたい、マークダウンライティングはデフォルトでほしい
    • SPA
    • 折角ブログかくなら自作のCMS使いたい
  • いろんな機能の実装に挑戦できる
  • 機械学習を使ったレコメンド機能
  • Amazon APIと連携して参考図書を紹介・アフィリエイト機能
  • bitcoin投げ銭機能
  • Twiiter自動投稿
  • 予約投稿機能
  • マークダウンインポート・エクスポート機能
    etc...

実用的かつ色んな技術やアイデアを試す余地が多いので、開発しがいがあって楽しいです。

なぜOSS

  • 色んな人にレビューしてもらいたい
  • 色んな人に使ってもらいたい
  • ポートフォリオ
    • ソースコードがオープンなので誰でもソースを見ることができる

何が得られるのか

  • 長期的に開発・運用を続けていくことで、自分の成長を体感できる
  • 色んな人にコードレビューしてもらうチャンス
  • 誰かに見られているというプレッシャーが勉強意欲を掻き立てる=モチベーションの向上
  • 謎の自信
  • 承認欲求が満たされる(スターなど)

ポエム的見解

自分の抱える問題解決が他者の問題解決に繋がる、貢献する可能性を秘めているということで自己本位な気持ちでOSSを始めることに後ろめたさを感じる必要はないのかなーと思いました。

LaravelとReactの開発事例がgithubにあまり多くなかったので、色んなツッコミが入るといいなぁと思っています。

今後

実はまだv1.0.0のリリースができていません。もうちょっとです。。。(震え声) なのでまずは、v1.0.0をリリースすることが当面の目標です。

その上で

  • ISSUEやPRが欲しい
  • スターが欲しい
  • 運用、改善を続けてプロダクトを洗練させたい
  • 継続的に開発を続けていきたい

上記のような我欲を満たしていきたいです。

v1.0.0をリリースしました。

まだまだバグが多いですが、今後アップデートしていくつもりです。

おわりに

Rubel ISSUEでもPRでもどんなささないことでもぶん投げてもらえるとうれしいです。(タイポからコードレビュー、機能要望その他何でも)

それから、自分もOSSやってるぜーソース公開してるぜーという方がいましたら遠慮なく是非ともコメントにリンク貼ってください、OSSフレンズになりましょう。

リンク

余談

Rubelという名前はネーミングツールでLaravelとReactの2単語をベースにいい感じのワードを生成して決めました。 dotmator 個人で開発しているプロダクト名を決める時に悩みがちな人にはオススメのツールです。


関連書籍