kos31de.txt

140文字に収まらないテクノロジーとか日常とかのこと

CleanCoderを読んだ

プログラミングを仕事にする人向けの読み物として、金言と思える文章がたくさんあった。 印象に残った物を列挙しておく。

Clean Coder プロフェッショナルプログラマへの道

Clean Coder プロフェッショナルプログラマへの道

 

プロにならないのは簡単だ。自分の仕事に責任を持たなければいい。

プロフェッショナルというのは尊敬される存在だが、それは大きな責任を伴うものだからこそだと改めて思った。

プロはこの「少し違った気持ち」を常に抱いている。この気持が。プロ意識の本質である。プロ意識というのは自分で責任を取ることに他ならない。

自分のした仕事によって損失が生じた場合、自費で責任を取るくらいの気持ちを持とうと思った。

週60時間働く計画を立てよう。40時間は雇用主のため、残り20時間は自分のためだ。

これを読んで、少なくとも1日3時間働く時間を増やしてみようと思った。

ミーティングには明確な議題・時間割・目標を確認しよう。

無駄なミーティングをなくす、短くするのは当たり前として、意識するべきは「議題、時間割、目標」の3点セット。

selectとmap

配列の中で条件に合致するものを取ってきてくれるのが、select 配列の各要素が条件に合致するかどうか、真偽値を返すのが、map

irb(main):004:0> ["1", "2"].select {|i| i == "1"}
=> ["1"]

irb(main):006:0> ["1", "2"].map {|i| i == "1"}
=> [true, false]

selectの反対はreject

irb(main):005:0> ["1", "2"].reject {|i| i == "1"}
=> ["2"]

エンジニア1年目、半年の振り返り

アジャイルサムライ−達人開発者への道−

アジャイルサムライ−達人開発者への道−

  • 作者:Jonathan Rasmusson
  • 発売日: 2011/07/16
  • メディア: 単行本(ソフトカバー)
 

会社に入って学んでいるのは、RubyRailsだけではない。 アジャイル開発、テスト駆動開発オブジェクト指向設計といった開発手法についても日々実践しつつ知識を深めている。 これらのものがなんとなく1つのエコシステムを形成しているのが見えてきて、面白くてもっと知りたいと思っている。 それと地味にPerlフレームワークであるMobaSiFのコードを読んだりもしている。

新米エンジニアが4~5ヶ月目を振り返る

ざっくり振り返る。

課題図書

全13冊の課題図書の内、6冊は読了。 オブジェクト指向設計実践ガイドは途中で難しいと感じたので、一旦ストップしました。

代わりにこちらの本の序盤を現在読んでいます。

RSpecの講義

Rubyのテスティングフレームワークとして有名なRSpecの講義がありました。 英語っぽく書けるので可読性が高い点はminitestより良いなぁと思いました。 しかし、初めはかなり苦戦しました。 ユニットテストを書くことは、メソッドの振る舞いを考えることなので、設計する力も身につきそうです。 それと、システムスペックでブラウザを自動操作できると知って、面白いなぁと思いました。

Goもくもく会

オフィスから近くで開催されていたので、参加しました。 エウレカさんのオフィスは広くてオシャレでフリードリンク付きでとてもよかったです。 久々にGoを触りました。

eure.connpass.com

Tokyo Rubyist Meetup

Go言語で書かれたRubyっぽい言語、Gobyの作者であるStan Lo氏が参加するということを前日に知って、慌てて申し込んで参加しました。 ミートアップのトークは一つだけで、仮想テーブルを扱うGemの話だった気がします。 英語で色々な人と技術のお話が出来て、とても勉強になりました。 Stanさんや主催者のPaulさんとも話せました!

trbmeetup.doorkeeper.jp

パイロットプロジェクト

ここまでの研修の山場だったかもしれません。 エンジニア1人のチームで、アジャイル開発をやってみる感じでした。 お題はシンプルなTODOアプリでしたが、会社のデザインシステムを使ってマークアップしたり、厳しいコードレビューを通してデモを見せてプロダクトオーナーにOKを貰ったりするのが難しかったです。

MobaSiFリーディング

PerlフレームワークであるMobaSiFのコードの読み方の研修でした。 10年以上も前に書かれたコードを読むのは大変ですが、新規の開発案件でない限り古いコードを読んで移行するという仕事はいろんな現場であることなのかなと思いました。

gihyo.jp

デプロイ

恐れずにデプロイできるようになるための様々な知識を授けていただきました。 アプリケーションエンジニアがコマンド一発で安全かつ高速にデプロイできる仕組みは素晴らしいです。 インフラへの興味がより強くなりました。

その他研修

バッチ処理や、センシティブデータの扱い、簡単なデータ分析手法などなど雑多だけど業務上大事な知識を先輩から習いました。

to_sやto_iに引数2を渡すと2進数の変換が出来る

Rubyのバージョンは以下。

❯ ruby -v
ruby 2.5.3p105 (2018-10-18 revision 65156) [x86_64-darwin18]

8月12日なので812を変換してみる。

❯ irb
irb(main):001:0> 812.to_s(2)
=> "1100101100"
irb(main):002:0> "1100101100".to_i(2)
=> 812

便利。

公式ドキュメントにも当然載っている。

基数を指定することでデフォルトの 10 進以外に 2 〜 36 進数表現へ変換できます。

新米エンジニアが2~3ヶ月目を振り返る

5月

うっかりしていて、5月の振り返りを書かないままでした。 基本的にはRailsTutorialとSQLドリルをやっていました。 railstutorial.jp

午前中はSQLドリルを進めて、午後はRailsチュートリアル。 その日の終わりにはプルリクを提出して、翌日午前にSQLドリルをやっている間にレビューしてもらって、午後はチュートリアルの繰り返しでした。

6月

社の先輩が書いた本を使ってのセキュリティ研修や、社のGithubフロー、社で使っている静的解析ツールについての講義が前半にありました。 booth.pm 6月後半はマークアップ研修でHTML/CSSの基礎から、Haml/Sassで社のプロダクトのページを実際に作るところまでをやりました。CSSの苦手意識が薄くなった一方で、クラス設計の難しさを実感しました。

短いですが、色々書こうとすると永久に下書きになるのでこのへんで。

追記

このあと、テーブル設計とトランザクションも講義を受けました。 仮想の送金、決済サービスである「みんなのPay」のテーブル設計を考えて、SQLを書いてレコードを作ったり、チームで送金しあったりするなどしました。