シニアソフトウェアエンジニアのusadamasaです。 マネーフォワード クラウド会計とそれに関連するマイクロサービス群の開発運用を担当しています。本記事では、クラウド会計という10年もののRailsアプリの持続可能性をいかにして確保していくかの取り組みをご紹介します。 TL;DR 私が所属するチームでは、クラウド会計の開発運用における課題を整理し、それぞれの課題に対して解決策を検討し、実行するための取り組みを進めています。 最初にクラウド会計の全体の構造を明らかにし、課題を可視化、組織の共通認識としました。 その上で銀の弾丸を求めるのではなく、有期かつ漸進的な改善のプロジェクトとして計画することが成果に繋がります。 クラウド会計の現状 クラウド会計はマネーフォワード クラウドの代表的なプロダクトの一つです。 2013年にリリースされてから10年、多くの機能追加や改善を重ね、現在では沢山

Deprecatedにした経緯というか背景が伝わってるのかどうかアレだと思ったので、ここに日本語にて書き記しておく。 Deprecate mismatched collation comparison for uniquness validator by kamipo · Pull Request #35350 ·rails/rails ·GitHub Active Recordのuniqueness validatorはデフォルトでcase sensitiveな比較をするんですが、これが、文字列のデフォルトのcollationがcase insensitiveなMySQLと相性が悪く、DB上のUNIQUE制約と一致しない振る舞いだったりINDEXが効率よく使えずDBが死ぬみたいな問題を引き起こしていました。 例:本当にあったRailsの怖い話 僕も主に仕事のコードレビューで過去に何
scalar型を新しく定義するためにはscalarキーワードを使います。例えば、Date型を新しく定義するには次のようにします。scalar Date スキーマではこれだけですが、実際に使う際はGraphQL処理系に対してさらにシリアライズとデシリアライズを定義することになります。GraphQL組み込みのscalar型は先にあげたものだけなので、例えばバイナリ、日付と時刻、HTML/XML、BigIntなどを必要に応じて追加することになるでしょう。ただしその場合、サーバーサイドとクライアントサイドでシリアライズ・デシリアライズの実装を一致させる必要があります。 Enum enum(イナム)はscalar型の一種で、特定の値のみを持つ型です。例えば、組み込みscalar型であるBooleanをenumで宣言すると次のようになるでしょう。 enum Boolean { true false

デザインパターンのよさが分からない人は設計に自信が持てるようになるのか問題自分語りを少々。1 目の前にあったHTML とJavaScript とPHP とSQL が渾然一体となったコードと戦うことから始め、テスタブルなコードを自分が死なないように習得していった自分にとって、鬼門の一つは 再利用のためのデザインパターン だった。 何しろ再利用可能なコードなんてほとんど何もなかったのだ。そんなもの分かるわけがない。 ところが世の中の「ためになる本」はオブジェクト指向やデザインパターンの知識が前提になってしまっているところが結構あって、歯がゆい思いをすることもそれなりに多かった。 そんなところに、少ない設定、少ない知識でもプロダクティブな開発ができるRuby onRails というフレームワークが登場したことで、自分にできることが広がった。2Rails の支援していないもののうち、
はじめに 先日リリースした弊社のリニューアルされたiOSアプリのサーバーサイドはDockerで環境構築されております。Dockerはとても便利で、設定されていば簡単なコマンドを叩くだけであっという間に開発環境が整ってしまいます。 しかし、その便利さ故にDockerを特に意識することなく時だけが過ぎてしまいました、、、 先日何気なく弊社のDocker周りの設定をふと見てみたら、何が書いてあるか全く理解できず(TдT) これはまずいと思いDockerの勉強をはじめることにしました。 今回はDocker初心者が勉強がてらRails+MySQLの環境構築ができるか試してみました。 環境 今回構築するのは以下の環境です。Ruby 2.5.1Rails 5.2.0MySQL 5.7 参考(事前勉強)Dockerfile リファレンス —Docker-docs-ja 17.06.Beta ド

直面する問題を解決したらkaminariができた。Ruby / Railsコミッター松田明のOSS開発の実像 世界中のRubyプログラマに使用されるOSSであるkaminari。これを手がけたRuby / Railsコミッター松田明さんに、開発背景を聞きました。 「これがあったら便利なはずだ」という予測。 あるいは、「これが問題だから、解決する」という現状認識。 新たな技術が生み出される源流にあるものとは、一体なんでしょうか。Ruby onRails(以下、Rails)を用いたWebアプリケーション開発において、圧倒的な存在感を放つページネータであるkaminariを開発した松田明(まつだ・あきら/ @a_matsuda )さんの場合は、“絶対に”後者であると語ります。Rails、そしてRubyのコミッターでもある松田さんは、まさにRubyを用いた開発の最中、先行するソフトウェアに感

It’s 2018, andit’s high time for us at JetRuby to once again scrutinise everything we believe in, and answer the million (ish)-dollar question: “IsRuby/Rails finally deader than a coffin nail in 2018?” The rumors ofRuby’snascent (inevitable, immutable, irreversible) demise have beenwhispered about for years inside developer locker rooms, and yet the language andRails, the framework, are stil

2019/09/09加筆: 注意事項 多くの人に見ていただいていますが,この記事は2017年12月当時(Railsの最新バージョンが4.2ぐらい)に書かれたものであり,現在は内容がかなり古くなっています 2019年9月現在,筆者はRailsどころかwebアプリケーション開発からも離れているため,今の所アップデートする予定はありません(というかできません). そのため,本記事を参考にする場合は使用しているRailsのバージョンに合わせて適宜脳内補完しながら読んでいただければ幸いです.本記事に書かれているようなベストプラクティスを検討する上で最善の方法は,Railsの公式リファレンスとRailsのコードそのものを読んで最善策を模索することです.Rails5以上を使っている場合は,こんな古い記事を読まずに,自分で最善の方法について検討することをおすすめします. 筆者は,2014年半ばから201

こんにちは。メドピアのRuby(Rails)化をお手伝いしている@willnetです。最近はよくリファクタリングをしています。 今回は、最近僕がリファクタリングしている内容についてまとめようと思います。 メドピアではFat Model/Controllerを避けるために、rubocopの設定を利用しクラスの行数が300行以下になるよう制限しています*1。最近300行を超えるモデルが出てきたので、一部の処理を別のクラスに切り出し始めました。 このとき、Railsが提供している機能であるconcernsを利用すると楽に行数を減らすことができますが、それだとrubocopの指摘を回避できるという意味しかないので、なるべく委譲(composition)を利用して処理を別クラスに移していっています*2。 複数モデルにまたがる処理を切り出すRailsアプリケーションを書いていると、複数のモデルを一度

みんなのウェディング、松久(@kamonegi1977) です。 利用しているRuby onRails のバージョンを 4.2 から 5.0 にアップデートしました。 5.0 へのアップデートで行った事をまとめます。 アップデートまでの流れRails 5 へのアップデートプルリクエストができる 作られたプルリクエストを開発環境にデプロイし、手動でブラウザ確認する 日々の変更を毎日取り込む 手動でのブラウザ確認、リリース後見つかったエラーは、再現テストを作って対応する プルリクエストをマージしてリリースする 最初、アップデートに必要なことをプルリクエストを用意しました。 その後、ブラウザ確認を行いエラーになったところを見つけたら再現テストを用意していき、リリースをしました。 gem の変更と削除 gem のアップデートは、日々追従していますが、Rails 5.0 に合わせて変更や追加が

と思い立っても、まずはあなたのPCでプログラミング言語を扱える環境を作らなければいけません。その事前準備を、「開発環境の設定」や「環境構築」といいます。 この「事前準備」でさえ中級者でも場合によっては1日〜2日ほどはまってしまい、なかにはプログラミングを始めることすらできずに挫折してしまうなど、「環境構築」はプログラミング初心者にとって高いハードルなのです。 そんな「最初の壁」を乗り越えられるように、今回はCloud9の使い方から便利機能まで初心者でも快適に読み進めることができるコメントつき画像でわかりやすくご紹介しています。 この記事を読めば、そういったやっかいごとから全て解放されますよ!次のような方に向けて書きました。

プログラミング初心者に ECMAScript(JavaScript) を最初の言語として勧めるべき? Meguro es6
rails 自分がrails をさわり始めたときはバージョン1からバージョン2に変わるあたりだったのですが、バージョン2が出た年を振り返るとなんと2007年でした。 月日の流れが速い事に驚く中、早く知ってたら良かったのになぁって事をつらつらとまとめてみました。 最近rails さわり始めてみたよ!って方の参考になれば良いなと思います。 今回は便利な gem とかではなく、素のrailsで出来ることを挙げています。 ちなみにバージョンは以下の環境です。 About your application's environmentRuby version 2.1.3-p242 (x86_64-darwin14.0)RubyGems version 2.2.2 Rack version 1.5Rails version 4.1.8rails new したときの app 以下のディレクトリ
誠に申し訳ございませんが、wri.peはサービスを終了いたしました。2023年末までデータのダウンロードが可能です。 現在、GitHubユーザのみデータのダウンロードができます。Facebookに関しては、ログイン処理ができない問題が発生しており、Facebook社に問い合わせ中です。この問題に詳しい方がいらっしゃいましたら、@masuidrive までご連絡ください。 これまでのご利用、合計2.6万人の皆様に30万ページでお使いいただき、心より感謝申し上げます。最後に、お気持ちをいただける方は、Amazonのウィッシュリスト から何かお選びいただければ幸いです。 We apologize for the inconvenience, but wri.pe has terminatedits service. You can download your data until the en

『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、Rubyist のRubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号Rubyist Magazine 0064 号 バックナンバーRubyist Magazine 0064 号Rubyist Magazine 0063 号Rubyist Magazine 0062 号 Kaigi onRails 特集号RubyKaigi Takeout 2020 特集号Rubyist Magazine 0061 号Rubyist Magazine 0060 号RubyKaigi 2019 直前特集号Rubyist

レイアウトテンプレートとは アクションからテンプレートが呼ばれて結果として返されるHTMLページが作成されますが、テンプレートによって作成されたHTMLだけが返されるわけではありません。 前のページで「books」コントロールの中に「show」アクションを定義し、さらに「show」アクションから呼び出される「app/views/books/show.html.erb」というテンプレートを次のように作成しました。 <!DOCTYPEhtml> <html> <head> <title>SampleView</title> <link href="/assets/application.css?body=1" media="all" rel="stylesheet" type="text/css" /> <link href="/assets/books.css?body=1" media=
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く