という発表をBurikaigi2020 - connpassでさせていただきました。

Image from Gyazo

プログラミングスクールの問題点

一番言いたかったのは「未学習」と「未経験」を一緒にするのはやめようっていう話です。

Burikaigi

.net/C#・Java・Rubyという感じに三つの部屋に分かれていました。もちろん僕はRubyの部屋で、とても発表も面白かったんですが、他の2部屋の内容もめっちゃ気になりました。

C#はUnityをやってる時にやっていて、まだ全然習熟してないのでもし話聞いたらすごく勉強になりそうだし(Blazerとか聞きたかったわぁ)、Javaは最新の話題を全然キャッチアップできてないので聞きたかったです。

両方とも最近の話題がキャッチアップできるイベントがあったら行きたいなと思います。

Image from Gyazo

年齢層高めの我々おっさんにとっては最高の食事群でしたね。

鰤しゃぶ以外にも富山(主に魚!)の名物が満載。我々の好きなものばっかりじゃん。鰤しゃぶは昆布に日本酒をなみなみと注ぎ、火をつけてアルコールを飛ばした上でしゃぶしゃぶ…はかどるわぁ〜。

Image from Gyazo

Ruby部屋の皆さんは知った顔ばかり和みました。@muryoimplさんの地元の金沢も行きたいからイベントやって欲しいなどと話つつ、とても楽しく飲み食いできました。

もうおっさんの好きなもの全て集めて、千葉のホテル三日月とかでイベントやって欲しいですね😁

Image from Gyazo

お昼にAirBで借りた部屋をチェックアウト。借主・貸主相互のレビューがあるので綺麗にして返します。

ネットで調べたらこの部屋を賃貸で借りたら月7万円ぐらいだそうです。Bukit Bintangが新宿だとすると日本だったら3倍どころじゃないですな。

今日は旧正月だそうで、国中で東南アジアっぽさを中国っぽさが上回ってる感じです。

Image from Gyazo

空港でランチに念願のチキンライス。初めて中国行った時は「骨付き肉ばっかりで食べ辛ぇ〜」と思ってたんですが、中国の方のおっしゃる「骨のまわりこそが美味しいのにもったいない…」が最近わかってきたような…。骨付き肉美味い。

Image from Gyazo

短パン・Tシャツ・サンダルで過ごせる国を去るのが辛い。あと100 Plus。

飛行機は行きよりは埋まってましたが、まだ空いてる席に行って横になれるぐらい空いてました。快適。

Image from Gyazo

クッソ寒い国に帰ってきてしまった。悲しい…。

マレーシア クアラルンプール 感想

平日の5日間の仕事をマレーシアのクアラルンプールからやってみました。

受託案件の仕事は元々リモートだったのであまり変わりませんでした。ビデオチャットも途切れたりせず問題なさそうです。時差も1時間なので全く問題ないです。

よく言われてるのが物価が日本の3分の1というものですが、物によって全然違うのでそういう感覚じゃなかったです。食べ物・飲み物・外食、タクシー・マッサージなどの人件費メインのものは確かに3分の1ぐらいな感じ。土地がやたらあるらしいので住むところは3分の1以上に安そう。コンドミニアムは噂通り最高でした。一方、輸入物・電化製品・その他生活用品などはそんなに日本と変わらないイメージ。

ヨーロッパに比べると人がとてもフレンドリーでのんびりしてる雰囲気。店員さんも笑顔が多くて去年行ったロシアとのギャップを感じました。のんびりアバウトな感じなのできっちりした人はイライラしちゃうかも。僕は自分がいい加減なのですごく接しやすかったです。何か足りなくても言えば笑顔でやってくれるし。

クアラルンプールだけなので全体から見れば特殊だと思いますが、快適度(文明度)と物価の安さのバランスが最高に良いなと思いました。

あと日本の商品が売ってる度が行ったことのある国の中で最高でした。セブンイレブンは完全にローカル化してるので日本っぽいものはほぼないですが、イオン・ダイソーで食べ物・雑貨は日本で売ってたそのまんまが売ってるし、日本の食べ物のチェーンもやたらありました。食べ物は長期滞在したら欲しくなるかもですね。

個人的に一番良かった点が気候。おじいちゃんみたいですが歳とってから夏が楽で冬辛いんですよね。冬は精神的にも落ちるし、体調も崩しやすいのが辛い。クアラルンプールに行ってからあったかいからか、僕も妻も生命力が高まった感じで体調も良かったです。

まとめ

良かった

  • コンドミニアムが安いし最高
  • 気候(ずっと夏)
  • 飯・タクシーが安い
  • 人がフレンドリーでゆるい

悪かった

  • マレー語(英語も)分からない
  • 虫多い
  • 日本から見るといろいろ不衛生

今のところ長期滞在先としてNo.1です。タイやカナダも気になっています。

Image from Gyazo


今日もいい天気。朝からクラッソーネさんのお仕事。

複数のちょっとした似た項目を追加したい時、jsonにして1カラムに入れたりすると検索しづらくて後で後悔する。しかし、jsonじゃなくてbitのflagになってて、各種検索用メソッドがたくさんあれば便利かもということでactive_flagを使ってみることにしました。

ややこしいcollection_checkboxなどのフォームも簡単に書けていいかもしれない。検索も楽。

そして書いてなかったですが、もちろん毎日フィヨルドブートキャンプの提出物のレビューや日報の確認もやってます。最近はスクラムの実習に人が増えて楽しい。どんどん実装していって欲しい。

Image from Gyazo

昼はLot 10の地下でチキンライスを食べようと思ったら旧正月前日だからか休み。仕方ないのでくっついている伊勢丹の地下で油そばと台湾まぜそばを食べました。日本食は高い…。

Image from Gyazo

帰ってきて仕事の続き。

Image from Gyazo

仕事が終わったらプール。

Image from Gyazo

そういえばまだ一回も屋上のスカイデッキとやらにいったことなかったので行ってみました。といっても部屋が39階で屋上が42階なのであまり景色は変わらず。最初は高くて怖かったですが慣れるもんですね。

明日は午前中にチェックアウトして日本に帰ります。飛行機空いてるといいな。

今日もクラッソーネさんのお仕事でrails。sorceryを導入してるプロジェクトで複数モデルでのログインが必要になったらどうするのがいいんだろう?sorceryをやめる?sorceryを拡張する?

Image from Gyazo

お昼にペトロナスツインタワーの近くのチャイナタウンでニョニャ料理で有名らしいお店でランチ。

Image from Gyazo

ニョニャラクサは初日に食べた普通のラクサとは全然違って、クリーミーでマイルド。ココナツミルクを沢山入れたトムヤムラーメンって感じです。

謎のバイクスタイル

Image from Gyazo

街中で頻繁に見るこの上着を反対に着てバイク乗ってるスタイル。バイクで風当たるから寒いけどきちんと着ると暑いから逆に着て背中だけ開けとくみたいな感じかな?

毎週水曜日はフィヨルドブートキャンプでやっているスクラムのカリキュラムの振り返りミーティングとWebサービス進捗報告会。

Image from Gyazo

南国感を演出するためにわざわざココナッツを購入。6.5リンギット(175円)なので安い。

Image from Gyazo

コンドミニアムのすぐ横のスーパー、バナナが低いところに吊るしてあってぶつかって邪魔過ぎる。

Image from Gyazo

夕食はSOGOに入ってるちょっとお高めなところで麺類を食べました。SOGOも伊勢丹も客があまり入ってない気がします。

Image from Gyazo

この一面全部がディスプレイにになってるビル、部屋の窓からチラチラ見えてうざかったんですが、近くで見ると巨大。

自動車

Image from Gyazo

Bukit Bintangが新宿みたいな感じなのでマレーシア全体の車の感じとは違うと思いますが、6割がマレーシア国産メーカーのProtonとPeroduaの車。どっちも初めて見ました。それぞれ三菱とダイハツの技術支援を元にできたらしく、Grabで乗った感じも日本車みたいでロシア行った時のLadaとかと比べたら凄く普通。

後はToyotaが沢山と他の日本車メーカー・Mercedes・BMWって感じでした。他のヨーロッパ車はほとんど見ない。

東南アジアは車の運転が非常に荒いと聞いてたんですが、中国のシンセンに比べたら全然マイルドで僕としては全然OKな感じ。

ただ、気になったのが、道に歩行者用のスペースがあんまり無いところ。歩いてるとすぐに歩道が途切れて車道を歩くしかないパターンが沢山。

今日は週3日でお手伝いさせていただいているクラッソーネさんのお仕事の日。ミーティングも2つありましたが、ネットの回線は問題なさそうでした。

Image from Gyazo

お昼は伊勢丹も入ってるLot 10に行って念願の金蓮記のホッケンミーを食べました。

Image from Gyazo

味はオイスターソースの焼うどんです。僕はこういうの好きなので大満足。マレーシア来てから野菜をあまり食べてない気がする…。

Image from Gyazo

仕事が終わってから6階にあるプールに。昼間は子供が沢山いたんですが、夜は静かでいい感じでした。日本だと海もプールも全然行かないので久しぶり。すごく気持ち良かったです。

気候が一年中真夏って感じなので、僕らでいえば温泉入るノリでプール入るのかな。

飲み物

Image from Gyazo

初日にSarsi(サーシ)ってやつがドクターペッパーぽい見た目が気になって飲んだらクッソ不味い。調べたら世界一不味い飲み物として有名だそうです。味は完全にリステリンです。飲んでいいものとは思えない。

これがトラウマになってジュースで冒険するのを控えるようになりました。

Image from Gyazo

迷ったら100 Plus(ハンドレッドプラス)が無難。薄めのスポーツドリンクに炭酸が入ってる感じでとても美味しい。炭酸は要らないけど薄めのスポーツドリンクが好きなので嬉しいです。

今日から仕事ということで気合を入れています。

Image from Gyazo

前日からいろいろ買い足したおかげで快適環境ができました。

Image from Gyazo

(ガラスのテーブルでレーザー式のマウスが動かないので紙を置いている)

いつものキーボードとマウスだとやっぱり快適で嬉しい。

マレーシアの日本との時差は1時間ですが、勘違いしてミーティングとかに遅れるとまずいのでメニューバーに選択したタイムゾーンの時計を置くClockerというアプリを入れました。

今日は土日で溜めてしまったフィヨルドブートキャンプの提出物のレビューや日報の確認をメインに仕事。

Image from Gyazo

昼はトリップアドバイザーで評価の高かったBurger on 16というハンバーガー屋に行きました。フレッシュな感じで美味しかったですね。

Image from Gyazo

2人で1200円で、Shake Shackの半額ぐらいですが、こちらとしてはお高い感じで白人系の人しかいませんでした。

夜には、マレーシアはインド系の人も多いためカレーも本格的と聞いたのでインドカレーのお店へ。

Image from Gyazo

ナン・カレー・チキン・野菜のおかず2品のセットが450円ぐらい。辛さも程よく、会社の近くにあったらランチで食べに行きたい感じ。

明日の仕事に向けてクアラルンプールの秋葉原と言われるLow Yat Plazaでマウスや変換器系を購入。

Image from Gyazo

真ん中が吹き抜けのビルにコンピューター系のショップが集まってる形式。深セン華強北もこんな感じのビル多かったですね。ビル周辺の地域も小さい店の前でドローン飛ばしてる感じも小さい華強北って感じ。

一番でかいショッピングモールのPavilionも行きましたが、高級ブランドモールはどの国も同じですね。僕はどこ行ってもユニクロやZaraで買ってしまうので代わり映え無し。コンドミニアムのプールに入るべくZaraで水着を購入。

Image from Gyazo

夜は遅くなったので近くの店で食事。僕は屋台みたいな典型的なソース焼きそばが大好きです。日本だとコンビニでも塩焼きそばとか台湾風焼きそばとかしか置かなくなってきて腹を立ててたわけですが、ミーゴレンは焼きそば感満載で最高。ミーゴレン、妻が頼んだドーサ、タンドリーチキン、飲み物二つで650円ぐらい。安い!

仕事し易い国を探して試しに色々見てみようと考えています。まずはコンドミニアムのコスパが良いとの噂のマレーシアに来てみました。

8日間ほどの滞在で、平日の5日間をどのぐらい仕事に支障が出ずにできるか試してみる予定です。

行きの飛行機はエアアジアで、今の時期は人が少ないらしくチケットもすごく安かったんですが、飛行機内も本当にガラガラで、みんな好きな場所に移動したり横になったりしててすごく快適でした。

AirBnBで借りた部屋はとても快適でした。景色重視で39階の部屋を借りただけあって眺めがすごく良いです。クレーンの動いてるビルばかりで建設ラッシュ感がすごい。

場所はBukit Bintangというショッピングモールとかがたくさんある栄えてる感じのところです。(あまり調べてない)

Image from Gyazo

Image from Gyazo

散らかしているので写せてないですが、キッチンとダイニングもあって十分暮らせる感じです。これで1泊4000円ぐらいなのでコスパいいですね。賃貸で借りたらどのくらいなのかとかも調べようと思います。

初日は土曜日で夕方に着いたのでコンドミニアム内の施設の探索も明日にしようと思います。

Image from Gyazo

夕食は何故かアイリッシュレストランでパッタイとフィッシュアンドチップスを食べて終了。

Image from Gyazo

有名なアロー通りの屋台も通りましたが、妻がお腹を壊すと大変なので最終日付近で食べる予定。(僕自身は何食べても結構大丈夫)

仕事は部屋でもできそうですが、コワーキングスペースがたくさんあるみたいなので月曜日までには調べておきたいです。

フィヨルドブートキャンプというプログラミングスクールで初めてのPRに対するレビューをたくさんやっています。これらの指摘は世界中で行われていると思うので無駄が減るように書きました。

Files changedを確認したか

Image from Gyazo

真っ先に注意したい点。

ローカルの自分のエディタ上で確認していたとしても、PRを作ったら必ずFiles changedを確認する癖をつけよう。GitHubのソースコードビューワーの機能で色々と気づける点もある。

明らかにFiles changedを一回も見てないなというPRはレビュワーもそれと分かります。

lintを通しているか

rubyだったらrubocop、jsだったらeslint

どういうルールが良いかという高度は話題は置いておいて、まずはlintを通しているか否か。

ファイルの末尾に改行があるか

これ

Image from Gyazo

どのエディターでも設定で自動的に入るようにできるので設定すること。

なぜ最終行に改行が必要なのか - komagataのブログ

同じコミットログが続いていないか

適切な文章などの高度な話題以前に明らかに適当になっている場合がある。コミットログというのはちゃんと見られるものだということを理解しよう。

コミットログが英語/日本語になってないか

プロジェクトのルールに合わせましょう。フィヨルドブートキャンプでは統一されていればどちらでもいいです。

コミットログが雑になってないか

modifyだけ、追加だけは後から見た人が困るので駄目。困る人には1ヶ月後の自分も含まれる。

コミットしたユーザーアイコンがOctcatになっていないか

gitクライアントに設定したemailアドレスがGitHubのユーザーのメールアドレスと違う場合にこうなる。

他のチームメンバーからすると「謎のアイコンの人がコミットしてる!」という見た目になる。

これをやると他のメンバーに「ああ、普段コード書いてない(GitHubを使ってない)人なんだな・・・」という生暖かい視線を浴びる羽目になる。

不要なファイルをコミットしてないか

.DS_Store(Macのみ)とかxxx~(viのみ)とかその人にしか必要ないファイルを含めてしまってないか。開発に参加するみんなに必要なものだけを含めるようにしよう。

無意味なファイルがないか

generatorが作成した無意味なファイルは削除しよう。実装のないmoduleとか、中身のないtest、fixturesとか。

「これはgeneratorが勝手に作成したんで」

といってファイルがカオスになってるプロジェクトは誰も触りたがらない。

一つ一つどんな意味を持っているのか調べよう。

gemのgroupが適切か

testでしか使わないgemがgroup無しで全groupで読み込まれている。必要なところだけにしよう。

不要なrespond_toがないか

jsonでアクセスする必要が無いのにscaffoldのコードをそのままで残っている。htmlだけが必要ならrespond_toformatは削除しよう。削除するときにrespond_toformatが何をやっているのか調べた上で消すのも忘れずに。

何でもリファクタリングと言ってないか

リファクタリングはプログラムの振る舞いを変えずに内部構造を変えることなので、ちょっとした修正という意味で使ってはいけない。

秘密の情報がコミットされていないか

oauthのsecretとか。コード中では環境変数にしておこう。

これをやると、gitで過去を修正したとしてもGitHubのキャッシュに残ってしまい、完全に消すにはGitHubのサポートに連絡するとか面倒なことになる。

チームメンバーが「やっちまったな・・・」という顔になる。

.gitignoreは適切か

.DS_Storeはmacだけのファイル。.ideaはJetBrainsのエディター独自のファイル。そういった特定の環境の人向けのファイルは.gitignoreに含めるべきじゃない。

プロジェクト毎の設定じゃなくて自分のマシン固有の設定に書くべき。

大量の依存gemがコミットされていないか

gemのインストール場所をvendro/bundleとかにしてあって、その中にある大量のgemのファイルがコミットされてしまっていないか確認すること。

ネイティブバイナリが含まれたgemもあるので環境によって違うので各自がインストールするものです。

マジックナンバーが無いか

これ。

マジックナンバー (プログラム) - Wikipedia

メソッドが長すぎないか

「1メソッドは五行以内に収めるべし」というSandi Metzルールというものがあります。

そこまで徹底しなくて良いですが、何十行もあるとさすがに見辛いので修正が必要です。

綺麗な設計を身に付けるためのSandi Metzルール | A-Listers

CIをパスする前にレビュー依頼をしない

自分は何にも変えてないから通るはずだと過信しない。

理解せずコピペしてないか

ググった内容を自分のコードに取り入れることは問題ありません。しかし、その内容を自分で理解せずそのまま使うのはよくないです。理解していないコードでは何が起きるか分かりません。

日本語の作文をするのに似た内容だからといって他の本からそのまま取ってきたら違和感のある文章になってしまうのと同じように、プログラムも変数名や構造を自分のプログラムに合わせずにそのまま使えることはほぼありません。理解しているプログラマーにとっては明らかに違和感のあり無駄のあるコードに見えます。

なので、

「自分の書いたこの部分が何をやってるか理解してる?」

と先輩に聞かれると言うことがよくあります。

意味を理解した上で自分のコードの文脈に合わせた内容に変えて使いましょう。