StartupTechnology開発部による技術ブログ

StartupTechnologyの開発部が
開発の裏側やノウハウをお届けします。
2021/09/22

結局Railsで論理削除ってどうやればいいんだろうという話

論理削除は最高のソリューションである 論理削除の実装について、Googleで「論理削除」を検索してみてください。 「論理削除は駄目だ」とか「アンチパターン」といったキーワードの記事がヒットすることかと思います。大抵のエンジニアは「やはり論理削除は設計がむずかしいのか」と論理削除から目をそらし、論理削除を伴わなくて済むような方法を検討し、よりスマートな設計に逃げ出すことでしょう。 しかしそれでも、『論理削除のデメリットなんて知ったことか。俺は論理削除がやりたいんだ。手段を目的にしたいんだ。』 そんなスキーマ設計の乱世に丸腰で走り込むような、大和魂を失わないエンジニアの方々のために本記事を贈りたいと思います。 前提 Ruby on Railsでポピュラーな論理削除の実装方法はgemのparanoiaを使う方法がありましたが、現在はparanoia公式にて非推奨となっています。大丈夫です。論理削除は非推奨とは書いていないです。 非推奨となった詳細な理由は公式のGitHubを参照してください。...
2021/03/18

Rails6.1から入ったActiveStorageのPublicAccessが良かった

最近肉体改造に励んでいるだいそんです。 さてさてRails6.1で色々な機能が追加されましたが、個人的に特に嬉しかったのはActiveStorageにおいてパブリックなURLを利用できるようになったことですね。 専用のカラムを用意しなくて済んだり、リサイズも動的にできたりと何かと便利なActiveStorageですが、以下の記事の通りこのような問題もありました。 CDNとの相性が悪い 画像のリクエストがRailsに向いてしまう DBへのリクエストが頻繁に走る 引用...
2021/02/19

JAWS DAYS 2021 -RE:CONNECT- セッション配信サイトを構築しました

JAWS DAYS 2021 -RE:CONNECT- セッション配信サイトを構築しました
こんにちは!開発部の松井です! 春の兆しが見えつつも、まだまだ寒い日も多く、なかなか体がついていかない日々が続いていますね😭 こんな時期は引きこもってコードを書くに限りますね!! さて、このコロナ禍(2021/02現在)で、我々のWeb業界でも配信やストリーミングと言ったキーワードが非常に重要性を帯びてきています。 そのような中、私松井が JAWS DAYS 2021 -RE:CONNECT- というイベントの実行委員を務めることとなり、去年秋頃より準備を進めてまいりました!...
2020/07/29

開発合宿第二弾!! 顔認証を使用した入退室管理を作った話

今年はなかなか梅雨明けしませんね・・・。 夏が待ち遠しい開発部のヒヨシです。 前回の 開発合宿第一弾!! オンライン合コンアプリを作った話 に続いて第二弾! 今回は顔認証を使用した入退室管理システムについて、技術的なところを中心にご紹介します。 イベントレポートは下記に掲載していますので、こちらも併せてご覧ください。 オンライン開発合宿の成果発表会を行いました! | 株式会社スタートアップテクノロジー...
2020/07/17

開発合宿第一弾!! オンライン合コンアプリを作った話

開発合宿第一弾!! オンライン合コンアプリを作った話
コロナで自粛ムードが続くことはや数ヶ月、みなさんいかがお過ごしでしょうか。RUNTEQ事業部のだいそんです。 突然ですが、みなさん最近恋してますか? 東京都では毎日のように200人超えの新型コロナウイルス感染者が出ていますね。そんな中不要不急の外出をするのは憚られますし、ましてや合コンなんてできるはずもないですよね… 濃厚接触はしたくない、でも濃厚接触はしたい この記事はそんな社会的な課題を解決するアプリを社内の開発合宿で作りましたよという内容になります。技術的なところにフォーカスしてお話します。 (開発合宿全体の概要は別ブログにまとめてあるのでもしよかったらこちらも読んでみてください!) オンライン開発合宿の成果発表会を行いました! | 株式会社スタートアップテクノロジー...
2020/04/30

fargateを利用した環境構築の苦労

fargateを利用した環境構築の苦労
このブログを見てくださっている方、まだ見ていない方、こんにちは! スタテク開発部のkannoです。 Dockerをコンテナを実行できるサービス、AWSのECSを利用して仮想サーバーを構築した際に、 なんじゃいこれ、どうするのよ? と、詰まったところがあったので、設定方法含め、共有しようかなと思います。 したいこと ECS(fargate)上でnginxとrailsのサーバーをsock通信で連携させる 前提 DockerやAWS CLIを利用するので、諸々の初期設定はしておいてください🙇...
2020/03/27

NOT NULL制約追加時のinvalid use of NULL valueを解消する

はじめまして、開発部の井上です。 本記事は既存テーブル(既存カラム)へのNOT NULL制約追加でつまずいたときのお話です。 作業前には『NULLデータに値を入れて数行のmigrationファイル作るだけ。すぐ終わるなー』と考えていたのですが、思わぬところで問題が発生しました。 はじめに作ったもの # NOT NULL制約を追加するmigrationファイル class ChangeColumnHoge < ActiveRecord::Migration def change change_column_null :hoge, :bar, false end end # update_column....
2020/02/27

enumのネガティブバージョンを定義してみた

こんにちは!日本語が少しできるブラジル人です! 早速ですが、複数条件を書くときにenumに対して否定演算子を使った事ありますか? ちなみに僕は複数条件を書くときに否定演算子を使用するのはあまり好きじゃないです。。 こんなunless文をみたときには、もうブラジルに帰って農家に転職したくなってしまいます。。 unless !user.present? && !user.done? && !...
2020/02/14

Rails + GitHub Actionsではまったこと

Rails + GitHub Actionsではまったこと
やりたいこと gemのキャッシュ yarnライブラリのキャッシュ RSpecの実行 システムスペックの実行 システムスペック失敗時のスクショをArtifactとしてアップロード DBはmysql5.7 結論 こんなymlを作りました。...
一緒にスタートアップを盛り上げませんか?