アウトプットは砕けない
単体でも使用できる中綿入りのライナー付きで、着脱で3通りものスタイリングが楽しめるマウンテンパーカー。
ざっくりとしたビッグシルエットだから、中にたっぷりと着込んでももたつき感なくスムーズに羽織れるのが嬉しい。

【お気に入り登録のオススメ】
?商品のお気に入り登録
完売カラーの入荷通知や、ラスト1点の通知、セール通知を受け取ることができます。
?ブランドのお気に入り登録
新商品や再入荷、セール情報など、いち早くブランドのお得な情報を受け取ることができます。
性別タイプ:
レディース
カテゴリ:
  • ジャケット/アウター>
  • マウンテンパーカー
素材:
ポリエステル100%
原産国:
中国
即日配送:
即日配送可
DAISY MERRY(デイジーメリー)の「3WAYキルトライナー付マウンテンパーカー(マウンテンパーカー)」|ブラック

  • DAISY MERRY(デイジーメリー)の「3WAYキルトライナー付マウンテンパーカー(マウンテンパーカー)」|ブラック

    ブラック

    model:H162 B78 W57 H82 着用サイズ:M
  • DAISY MERRY(デイジーメリー)の「3WAYキルトライナー付マウンテンパーカー(マウンテンパーカー)」|ベージュ

    ベージュ

    model:H162 B78 W57 H82 着用サイズ:M
  • DAISY MERRY(デイジーメリー)の「3WAYキルトライナー付マウンテンパーカー(マウンテンパーカー)」|カーキ

    カーキ

    model:H162 B78 W57 H82 着用サイズ:M
  • DAISY MERRY(デイジーメリー)の「3WAYキルトライナー付マウンテンパーカー(マウンテンパーカー)」|キャメル

    キャメル

    model:H162 B78 W57 H82 着用サイズ:M
  • DAISY MERRY(デイジーメリー)の「3WAYキルトライナー付マウンテンパーカー(マウンテンパーカー)」|詳細画像
  • DAISY MERRY(デイジーメリー)の「3WAYキルトライナー付マウンテンパーカー(マウンテンパーカー)」|詳細画像
  • DAISY MERRY(デイジーメリー)の「3WAYキルトライナー付マウンテンパーカー(マウンテンパーカー)」|詳細画像
  • DAISY MERRY(デイジーメリー)の「3WAYキルトライナー付マウンテンパーカー(マウンテンパーカー)」|詳細画像
  • DAISY MERRY(デイジーメリー)の「3WAYキルトライナー付マウンテンパーカー(マウンテンパーカー)」|詳細画像
  • DAISY MERRY(デイジーメリー)の「3WAYキルトライナー付マウンテンパーカー(マウンテンパーカー)」|詳細画像
  • DAISY MERRY(デイジーメリー)の「3WAYキルトライナー付マウンテンパーカー(マウンテンパーカー)」|詳細画像

抜群ファッション通販 【超激安が実現】!!ジャケット/アウター DAISY マウンテンパーカー3WAYキルトライナー付マウンテンパーカー


 >  > 抜群ファッション通販 【超激安が実現】!!ジャケット/アウター DAISY マウンテンパーカー3WAYキルトライナー付マウンテンパーカー

抜群ファッション通販 【超激安が実現】!!ジャケット/アウター DAISY マウンテンパーカー3WAYキルトライナー付マウンテンパーカー


抜群ファッション通販 【超激安が実現】!!ジャケット/アウター DAISY マウンテンパーカー3WAYキルトライナー付マウンテンパーカー

単体でも使用できる中綿入りのライナー付きで、着脱で3通りものスタイリングが楽しめるマウンテンパーカー。
ざっくりとしたビッグシルエットだから、中にたっぷりと着込んでももたつき感なくスムーズに羽織れるのが嬉しい。

【お気に入り登録のオススメ】
?商品のお気に入り登録
完売カラーの入荷通知や、ラスト1点の通知、セール通知を受け取ることができます。
?ブランドのお気に入り登録
新商品や再入荷、セール情報など、いち早くブランドのお得な情報を受け取ることができます。
性別タイプ:
レディース
カテゴリ:
  • ジャケット/アウター>
  • マウンテンパーカー
素材:
ポリエステル100%
原産国:
中国
即日配送:
即日配送可
DAISY MERRY(デイジーメリー)の「3WAYキルトライナー付マウンテンパーカー(マウンテンパーカー)」|ブラック

  • DAISY MERRY(デイジーメリー)の「3WAYキルトライナー付マウンテンパーカー(マウンテンパーカー)」|ブラック

    ブラック

    model:H162 B78 W57 H82 着用サイズ:M
  • DAISY MERRY(デイジーメリー)の「3WAYキルトライナー付マウンテンパーカー(マウンテンパーカー)」|ベージュ

    ベージュ

    model:H162 B78 W57 H82 着用サイズ:M
  • DAISY MERRY(デイジーメリー)の「3WAYキルトライナー付マウンテンパーカー(マウンテンパーカー)」|カーキ

    カーキ

    model:H162 B78 W57 H82 着用サイズ:M
  • DAISY MERRY(デイジーメリー)の「3WAYキルトライナー付マウンテンパーカー(マウンテンパーカー)」|キャメル

    キャメル

    model:H162 B78 W57 H82 着用サイズ:M
  • DAISY MERRY(デイジーメリー)の「3WAYキルトライナー付マウンテンパーカー(マウンテンパーカー)」|詳細画像
  • DAISY MERRY(デイジーメリー)の「3WAYキルトライナー付マウンテンパーカー(マウンテンパーカー)」|詳細画像
  • DAISY MERRY(デイジーメリー)の「3WAYキルトライナー付マウンテンパーカー(マウンテンパーカー)」|詳細画像
  • DAISY MERRY(デイジーメリー)の「3WAYキルトライナー付マウンテンパーカー(マウンテンパーカー)」|詳細画像
  • DAISY MERRY(デイジーメリー)の「3WAYキルトライナー付マウンテンパーカー(マウンテンパーカー)」|詳細画像
  • DAISY MERRY(デイジーメリー)の「3WAYキルトライナー付マウンテンパーカー(マウンテンパーカー)」|詳細画像
  • DAISY MERRY(デイジーメリー)の「3WAYキルトライナー付マウンテンパーカー(マウンテンパーカー)」|詳細画像

抜群ファッション通販 【超激安が実現】!!ジャケット/アウター DAISY マウンテンパーカー3WAYキルトライナー付マウンテンパーカー


 >  > 抜群ファッション通販 【超激安が実現】!!ジャケット/アウター DAISY マウンテンパーカー3WAYキルトライナー付マウンテンパーカー

抜群ファッション通販 【超激安が実現】!!ジャケット/アウター DAISY マウンテンパーカー3WAYキルトライナー付マウンテンパーカー


21卒学生webエンジニアのアプトプット
【英語】toeic800点を超えるためにやったおすすめの参考書

抜群ファッション通販 【超激安が実現】!!ジャケット/アウター DAISY マウンテンパーカー3WAYキルトライナー付マウンテンパーカー

f:id:dalekspritner:20200515122148j:plain

らぴおです。

抜群ファッション通販 【超激安が実現】!!ジャケット/アウター DAISY マウンテンパーカー3WAYキルトライナー付マウンテンパーカー先日、質問箱にこんな質問が来ました。

f:id:dalekspritner:20200515121306p:plain

どちらの方が聞いてくれたのかわからないのですが、こんな僕でも少しでも役に立てる情報を提供できるかもと思ってとても嬉しくなりました。

回答にはかなり雑に参考書だけ答えたのですが、英語学習や toeic に興味のある方向けに、ここでもう少し深掘りたいと思います。

二年ほど前に toeic で800点を超えた僕ですが、勉強を始めた時は大学受験時かそれ以下程度の知識しかないクソカスでした。

なので誰でも取り組める参考書だと思います。

取得から二年経過していますが、新形式になったのは僕が受験する少し前で、おそらくまだ形式が変わってないないはずなので、今でも十二分にに通用するはずです。

以下で、自分が最も効率が良かった参考書とその使い方を述べます。

抜群ファッション通販 【超激安が実現】!!ジャケット/アウター DAISY マウンテンパーカー3WAYキルトライナー付マウンテンパーカーおすすめの参考書 第3位  toeic l&rテスト 文法問題 でる1000問

part5の問題の対策に特化した問題集です。

早速学習範囲が狭めの問題集ですが、reading分野の全問題で利用できる文法知識を手堅く身に付けることができます。

part5の問題は、いくつかのカテゴリ(品詞、前置詞、接続詞など)に分けられるのですが、苦手なカテゴリと出題率を見分けて、適切に学習をしていく必要があります。(出ないカテゴリを重点的に対策してもしょうがないです)

1日30問でもいいので、空き時間をつかって何度も繰り返し解いてみましょう。(一度やった問題でも結構間違えます笑)

まずは本番形式の問題に取り組み、一通りやりきる体力と慣れを身に付け、苦手パートの対策が必要になってきた時に取り組むのがおすすめです。

第2位 金のフレーズ

単語帳です。

toeic の学習を開始したら

抜群ファッション通販 【超激安が実現】!!ジャケット/アウター DAISY マウンテンパーカー3WAYキルトライナー付マウンテンパーカー

脳死 でまずこれを買うべきです。

この単語帳に出る単語は本当に本番に出ます。怖いくらい出てきます。理想を言うなら全ての単語を暗記したいところです。

逆に言えばこの単語帳意外の単語帳はあまり持つ必要ないです。

以前、 youtube 上に、僕がよく使っていた金フレの例文を読み上げてくれる動画あったのですが、見失ってしまいました。

類似する動画はあると思われるので、それと組み合わせながら頭に入れていくのがおすすめです。

第1位 公式問題集

公式 toeic listening & reading 問題集 6

公式 toeic listening & reading 問題集 6

突然ですがいい問題集とはなんでしょうか。

僕が思うに、簡単な問題集でも、難しい難易度の問題集でも、学習効率を謳っている問題集でもありません。

本番に出る(難易度や出題傾向が近い)問題を提供してくれる問題集です。

なぜかというと、出ない問題を対策しても、点数には直結しないからです。

つまり公式が本番に似せたこの問題集が最強ということになります。

最新の公式問題集を2種類書うと、4回分の問題集になるので、各3~4週をするといいでしょう。

ぶっちゃけ公式問題集あれば700overは余裕です。それぐらい最強です。

公式問題集を使ったおすすめの勉強法

✔︎ listening

part3, 4で読み上げられる例文を、 スマホ などに取り込んで、1.2倍速くらいでずーっと聞く。

聞き取れなかった単語は、 スクリプト を必ず確認して覚える。

ゆっくり風呂につかりながらちょい早めの速度に耳を慣らしましょう。等倍が楽に聞こえるようになります。(僕はこの方法でlistening450/495くらいまでいきました)

✔︎ reading

特に特別なことはないです。70分確保して解き、4~5倍の時間をかけて間違えたところを確認するのを3~4週しましょう。

番外編

至高の600問

[新形式問題対応/音声dl付]toeic(r) l&rテスト 至高の模試600問

[新形式問題対応/音声dl付]toeic(r) l&rテスト 至高の模試600問

  • 抜群ファッション通販 【超激安が実現】!!ジャケット/アウター DAISY マウンテンパーカー3WAYキルトライナー付マウンテンパーカー作者: ヒロ前田 , テッド寺倉 , ロス・タロック
  • 抜群ファッション通販 【超激安が実現】!!ジャケット/アウター DAISY マウンテンパーカー3WAYキルトライナー付マウンテンパーカー

    抜群ファッション通販 【超激安が実現】!!ジャケット/アウター DAISY マウンテンパーカー3WAYキルトライナー付マウンテンパーカー

    発売日:
    2017/07/21
  • メディア: kindle

番外編ですがこちらもご紹介させてください。

3回分の模擬試験ができるこの参考書ですが、問題の良質さと コスパ の良さが挙げられます。

まず問題の質は、公式問題集に引けをとらないです。解説もわかりやすく、何周もする価値あります。

コスパ

についですが、なんとこちら amazon kindle unlimitedに入っていれば無料で見ることができます。

本屋で購入しようとしたら3000円近くかかるのですが、 kindle unlimitedは月980円、しかも初月は無料なので、加入した月にこの問題集を舐めまわしてしまえば、実質無料です。

僕は普通に書籍で買ってしまいました。つらい。

まとめ

おすすめの問題集を3+1種類紹介しました。

どれも amazon で検索すればベストセラーと表示される、評判にも定評のある超優良本です。

僕はお金をかけていろいろな参考書を買ったのですが、本当に上記の3冊は学習効率が段違いです。

逆に、「これ1冊でok」とか謳っている参考書は、そこまで良質だと思えなかった記憶があります。

(もちろん、 toeic の点数を効率的に上げるという点で紹介したものなので、英語学習と言う観点から見れば、他にも良い参考書はたくさんあると思います。)

英語学習において toeic は、最初の1ステップに過ぎないと思います。効率の良い勉強法で、さらっと目標点数を乗り越え、次のステップに進みましょう。

atcoder水色になるまでにやったこと

f:id:dalekspritner:20200514144825p:plain

atcoder

 

らぴおです。

ブログの下書きを覗いたら、約一年半前の書きかけを見つけたので、供養してあげたいと思います。

 

atcoder で水色になった

2018/12/8の atcoder beginner contest 115で水色コーダーになることができました。

卒研と並行してやってた感じですが、隙間時間を見つけてコンテストに参加し続け半年ほどかかりました。

 

 

 

水色になるまでにやったこと 

緑からなかなか水色に上がれない方向けの内容になります。

 

1. 問題埋め

いろいろ含めだいたい600問くらい解いたみたいですが、緑から水色になるまでに経験値として役立ったと思う問題集を列挙しておきます。

  • atcoder 300 ~ 400, 昔のarc b, abc cd

https://kenkoooo.com/atcoder#/table/daleksprinter

  • joi 難易度5, 6

https://joi.goodbaton.com/?aoj_id=daleksprinter&atcoder_id=daleksprinter

  • yukicoder ☆2 ~ 3

https://yukicoder.me/users/5915/submissions

https://yang33-kassa.jp/codeforces-problems/?user=b1015120

  • 蟻本初級編練習問題

 

これらの問題をたくさん埋めていたら少しずつ典型を吸収することができ、競プロ的な考察ができるようになる気がします。

 

2. ライブラリの作成、テンプレの整備など

新たに問題が解けるようになるって訳ではないですが、よく使用するような アルゴリズム や関数なんかは、事前に準備しておくと、バグも発生しないですし、問題を解くスピードが上がります。

atcoder に関して言えば、数学系の問題が多いので、 整数論 や、組み合わせ系のライブラリが役立つことが多かったような印象です。

コンテスト中の時間に余裕を持たせるためにもしっかりやっておきましょう。

 

 3. 覚えた典型のアウトプット

以前はこのブログに僕の解いた競プロの問題について記事を書いていました。

(ほぼ雑記だったし、今は消してしまっています。)

問題を解いて、解法や典型だと思った部分を、解けなかったときの自分に説明するように日を改めてアウトプットすると、コンテスト中にテクニックを思い出せるようになります。

 

まとめ

atcoder で僕が水色になるまでに解いた問題や練習方法の紹介をしました。

もちろん元々の数学力などもレートの遷移に影響するためかなり個人差がありますが、

僕が紹介したレベルの問題をしっかり理解することができれば、問題なく水色は行けると思います。

(一年半前の話なので、今のレベル感はわかりません。もしかしたら難しくなっている気がします。)

割と緑色の方を対象に書いていたのですが、灰や茶などの始めたばかりでどう勉強すればいいかわからないといった方は、まずはabc-cを解くことを目指しつつ、以下の参考書などを使って典型を補っていく方法などが良いと思います。

 

 

プログラミングコンテスト への参加と練習は、エンジニアにとって良い筋トレだと思います。目的にせず、かといって怠らずに取り組み、エンジニアとしての地力を上げていきましょう。

【読書】嫌われる勇気
読んだ本

嫌われる勇気―――自己啓発の源流「アドラー」の教え

嫌われる勇気―――自己啓発の源流「アドラー」の教え

この本を読むべき人

✔︎自分は幸福だと感じれない人

✔︎承認欲求に縛られていると感じる人

人生を幸せに生きたい思う方、こんな記事どうでもいいので本を読みましょう。

内容要約

多くの悩みを抱える青年に対し、哲学者が アドラー心理学 を通して「人は変わることができる」ということを説く物語。

哲学者が青年に説いた話の要点は大まかに以下


1. 人は「原因」ではなく「目的」に沿って生きている

人の性格や行動は、原因によって引き起こされており、自分が変わりたいと思っていても、過去のトラウマや、自分の性格などの「原因」によって変われないと考える人が多い。

実際は、変わらないことによる安心を得ることなどが「目的」になっているのであって、「原因」は「道具」にすぎず、明確に否定されるべき。

つまるところ、今における「幸せになる勇気」が足りていないだけ。


2. 全ての悩みは対人関係によって引き起こされる

人生は他者との競争ではない。対人関係の軸に「競争」がある限り、不幸から逃れることはできない。

他人をライバルだと感じると、他者を、世界を敵だとみなすようになる。

健全な劣等感は、他者との比較の中で生まれるのではなく、「理想の自分」との比較から生まれる。


3. 課題の分離

「馬を水辺に連れて行くことはできても、水を飲ませることはできない」

他者の承認を得ようとする行為は、「自分の課題」と「他人の課題」を同時に解決しようとしている。

自分の課題は、「自分の信じる最善の道を選ぶこと」、他者の課題は「その選択についてどう評価を下すのか」

ここで他者の課題に踏み入ってはいけない。他者の評価を気にかけず、他者から嫌われることを恐れず、承認されないかもしれないというコストを支払わない限り、自分の生き方を貫くことはできない。

人は他者の期待を満たすために生きてはいけない。

4. 共同体感覚

他者を仲間だとみなし、そこに自分の居場所があると感じられることを共同体感覚という。

「縦の関係」ではなく「横の関係」を築く必要がある。劣等感や、他者の課題に踏み入る行為は、縦の関係が原因で発生する。一番重要なのは他者を「評価しない」こと。

人は「わたしは共同体にとって有益なのだ」と思えたときにこそ、自らの価値を実感できる。

5. 「いま、ここ」を真剣に生きる

人生を登山のように捉えている人は、人生の大半は「途上」になる。つまり、山を踏破したところから「本当の人生」が始まり、そこに至る道のりは「仮の人生」と捉える。

人生とは「連続する刹那」であり、われわれは、「いま、ここ」にしか生きることができない。

過去にどんなことがあったかなど、あなたの「いま、ここ」には関係ないし、未来がどうであるかなど「いま、ここ」で考える問題ではない。

感想

内容が濃くて、一度読んだ程度では吸収が難しいです。

正直納得しきれていない部分もちょいちょいあります。

さらにそれよりも、実際に実践する難易度もかなり高いと思います。

ですが、心にグサグサ刺さる部分も本当に多かったです。

僕の好きな「悪い劣等感は、他者との比較から生まれる。良い劣等感は、理想の自分との比較から生まれる。」という言葉も出てきました。

時間をかけて理解して、共感できることを少しずつ実践していきたいです。

【就活】コーディングテストのある企業と対策

f:id:dalekspritner:20200512201354j:plain

らぴおです。

僕は21卒のwebエンジニアを志望して インターン や就活の選考を行いました。

その過程でコーディングテストのある企業もいくつか受けたので、少しでも今後同じ業界で就活を行う方の役に立てるように、情報を残しておきたいと思います。

コーディングテストが実施される企業

僕が受けた(コーディングテストの選考があった)企業

↑難

↓易

その他コーディングテストが実施されることを知っている企業

プログラミングテストでの選考も可能な企業

  • teamlab

一応僕が知っている範囲だとこんな感じです。(他に知っている方がいたら教えてください)

体感として、ある程度有名なweb系の企業だと、コーディングテストが必要な割合は3、4割な気がします。 どちらかというと、 github 上の成果物やチーム開発経験などが重視されることは間違いありません。 しかし、コーディングテスト自体はそこまで難しくなく、対策を怠って 足切り をくらってしまうと非常にもったいない です。

個人的に、これはやっておいた方がいいかもと思う対策をまとめておきます。

atcoder beginner contest のa, b問題

このくらいは正直できて当然という感じだと思います。標準入出力やプログラミングテストの慣れにもなります。一番得意な言語で解いてみましょう。

atcoder.jp

アルゴリズム ・データ構造の復習

結構ダイレクトな アルゴリズム の知識とか聞かれたこともありました。一度目を通して理解しておくといいと思います。(ソートや 木構造 とか)

アルゴリズム図鑑 絵で見てわかる26のアルゴリズム

アルゴリズム図鑑 絵で見てわかる26のアルゴリズム


逆に個人的にあまり良い対策ではないと思う方法もまとめておきます。

paizaのスキルチェック

就活サービスとしては良いと思いますが、コーディング試験対策には向いていません。 なぜかというと、模範解答が無いため、復習ができないためです。

abc-d以降

一般的な企業ではかなりオーバーキルです。逆に smartnews やlineといった企業はこれでも不安です。

まとめ

コーディングテスト自体はそこまで難易度の高いものでは無いですが、標準入出力や計算量、 アルゴリズム などに不慣れで、良いパフォーマンスを発揮できなかったらもったいないです。

もし上記の企業やその他コーディング試験が実施される企業を受ける可能性のある方は、 atcoder や本などで確認しておきましょう。

(ちなみにですが、言語については割と限定されていることもあるのでお気をつけください。 python だとどこでも使えた気がします。)

また、勉強したことを生かして、paizaや atcoder jobs、athleticsといったサービスから応募することにより、ある程度コーディング力に保証を持たせたり、一部選考スキップなどの恩恵を受けることも可能になるので、是非視野に入れてみてください。

【読書】チーズはどこへ消えた?

初の読書感想の投稿です。

今後どんどん本を読んで、得られたことをアプウトプットしていく予定です。

今回読んだ本

チーズはどこへ消えた?

チーズはどこへ消えた?

この本を読むべき人

✔︎ 挑戦が怖い方

✔︎ 現状に何か不満がありベストとは言えない方  

概要

挑戦と失敗に対する恐怖をテーマにした物語です。

ある時、2匹のネズミ(スニッフとスカリー)と2人の小人(ヘムとホー)が、迷路の中でチーズの山を発見します。

しばらくの間、2匹と2人はチーズに困らずに生活するのですが、ついにはチーズを食べ切ってしまいます。

2匹のネズミは思考が単純で、次のチーズを迷路へと探しにいきます。

しかし、小人のヘムとホーは、チーズがなくなったことを受け入れられず、「いつかはチーズが戻ってくるだろう」と、その場に残ることにします。

しばらく待ってはみたものの、一向にチーズが現れる気配はありません。

衰弱する2人ですが、ホーは「このままチーズは戻ってこないんじゃ無いか」と考え、迷路へと進むことにします。

しかし、ヘムは「チーズは見つからないかもしれないし、迷路は危険だから残った方がいい」と一向にホーの意見を聞き入れません。

ホーは1人で迷路を進むことにするのですが、最初は迷路に強い恐怖を抱いていたものの、いくつもの教訓を得ながら、徐々に”変化すること”の大切さを学びます。

(ネズミどこいったってなると思いますが、ホーの教訓に重要な意味をもたらします)

教訓

変化は起きる。現状に満足して疑わないと、少しずつ変化が起きていることに気づかずに、手遅れになる。周囲の変化に合わせて、早めに過去に見切りをつけ、自分も適応すること。

失敗に恐怖するのは当然。なので「もしネズミのように恐怖がなかったら、自分はどうする」と考える。

次の成功を掴んだ自分を想像し、変化を楽しむ。そうすることで、チーズがなくても気持ちが楽になる。

 感想

抽象化された内容ですが、「チーズ」や「迷路」といった要素を何と捉えるかは考えやすいでしょう。

僕が一番気に入った教訓は、「もし恐怖がなかったら、何をするだろう」を考えるというところです。

日本で400万部売れた良書ですが、 amazon では書籍で900円程度電子版だと600円程度で、内容も1時間程度で読める量、非常にお手頃だと思います。

是非ホーの立場を、他人事だと思わないで、本を手にとってみてください。

人生を好転させてくれると思います。

チーズはどこへ消えた?

チーズはどこへ消えた?

isucon9予選問題に挑戦する

isucon-logo

isucon-logo

gw中にちょいちょいisucon9の予選問題に取り組んでみました。

 パフォーマンスチューニングとしてやったことを残しておきたいと思います。

 

環境

https://github.com/matsuu/vagrant-isucon

こちらを利用して vagrant でstandaloneな構成を構築しました。

実際の予選はマシン3台の構成で、おそらくスペックも異なると思うのですが、今回は1台でできる限りのことをやったという感じになります。

使用した言語はgoになります。

 

成果物

https://github.com/daleksprinter/isucon9-qualifier-golang

一応自分の リポジトリ を貼っておきます。

 

やったこと(かなり他の人の記事とかを参考にしました。)

1. gettransactionsのn+1潰し

pprofを用いてプロファイリングしたところ、gettransactionsが遅いようでした。

コードを読んでみると、4つくらいn+1が発生しているのがわかりました。

とりあえずitemとcategoryとuserをjoinしておこうと思って、 sql を修正しました。

https://github.com/daleksprinter/isucon9-qualifier-golang/commit/7b59ff7e8a306215b01b00ca59f8b7b78b1ebb9e

書いている途中に嫌になりました。

 

2. categoryを埋め込む

categoryの更新が発生しないことに気がつき、メモリにキャッシュしようとしました。

けど解説なんかを読んでいると、コードに埋め込んだ方がいいことに気がつきます。

https://github.com/daleksprinter/isucon9-qualifier-golang/commit/80dad1384cb2b90412dc73ccf7be16768481f02f

それに伴い、1の修正をきれいに改善します。

 

3. union句を用いた高速化

gettransactionsのwhere(`seller_id`  = ? or `buyer_id` = ?)という書き方だと、indexが効かないらしくて、修正しました。

select * from items where seller_id = ?

union

select * from items where buyer_id = ?

というように修正したら良いそうです。

https://github.com/daleksprinter/isucon9-qualifier-golang/commit/e0c603688c1895311c36c56b9f356b0b052c29d8

 

4. userをインメモリ化

sync.rwmutexを用いてmapを安全に処理します。

https://github.com/daleksprinter/isucon9-qualifier-golang/commit/ba768ade6d8c16b5ff491fa5edc79371c5d41099

それに伴ってまた sql も修正

 

参考  https://qiita.com/tsuyoshiushio@github/items/c3234f3705949d8cf413

 

5. gettransactoins内の残りのn+1をなくす

https://github.com/daleksprinter/isucon9-qualifier-golang/commit/9aca44a9732bcca2cd198e37104bbb8cdacf0378

 

6. 外部 api への通信を並列、非同期処理

これがgettransaction内の最後の修正です。

https://github.com/daleksprinter/isucon9-qualifier-golang/commit/f807b53d0e6dd3a3117fe59c80927ee26a99c547

一番点が上がった改善でした。

 

マジでgoの並列処理勉強しないといけないなと思いました。 

go言語による並行処理

go言語による並行処理

  • 作者: katherine cox-buday
  • 発売日: 2018/10/26
  • メディア: 単行本(ソフトカバー)
 

 ↑欲しい

 

7. postbuyの外部 api アクセスも非同期に

https://github.com/daleksprinter/isucon9-qualifier-golang/commit/7215f25e3afb1a72f012dca584d1224e0c7225bb

 

8. その他

index貼ったり、インメモリ化した部分の sqlしました。

userやcategoryをインメモリ化したので、全体の sql も修正しようとしたのですが、

select ~ for updateになっているクエリを消して、syncでメモリ参照しようとするとベンチが失敗してしまいました。ロック周りの問題らしいのですが、よくわからず...

 

結果

最終的に7500点くらいになりました。

 

学び

・n+1の改善はjoinで結合して持ってくるだけでなくin句を用いるとわりとすっきりするかも

・where(`seller_id`  = ? or `buyer_id` = ?)はindexが効かない。(indexについて要復習)

・並列、非同期処理の勉強が必要

 

感想

3台構成で続きやりたい。

 

 

awsのハンズオンに参加した

先日うちの大学でvoyage group主催の aws ハンズオンに参加しました。

 

aws は何もわからなかったので、とりあえずこれを片手に持っていきました。

amazon web services実践入門 (web+db press plus)

amazon web services実践入門 (web+db press plus)

 

 

約2時間の勉強会で、30人くらいはいたと思う。みんな aws 触ってみたかったんだろうな。

 

やったこと

f:id:dalekspritner:20190522200745j:plain

aws -handson

上記のような vpc ネットワークを実際に構築してみようという内容でした。

(draw.ioで作成しました。雑でごめんなさい。)

 

vpc たてて、インターネット ゲートウェイ を設定

・2つの アベイラビリティ ーゾーンで、ec2(パブリックサブネット) + rds(プライベートサブネット)の構成を作成

・s3でstaticなファイルを扱えるようにする

・elbでアクセスの負荷を水平分散

 

みたいなのが大まかな流れでした。

 

感想

ec2やs3とかは使ったことがあるし、 vpc やインターネット ゲートウェイ の話なんかもそのついでに調べたりしたので、一応知ってはいたんですが、実際に負荷分散(水平、垂直)を意識したネットワーク設計は初めての経験だったので、非常に満足しました。

 

かなり急ぎ足の印象だったんですが、意外とb1, b2の人とかも多くて、しかもしっかりついてきていたので、後輩もすごいなって思っていました。(僕がそのくらいの時なんか、バイトしたり遊んだりって感じだったんだけどな(殴))

 

もっといろんな勉強会がうちの大学で開催されるようになってほしい(懇願)

そのあとの講師の方との飲み会も非常に楽しめました。

 

スターをつけました

引用をストックしました

引用するにはまずログインしてください

引用をストックできませんでした。再度お試しください

限定公開記事のため引用できません。

104