リポジトリで管理します。絞ることで、そのグループに属するユーザのみ暗号化・復号が可能になります。'kenzo.tanaka',}上記の場合、新たにユーザ追加する度にコード修正が必要となります。命名規則がある場合、以下メソッドで命名規則に沿った変換を実装すると追加の手間がありません。弊社では命名規則があるので、変換処理をするようにしています。<firstname>.<lastname>以下のような変換が可能です。仮設定状態だったので、生成されたエンドポイントを設定します。エンドポイントになります。プルリクエストでメンションします。流れてますので、ログを確認してください。誤りがある等チェックしてみてください。コミュニケーションしています。上で明示的にメンションすることが増えた様に思います。リソースの変更に応用する様にもなりました。こちらについては今後執筆できればと思います。参考になれば幸いです。՞)☝︎是非読者になってくださいメドピアでは一緒に働く仲間を募集しています。セットアップしています。*3:特段これでなくてはいけないということではないので、適宜設定してください。含めるとエラーになるかと思います。あるのですが、暗号化時にパスワードを設定する必要があります。持たせても良いかもしれません。今回は、アップグレードを行った手順や躓いた部分を今更感もありますが紹介いたします🙌アップグレードまでの道のりまずはバージョンアップまでに行ったことの概要を下記にまとめました。updateで依存Gemを含めて、アップグレードを行いました。app:updateをとりあえず全てyesで実施して、危なそうな部分を戻す対応を行いました。影響が大きそうだった差分だけ下記に記載しておきます👀bin/rails、bin/rakeでspringをロードしないような変更が入っていたので反映しませんでした。active_storage、test_unit関連の設定ファイル追加及び既存ファイルへの更新は、使用していないので反映しませんでした。config/application.rbのconfig.load_defaultsを5.2に変更しました。bootsnapは開発環境のみで動くようにし、本番での使用は一旦様子見しました。主な修正は下記のようなところでした。INを使って行うように修正しました。methodの警告が発生するようになりました。Post.order('RAND()')MedPeerでは固定の文字列を渡している箇所でのみ発生していたので、Arel.sqlで対応しました。Post.order(Arel.sql('RAND()'))テストの無い管理画面に立ち向かう今回railsのバージョンを上げると同時に管理画面で使っているadministrateというgemのバージョンも大きくあがりました。end社内の検証環境にデプロイして、動作確認テストのある部分はテストを全て通し、ない部分については先述の仕組みで確認したあと、ディレクターさんにも協力して頂き、業務上クリティカルな箇所について手で検証しました。今回はマイナーバージョンアップということで、普段使っている本番相当の検証環境にバージョンアップを反映して検証を行いました。最後にバージョンアップの際に行ったことを整理して、KPTで振り返りを行いました。以下が出てきた内容の抜粋です🙇Keep管理画面のテストを最低限ではあるが、自動的に行うことが出来た。updateで1年半程更新していないものもあった。railsのバージョンアップによる依存関係の解消時に大きくバージョン上げる必要があったため、検証負荷が高くなってしまった。バージョンアップ用の環境を用意しておらず通常開発と同じ環境でバージョンアップの検証も行っていたため、通常開発業務の検証の際にバージョンアップを切り戻すといった作業が必要でメンテナンス負荷が高く、現状の検証環境のrailsのバージョンを把握しづらかった。TryGemfileを読み解く会を開催し、経緯を理解した上で外せるものはバージョン固定を外す。updateのタイミングで見直す等の仕組み化を行う。VersionUpのときは専用の環境を用意する。5.2にバージョンアップした話でした。Tumblrメドピアマッスル部のフロントエンドエンジニア村上(@pipopotamasu)です。最近筋トレに時間を割かれ、家でコードが書く時間が減ってしまったのが悩みの種です。今日は最近作ったメドピア用Railsフロントエンドのボイラープレート、「medpacker」を紹介しようと思います。github.commedpacker作成の背景Railsには公式で大きく分けて2つのフロントエンドの環境があります、アセットパイプラインとwebpackerです。これらはメドピアの既存プロダクトでも使ってきたのですが、プロダクトの規模が大きくなったり、時間が経つにつれて色々な辛みが見えるようになってきました。v3依存)これらの辛みのため新規でRailsプロジェクトを作成する時、今まで通りアセットパイプラインやwebpackerで構築してしまっていいのかという疑問が生じてきました。フロントエンド開発をメインで行うのがサーバーサイドエンジニアや外部のフロントエンドエンジニアさんということもあり、プロジェクト間で採用技術や質を標準化するために、またフロントエンドの環境構築の時間短縮のためRailsフロントエンド用のボイラープレートを用意しそれを横展開するのがよいのではないか?ということで、これらの辛みを克服するためにメドピア用Railsフロントエンド用のボイラープレート「medpacker」を作成しました。medpackerのコンセプトmedpackerのコンセプトは大きく2つです。素早く、簡単に導入できるwebpackerのような導入の簡単さを目指し、Railsのアプリケーションテンプレートを使用して設定できるようにしています。newをしてから2~3分でフロントエンド環境を構築することができます。だいたい開発や本番環境で必要なものが初期から設定されているアプリケーションテンプレートで導入した直後から、webpack・babel・lint・postcss・minify等がすでにセットアップされているため、すぐに開発に着手できるようになっています。実際にmedpackerを導入してみるそれでは実際にmedpackerを導入してみましょう。LOCATION=path/to/medpacker/template.rbこの際いくつかCLIに質問されるので、用途に応じて答えてください。page?にyesで答えないとこのページは表示されません)。medpacker_homemedpackerの中身について作成に至った背景、コンセプトなどはすでに説明した通りです。ここではmedpackerの中身についてみていきます。webpackmedpackerの核ともいうべきbundlerです。フロントエンドのアセットをビルドするために入れてます。Rails側でビルドしたアセットをHTMLに読み込むためのヘルパーを用意してあり、それを使うことで読み込むことができます。JSがminifyされるようになっています。webpack-dev-serverwebpackでの開発をサポートするツールです。以下のような機能があります。PostCSS導入時点で、SCSSとPostCSSの設定がされています。(※メドピアでは全てのRailsプロジェクトでSCSSを使用しているので、決め打ちで入れてあります)またPostCSSで初期導入されているプラグインは以下2つです。autoprefixer・・・自動的にベンダープレフィックスをつけてくれるライブラリpostcss-flexbugs-fixes・・・ブラウザが潜在的に持っているflexboxのバグを踏まないように、自動整形してくれるライブラリbabelJSを色々なブラウザで読み込めるように(例えば最新の記法が古いブラウザでも読み込めるように)変形/代替してくれるライブラリになります。導入時点で設定済みなので、IE11とか気にせずにJSを書いても問題ありません。基本的にメドピアの推奨環境に合わせてありますが、この辺をいじれば対応ブラウザを変えることができます。lint系SCSSのlint(stylelint)とJSのlint(eslint)の2つが設定済みです。導入側のプロジェクトのCIに組み込んでおいてください。Vue.jsmedpackerに入れるか迷ったのですが、導入時にVue.jsが初期設定してあります。個人的にJSライブラリを入れるのは本当に必要になった時に初めて入れればいいと思っているのですが、プロジェクト間での採用技術を統一するために入れてあります(以前とあるプロダクトで外部のエンジニアさんにお手伝いしていただいてた時、社内のほとんどのプロジェクトでVue.jsを使っているにも関わらず、しれっとReactが入っていたことがあったので...)。工夫したところライブラリアップデート月1回のペースで、自動的にgemとnpmのアップデートPRがCIで作られるようになっています。作成後は私がPR内容の確認・マージをしています(この辺は手動です)。「medpackerを適用しようとしたがバージョンが古い...」というメンテされずに放置されるという事態は避けるようにしています。アプリケーションテンプレートの使用より楽にプロジェクトにmedpackerを適用するためにRailsのアプリケーションテンプレートを使用しました。最初はこの便利機能の存在を知らずに、こちらの方法をメインの適用方法にと考えていました。今考えるととてつもなく使いづらいですね。終わりに現在メドピアでは3つのプロダクトでmedpackerを使用しています。使っているうちに出てくる改善点や追加機能などは日々更新していく予定です。このブログを見た人で「うちではこんなの使ってるよー」とか知見がある人はこっそり教えていただけたらありがたいです。medpackerに取り入れるかもしれません。このmedpackerを作る上でpixivさん、スタディストさんのブログを参考にさせていただきました。本当にありがとうございました。՞)☝︎是非読者になってくださいメドピアでは一緒に働く仲間を募集しています。Tumblrこんにちは!メドピアエンジニアの難波です。今回はメドピアで先月(2018年12月)から始まったテックサポート制度について紹介させて頂こうと思います。『テックサポート制度』とは?『テックサポート制度』とはエンジニアの開発力を底上げしてメドピアの事業開発を加速させることが目的の、1人あたり年間12万円まで開発効率・スキルの向上に関わるサポートを行う制度です。CloudやHerokuなどもOKです。RailsやUdemyのようなオンライン学習サービスについてもサポート対象です。サポート対象は基本的に社内ドキュメントに記載されているリストにあるものということになっておりますが、現場のエンジニアからCTOやエンジニアマネージャーに要望を挙げて、これは良さそうだねと判断されたものはすぐにリストに追加されるようになっています(まだ始まったばかりの制度なのでどんどんアップデートしています)。ちなみに一部を抜粋すると現状このようなものが載っています。私の場合は早速以下の2つのツールにテックサポート制度を使いました。Tower評判の良いGUIのgitクライアント。AzureAWSやGCPはよく使うのですが、Azureはあまり触っていなかったのでこの機会に使ってみることにしましたテックサポート制度が始まってからの印象ですが、普段良さそうなツールを見つけても有料だと「必要になったら改めて......」となりがちなのが「とりあえず試してみるか、サポートされるし。」に変わるのは心理的な障壁をなくす効果という点でとても良いなと感じています。自分自身での活用についてだけでなく、同僚(特にまだ経験の浅い人)に対して有料ツールを勧めやすいという効果もありました。経験の浅い人にこそ有料でも便利なツールを積極的に使ってもらうことで成長のきっかけとしていって欲しいのですが、今までは「オススメなんだけどちょっと高いんだよなあ」というように躊躇することがありました。それが「とりあえずテックサポートで試してみてよ」と言えるようになったのは良いですね。今回のテックサポート制度導入によってメドピアで行っているエンジニア支援の制度やイベントは以下のようになりました。՞)☝︎是非読者になってくださいメドピアでは一緒に働く仲間を募集しています。月別アーカイブリンク医師専用サイト「MedPeer」エンジニア採用はこちら!スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。