何でも屋エンジニアのブログ

Rails中級者向け勉強会Step-to-Rails-Expert.rbや出席した勉強会に関するメモが多い

ペアプロをやるにあたって先に読んでおいて欲しいこと

最近特定の一人とペアプロがすることが多かったのですが、また別の人とペアプロをやる機会ができたので、ペアプロをする前に読んでおいて欲しいことをまとめておきます。 主に物理的な準備と、心構えについて書きました(経験に基づくものなので、網羅的な一般的な話は本を読んで頂くのが良いです)。


取り掛かる前に

目標or時間を決めましょう

リファクタリングの場合は特に時間を決める必要性が高いです。リファクタリング他にも直したいところが出てきてしまいがちで、永遠と時間を取ってしまい疲れてしまいます。新規開発の場合は、目標に対しての進捗が比較的分かりやすいですが、それでも上限の時間を決めておくに越したことはありません。

飲み物・食料を用意しておきましょう

思った以上に体力と喉を使います。体調を壊さないようにやりましょう。

進めている最中

休憩を取りましょう

60 ~ 90分くらいで休憩の声掛けを気づいた方がするようにしましょう。ただし、それより早く休憩したい場合は、お互い気にせず休憩したいです!って言いましょう。

  • トイレ休憩
  • のどかわいた
  • お腹すいた
  • さすがに疲れた...

などなど、理由はなんでも良いのでキツくなったら休憩をはさみましょう。二人が協力して進めているので、二人の力が最大限発揮されるような環境を作りましょう。

コミュニケーションをしっかり取りましょう

なんか上手く進んでいないな?と思ったら、進捗が悪くても一旦進める手をとめて原因を考えてみましょう。相手も同じように考えているかもしれないし、感じた違和感がより良い時間にするためのヒントである可能性もあります。遠慮しないで意見を言いましょう。

終わった後

最後に必ずふりかえりをしましょう
  • 新たなメンバー同士で行う初回は、進捗が出ないことも多いです。コミュニケーションのとり方を学び、お互いの理解度を把握し、適切な進め方をふりかえりの場で考えましょう。
  • ProblemとTry出すことで気をつけるべきことが明確になり、気持ちが楽になります。
    • うまくいかないまま原因を究明せずに終わると、お互いがお互いに対し責任を求めたり、ペアプロ自体が辛くなってきてしまいます。
    • 反省点・悪いところが出てくる場合、なるべく仕組みで解決するようにしましょう。
  • せっかくお互い学べるチャンスなので楽しく進めましょう!
  • めっちゃうまくいってる場合、楽しい気分で終われているはずなので褒めあってもっと楽しく終わりましょう。

Step-to-Rails-Expert.rb第19回の開催レポとこれからの企画について

5/21(月)にStep-to-Rails-Expert.rb第19回を株式会社Speeeさんで開催しました。

step-to-rails-expert-rb.connpass.com

流れ

今回はもくもく会でした。

当日の流れは

  • 自己紹介
  • 会の概要説明
  • もくもく
  • 懇親会

という形で進めました。

会の様子

参加者のあっきーさんがすごく丁寧にブログに書いてくださっているので、そちらのリンクを貼あります。

akinov.hatenablog.com

Step-to-Rails-Expert.rbのこれからについて

今回も@sinsokuさんからアドバイスを頂き、色々考えた結果企画を一旦もくもく会ベースに変更しようと考えております。具体的には、会の企画に柔軟性をもたせ、必要に応じてレビューをしたり作業をしたり話したりできる場として進めていきたいと考えています。

この変更をする私個人の理由としては

  • なるべくコードを書く時間が欲しい
  • レビューされる必要のある仕様を追加するコードを書きたいというより、Railsの新機能やRails外のことも色々試してみたい&話したいという欲求の方が強くなってきた
  • 進行管理が大変

会全体の課題としては

  • レビューの仕方や指摘事項としては学べた
  • 何か機能を実装するより、Railsの新機能を試したりするベースアプリとしての使用も増えてきて、そのような人たちにはレビューすることでのメリットが生まれにくくなっている。少なくとも、定期的に行うのではなく需要が発生したときにそのような企画にするorもくもく会の中で有志がレビューするような形の方が、柔軟で良いのではないか

  • レビューにすると変更分の多くに目を通すことになるが、聞きたいこと・興味のあることは変更分の全てではないはず

  • 時間が足りなく、駆け足になってしまう

  • 初回の人は指摘内容が同じになってきてしまう

というものになっています。会が進むにつれて、例えばRailsをアップグレードする作業なども行う必要がありますが、これは(特に小規模のアプリの場合)企画としてレビューする必要性が薄いと感じています。同様に、ActiveStorageを試している方が参加者にいますが、レビュー時はレビュワーがこんな使い方があるのか、と知る場になっていて、これは別にレビューを行わなくとも進めることができるのではないか、という思いがあります。

ただし、レビューに向けて作業をしてくださっている方もいるかと思うので、移行期間として、次回やその次の回は主催者&スタッフと参加者で興味ある方レビューを行うこととします。それ以降は、一旦全体の差分を見てレビューを行うことはしない予定でおります。

しかしながら、上述の通り「柔軟性をもたせ」た運営をしていくので、必要に応じてレビューを行うような企画にしたり、以前のように議論形式の企画にしたり、目的に応じて参加者にも楽しんで頂ける会にしていきます。引き続きご参加いただければ幸いです。

次回について

次回は6月18日(月)に株式会社Speeeさんにて開催します。気軽にご参加ください。 移行期間のため希望者がいらっしゃればレビューしますので、レビュー希望の方もご参加ください!

Step-to-Rails-Expert.rb第17回を開催しました

3/19(月)にStep-to-Rails-Expert.rb第17回を株式会社Speeeさんで開催しました。

step-to-rails-expert-rb.connpass.com

流れ

今回はレビュー会でした。

当日の流れは

  • 自己紹介
  • 会の概要説明
  • レビュー会
  • 懇親会

という形で進めました。

会の様子

今回は初めてキャンセル待ちが発生する状況で、当日体調不良やお仕事の関係で来られない方がいたもののそれでも12人の方に参加して頂き大盛況でした(この人数はMastodonをテーマにした会以来ですね) その中で、今回は4人のレビューを行いました。5人のレビュー依頼があったのですが、お一人は時間の関係で出来なかったので、次回以降優先的に行いたいと思います。

PRのURLは以下になります(実施順)。レビューの内容については、以下を見て頂ければと思います。

個人的には、神速さんのbackportを取り入れた実装が参考になりました。特に、Railsのバージョンを確認して、バージョンが上がっていた場合はエラーを吐く実装は必要性を強く実感しました。あと、meganemuraさんがパスワードレスの認証機能の実装を自前でやっていて、まだ完成形ではないですが続きの実装がとても気になりました。Sorceryの方ででマジックログインの実装に関わった経験があるので、どのように実装するのが良いか話せると面白いなぁと考えています。

PRのコメント以外で話したこと{#aaa}

  • diff を見る時のURL
  • system test ではデータベースのお掃除はいい感じでやってくれるので、database rewinderは要らないかも。
  • backportは、railsの新しい機能を予め入れておくこと。
  • メアドチェックの正規表現は1ページくらいあるやつもある。
  • おすすめメールアドレスバリデーション。
    • GitHub - balexand/email_validator: An email validator for Rails 3 and 4.
    • 2つモードがある。ゆるいモードと厳しいモード。
    • ユーザが先頭とか末尾にスペースをつけてしまうときがある。たまにrailsがスペースを消してくれないので、スペースありのメアドで登録されてしまい、ログインできなくなるという問題が発生する。
  • find系のメソッド使うときに例外返すかnilになるのかは要注意。権限がない系は404エラーにしたり、nilにする場合はその後の動作を考慮した上で実装すべき。
  • 認証用のテーブルをあえて別テーブルにした。
    • 認証系とユーザのテーブルを分けたいっている思想に触れたければomniauthを見ると良いかも。
  • RuboCopのdefaultだと中身のないメソッドはセミコロンで1行で書くように言われる。
    • 最初の設定だと辛いのでonkcopが参考になる。
  • ユーザプロフィールを更新するときにcurrent_userにそのままパラメータをセットしてupdateするのは危険。バリデーションエラーになっても共通セッションでそのまま保持し続ける。

次の仕様について

引き続き、現在の提示されている仕様に追いついた人がまだいないので、追加なしです。

学び

普段だいたい一人で行っていて大変だったので、今回は人数が多いこともありタイムキーピングやメモ取りをスタッフの@two_sannにお願いしました。かなり良い感じに進められたのとブログを書くのがすごく楽になるので次回以降もお願いしていこうと思いました。他にも私しか行っていない作業が多いので、流れややり方など徐々に共有していきたいと考えています。

次回について

次回は4/23(月)株式会社Speeeさんにて開催します。もくもく会となりますので、気軽にご参加ください。 アプリは作ったけど出席できなかった方や時間がなくてレビューしてもらえなかったという人は持ってきて頂ければレビューしますので、ぜひ再度ご参加ください!

転職しました

LICTOOR株式会社からGMOペパボ株式会社に転職しました。

LICTOORについて

LICTOORでは、ほぼ全ての案件で要件定義から実装・保守運用まで行い、他にも新技術の採用にも携わりました。前職で積んだ経験は非常に貴重で、他の会社で働いた場合には積めないような経験が多くありました。

そして働き方の面でも、人数も少なく余裕はなかったものの融通を効かせてもらうことが多くとても働きやすかったです。比較的融通が効きやすいのはスタートアップのメリットだと思いますが、リクトールの場合は雰囲気も良く、殊更その良さが際立っていたと思います。

LICTOOR株式会社はこれからも満足度の高い受託開発と、世の中をより良くする自社サービスを提供していきますので、何卒宜しくお願い致します。

現職について

転職した理由の一つに、より多くのエンジニアと一緒に働き切磋琢磨したい、という気持ちがありました。働き出して少し経ちますが、技術的なコミットだけでなくプロダクトへの貢献の意識が高く、非常に刺激的な環境です。評価制度もよくできていて、個人がPCDAサイクルを回すことを制度的に実現するように設計されていて、いるだけで成長できる環境というのはこういうことか、と非常に納得しています。 しかしその一方で、求められるレベルが高く評価自体は甘くないため、正直焦りもありますが、なるべく早く慣れていき自分の得意な分野で少しでも良い影響を組織に与えていければと考えています。

仕事、OSS活動、コミュニティ活動と今までより高いレベルで取り組むことを目標に、これからも頑張っていきます。 中級者向けのRails勉強会Step-to-Rails-Expert.rbも引き続き行っていきますので、是非ご参加ください。

最後に

転職にあたり、以下の企業様には特に良くして頂きました。この場を借りてお礼を申し上げます(名前順)。本当にすごく良く対応して頂いたので、転職を考えている方はお話を聞きに行くのがオススメです!

  • 株式会社永和システムマネジメント様
  • 株式会社スタディスト様
  • ラクスル株式会社様

Step-to-Rails-Expert.rb第15回を開催しました

1/29(月)にStep-to-Rails-Expert.rb第15回をSpeeeさんで開催しました。

step-to-rails-expert-rb.connpass.com

流れ

今回はレビュー会でした。

当日の流れは

  • 自己紹介
  • 会の概要説明
  • レビュー会
  • 懇親会

という形で進めました。

会の様子

今回は2人のレビューを行いました。

PRのURLは以下になります。レビューの内容については、以下を見て頂ければと思います。

個人的に印象に残ったのは、ActiveStorageを使ったアプリのソースを見られたことです。シンプルなユースケースでは非常に簡便に実装でき、便利そうだという印象が残りました。ExpertTodoのような企画を使って、プレイグラウンドのアプリとして色々試す場にしてうまく使ってくれるのは主催者としても非常に嬉しいです。また、多数の人にレビューされると「考えていなかったことも聞けるので嬉しい」と感想を頂き、こちらも非常に嬉しかったです。 他にも何とか動く形にしてアプリを持ってきてくれましたが、最後に触ったのが3ヶ月前で全然覚えてなかった、という人や、pushするとやたら重いと思ったらvendor/bundle配下が正常にignoreされていなかったという人がいて、色々面白かったです。こういうのが笑い話になるのが個人アプリの良いところで、気軽に失敗ができます。 私の方ですが、今Vue.jsを使ってSPA化しているので、そちらを何とか次回までに形にしたいと思っています。

レビューに残らない会話や質問

  • レビュー速いけどどうやってみんな見てるんですか?

    • Githubのfilesタブのページを開いたら、hoge_controllerやmodelなど、設定ファイルではない実体のファイルまで飛んでしまう。レビュー対象になりそうなファイルから読む。
    • ルーティング → コントローラー → モデルの順で見ると良い
  • あんまり自信ない(コミット粒度とか雑だし、わかりにくいかも)けど、レビューできますか?
    主催者の回答: PRに実装した機能(仕様)を書いてくれれば大丈夫!最悪、その場にいるので説明してもらえれば良いし、中級者がステップアップする勉強会なので、進んで失敗してください。仕事で失敗するとヤバイので、こういう場をうまく使って欲しいです笑 最初は緊張すると思いますが、一歩踏み出すと慣れてきますし得るものも多いので、ぜひ一歩踏み出して下さい。

その他、便利な何かについて

次の仕様について

現在の最新の仕様を、誰も実装できていないので今回は追加なしです・・・

もくもく会 → レビュー会のサイクルについて

もくもく会 → レビュー会のサイクルを基本として行っていますが、レビュー会で時間の関係でレビューできなかった方、レビュー会に都合で参加できない方がいるので、そのような方を対象にもくもく会でもレビューを行うこととします。今回アプリを作ったけど参加できなかった・・・という人がいたらもくもく会でも気にせずにレビューされに来て下さい。

次回について

次回は2/26(月)Speeeさんにて開催します。もくもく会となりますので、気軽にご参加ください。 今回アプリは作ったけど出席できなかった・・という人は持ってきて頂ければレビューしますので、ぜひ再度ご参加ください!

フロントエンドランチに出席した

弊社では昼休みにも部活動(勉強会?)が多く行われています。その中でも、前から興味があったフロントエンドランチに興味を持ち出席してみました。

コンセプトとしては、はてなさんがやっているフロントエンドランチと同様のものをやってみよう、というもの。

developer.hatenastaff.com

興味を持った理由としては

  • RailsアプリでVue.jsを使用しSPAを作っているのでVue.jsの話が聞きたい
  • Vue.jsだけでなく、フロントエンドの話を広く情報収集をしたい
  • 就業後の夜にフロントエンドの勉強会に毎回出席して、というのは時間的にちょっと厳しい

というものがあります。昼休みに気軽に集まるという時間的な負担の少なさや、トレンドや流れを把握できるだけでキャッチアップの指針ができる点、そして分からないことあれば聞けるというのはとてもありがたいです。

今日出席しただけで色々学びがあったので、継続的に出てみようという気持ちでいます。

新婚旅行にクリスマスマーケットを見にドイツへ行ってきた

12月初旬、新婚旅行でドイツに行ってきました。色々なネットの情報に助けられたので、あまり載ってなくて困った情報も含めて、残しておきたいと思います。

クリスマスマーケットについて

最高です。それ以外の言葉が浮かびませんでした。メリーゴーラウンドから見た景色は一生忘れないと思います。

屋台メシ

f:id:biibiebi:20171211044735j:plain f:id:biibiebi:20171211044721j:plain f:id:biibiebi:20171211044705j:plain f:id:biibiebi:20171211044649j:plain f:id:biibiebi:20171211044635j:plain

ココアも最高でした。

夜の風景

周り方

おすすめの周り方として、昼も同じ箇所に行くことをおすすめします。昼は人も少なく、小さい子やお年寄りが多いので、夜とはまた違った雰囲気が楽しめます。買い物をじっくりとするにもオススメです。 夜にはイルミネーションを楽しんで、昼に買い物をするというやり方がとても良かったです。 f:id:biibiebi:20171211045302j:plain

形態

個人旅行でした。一日、現地で一日ツアーを申し込みましたが、それ以外はホテルの手配も含めすべて自己で行いました。

ツアーと個人どっちが良い?

個人的には、個人で手配して大正解でした。ツアーでは時間に追われている感覚の方が強く、「こっちの道良さそうだな」とか「あっちに良さげなお店が見える」とか思ったときにそちらに行けないのがストレスでした。クリスマスマーケットの時期で、かつ初めて行く土地であれば、正直どこを歩いていても楽しいので、自由気ままに行動できる方が満足度はかなり高かったです。

一方で、チェックイン/アウト、電車の行く方向、道、ホテルの設備の不備など、すべて現地で英語で対応しなければいけないので、全く英語/ドイツ語ができない方や不自由なやり取りな中でコミュニケーションをとることにストレスを感じる方であれば、間違いなくツアーがオススメです。また、地域的に外れた場所にある観光地に行きたい場合は、乗り継ぎ等のハードルがかなりあるので、ツアーがオススメです。

またいくつかハプニングが起きたのですが、このようなことが起きないというのもツアーの良いところですね。電車乗り違えたかでスイスまで行ってしまい、この日は潰れました。

英語について

ホテル・電車については通じますが、それ以外は通じないことの方が多いです。観光地の買い物する場所に関しては例外的に通じる人もいますが、そこまで多くないです。ただし、向こうはひるまずにコミュニケーションを取ろうとしてくれるので、ボディランゲージや伝わりそうな単語のみを出して意思疎通ができるので、意外となんとかなります。しかし英語ができるように書いたものの、逆のケース(向こうが流暢すぎてこっちが理解できない)もありました。完全なボディーランゲージのみでも先方が意思を汲み取ってくれて、意思疎通ができる場合もあり、とにかく、理由がどうあれ1度通じないことにひるまなければ、結構何とかなりました。

人の様子

上で「ひるまない」と書いたのは、愛想が良くない人が多いからです。ニコニコしている人はあまりいなくて、接客業であろうとさいごの「ありがとうございます」を言うときですらピクリとも表情が動かない人が結構います。ただ、その人たちも不親切かと言うともちろんそうではなく、ある面では非常に優しいです。例えば、スーツケースを出すのにドアにひっかかっていると開けておいてくれたり、場合によっては一緒に運んでくれる人もいました。最初は愛想の悪さに驚いていましたが、普通に親切な人が多く旅行を通してすごく楽しむことができました。

トイレ

有料です。掃除係がドアのところにいて料金番をしているところ、切符を買って改札を通りトイレに入るようなところがあります。駅のトイレですら、咳き込んでえずくレベルの箇所がありました・・デパートやホテル、飲食店のトイレを使うのが無難です。

また、ウォシュレットや温かい便座はもれなく設置していませんでした。寒いのもあり便座が冷たいので、使い捨てのカバーでもあれば持って行くと良いかもです。

服装

季節としては12月の1週目でした。 厚手のダウン、薄手のセーター、下着、ズボン下、普通のズポン、底の分厚い靴(トレッキングシューズ)、厚手の靴下 で行きました。昼間、夜ともに寒いと感じることはなく、室内や昼間では少し暑く感じるときがありました。 ただしそれでもクリスマスマーケットに長時間滞在すると、石畳の影響で足が冷えてきました。ただし、足が冷える問題はこれ以上はどうすべきか対応がわからないので、 ある程度の時間でお店に入り休憩する、などの対応が必要でしょう。

電車

ジャーマンレールウェイパスという乗り放題パスを買っていきましたが、これは大正解でした。初めてづくしの中、ただでさえ大変なのに仕組みを理解していない路線の切符を買うのは精神的にも負担になるので、おとなしくパスを買ってしまっていて正解でした。

1等と2等どっち?

1st classの列車も乗れるランクにしました。
かなり大きいスーツケースで行ったのですが、上の荷物棚にスーツケースが入らないときがあり、席の横に置かざるを得ませんでした。 しかし1st classは通路も広く、スーツケースを置いても他の人が通れました。一方、2nd classはスーツケースを通路に置くのは到底ムリな道幅でした(日本の新幹線くらい)。 他の利点としては、単純に空いていて座れる可能性が高い上に席が広いという利点もあるので、慣れない土地でのスーツケースを運ぶ神経を使う移動では、これらの要素は多少料金が高くなっても捨てがたいなと思います。

切り離しがある?

上記のスイスまで行ってしまった件について、駅員に確認し、google mapと時間、便ともに間違っていないことを確認し乗車したのにも関わらず間違えたのは、電車の切り離しがあったせいではないかと予想しています。到着予定時刻に着いた駅名が目的地と異なっていて、そこで慌てて現在地を確認したらスイスにいることが分かり絶望しました。宮城方面と山形方面の列車切り離しの感覚で国外へ行ってしまうのさすがですね。

おそらくアナウンスはされていたのでしょうが、ドイツの電車では日本と違い英語アナウンスが録音されたもので放送されるわけではないため、並の英語力では聞き取るのが難しいです。日本語でも車掌さんのアナウンスを聞き取りづらいことがありますが、それの英語版だと思ってくれれば分かりやすいかと思います。これは改善して欲しいですね・・

エスカレーター・エレベーター

当たり前ですが、新幹線も基本的に数分遅れます。雪の影響か、最大で30分ほど遅れたこともありました。 一方で、新幹線が遅れてもその後のローカル線はまってくれないので、20kgのスーツケース2個運び階段ダッシュするという地獄を味わいました。

小さい駅ではエレベーターもエスカレーターもない駅が多いので、スーツケースを持っての移動は小さめの駅を含まないようなルートで行うことをオススメします。

水・食生活

食生活はとても合っていて、日本が恋しくなりませんでした。もともとパンとコーヒーとケーキが好きで生きているので、それらが毎日食べられるのが幸せでした。 写真には載せていませんがビールやディナーもとても美味しかったですよ。でも、個人的には朝ごはんとケーキを食べている時が一番幸せでした。

f:id:biibiebi:20171211043032j:plainf:id:biibiebi:20171211043016j:plainf:id:biibiebi:20171211043011j:plainf:id:biibiebi:20171211042847j:plain

ドイツの水道水は飲めるそうで、私もごくごく飲んでいました。硬水のためお腹を壊す人がいますが、私は大丈夫でした。ただし、髪の毛は一日でゴワゴワになります。セットが面倒なので前日にパーマをかけて旅行に臨んだのですが、コントロール不能の天パーのようになってしまい、どう頑張っても言うことを聞いてくれませんでした。洗い流さないトリートメントとワックスをベタベタにつけてニット帽で潰したら最終的にある程度まとまりはしましたが・・結果余計な手間が増えたので、行く前にパーマはかけない方が良いです(個人的な主観)。トリートメント等は、迷ったら持っていくか、現地で調達した方が良いです。

持っていってよかったもの

  • スリッパやアメニティ
    ドイツはエコでアメニティ類が充実していないので、何があるのか調べた方が良いです。

  • ティッシュ
    なぜか洗面台あたりにペーパータオルのように備え付けになっていて、移動できず何かと不便です。

  • フリース
    外の寒さ対策として持って行きましたが、その目的では不要でした。何に役に立ったかというと、部屋の寒さ対策です。部屋が広い、機器が古い等の影響で暖房の効きが悪いことが多かったので、部屋着として着ていました。

  • ドライヤー
    ないホテルがありました(確かあるって書いてあったと記憶しているのですが・・)

  • ビニール袋やエコバック
    エコのため、袋はもらえないか有料です。ちょっとした買い物用にコンビニサイズのビニール袋やエコバッグを持って行くと便利です。エコバッグは現地のドラッグストアで調達もできます。

  • マスク
    外気の乾燥に加え空調の影響で室内はとても乾燥しているので、部屋で寝るときに使用するとノドを痛めなくてすみます。

持っていかなくてよかったもの

  • ケトル
    ケトルはなくてもネスプレッソのエスプレッソマシーンが置いてあるホテルが多く、そちらでお湯を使えました。しかし、ないホテルもあると思うのでそこはきちんと調べましょう。 f:id:biibiebi:20171211044128j:plain