Bamboo Note

Written by@Ryutaro
気になっている: Rust, React, Electron

GitHub

Rustにおけるモジュール分割を理解する

この記事で説明したソースコードはGithubにあります。 https://github.com/Ryutaro95/rust-module Rustのファイルによるモジュール分割には2通りある src/my_module/mod.rs src/my_module.rs と src/my_module/sub_module.rs 上記のどちらかのディレクトリとファイルを用意する方法。 今回は後者の…

Rustでcliを作る - コマンドライン引数を受け取りたい

Rustでcliツールを作る際にコマンドライン引数を標準ライブラリとサードパーティライブラリのclapを使ってみる。 標準ライブラリで引数を受け取る まずは標準ライブラリで引数を受け取る。 std::env::args()を使うことでコマンドライン引数をイテレータで取得できる。 collect()でイテレータをコレクションに変換できるが、collect()は型注釈が必要みたい。 渡した引数は2番…

Git操作 - 目的から逆引きGitコマンド【随時更新】

普段SourcetreeでGitを操作しているため、gitコマンドをよく忘れることがあるので残しておきます。 Git ログを確認する - 追記: 2021/05/29 ただオプションが長すぎるので、 .gitconfigなどでaliasを設定する方が良さそう これで使いやすくなった。 コミットしていない or まだしたくない変更を一時的に退避させる 変更分を退避 退避した作業一覧 退避した変更…

Golangのクロージャで何が便利なのか理解するためにRedisのようなKVS機能を作る

Goの学習をはじめてクロージャという概念の理解に苦しんでました。「クロージャってどんな場面で使うんだろう?何が嬉しくてクロージャを使っているんだろう?」 何に使うか理解出来なものを、理解できないので調べていたらクロージャを使うことでRedisのようなKVSをGoのクロージャで作ることができるようなので、クロージャの理解と合わせてRedisのようなKVSを作ってみます Redis Redisとは、…

すぐにRails6 x MySQL x docker-compose環境構築

よく動作確認や学習用でRailsプロジェクトを作成したいときがあるので、備忘録として残しておきます。 ファイルの作成が面倒なときは Githubに用意してあるので、クローン後READMEに従って環境構築を行ってください。 quick build rails6 mysql environment | github ファイルの用意 以下のファイルを任意のディレクトリに用意 Gemfile Gemfi…

【Rails】Model(モデル)のscope(スコープ)ってなんだろう?を解決する

モデルにおけるscopeってなんですか? Railsを学習していて次のようなコードを発見しました。「モデルのscopeってなんだろう?」ということで調べて記事にしました。 ひとまずRailsガイドで調べてみました。Rails ガイド Active Record - 14.スコープ スコープを設定することで、関連オブジェクトやモデルへのメソッド呼び出しとして参照される、よく使用されるクエリを指定す…

Rails API - 複数テーブル(親子テーブル)を結合して必要なカラムだけをJSONで返却したい

今回のゴールは次のようなレスポンスを返すことです。 期待するレスポンス UsersテーブルとPostsテーブル 背景 ブログ記事(Post)一覧をGETで取得するする際にブログ記事を書いたユーザー(User)も一緒にJSONで返したいとなったときに使います。 ルーティングの設定 でにリクエストが来ることを想定しているので、でルーティングの設定をします。 エンドポイント 今回レスポンスとして返し…

【Rails】モデルをgeneratorで作成するときに外部キー(FK)を設定する(references)

Postモデルを作成する段階で、を外部キーとして設定したい 次のmigrationファイルが作成される がとして設定されるので、適所ユニーク制約やNOTNULL制約などを設定してする スキーマ(schema.rb) スキーマを確認すると、でが設定されており、が貼られた状態で作成されていることが分かります。

LeetCodeでRubyとアルゴリズムを学びたい#2【66. Plus One】

今回の問題が**「Plus One」**という問題に挑戦しました。 次のような整数の配列が渡されるので、して返す関数を作るというのが問題です。 Example 1: Example 2: Example 3: 渡された配列を整数に変換してを足して、返すだけなので簡単に実装できそうです。 66. Plus One | LeetCode こんな感じの関数を作ります。 型を変換してして型を変換して返す…

LeetCodeでRubyとアルゴリズムを学びたい#1【67. Add binary】

今まではpaizaのスキルチェックで試行錯誤してプログラミングの練習をしていました。ただpaizaのルール上ソースコードの公開ができず、他の人のコードを見ることが出来ません。 そこで見つけたのがLeetCodeなるGAFAなどで出題されているコーディングテストの問題が公開されているサービスを発見したので、挑戦してみました。 2つの2進数を足して合計を返したい 今回は挑戦した問題が「Add Bin…