タグ

tatsu_toraのブックマーク (1,460)

  • Rails5.2から入ったActiveStorageのソースコードを読んでみた - Rails Webook

    Active Storageの実装にいくつか興味があるところがあったので、いくつかピックアップしてソースコードリーディングをしてみました。 ライブラリということもあり、ビジネスロジックのややこいところもないため、シンプルで読みやすいコードでしたのでぜひ興味があるかたは読んでみてください。 ソースコードはRails 5.2.1時点のものです。 読む際は、Active Storageの概要 | Rails ガイドを軽く読んでおいて挙動を軽く確認しておくと読みやすいと思います。 1. Active Storageのディレクトリ構成 Active Storageの主要なディレクトリ構成 2. storage.ymlからServiceクラスを作成する処理 3. 各サービスごとのファイル操作の実装をどのようにわけているか 4. has_one_attached / has_many_attached

    Rails5.2から入ったActiveStorageのソースコードを読んでみた - Rails Webook
  • プログラマ向け!タイピング速度を2倍に引き上げる練習方法 | SiTest (サイテスト) ブログ

    タイピング速度は勉強の効率 日語とプログラミング言語の違い タイピング速度の指標 タイピング速度が向上するメカニズム 練習方法: 認識力 練習方法: 指のストレッチ まとめ 結論からいうと、写経が速くなるので勉強効率が良くなります。 また対話シェルを使ってビルトイン関数の動作を簡単にチェックできるようになり、プログラミングの作業中も効率が良くなります。 私は以前から電車内で技術書を読むという習慣付けを行っていましたが、新しい技術に対して覚えが悪いと感じていました。 自分で打ち込んで結果を確認した数行のほうが物覚えが良いのです。 プログラミング言語は黙って写経 とはまさにこのことだったのです。 しかし、わざわざコマンドを入力して確かめることはとても億劫なものです。 新しいツールやプログラミング言語のサイトにはチュートリアルがありますが、当たり前に動作する四則演算のコマンドは打ちたくありませ

    プログラマ向け!タイピング速度を2倍に引き上げる練習方法 | SiTest (サイテスト) ブログ
    tatsu_tora
    tatsu_tora 2020/01/24
    タイピングだけ早くってもな… プログラマー向けと唄うのであれば、Emacsキーバインドかvimキーバインドくらいは語らないと
  • VSCodeVimの設定を見直す

    久しぶりにVSCodeVimの設定を見直してみました。 そこから得た知見の一部をVimの設定にも反映させました。 Table of Contents 経緯 ツールによらないキーバインド統一化を目指す過程で、VSCodeのキーバインドを見直し始めたのがきっかけです。 以前からモヤモヤしていたVSCodeVimに関する設定も整理しようと思って始めました。 ツールによらないキーバインド統一化 普通、キーバインドはツールごとに異なります。 ある程度統一されている部分もありますが、細かな違いが脳のコンテキストスイッチの切り替えコストを増大させます。 全てのツールで同じキーバインドを実現することにより、それらの問題を解決するプロジェクトです。 まだ実行には至りませんが、2019年中に完成させたいと思っています。 以下のようにとても人気があり、私にとってもVSCodeを使う上で欠かせない拡張機能です。

    VSCodeVimの設定を見直す
  • この英単語を覚えるだけで、英文の9割は読めるようになるという話【NGSL,NAWL,TSL,BSL】|相川真司(かわんじ) #DiQt

    【要約】 最高の英単語帳を見つけました。 しかもなんと、その英単語帳は『無料』です。 このnoteでは、その画期的な英単語帳の紹介と、英単語帳のデータを無料配布します。 【更新履歴】 22/08/19: ・8000件を超える改善を行いました。 ・改善をリアルタイムで配布データに反映できるように、データのダウンロード方法を変更しました。 21/12/09: ・iOS/Android版アプリをリリースしました。 科学者がつくった最高に怠惰な英単語帳「これだけ覚えておけば英語が読めるようになる英単語帳とかないかなぁ〜〜」 なんて考えたことありませんか? わたしはわりとあります。 プログラミングを始めてからは、英語に触れる機会が格段に増えたこともあり、わたしの中でこのニーズはますます強くなっています。 しかし、わたしは怠惰です。 できることなら、最小限の努力で英語を身に付けたい。 そこでわたしは、

    この英単語を覚えるだけで、英文の9割は読めるようになるという話【NGSL,NAWL,TSL,BSL】|相川真司(かわんじ) #DiQt
  • MySQLで、正しいデータ型を使うことはどのくらい重要なのか? | Yakst

    テーブル設計においてカラムのデータ型を正しく決めることには、どのような利点があるのかについて。単純に扱う値と同じ型を選ぶべきであるというだけではなく、なぜそうあるべきかについて、内部的な効率の面から解説する。 パフォーマンスに関する話の中で、カラムに値を保存するのに正しいデータ型を使うことの重要性を説いているのを聞くことがよくある。例えば、数値はINTやBIGINTで表現し、IPアドレスにはINT UNSIGNEDを使い、VARCHAR(255)の代わりにVARCHAR(60)を使うといったことだ。 このアドバイスは正しい。しかし、今日はもう少し詳細の説明を試みてみようと思う。 理由 この最適化が正しいと思う3つの理由は以下の通りだ。 文字列として数値データを扱うことは、文字コードや照合処理のCPUオーバーヘッドが余計に必要になってしまう。例えば、'Montréal' = 'Montrea

  • よいコミットメッセージ・よくないコミットメッセージ - 弥生開発者ブログ

    こんにちは、mzpです。 今日はMisocaのesaに書いていた「よいコミットメッセージ・よくないコミットメッセージ」という記事を紹介したいと思います。 あらすじ 開発チームでは「コミットメッセージには変更理由を書いて欲しい」「コミットメッセージはWhatよりもWhyが大事」という話を何度かしているのですが、なかなか徹底できていません。 ので、もう少し具体的に「こういうコミットメッセージはよくないですね」というまとめを作ってみることにしました。 ちなみにこの過程でみつけたコミットメッセージに、こんなものがあります。 一切情報がなくておもしろいですね。 ファイル移動を移動した事実しか書かない これは以下のようなコミットメッセージです。 ファイル名を変更 ディレクトリを移動 ファイルを移動したことはコミットメッセージを見なくてもdiffから分かりますが、なぜその移動をしたかが分かりません。 の

    よいコミットメッセージ・よくないコミットメッセージ - 弥生開発者ブログ
    tatsu_tora
    tatsu_tora 2020/01/15
    モデルやマイグレーション等、設計に関わる部分でも "レビュー対応" とか書かれると後から絶対わからなくなる
  • Reduxでのディレクトリ構成3パターンに見る「分割」と「分散」

    Reduxでのディレクトリ構成3パターンに見る「分割」と「分散」投稿者: hahnah 投稿日: 2019-09-262019-09-26 Redux を使っていいて、ディレクトリ構成に悩んだことはないだろうか。 もしくは、見かけるディレクトリ構成が多様で、どれがいいのか分からないなんてことはなかっただろうか。 この記事では Redux を用いる際の代表的な3パターンの構成を紹介するとともに、それぞれをソースコードの分割・分散の度合いで比べてみる。 redux-way ducks re-ducks パターン1. redux-way (あるいは Rails-style) redux-way では、 “Redux によって導入される概念” ごとにディレクトリを分ける。 以下のようにcomponents/,containers/,reducers/,actions/,types/などとディレクト

    Reduxでのディレクトリ構成3パターンに見る「分割」と「分散」
  • 何故 git rebase は駄目で git pull –rebase はいいのか « LANCARD.LAB|ランカードコムのスタッフブログ

    git pull –rebase は便利ですが、rebase と言えば git rebase、これが割と敬遠されがちな声を聞くので –rebase オプションなんて当に使っていいのか心配になることもあるかと思います。 私も普段は便利に git pull –rebase していますが、ふと git rebase の解説記事をみかけると毎度不安になりこの二つの仕組みを調べてしまうので、いっそのことまとめてしまうことにしました。 以下のような状態のリポジトリがあったとします。 一番上はリモートの master、下 2 つはローカルで master と作業用 branch です。例えばローカルでブランチを作成して作業し、それを master に rebase する前に pull したところ、リモートの master に更新があった場合等ですね。 この状態で master ブランチから rebas

  • 読みやすい文章のために、極力削るべき言葉リスト|桜川和樹

    最近note書く人増えましたね。新年を迎え、新たに始めてみようって人も多いんじゃないでしょうか。 仕事で文章チェックしていて、削ったほうがスマートになる言葉をいくつか書き溜めてきたので、文章デビューする人のために一挙放出しちゃいます。 「私」「僕」などの一人称 あなたが書いてることはわかっているので、入れなくても伝わる流れであれば削ってOKです。 mina最新号の表紙タイトルを見て、僕ははっとした。 ↓ mina最新号の表紙タイトルを見てはっとした。「と思う」「気がする」 日人の特性なのか、言い切らずに「〜だと思います」を多用する人は多いです。思い切って削っちゃいましょう。 人生において、言葉が余計な瞬間ってある気がします。当に心揺さぶられたとき、言葉を重ねることほどナンセンスなことはないと思います。 ↓ 人生において、言葉が余計な瞬間ってあります。当に心揺さぶられたとき、言葉を重ね

    読みやすい文章のために、極力削るべき言葉リスト|桜川和樹
    tatsu_tora
    tatsu_tora 2020/01/04
    〜と思う、〜気がする等は良く使ってるので気をつけねば…
  • より良いコードレビューをするために気をつけていること | メルカリエンジニアリング

    Merpay Advent Calendar 2019 の22日目は、メルペイスマート払いチーム/Backend Engineer の @oinume がお送りします。今日はコードレビューについて自分が普段から実践していることを書いてみたいと思います。 はじめに 世の中にはコードレビューをする時の観点については数多く共有されていますが、より良いコードレビューをするためにはどうするのが良いか、というHOWについてのノウハウはあまりシェアされていないような気がしています。そのため、今日は自分なりに心がけているコードレビューのやり方と、ついでに気をつけている観点について書きたいと思います。 Slackを閉じる (これが当に一番大事だと思っているので最初に持ってきたのですが)私は極端に集中力がないため、SlackのDesktop通知が来るとついついそれが気になって見てしまいます。コードレビュー

    より良いコードレビューをするために気をつけていること | メルカリエンジニアリング
  • Webサービスを立ち上げるなら知っておきたい4つのビジネスモデル | ベイジの社長ブログ

    わが社は受託が中心の会社ですが、自分たちでもWebサービスを作ってみたいと考えており、新しいWebサービスを日々模索してたりします。ただ、面白い企画を思いついても、じゃぁどうやってお金を稼ぐの?という段階で止まってしまうことも多いです。 出発点は思い付きでもアリと思うのですが、アイデアを煮詰める段階では、マネタイズに向きあわなければならなくなります。であるならば、Webサービスにおける典型的なビジネスモデルのパターンと特性は、基知識としてある程度持っておいた方がいいんじゃないかな、などと思うようになりました。 というわけで、Webサービスによく見られるビジネスモデルの分類と特徴を整理してみました。だいたい以下の4種類に大別されるのではないかと思ってます。 アイデアは出しやすいが、膨大なトラフィックを求められる「広告モデル」 新規ビジネスを考える際に思いつきやすいのが、この広告モデルではな

    Webサービスを立ち上げるなら知っておきたい4つのビジネスモデル | ベイジの社長ブログ
  • いま知っておきたいLinux─WebアプリがOSのプロセスとしてどのように見えるか? を運用に生かす|ハイクラス転職・求人情報サイト AMBI(アンビ)

    いま知っておきたいLinux─WebアプリがOSのプロセスとしてどのように見えるか? を運用に生かす Webアプリを動かして負荷をかけると、OSのプロセスという観点ではどのように見えるのでしょう? それを通して運用やトラブルシューティングではどういったことが分かるのでしょう? Linuxカーネルの開発者でもある武内覚(sat)さんによる解説です。 こんにちは、sat(@satoru_takeuchi)と申します。 コンピュータが誕生してから現在まで、最終的にエンドユーザが意識するアプリケーション開発はどんどん楽になっています。先人たちのたゆまぬ努力の結果、アプリ開発者はOSや、そのさらに下にあるハードウェアのことをほとんど意識することなく開発ができるようになりました。 しかし、「作ったアプリが、OSレベルでどのように動いているか?」が今一つピンと来なくて、モヤモヤしていないでしょうか。それ

    いま知っておきたいLinux─WebアプリがOSのプロセスとしてどのように見えるか? を運用に生かす|ハイクラス転職・求人情報サイト AMBI(アンビ)
  • Go の命名規則 | micnncim

    記事は Go Advent Calendar 2019 11 日目の記事です。 Go はシンプルな言語機能・シンタックスが特徴であり、命名規則にもそのシンプルさが表れています。 記事では、公式や著名な Go エンジニア、OSS などから見られる Go らしい命名規則を紹介します。 今更なテーマかもしれませんが、意外にも公私共々で命名規則が意識されていないコードを時折見かけるので、自戒も込めて記します。 誤った内容があれば Twitter でご指摘いただければと思います。 パッケージ名簡潔にするEffective Go では、short, concise, evocative なパッケージ名が望ましいとされます。 これはパッケージ名に限らずほとんどあらゆる命名において役立つ指針だと思います。 また、「パッケージ名は一言で何をするかを表すエレベーターピッチだ」という Dave Cheney

    Go の命名規則 | micnncim
  • git diff showing only commits that revision/branch A is ahead of revision/branch B

    tatsu_tora
    tatsu_tora 2019/12/12
    commit単位でdiff見たいとき
  • SNSで使える! ネイティブが使う英語の略語130選

    FacebookやTwitterLINEやMessangerなど、SNS上で文字でやりとりすることが断然多いもの。外国人からのメッセージ、略されていて分からない略語がありますね。またこちらも知っていれば素早く答えられるというもの。分からない略語はぜひここでチェックして下さいね。 A から始まる略語 AFAIK :as far as I know「私の知る限り」 【使用例】 Yep, AFAIK. だね! 私の知る限りは ASAP:as soon as possible 「できる限り早く」 【使用例】 Can you call me back ASAP? できるだけ早く電話かけ直してくれない? AFK:away from keyboard「机から離れる」 【使用例】 AFK until midday. 正午まで席を離れます AKA:also known as ~「~としても知られる」 【使

    SNSで使える! ネイティブが使う英語の略語130選
  • エラーで学ぶReactJS

    同じ轍を踏まないように今まで React で出会ったエラーと警告を 覚えてる限りこのページに纏めていきます。 infoES6 で書いてます。react (react-dom)setState メソッド がコンポーネントから切り離されたため、updater 属性が参照できないメッセージTypeError: Cannot read property 'updater' of undefined対応setStateのthisを固定するOKbind で this を固定するfetch(url).then(res => res.json()).then(this.setState.bind(this))

    エラーで学ぶReactJS
  • vimとVSCode、VSCodeでvimキーバインドにする前に【至高のテキストエディタ】

    この記事は テキストエディタをvim(ヴィム)にしようかなと考えている人 いままでvimを使って来たけどVSCode(ヴイエスコード)なんか便利そうだなと考えている人 が主に当てはまりそうです。 もちろんテキストエディタ何にしよう? Sublime text(サブライムテキスト)、Atom(アトム)、Emacs(イーマックス)、決められない という方も。 テキストエディタの悩みは最初のみならず、手に馴染んで来てからも時折脳裏をよぎり常日頃ついてまわります。 だって、仕事の大半、人生の3分の1の仕事の大半共に過ごす相棒ですから。 少しだけvimについて語らせてください。 ここに来ている方は 「もうvimの魅力は知ってるよ」 「え、いまからVSCodevimキーバインドあるし乗り換えるんですけど」 って人もいるかもしれません。 はい、だってわざとタイトルをそれにしたので、、。 あ、1つ前もっ

    vimとVSCode、VSCodeでvimキーバインドにする前に【至高のテキストエディタ】
  • Vim から VS Code へ覚悟を持って移行する

    2019/02/12 この記事は書かれてから1年以上が経過しており、最新の情報とは異なる可能性があります techVimVSCodetmuxCLI Vim から VS Code へ覚悟を持って移行する・・・! 前提Vim と言いつつも、非 Vimmer が読んでも最低限分かる配慮はする普段から Vim を使っているが、 そろそろちゃんとしたレールに乗らねば と思っているプラグインのアップデートに自分が追いつけなくなりつつあるmouse / trackpad を使ったら負け移行前に知るべきことそもそも VS Code をもっと知らないといけない。 VS Code の基的な知識が足りないので以下を押さえます。 公式はとりあえず全部読むhttps://code.visualstudio.com/docs左上 Explorer, Search, VCS/Git, Debug, Extension

    Vim から VS Code へ覚悟を持って移行する
  • JavaScriptのコメントは不要か? | POSTD

    コード中にコメントを書くべきでしょうか? 是が非でも避けるべきでしょうか? それとも控えめに書けばいいでしょうか? 開発者たちはそれぞれ、ソフトウェアを開発する際にどのように、そしてどんな時にコメントを書くかについて、独自の考え方を持っています。この記事では私の意見を述べますが、これが誰にも当てはまるというわけではありません。 なお、関数型プログラミングまたはオブジェクト指向プログラミングの原則に則ってJavaScriptで書かれたソフトウェアに絞った上で、私の意見を述べることにします。 コメントと保守性 この記事では、保守性のあるコードを書く場合について考えます。つまり、以下のようなコードです。 簡単に理解できる 簡単に拡張できる 簡単にデバッグできる 簡単にテストできる 保守性のあるコードには、大量のコメントが必要でしょうか? 明確に書かれたコードであるならば、大量のコメントは不要だと

    JavaScriptのコメントは不要か? | POSTD
  • ActiveRecordのincludes, preload, eager_load の個人的な使い分け - Money Forward Developers Blog

    マネーフォワード福岡拠点の責任者をしております 黒田 です。 普段はRailsエンジニアとして マネーフォワードクラウド経費 の開発を担当しています。 普段Railsを使って開発されている方であれば、N+1問題に悩まされた経験は大抵の方がおありではないでしょうか。 N+1なクエリの発見には bullet を使うと良いですね。 bulletを使うとN+1なクエリを発見してくれ、さらに、具体的にここにincludesを追加しなさいと指摘までしてくれるので大変助かります。 しかし、先日bulletに言われるがままにincludesを付けてみたところ、N+1は解消したものの、スロークエリに見舞われることとなったので、includes,preload, eager_loadについて改めて調べてまとめてみることにしました。 (ソース調査したRailsのバージョンは 6.0.0.beta3 です。) i

    ActiveRecordのincludes, preload, eager_load の個人的な使い分け - Money Forward Developers Blog