開発するときに心がけていること 実装編

この記事は株式会社SUPER STUDIOのAdvent Calendar 2023の21日目の記事です。 初めに 先日チームメンバーと設計の話をした時に「どういう時にクラスを分けるのか?」という話をチームでした。自分なりの判断基準はあるのだが、それを明文化したことがなかっ…

チームリーダとしてやってきたことの振り返り

この記事は株式会社SUPER STUDIOのAdvent Calendar 2023の 12/8の記事です。 初めに 昨年8月に転職して新しい職場になった。新しい環境では今までと変わらずコードを書いているけどチームマネージメントに関しては、やる量が増えてきた。もともとそういうマ…

久しぶりにRailsのPRを眺める

初めに 久しぶりにRailsのPRを眺めてみることにした。すると一つ目についたものがあったので、備忘録の意味も込めて書くことにした 今回眺めたPR 今回見たのは、このPR。2022/12/28に見たときはまだDraftだった。今後これがどうなるか分からないが、このPRの…

二つの会社でリモートワークをしてみて感じたこと

初めに 今年も残すところ残りわずかですね。この記事は株式会社SUPER STUDIOのAdvent Calendar 2022の 12/16の記事です。 公開が遅れてしまい、すみません。 さて今年は私個人にとって仕事面で大きな変化があった年でした。転職をしたからです。前職のClassi…

Vueを使ってみたパート2

はじめに 前回はプロジェクトを作って簡単に動作確認したところまでです。 今回はその続きでルーティングを追加します。 やること vue-router(https://github.com/vuejs/router)を使うので、それをinstallします。 コンポーネントの作成 ページ遷移した時の…

vue cliを使ってフロントエンドの実装を進めてみる

この記事は何? 以前Railsで作ったサンプルアプリのフロントエンド側の実装としてvueを使ってみようと思い、今更ではありますがvueの勉強をしてます。 幾つかサンプルを作成したので、今度はvue cliを使ってプロジェクトを作成し、より本格的な実装にしてい…

Elasticsearchで辞書登録が出来ない場合の検索精度向上について

2019 elasticsearchのAdvent calendarの7日目の記事です。qittaに書いていたものを、自分のブログに引越ししました。 今仕事で携わっている教育プラットフォームでは検索にAmazon Elasticsearch Serviceを使ってます。検索対象はテスト、問題、アップロード…

cerebroを使ってみた

簡単な紹介です。以前はElasticsearchの定義の確認やクラスタの状態を見るのにheadプラグインなど使っていました。 が、複数の記事で「cerebro」を紹介していたので、実際みてみました。 セットアップ 試しに使ってみようと思ったので、zip形式のものをロー…

Mysqlからlogstashを使ってElasticsearchに同期させるをやってみた

MysqlなどのRDBからlogstashを使ってElasticsearchに同期させるというのは既に様々な方が実践されているようだが、自分はやってみたことなかったのでやってみました。 検証の動機としては、今まではRDBに入った値をElasticsearchに同期させるために自前で定…

ここ数年使っている振り返り方法

はじめに ここ数年スクラムで開発することが多いのだが、スプリント毎の振り返りで幾つかの方法を採用していたので、そのうちメインで使っているものを自分が忘れないためにも整理しておく。あくまでも個人の感想、感覚であるので実際は違うというのもありそ…

推理小説をグルーピングするために特徴語を抽出してみる

この記事はClassi developers Advent Calendar 2021の22日目の記事です。 私は推理小説をよく読むのですが、昔から結構読んでいるためストーリ展開、トリック、などにパターンがあると思うようになりました。 そして読んできた各小説を自分の独断と偏見によ…

情報検索を学び始める:クラス分類 その1

始めに Elasticsearchを学び始めてからそれなりに経つが、そもそも情報検索という分野についてちゃんと学んできておらず、今後のためを思い入門書籍を買って学ぶことにした。 読み進めて少し頭の整理をしたい章に差し掛かったので、まずは内容やキーワードを…

Elasticsearch 困ったときに使ってみると良さそうな3つのAPI

これはClassi Advent Calendar 2020の18日目の記事です。よろしくお願いします。 Classiでサーバサイドエンジニアをしている@s_nakamuraです。 今年はあまりElasticsarchについて触れることが少なかったので、また定期的に触れて行こうと思います。今回紹介…

闘病生活から学んだこと

この記事は qiita.com の12月14日分です。 今回技術的なテーマを書こうかと思ったのですが、それはこちらで書いたので、ここでは技術から離れて健康をテーマに書こうかと思います。健康大事ですからね! 実は今年生まれて初めて入院をしました。今まで健康に…

闘病の記録(2)

検査の結果入院は1~2週間という話になりました。当初3~5日だろうと思っていたので、思ったよりも長引くことにショックを覚えました。 が、仕方ないと腹をくくりました。人生初の入院が始まりました。 # 初日の夜 初日の夜は夕食出ましたが、あまり食欲があり…

闘病の記録(1)

10月11日から2週間入院していました。人生初の入院です。しかも救急車で搬送されるという。その体験があまりに色々とあり過ぎて。何か記録に残しておこうと思ってここに書きます。 # 発病時 入院した週は丁度仕事が忙しい時期でした。リリースのためのUTが実…

息子との関われる時間について考えたこと

この記事はhitomedia Mom&Dad's Tips Advent Calendar 2017の12/12の記事です。今日の私のテーマは「息子との関われる時間について考えたこと」についてです。今の会社に転職する以前、平日はそれなりに忙しく帰ると大抵息子は寝ていました。その分休日は一…

なるべく怒らずに叱るという難しさ

この記事はhitomedia Mom&Dad's Tips Advent Calendar 2017の12/05の記事です。今回私のテーマは「叱る」と言うことについてです。 「なるべく怒らずに叱る」と書いてますが、本当にそれは難しいです。私は4歳になる息子がいます。可愛い、やんちゃな悪戯坊…

テーブル作るまでもないマスターデータに関してはactive_hashを使う

データ更新はない、ただ参照するだけのデータ群をいちいちテーブル作るのも面倒だしなーという場合active_hashを使うと良いです。あたかもActiveRecordを使ってテーブルからデータを取得しているかのように扱えるし、何かと便利です。

herokuでfluentDを動かす

herokuで動かしているアプリケーションのログを収集するのにfluentDを使おうと思い、調べたらherokuでfluentDを動かすサンプルが公開されていたので、早速入れてみた。これやこれを参考にしたが、今回は後者のgithubのサイトからherokuにディプロイして自分…

Railsのenum機能を使う

railsのenum機能を使ってみた。 class Test enum type: { todo: 'Todo', doing: 'Doing', done: 'Done' } end この場合色々なサイトに書かれている通り以下のメソッドが使える Test.todo # typeが'Todo'のものの一覧を返す ※SQL=> SELECT "tests".* FROM "…

delayed_jobを使う時の注意

delayed_jobを使う時、非同期に実行したいメソッドの前にdelayというメソッドを入れます。 例えば、TestBatchクラスのexecというクラスメソッドがあり、それを非同期に実行させたい場合、 TestBatch.delay.exec となります。 ただここで注意が必要です。ここ…

HerokuのpostgresqlのDBをリセットする

以下のコマンドを入れるとHerokuのpostgresqlがリセットされる heroku pg:reset DATABASE 確認を求めるメッセージが表示されるので、heroku上のアプリの名前を入力するこれでデータベースが初期状態(テーブルがない状態)になる。 テーブルを再度作り直せば…

rubotyを使って簡単ボット作成

botと言えばhubotが有名ですが、このhubotをと同じbotをrubyで作れるライブラリがあります。 それがrubotyです。このページに行くとサンプルをHerokuにディプロイして動かすというのが予め用意されています。 実に親切ですね! サンプルではslackを使ってい…

RailsでHTMLメール実装するときにHelperメソッドを使いたい場合

RailsのHTMLメールのテンプレートないでApplicationHelperのメソッドを使おうと思ったが、デフォルトの状態では使えません。 じゃ、どうするかと言えば、app/mailers/以下のクラスに以下の一行を追加すれば良いのです。HogeMailerというクラスがあるとして c…

ActiveRecordのrewhereメソッド

ちょっとどのような状況で使うのか、まだピンと来ないけどActiveRecordにはrewhereっていうメソッドがある。 これを使うと前に宣言していたwhere条件をoverrideすることができる。 #rewhereを使ってもその前にpointっていうカラムで条件指定してないからover…

ActiveRecordのmergeメソッドについて

ActiveRecordでテーブルのjoinをする場合以下のように書くと思います。 User.joins(:auth_providers).all.where(auth_providers: { provider: 'facebook' }) 発行されるSQLは次のようになります。 SELECT "users".* FROM "users" INNER JOIN "auth_providers…

rubyでメソッドの処理速度をはかるとき

rubyで処理速度をはかる時は以下のようにbenchmarkモジュールを使います。 で、この前Railsのコミットログを眺めていたら、gsubメソッドをtrに置き換えたというのがあったので、 試しに以下のように処理の計測を行ってみました。 require 'benchmark' hoge =…

RailsとJavascriptの連携

RailsアプリケーションとJavascriptの連携をしたい場合、[gon](https://github.com/gazay/gon)というgemがあります。これを使うとcontroller内でセットした変数をJavascript(rails3以上だとcoffeescriptを使うケースが殆どだと思いますが)内で使う事ができ…

Railsの静的解析ツール

現在業務で使っている解析ツールはrubocopだけだけど、他にも面白いツールがあったのでメモ。まずはrails_best_practices。これはrailsのコードを解析して、よろしくないものを教えてくれます。なかなか良い。rubocopはコーディングチェックなのでrubyとして…