Tatehitoの技術メモ

ソフトウェアエンジニアです。いろいろ書きます。

2020-01-01から1年間の記事一覧

こうしてクソコードが生まれていく

いま参画している新規開発プロジェクトのシステムには、ユーザーのロール別にパスワード変更画面が存在する。 画面は複数あるけど処理は同じ。パスワードポリシーも同じ。でも画面ごとにパスワードポリシーのチェック処理が実装されていて、これは冗長でマズ…

【Ruby】配列の奇数番目と偶数番目の要素を分ける方法

ary = ["A", "B", "C", "D", "E"] ary.each_slice(2).map { |a, b| [a, b] }.transpose # => [ [ "A", "C", "E" ], [ "B", "D", nil ] ] each_sliceとtransposeを使って、奇数番目の要素と偶数番目の要素を分ける。 ary.each_slice(2).map.to_a.transpose 本…

O/Rマッパーの採用・不採用で意見が割れている

リードエンジニアの方と別のメンバーの間でO/Rマッパーを採用するか否かで意見が割れている。正確にいうと、議論しているわけではなく各々のやり方で進めちゃってる感じ。 別のメンバーの方が採用しているO/Rマッパーは、ツールを導入しておらず独自にそれ専…

仕事と趣味の境界

世の中には「仕事と趣味を明確に分ける人」と、「趣味のように仕事をする人」がいる。僕はどちらに属するのかハッキリさせたくてちょっと考えてみたのだけど、僕はどちらにも属さないのかもしれない。 前提として、仕事は生活費や趣味のお金を稼ぐためにやる…

在宅 vs 出勤

いま携わっているプロジェクトには4月から参画しているのだけど、コロナの影響で早々にリモートワークに切り替わった。 僕は仕事スイッチの切り替えが上手くない。なのでリモートワークは向いていないと思っていたのだけど、思ったより集中できた。運動不足…

【Rails】チームメンバー管理システムをつくった

実務でゼロからDB設計をしたことがないので、「DB設計筋」をつけるためのトレーニングをしている。具体的に言うと、映画館の発券システムやラーメン屋の注文システムなど、世の中の業務をネタにDB設計を行い、Railsで実装して正しく設計できているかを検証す…

【Rails】後から外部キー制約の付いたカラム(references)を追加する方法

最初にモデルを作成するタイミングで設定しておくのがベストだけど、そうもいかないときは後から設定しなくてはならないのでその手順をメモ。 検証環境 Rails 6.0.0 Ruby 2.6.3 1.マイグレーションファイルを作成する $ rails g migration [migrationファ…

デザインツールをはじめて使ってみた感想

ワイヤーフレームをつくらずに実装に着手すると、デザインを考えながらコーディングすることになるので効率が悪く、手戻りも起こりやすい。モチベーションも萎えてくる。 ・・・ということで、最近『Figma』というデザインツールを少々触っている。その所感…

【Rails】Rails new 〜 GitHubへpush 〜 Herokuデプロイまでの手順

Herokuデプロイまでの手順をメモ。 Rails new まずRails newする。 $ rails new rails-sample-project-management-tool _6.0.0_ --skip-test 上記だと以下になる。必要に応じて変更する。 アプリの名前:appname Railsバージョン 6.0.0 Minitestなし Heroku…

【Java】Apache CommonsのFTPClientでファイルの存在確認をする

FTPClientでファイルの存在確認をする方法のメモ。 /** * ファイルの存在確認 * @param srcDirName ディレクトリ名 * @param srcFileName ファイル名 * @return true: 存在する */ public boolean exists(String srcDirName, String srcFileName) { // ファ…

メモ・Todo管理アプリの採用理由とか使い分けとか

メモやTodoを管理するアプリとして『bear』『リマインダー』『Mac/iOS純正メモ』の3つを主に使っている。 これまで『Evernote』『Inkdrop』『Todoist』など、いくつか使ってきたんだけど今はこの3つに落ち着いてる。・・・が、この手のアプリは魅力的なアプ…

【Rails】『omniauth-twitter』でログイン機能を実装する手順

いちいち思い出すのが面倒なので手順を記録しておく。なお『devise』と連携して実装する場合はこの通りでは無い。 確認環境 Rails 6.0.0 Ruby 2.6.3 omniauth 1.9.0 omniauth-twitter 1.4.0 1.TwitterAPIの登録 developer.twitter.com CallBack_URLの設定…

JavaScript実行環境『Node.js』について調べてみた

使ったことのない技術について調べてみたシリーズ、今回は『Node.js』について。 Node.jsとは? 一般的にJavaScriptというのはWebブラウザ上(フロントエンド)で動作する言語である。 フロントの実装をする上ではなくてはならない存在なわけだけど、「JavaS…

僕が思う『タスクシュート時間術』が特に威力を発揮する使い方と、その反対

taskchute.cloud 今月から『タスクシュートクラウド』をまた使い始めた。 『タスクシュート時間術』自体の活用歴は、かれこれ3年以上になり、どんな使い方をすれば威力を発揮するのか、反対にタスクシュートで解決できない問題は何か、体感として分かってき…

『ゲームソフト管理サービス』の開発振り返り。開発期間を短縮するにはどうしたら良かったか

2019年の振り返り記事でも少し紹介した、遊んだゲームを記録できる『ゲームソフト管理サービス』というアプリケーションを、細々とつくっていました(正式サービスとして公開する予定は今のところありません)。 このアプリの規模は画面数が4、テーブル数が2…

2019年を振り返る

あけましておめでとうございます。簡単ですが2019年を振り返ってみたいと思います。 本業 フリーランスになって2年目の年でした。まるまる1年フリーランスとして働いたはじめての年でもあります。2018年から参画していたプロジェクトで引き続きお手伝いさせ…