QKAKE::TECH

テックなことを書く

Tech

【MySQL】Using filesort について調べた

Using filesort とは MySQL のクエリの実行計画をみたときに、Extra 列に Using filesort; と表示されること。 インデックスを利用しないクイックソートが用いられていることを示している。 なにが問題か Using filesortはインデックスを利用しないクイック…

【Ruby】連想配列(ハッシュ)の値を複数個設定したいとき

pry(main)> users = Hash.new => {} pry(main)> users[:male] => nil pry(main)> users[:male] = "Yuji" => "Yuji" pry(main)> users[:male] => "Yuji" pry(main)> users => {:male=>"Yuji"} ユーザの名前を管理する連想配列(ハッシュ)をつくり、 male と…

【Ruby】複数行の文字列を書くときに改行なしで改行する

str = "本日は 雨天なり" p str workspace ➤ ruby string.rb "本日は\n雨天なり" このように文字列リテラルの中で改行すると \n が含まれる。 複数行にわたって書くこともできます。 この場合含まれる改行文字は常に\nになります。 リテラル (Ruby 2.3.0) し…

Rails におけるルーティング(routes)と controller の役割

ルーティングによって、どの controller のどのアクションを呼び出すかどうかを定義する。 Railsのルーターは受け取ったURLを認識し、適切なコントローラ内アクションに割り当てる。 このときに HTTP メソッドを定義して、どういった HTTP メソッドで渡って…

「YouTuberまとめ」をリリースしました

4月30日に EC2 にインスタンスを立ち上げ Rails でつくった Web アプリケーションその名も「YouTuberまとめ」をリリースしました。 これは日本の YouTuber を盛り上げること、ひいては副作用的にアドセンス広告収益という名の副業収入が得られることを目的と…

プルリクエストに思考を垂れ流した結果www

今日やったこと ラベル追加マン 俺はWebページにラベルを追加しまくる人間だ よかったこと プルリクエストに思考の垂れ流しをしている 前々回のエントリーにおけるプロブレムへのトライとして、プルリクエストに自分がどう考えて、どこでハマっているのかと…

Why don't you read the source code?

‪日本の「非エンジニア」が「プログラムは自分が読む(読める)ものじゃない」って思ってしまう大きな原因は「英語で書かれているから」かもしれない。 つまり、母語ではない外国語で書かれた記述に対して距離を感じてしまい、ソースコードを読むという行動…

N + 1 問題を解消した

今日やったこと 問い合わせ対応のつづき なんか地味に時間かかった。なんでだったかはっきりと思い出せない…… あ、ActiveRecord の association で、 has_many しているしてるやつの並び順を指定できるかみたいなことをやっていた。 主に N + 1 問題をどう解…

ambiguous にいつも生きていたいから

今日やったこと 主にログ調査 朝一で、昨日書いたストレージへファイルをアップロードするコードを少し試して、わからなかったら先輩に聞こうという計画だったけれど、朝の をしていたところ、調査依頼が飛んで来たので、急いでお尻を拭いてそちらを着手す…

インプットを意識した学習について

今日やったこと Job のバグの修正 Date 型の値を、ActiveRecord の where 句の絞り込みとして使ってしまっていたので、Time#all_day を用いて1日の範囲を指定した。 スペックのほうも、karnel モジュールの rand メソッドを使ってランダムに支払い日時を指定…

理解しやすいコードを書くということ

今日やったこと 貧困の再生産に関する海外の漫画を見て、まあこれが実態だよなあと思った。 裕福な家庭に育った人の最後のセリフで、「なにか与えられたわけじゃありません。自分から取りにいっただけです」みたいなのがあって壮大な皮肉になっている。 リー…

メソッド名は体を表すという話

今日やったこと バナーが重複表示されるバグの改修 今日学んだこととしては、メソッド名は処理の内容を表すということ。リファクタリングを行っているときにこれまでと似たようなメソッド名で、一部 Array#shift を用いて破壊的な処理をしようとした。しかし…

リファクタリングに必要な「そもそも」とは

今日やったこと バナー表示箇所のリファクタリング いまは top と bottom のバナーが cell の中でそれぞれ別のメソッドで宣言されている。これは表示個数が、 top と bottom で違う仕様だったからなんだけど、この仕様が変更になってどちらも1個表示になった…

エンジニアとしての質問の流儀

やったこと Job の仕様変更にともなう実装とテストの修正。 実装は次のようなもの。 ダウンロードしてきたデータを CSV にパースして、そこから注文金額・注文件数を取得する。それらを DB の注文金額・注文件数と比較して、両者の注文金額合計、注文件数合…

エンジニアのキャリアは RPG である

エンジニアってひとつのゲームなのかもしれない。 周りの優秀な人たちは自分よりもレベルの高い戦士たちであり、僕は最初の街でスライムをたくさん倒している戦士なのかもしれない。 はじめはどういう呪文があるのかもしれないし、どういう敵がこれから現れ…

エンジニア初級者が意識すべき3つのこと

エンジニア研修を受けている。Rubyで書いていて、言語そのものに対する知識もつくのだが、どちらかというといまの学びとして大きいのはダメな習慣に気づいて、いい習慣に切り替えていくということだ。 デバックをすること ひとつひとつの変数に、どの時点で…

2016年11月10日(木)の日記

今日学んだこと 理想とは離れていてもとりあえず動くコードを書く 最初から綺麗なものをつくろうとし過ぎない。所詮自分で綺麗に書けたと思っていても手直しが入るのだから。したがって重要なのは次の順番だ。 ①動くコードを書く ②綺麗に書く とりあえず動く…

エンジニア研修をふりかえって

やったこと Webエンジニアのツール シェルコマンドの学習(ghq, xargs, peco, jq, tmux, find) tmux について発表 cURL を使ってjsonを渡すことで GitHub の個人データを変更した Git を活用してコミットやプルリクを正しく出す練習 アプリケーション講座 R…

ポケパコで興奮必至

技術LT を水曜日に控えているのだけれど、これといったものを作成できてない。 pokepaco をvagrant環境で起動するのに結構時間がかかってしてしまった。あとは motd のあたりを弄って、朝だったらログイン時に「お兄ちゃん、おはよっ!」みたいなことを表示…

スクラムが最強のソフトウェア開発手法である理由

スクラム #とは スクラム(英: Scrum)は、ソフトウェア開発における反復的で漸進的なアジャイルソフトウェア開発手法の1つである。この方法論は「柔軟かつ全人的なプロダクト開発ストラテジーであり、共通のゴールに到達するため、開発チームが一体となって…

tmuxの使い方

tmux tutorial from Ryosuke Kakehashi