![見出し画像](https://assets.st-note.com/production/uploads/images/81292997/rectangle_large_type_2_7760b145b593985bbb67cb7a8ac59f4b.jpeg?width=1200)
バヅクリでのRails開発
サービス開始当初、エンジニアは私一名。マーケットフィットを探りながらも、弊社の営業、マーケはプロダクトがなくても、売れる部隊であり、とにかく速くプロダクトを開発する必要がありました‥😂
とはいえ、リソースとなる、エンジニアは私の一名。インフラはもちろん、サーバー側の実装からフロントまで全て一人。
なぜRailsだったのか
今でこそ、フロントエンドという領域があり、担当エンジニアがいますが、当時はそんな職能分業などしていられません。つまり、全て僕一人で、かつ、速くつくる必要がありました。
もちろん、イチからスクラッチで作っている余裕はありません。最速で開発するには、フレームワーク(先人の知恵)の、導入は自明でした。
また、僕自身の知見もあることも安全にスピーディな保守、運用していく上で大事な点でした。
以上のことから、真っ先にRailsを採用と。
「速く、安全に開発を進める」とは?
ココで改めて‥速く、安全に‥とは‥??
速く‥
こちらは文字通り、サービスのMFがスピーディにできること。その意味でのスピードを開発においても出せる状態とすること。
安全に‥
一見、上記に反して、一般的に「速くつくる」=💯点ではないものでも、ある程度のバグは許容して、開発を進めるということ。
と捉えられがちですが、そうではなく、
一人開発かつサービスのMF(マーケットフィット)を優先する場合での、
安全=バグが起きにくい、起きてもすぐリカバリできる状態=継続的なメンテナンスが秒でできること
とし、
これを実現することが最優先と定義していました。
バヅクリでのRailsの使い方
では、これをRailsという武器を使って、どう実現しているのか。
その答えは、
OOP(オブジェクト指向プログラミング)
TDD(テスト駆動開発)
の実践です。そして、それがしやすいのがRailsというフレームワークです。
バヅクリでは、この2点を実施することで、スピーディ&安全な状態を担保しつつ開発をしています。
開発スピード=サービス提供スピード=世の中を変えていくスピード
ととし、
速さゆえのメンテナンスできないコードを増やしていい
ではなく!
サービス提供スピードの速さのために、メンテナンス性の高いコーディングを実践しています。
これをもって僕らは開発の速さと意味づけています。
これを実現するスキルとしては、もちろん、設計力がキモとなります。
設計がよろしくない=テストもしにくい=メンテナブルでない、ということもOOPに従って言えることであり、この点からも、テストコードを書くこと、書かない選択をする場合でも、書ける状態にすることを、重要視しています。
以上のことから、Rails環境下では、比較的に容易なフォームオブジェクトやファクトリパターンなどのデザインパターンの利用など、OOPを積極的に実践しています。
弊社のcontrollerを見ていただくと、以下にシンプルでわかりやすく、Rails wayなコードに、なっているのかがわかるかと思います。
コントローラーが、fatになってしまってる‥何かを変更すると、あっちもこっちも壊れるなど、お悩みの方はぜひ、バヅクリのRails環境で、OOPを、理解、実践していただいて、エンジニアとして、一段も二段もレベルアップしていってもいただけるとよいかと思います。
スキル向上はもちろん、スピーディな開発ができると、よりプロダクト開発の目的に思考がフォーカスもしやすくなります。
これが、すなわち、弊社でよく言うところの、
手段としての「技術力」です。
どういった目的を達成するために、どういったものを、作ったらいいか?その実現スピードが速く、しかも、安全にできるとしたら?
ただのアプリ開発エンジニアではなく、サービス開発がてぎるエンジニアとして、よりワクワクしながら「開発」ができると思いませんか?
まだまだ、副業エンジニア含め、Railsエンジニアは2名と、少ない人数での開発体制ですが、実はとてもレベルの高いことやっています💪
せひ、
自分の腕を上げたい方、
ワクワクしながらRails開発がしたい方、
チーム開発の醍醐味を味わいたい方、
事業成長を加速させるプロダクト開発をしたい方、
ぜひ、お気軽にtwitterDMなどご連絡いただけましたら幸いです😊
https://buzzkuri.co.jp/
https://buzzkuri.com/