2019年さんお疲れさまでした。2020年さんよろしくお願いします。
今年の年末年始は割とバタバタしていて気づけばこんな時間になってしまった😇
最早年単位の定点観測としてしかブログを書いていないけど今年も書いていこう...w去年のはこちら。
GKEと仲良くなる
転職してから、一部GKEを利用している部分があるのでそのあたりを触めるなど。
デプロイ時にダウンタイムが出たり、オートスケーリングの設定が特段なかったり、podの構成がちぐはぐしてたりと、色々と噛み合ってなかった部分があったのでそのあたりを改善してもう少しいい感じに、そしてリソースを効率よく使えるように📝あとstern便利。
ワンコマンドデプロイ環境こしらえあたりまでとりあえず整えられたので良かった〜みたいになったのが年初
アプリ開発
2018年も少しだけ触っていたアプリ開発周りをもうちょっと本腰入れて。
- Swift
- SnapKit
- RxSwift
あたりを使った開発はある程度慣れたかなというお気持ち!
RxSwiftはあんまりゴテゴテに使うとしんどそうな感じがしたので基本的にV-VMの繋ぎくらいにしか使わないスタイルでやっていってみていた🤔
StoryBoardはdiff周りの観点が主に肌に合わずSnapKitを以前からの惰性で使っていたけど、普通に素のNSLayoutAnchorでも書きたいな(リプレースまである)という感じもある
そんなにガッツリ作ってもという感じだったので手始めはView(VC), ViewModel, Model + Navigatorくらいをデフォルト構成として作ってみていた📝
Navigatorがあると画面遷移周りがごちゃごちゃせずスッキリした感覚があったので好印象!
最近はアプリ周り触れていないけど、今年はSwiftUI触ってなんか作りたいなというお気持ち
エンジニアjoin!!
ついにヘーシャにエンジニアが増えたので非常に尊い&嬉しい&ありがたい!!やっていき!!!
— ごまちゃんさん (@gomachan46) 2019年7月1日
7月にはヘイシャチームのエンジニアも増えました!やっていきの体制が強化されて最高! これまでだいたい一人開発みたいな状態でなんとかしていたのだけど、おかげでやれることの幅が色々と増えました。最高。
とてもがんばってくれてて日々助かってます。圧倒的感謝!!
引き続きやっていこう💪
spreadsheet力アップ
spreadsheetがやはり業務的には重宝する!けど、データの更新やら整合性やら速度やら色々とウッとなる部分が多いのもまた事実。
っていうところで重たいspreadsheetとなんとか付き合っていくやりくり術みたいなのが少し身についた年でもあったw
spreadsheet運用...ウッ...頭が...みたいにエンジニアとしてはなりがちではあるけど、こういったあたりを良くしていくのも個人的にはとても大事だと思っているのでいい経験だった:)
なんでもかんでも管理画面作りゃいいというものでもないし、spreadsheetのメリットもたくさんあるし、ニーズに合わせてうまく乗りこなしてこその技術だという感じある
Shopifyと仲良くなる
2019年後半戦くらいからはShopify上で動くliquidテンプレートを書いたり、合わせてjsも書いたり、「カート内の商品データをもとにほげほげする」みたいな処理を記述できるShopify Scriptsという大体Rubyのようなものを書いたりといろいろやりました👀
合わせてこのあたりもデプロイが割と至難の技だったのですがコマンドでさくさくデプロイできるように並行して整えるなど。
新しい領域を実装するのはやはり楽しい💪また、こういった全く新しいコマンドデプロイの整備などこれまでの経験値が生きる場面も色々とあるなと改めて。何かを経験したときに一つの学びで終わってしまうのはもったいないので、今後の人生や自分の哲学に反映させていくのじゃ
jsと仲良くなる
Shopify開発のときもちらっとはやったけど、長らくなんだかんだちゃんとやってこなかったフロント周りの実装をついにやる必要が出てきたのでゴリゴリとやっていっているのが最近👀
Nuxtを使って社内ツールを開発しています!
昔Reduxを趣味のサービスで使ってみたりはしていたのですが、なんというか昔と比べるとだいぶ全体的に混沌とした感じが減って落ち着いてきたなという感じがとてもしました。 だいぶこの数ヶ月でフロント周りの苦手意識というかとっつきづらさが消えたので2020年はもっと色々やっていくぞ!
Nextとかも今後触っていきたいなと思いつつ👀
Vueも割と初めて書いたけど割とスッと入ってきていい感じ。引き続き練度あげていこう。
Reactもまたやっていきしたい気持ちはあるのでこれまでよりもうちょっと踏み込んで見ていこう〜
2019年の抱負を振り返って
2019年の抱負
職場も変わり、心機一転の勝負をしていく一年になるかなと思います。
これまで以上にめちゃくちゃコードを書いて書いて、ユーザに良い思いをたくさんしてもらって、ガッツリ事業大きくしていくぞ!
やっていき!
昨年末書いたとおり、これまでと比べるとかなりコードを書いた気がします!!2019年は書いた! この調子で2020年もゴリゴリ書いていくぞ!
事業成長的な観点でも、会社的にも本当にどんどん層が厚くなって強くなっている実感があるので、自分ももっともっと成長していくぞ〜〜圧倒的成長〜〜〜〜
あと、なんだかこれまでよりもかなり集中力が研ぎ澄まされてきた気がします。ゾーンに入る頻度が増えた。これはとても良い傾向な気がするので引き続きいい感じにお仕事していきたい:)
これは日々目立ったストレスもなく働けている証拠だとも思うしやりたいことができてて楽しい感触もとてもあるのでありがたい限り。
仕事納まりed、何かに貢献できてるかというとまだまだうーんという感じだけど、まぁ色々とやった1年でした。来年ももっと価値出せるようやっていくぞ!
— ごまちゃんさん (@gomachan46) 2019年12月27日
色々手広くやれてるしどんどんチームとしても組織としても仕上がり良くなってるのでとても楽しい✌('ω'✌ )三✌('ω')✌三( ✌'ω')✌
— ごまちゃんさん (@gomachan46) 2019年12月27日
2020年もやっていき!
2018年、ありがとうございました。退職エントリを添えて
2018年も早いものでもう残り数時間で終わってしまうので、ざっと今年の振り返りを。(もうブログ振り返りしか書いてない)
WEB+DB PRESSへの寄稿
年始は、初めてのWEB+DB PRESSへの寄稿をするということで、原稿の準備をせっせとしていました。もはや懐かしいw
限られた紙面の中で、伝えたいことを一意にちゃんと伝えることの難しさ、推敲の大切さなどなどを身をもって味わえてとても良い経験だったなと思います。
フィードバックもいくつかもらえて嬉しかった:)
はじめての異動
4月からは、2014年のVOYAGE GROUP新卒入社時からずっとお世話になっていた部署に異動の意志を伝え、toC向けの新規事業に携わることに。
(こちら非常によくまとまっていて素晴らしかったです、ありがとうございましたw)
ほとんど何も無いような状況から何を作っていくか、何を回せるようにしていくかを色々と話し合いながら考え、実行していくのはとても楽しかった:)
そしてガッツリtoC向けのサービスに携われたというのもとても面白くて、実際のユーザの声が聞こえてくるのは最the高の極みだなと自分のやりたいことにマッチしているなというのを改めて感じられる非常に良い経験でした!やっていた領域としては
と、割と広範囲に見ていました :eyes: と言っても、これは僕だけではなくチームメンバーそれぞれみんな守備範囲が広く、頼れるメンバーぞろいだったなと本当に思いますw
そして、クローズ
7/25にリリースした上記サービスは、10/31にクローズすることになりました。
僅か3ヶ月のサービス稼働ということで、まぁ色々ありましたが、もっと上手く立ち回れただろうという悔しい部分や悲しい部分ももちろんありつつ、この携われた半年間はとてもエキサイティングで中身が濃く楽しい良い時間を過ごせていたなと思います。改めてメンバー含め関係者の方々、本当にありがとうございましたmmmm
はじめての退職
まぁ上記サービスクローズもあり、4年半お世話になったVOYAGE GROUPを11/2に退職することに。
最終出社マーン (@ 株式会社VOYAGE GROUP - @voyage_group_pr in 渋谷区, 東京都) https://t.co/xRQoVepCVy
— ごまちゃんさん (@gomachan46) November 2, 2018
個人的な終わり方でいうと、もちろん寂しい最後だった感は無いと言ったらウソになりますwが、VOYAGE GROUPは本当に本当に良い会社でした!働く環境も良くしていこうという気がちゃんと社内に流れているし、間違いなくVGに来れたことで人生変わりました。誇張表現とかしないタイプなので本当にw新卒として入れて本当に良かった。何段もパワーアップさせてもらいましたmmありがとうございました、楽しかったです!また遊びに行きますw行かせてくださいw
嘘やろ!!! pic.twitter.com/d6ul3CPGmf
— ごまちゃんさん (@gomachan46) November 2, 2018
送別?されて楽しかった、が完全に眠すぎて途中から脳死だったw
— ごまちゃんさん (@gomachan46) November 2, 2018
6:41 AM - Nov 3, 2018
???
頂いたお花とお酒〜〜ありがてぇ〜〜 pic.twitter.com/XOlVJeFM6V
— ごまちゃんさん (@gomachan46) November 3, 2018
同期からもらったお花とお酒。季の美美味い。ありがたや!
はじめての転職
退職から間髪入れず、11/5から新しいところで働き始めました。
初出勤 (@ ハイテクランドセガ渋谷 in 渋谷区, 東京都) https://t.co/HUjj6AQXTf pic.twitter.com/xSplGsfSgO
— ごまちゃんさん (@gomachan46) November 5, 2018
???
株式会社RiLiという会社でエンジニアとしてやっていっています!
新職場の様子です pic.twitter.com/LJQBHc9HOE
— ごまちゃんさん (@gomachan46) November 5, 2018
はじめての転職&人数も少ないガッツリスタートアップということでもちろん不安もありましたが、杞憂に終わり楽しくお仕事出来てます:)
開発周り一手に担うくらいの気持ちで、以前以上に広範囲な守備範囲を見せられるように片っ端からガツガツやっていってますw
メンバーそれぞれ強くて良さがあるので、ちゃんと力を合わせて頑張っていきましょう!背中は任せろ(?)
いきだおれw #今日のみたらし pic.twitter.com/HhLHNe9xgp
— ごまちゃんさん (@gomachan46) November 8, 2018
そしてねこがいてとても最高。極上の福利厚生
2019年の抱負
職場も変わり、心機一転の勝負をしていく一年になるかなと思います。
これまで以上にめちゃくちゃコードを書いて書いて、ユーザに良い思いをたくさんしてもらって、ガッツリ事業大きくしていくぞ!
やっていき!
今更2017年を振り返ってみる
もう2018年も1/6が終わろうとしていますが、2017年の振り返りを...w
一時的に異動してPHP7 + Symfony3 + Dockerでの開発
2017年の前半は一時的に社内異動をしてお掃除のプロに家の掃除をお願いできるカジタクの開発をしてました。PHP7 + Symfony3 + Docker
ES5→ES2015+への置き換えや基盤の整備をしたり久々にSymfonyでのアプリケーション開発したり。
デザイナーやプロデューサーとも一緒に話をして進めつつな感じで忙しさはありつつ楽しかった〜
色々と大変なところもあったけどこれも良い経験。良い経験
Treasure2017でWeb APIについて一日講義
弊社で行っている夏のエンジニア向けインターンシップTreasureでWeb APIについてゼロから学んでもらう講義をしました。
全然馴染みが無いような学生でも理解が進むように意識して作ったけど本当に参加した学生さん達が優秀でペロッと平らげていった印象wもう少し奥行きのある構成に出来ると講義に幅を持たせられるなぁと実感。
自分がインターンを受けていた5年前よりもかなりWeb慣れした学生が増えていた印象で、時代もありつつなのか面白いなぁと思うなどしてました。
通常業務もかなり忙しい時期だったので準備含め死にかけたけど楽しかったwやってよかった!(まぁしばらくはこういうのは休憩かなw)
API Gateway + Lambdaでペライチアプリケーションの開発
異動やインターン講師が落ち着いた後は、ペライチだけど一部だけ動的に変わっていくWebアプリをAPI GatewayとLambdaで作ってみたりしてました。
API Gatewayではマッピングテンプレートを上手く使うと意外と色々とできてとても楽しかったw
Apache Velocity Template Language (VTL) を使えるようになっていて、これを使いつつLambdaから返ってくるレスポンスをAPI Gatewayから返すレスポンスに含めてあげる〜という感じ
サーバーレスは良いぞ〜wそんなにリソースはないけどサクッと作ってその後インスタンスのお守りとかもしたくないよね、みたいな時にまず考えてみると良いと思います。それで考えてみてやっぱり要件にあわなさそうとかなら使わず普通に作れば良いだけですしおすし。
合わせてLocalStackやSAM Localと言ったサーバーレス周辺のツールとかもかじれたので良かった。
引き続き新しめのものを積極的に検討しつつシュッと良い感じのものを作れるように色々模索していきたい〜
昨年同様Rails案件もやった
11月位からはもともとやっていたRails案件に戻ってきて、新しい取り組みなどを作ったりたり。
とはいえ最近あんまりRuby/Rails周りへのアンテナが昔ほど高くなってないので、また色々キャッチアップしていかないとな〜とmm頑張ろう。
WEB+DB PRESSへ寄稿
(これが書きたかったのもあって振り返りが今になったというのはあるw(言い訳)
ありがたいことにWEB+DB PRESSへの寄稿の話をいただけて、PHPについて書きました。2018年02月24日発売のVol.103への寄稿となります。
2月24日発売のWEB+DB PRESS Vol.103にて「配列徹底攻略
— ごまちゃんさん (@gomachan46) 2018年2月14日
...79個もある関数の使い方やハマりどころを厳選紹介!」を執筆させていただきました!VOYAGE GROUPによる「事業を支えるPHP」連載第二弾です。ハマりどころや現場でのPHPとの付き合い方も詰め込みました。よろしくお願いします! #wdpress https://t.co/8HbEpAKlcj
はじめての執筆だったので色々と手探りのところも多かったですが本当に書いてよかった!やはり実際に形として残るものを出せるのはうれしいですしね。
アウトプットの形としては発表よりは文章を書く方が個人的にはあっているなーと改めて実感(ブログ書けてないけどw
- ものをつくる
- 文章を書く
- 発表する
の順番で好きなのが実際にやってみた上で認識合わせられたので良かった。何事も選り好みせず一回はチャレンジしてみる気持ちでやってみた上でなので自分にあったスタイルというのが明確になってしっくり来たなぁという感じ。引き続き色々やっていき!
時間の使い方を変えた
2017年は過去一忙しい年でもあった(特に前半)ので、色々と時間の使い方も変えていって、専業のお仕事をこれまでにも増してメリハリを付けて上手くやるように意識したりもしました。おかげでほぼ定時で帰る癖がついてきて良い感じ。
なんだかんだ2時間とか会社に残ってしまった〜みたいなのをやめて24時間の配分比率みたいなのをちゃんとコントロールするようにしたのはかなり良い感じだなーと。
というのに大きく寄与してくれたのがスプラトゥーンwツライことも多いけど良いゲームだなと。
副業も始めた
時間を上手く使っていきたいなというところで、知り合いの会社で週8時間くらいを目標で開発のお手伝いもし始めました。以前より忙しさはもちろん増えたけど違うプロジェクトも経験しつつ本業も出来るのはすごく自分のためになるので良い感じ:)
ついつい自分だけの開発をしようとするとデスクに向かうのに失敗しがちなのをお仕事として自宅のデスクに向かうことが出来るので良い習慣がついてきてて捗ります。これの延長線で自宅での趣味プログラミングや技術的なキャッチアップの時間が増やせてきてるので継続していきたい!
- 本業
- 副業
- スプラトゥーン
- etc.
を上手く回していくぞいw
2018年の抱負
2018年はこれまでよりも実際手を動かして作る所に振り切って頑張っていきたい所存。
もの作ってなんぼだと思うのでその手数をこれまでよりも増やしていきたいし、趣味の開発もまた始めて何かリリースしたいなぁと思っています。
これは2017年に講師をやったり執筆したりという経験を出来たからこそしっかり持てた抱負だと思うので、2018年の振り返りをした時に「例年よりも色々コード書いたな〜」という感触を持てているようにしたいです。
そしてまだ知らない領域もたくさんあるので積極的に踏み込んで行きたい気持ち。
やっていき!
2016年ふりかえり
今年は何をやったかな?というのを書いてみる。
マイチュウニズムネットリリース
チュウニズマーのチュウニズマーによるチュウニズマーのための(ry
ちょうど一年前の今頃に、正月休みで帰省しているときにガッと作った記憶。
今では10000人ほどのユーザさんが使っていてくれていて嬉しい限りです。作ってよかった!
これのおかげで僕だいぶレーティング伸ばせたしめでたしめでたし。
Rails案件へ
部署内プロダクト異動みたいなものがあって、2015年10月頃からRailsを書き始めるようになり、2016年になってからはほとんどRails(or Ruby)書いてました。
もともと主に書いていたのはPHPでフレームワークはSymfony2だったのでかなり流れが違うなぁと感じました。
フレームワーク的なところだとモデルに寄せやすいかサービスに寄せやすいかっていうのが一番違って感じたところかも🤔
まぁあとはやっぱりDSL的なところのRubyの強さ(よくわからないものが出来上がると弱さ)はすごいなぁと感じましたね。
去年の10月にこんな発表をババーンとしておいて、その直後からめっきりSymfony2を書かなくなってて疎くなって行ってたのは内緒w
Pure Rubyなプロジェクトも
Pure Rubyなプロジェクトもサクサクっと進めたりもしました。
部署を横断して取り進めるものでなかなかこれまでとは勝手の違うタイプのプロジェクトで苦労もありましたが無事に進められてめでたしめでたし。
「ニュース記事を蓄積し、配信する」というような機能をもつ社内gemを開発して、API Gatewayを使ってシステム構築する、といったようなこともしてました。
これ実質一人での実装だったのでなかなか寂しい思いをしましたが部署内のチームメンバーに支えられて良い感じに進められましたwありがたやありがたや
賞をいただくなど
2016年10月に開かれた全社総会で、ベストエンジニア賞なるものをいただきました。
正直こういった賞とかはまったく意識したことがなかったのでとてもびっくりしましたが、会社でやってきたことが評価されたというのはとても励みになりますね。
割と常に楽しんでやれるタイプなのでそうした安定感の中でコツコツお仕事出来たのが功を奏したのかなーと思います。
と同時にそういった雰囲気を作れている社内に圧倒的感謝🙏
これからも精進していきます。改めてありがとうございますmm
面接業
エンジニア業を初めて3年目、ありがたいことに社内グレードの昇格もさせていただき、面接業にも携わることが増えてきました。
人を見る目、じゃないですけどどんなことをやってきた人が良いかな、とかどんなことを考えている、大事にしている人と働きたいかな、というようなことを前よりもずっと考えることが多くなった気がします。
採用側に触れるっていうのはすごく見え方が違って学びが多いなーとしみじみ感じながら参加させてもらってました。来年も引き続き関わっていきたい!
DTM
大学の頃からずっとやりたいとは思っていながら出来ていなかった趣味のDTMにもだいぶ時間を割けた年だったかなと思います。
友人とも協力しつつ継続してやれて楽しかったです!
これは来年も引き続き時間作って進めていきたい。
お仕事ももちろん大事だけど、趣味の時間もそれと同じくらい大事。
忙しさに負けて一辺倒にならず上手く立ち回っていくぞ!
2017年に向けて
2016年はお仕事と新しい趣味は上手く進められたかなと思うけど趣味での開発、みたいなところは今ひとつ進められなかったかな〜と。
2017年はぼちぼち勉強会とかもまた参加したいし新しいものづくりもしていきたいのでそのあたりの時間も再び意識的に時間を増やしていきたいです!
意識的にやめていた毎日草生やし活動も2017年はもう一度再開してものづくりの習慣を作り直していこうかな〜。
2017年も頑張るぞい!
といって12/30からウイルス性腸炎とのことで寝たきり生活になっております...つらい...
38.9℃〜
— なかにしごう (@gomachan46) 2016年12月30日
まずは身体を元気にしてから、2017年も頑張るぞい...w
あなたにおすすめするWebSocketを用いた全く新しいOAuthのご紹介
この記事は、 Advent Calendar 2016 - VOYAGE GROUP techlog の16日目のエントリです!
みなさんこんにちは!
VOYAGE MARKETINGにてエンジニアをしている なかにしごう (@gomachan46) | Twitter です。
2014年より社内非公式サークルとして 音ゲー部
を立ち上げ、お昼休みは会議室のプロジェクターで音ゲー鑑賞、定時後はゲームセンターで練習と、現在もなお元気に活動しています。
さて、今回はタイトルの通り WebSocketを用いた全く新しいOAuth
をご紹介したいと思います。
ご存知の方も多いとは思いますが、さらっと簡単に用語の説明をしていこうと思います。
WebSocket
WebSocket(ウェブソケット)は、コンピュータ・ネットワーク用の通信規格の1つである。インターネットの標準化団体であるW3CとIETFがウェブサーバーとウェブブラウザとの間の通信のために規定を予定している双方向通信用の技術規格であり、APIはW3Cが、WebSocket プロトコルはIETFが策定に関与している。プロトコルの仕様は RFC 6455。TCP上で動く。
特性上、チャットなどのリアルタイム性を求められるようなケースに利用されたりしています。
ActionCable
Rails5系からの新機能で、 Rails
と WebSocket
をつなぐために用意されたものです。
これを用いることで Railsの良さはそのままに、リアルタイム通信を簡単に扱えるようになりました。
OAuth
OAuth
とは、 Otoge Authorization の略です。
Otogeとは
簡単にいうとリズムに合せて作成された譜面の通りにボタンを押して遊ぶゲームです。音ゲーです。
以前よりもだんだんと認知度が上がってきているように感じますね!
OAuth
は、この音ゲーで対戦を行い、相手よりも高いスコアを出すことでログインすることが出来るという全く新しい認証方式です!!*1
今回はこの OAuth
を、 ActionCable
を用いて実装してみました!
デモ
早速ですが百聞は一見に如かずということでデモをどうぞ!(動画埋め込みだと小さいかもしれないです)
OAuth
を用いたログインの流れを、とくとご覧ください。
上から落ちてくるログインボタンを...
タイミングよくクリック!頼む〜!ログインさせてくれ〜🙏🙏🙏
勝者には真のログインボタンが与えられ、ここからログインすることができます。
使っている技術
重複もありますがざっと触った技術も書いておきますmm
全て触ったことのない技術でなんじゃこりゃ、という感じのまま気づけばブログ投稿2日前を迎えましたがなんとか動かすところまで出来てよかったですw
コードは闇を抱えていますがこちら GitHub - gomachan46/action-cable-oauth: OAuth
WebSocket
以下のような情報を WebSocket
を用いてpushしあっています。
- 対戦相手のjoin情報
- プレイ開始情報
- 各プレイヤーのコンボ情報
- 各プレイヤーのスコア情報
- プレイ終了時の勝敗
Rails5
Rails5
系で ActionCable
を用いています。
enchant.js
もうしばらく更新が止まっていそうですがとりあえず雑にゲームっぽいのが動きゃいいんだよ!ということで突っ込んでいます。
Rails
上に突っ込むのが必要だったので以下の記事やスライドあたりを主に参考にしました。
音ゲー
音ゲーを雑にでも実装する必要があったので、以下の記事を参考にしながら実装しました。
参考記事の皆さん、大変助かりましたmmありがとうございましたmm
スピード感、リアルタイム感
意外と(?)割と普通に音ゲー出来たなと言う感じでした!
動画の音声も2ウィンドウで同時に再生されているわけなのですが、ほぼズレを感じることなく聞こえているのではないかと思います🤔
処理する物量が増えたときなどどうなってくるかは要確認ですが、ちゃんと作ったらそれなりに面白いものが出来る可能性を感じるなどしましたw
おわりに
いかがでしたでしょうか?
これが未来の認証方式、 OAuth
です。
みなさんも WebSocketを用いた全く新しいOAuth
をぜひサービスに盛り込んで最高のログイン体験を!!
明日の更新もお楽しみに〜👀
関連
VOYAGE GROUP エンジニアブログ : あなたにおすすめするたった一つの最高のキーボード
*1:これが言いたかっただけ。色々ツッコミどころはあるけどこまけぇこたぁいいんだよ!!←
どこかで埋めたフラッシュメッセージを特定のページに来たときに通知してあげる方法
東京理科大学 Advent Calendar 2016 - Qiita の12日目のエントリです!
理科大野田キャンパスのOBです!
運河!なんもねーよな!神楽坂羨ましい!
今はVOYAGE GROUPというところでエンジニアやってます:) OB訪問的なのしたいみたいな理科大生さんいたらぜひぜひ!(番宣)
さて、今回は、Rails小ネタみたいなのを書こうかなと思います。
どこかで埋めたフラッシュメッセージを特定のページに来たときに通知する
んーなるほどわからん感がありますね。
例
例えば、ログインボーナスのような機能を実装するとして、要件が
- ログイン状態のユーザがどこかのページに訪れたらログインボーナスの条件を満たしたことにしたい
- 訪れたページで通知するのではなく、TOPページへ行ったときに大々的に通知したい
- 通知は一度だけにしたい
- ログインボーナスの条件を満たした直後にTOPページに行ったときだけ通知するのではなく、関係ないページを回遊した後でも
という感じだったときに使えるtipsです!
やり方は色々と考えられますが、今回はおそらく一番手軽で簡単なRails標準のflashを利用した実装方法をご紹介します!
flash
flash - リファレンス - - Railsドキュメント
説明的にはこのあたりを見ていただければと思います。
flashのキーは notice
や alert
だけではなく、任意の物を使うことができます。(中身はただのhashです)
実装
簡単3stepです。
通知するところで普通にflashから情報を取り出し表示する
トップページのview(erb) <p>top</p> <% if flash[:login_bonus] %> <p><%= flash[:login_bonus]%> controllerでログインボーナス獲得したよ</p> <% end %>
普通ですね! flash[:login_bonus]
があればそれを出します。
条件を満たしたところで普通にflashに情報を入れる
class HogeController < ApplicationController def index flash[:login_bonus] = "hoge" end end
普通ですね! flash[:login_bonus]
に情報を入れてます。
これはリダイレクトしたいなーみたいなときでも同様で大丈夫です。
def index flash[:login_bonus] = "piyo" redirect_to fuga_path # リダイレクトでも end
flash内の情報を適宜保持して引き回す←ポイント
今回のキモですね。
class ApplicationController < ActionController::Base protect_from_forgery with: :exception after_action :keep_flash_login_bonus # flashメッセージを各actionでは引き回して保持し続ける def keep_flash_login_bonus return if controller_name == 'top' # 例えばtop_controllerでは出したいから引き回さないとか flash.keep(:login_bonus) if flash[:login_bonus] end end
flash.keep()
の使い方がポイントで、 通知したいところでは情報を引き回さないので次のリクエスト時にはflashが削除され、それ以外では情報を引き回して次のリクエスト時にもflashが引き続き使えるようにする
みたいなことをやっています。
この方法を用いているため、先程の 条件を満たしたところで普通にflashに情報を入れる
部分での flash[:login_bonus]
は flash.now[:login_bonus]
でもどちらでも大丈夫です。
今回は簡単のためapplication_controllerに書いていますが必要に応じてmethod切り出しやmodule切り出しは行ったほうが見通しが良いですね。
実装としてはこれだけで良い感じに情報を引き回してくれます。
デモ
こんな感じです :)
実装サンプル
今回用に作成したサンプルは以下から確認できます :)
おわりに
いかがでしたでしょうか?
ちょっとしたflashの活用法でした。ちょっとした一工夫でさらっと実装出来てなかなか良かったです :)
明日は stupid_student2 - Qiita さんが AtomでJavaの開発環境を整える
エントリを出してくれるようです!
楽しみですね!Atomユーザもまだ使ってない人も必見!:)
HHKBをMac上に載せて快適に使うたった一つの簡単な方法[ネタ]
えっしたくない?アーアーキコエナーイ
ただ普通に乗っけちゃうとMac側のキーボードが反応して大量の謎の文字が打たれてしまったり、運が悪いと電源ボタンを押されて強制終了とかされたり。つらい。
どうにか上手く快適に出来ないかなーと思ってググッてはみました。
あーわかるわかる。良さそう。でもアクリルなんてないし注文するの面倒くさいな...
あーわかるわかる。良さそう。でも質問者と同じ感じで無効にするのはな〜って感じなんだよね...
そこで思いついてしまったのがこちら!!!!最高!!!
最高のHHKB on MBP体験 pic.twitter.com/TyqAKxzd6b
— なかにしごう (@gomachan46) 2016年5月13日
いやー本当いろはす最高ですよ。もう手放せません。(別にキャップはなんでも良い)
いやほんとこれ安定感凄いw
— なかにしごう (@gomachan46) 2016年5月13日
持ち運びしやすい、デプロイ簡単
— なかにしごう (@gomachan46) 2016年5月13日
不要になったらデスクに向かってキャップを薙ぎ払えば撤去完了!爽快感
— なかにしごう (@gomachan46) 2016年5月13日
打鍵が強い人とかはキーボード動くかも知れないけどゴムでもキャップ面に貼っとけばよろし←
— なかにしごう (@gomachan46) 2016年5月13日
いろはすはいいぞ。