最近の推し居酒屋【もつ焼き よし田】
何日ぶりだろう、たぶん数年ぶりの更新です。
このブログって最初は仕事の愚痴とかストレス解消のために描いてたんですが、転職してからは仕事が楽しくてプライベートも充実しているので書くこと無いなーってなってました。
とはいえ放置しておくのももったいないので、好きなお酒や麺のお店をつらつら書いたりしようかなと思い立ちました。
今日は最近のお気に入りをひとつ。
もつ焼 よし田
私、本当はレバーが嫌いだったんですが、一昨年くらいに横浜の方の野毛の居酒屋で美味しいレバーを食べてから、レバー食べられるようになったんですよね。
っていうかもう、美味しいレバーなら好き。
ここのレバーももれなく美味しくて、ビールで流し込むのが最高です。
卓上で自分で焼きながら食べるんですが火力が優しめなので、仲の良い人とたわいもない話をして焼きあがりを待ちながらちまちま飲むのがたまりません。
もつ焼き以外にも浅漬けキムチとか生姜の天ぷらとかおでんとか、とにかく私好みの、焼酎に合うおつまみが揃ってます。
小さめサイズの美味しいおつまみとお酒がリーズナブルな価格で楽しめる、私のお気に入りのお店です。
2020、できること増えてんじゃん!!
※noteと同じ内容の記事です。
TECHPLAY女子部 Advent Calendar 2020 7日目の記事です!
ども、しぶです。にわとも言います。
新卒で就職した不動産営業からバックエンドエンジニアに転職して、今年で2年目になりました。
なんだか転職してから長いようで短いような。良い機会なので、2020を振り返ってみます。
実はアドベントカレンダーって初参加なんですよ。ドキドキしながらこの記事書いてます。
これ良い風習ですね。
「いつか記事書こう」が「今書かなきゃじゃん!やば」になるので。
来年もやろうと心に決めました。
ITエンジニア2年目 2020年の振り返り
ベタですが、振り返りって必要と思います。
あまり過去を振り返らない性格なので、年末だし1回立ち止まっとくか、と。
今年はエンジニアに転職して2年目、出来ることや知識がいっぱい増えた年だなーって思います。
人間ってどう生きてようが勝手に成長しちゃうと思うんですよねー。生きてるってすげーや
あと、振り返りと同様、1年スパンでの目標設定も大事な気がします。
目標定めてないと「ま、微妙やけどこれでいっか。」ってなりやすいですからね。
ってことで、とりあえず今年出来るようになったことをどんどん列挙していきましょう!
それと理想とのギャップで、来年できるようになりたいことが見えてくるはず!
今年できるようになったこと
【技術面】
viコマンドでファイル編集
今まではファイルってテキストエディタで編集するもんだと思っていたんですが、サーバー上で操作することもあるんですね。
いや、そりゃあるに決まってるんですけど、サーバー上で触るのは危険だから普通しないって聞いてたし・・・
って思ってたら、テスト環境のサーバー上で触る機会が出現したのでviコマンド使ってみました。
と言うのも、APIのテスト段階でダミーのレスポンスを返すスタブを作る必要があり、テスト時にいちいちローカルで書き換えてファイルアップして…とか面倒すぎるので、サーバー上で返り値を編集してテストしてました。
SQLチューニング(explainしてINDEXを追加)
これは業務で何回もやりました。
業務でECサイトの開発をしていてデータが大量にあるので、パフォーマンスに悪影響を及ぼさないようテーブルフルスキャンは回避すること。覚えました!
チューニングに当たり、以下の記事にはかなりお世話になりました。来年もよろしくお願いします。
Sourcetree
業務ではTortoiseGit使ってるのですが、プライベートではMacBook使ってるのでSourcetree使ってみようと思い、使い始めました。(今までプライベートではコマンドでGit操作やってました笑)
普通に青くて見た目がカッコいい。笑
Gitクライアントツールとしてはどちらでも良いというのが正直な感想ですが、Sourcetreeはブランチやログ、コミットの差分がパッと一目で見られて分かりやすいのが良いですね。
可読性+保守性を考慮してコードを書けるようになった
これ、本当大事ですね。動きゃいいってもんじゃないんすよ、マジで。
上司に何回も言われました、「これってこう書いた方が改修入った場合に楽だよね?」と。
しかも運用フェーズでは、エラーが起きた際に「どこで・どうして・何がエラーになったのか?」をいち早く知ることが重要となるので、「ちゃんとログを吐き出させること」という指摘も沢山受けました。マジ修行。
今年は東証のシステム障害がありましたが、その際にSNSなんかでよく言われていたのは「障害が起きることを前提にシステムを開発すべき」とか「障害は起こりうるものなんだから、起きた場合にいかに早く原因を究明し復旧させるかが大事」と言う事でした。
まさにそれだなぁ、と思います。
可読性と保守性の高いコードを書くに当たっては、上司に「1つのメソッドの全体をスクロールなしで1画面で見られるように書く」ということを教えてもらい、なるほどなぁと思いました。この考え方、結構使えます。
あとはデキる先輩が書いたコードを読むのが結構参考になりましたが、今年読んだ『リーダブルコード』もなかなか良かったです。
Laravel
現場外の仕事でWebサイト開発に関わる機会があり、Laravelを使えるようになりました。
まだバリバリ使いこなせるレベルまでは到達していませんが、一通りCRUD処理とかCSV出力とかは出来るようになったので、プライベートでもガンガン使っていきたいところです。
Laravelは色々機能あるけど、Eloquent ORMとかコレクションがすごい便利。
コードがこんなにも簡潔に書けるの、マジで人類の叡智の結晶って感じがします。
AWSでのELB、RDSの使用、S3で静的Webサイトのホスティング
AWS、自分ではEC2インスタンス作成してAMI作ってみよう!くらいしかやった事がなく、業務でも使っていますがサーバーにログイン&デプロイくらいしかしていなかったので、これは結構勉強になりました。
本当AWSは便利ですね。柔軟にスケール出来るのが普通に便利すぎる。あとロードバランサーすごい。コンピュータマジすげー
これは色んな所でAWS使われてるのも分かるわ〜、という感じでした。
HTTP、SOAP通信で何やってるか理解できた
今まではなんとなく「それぞれの規格で通信してんだな〜」程度の認識でしたが、業務で外部APIとやりとりするIFを実装することになり、めっちゃ調べました。
HTTPレスポンスってこうやって返ってくるんだ〜、MDN様様だなぁとか、SOAPって難しめだけど複雑なことができるからRESTと使い分けられてるのか〜、とか結構勉強になりました。
まぁ未だに深いところまでは理解できてないんですが、そこは来年の課題ということで。
Docker
なんだかネット記事でよく見かけるクジラ『Docker』。
今年の11月まで使ったことなかったし概念もあんま分かってなかったんで、まず触ってみるに限る!ということで先日(11/30)のTECHPLAY女子部もくもく会で実際に使ってみました。
まだ入門レベルしかやっていませんが、基本的な使い方は分かった・・・かな?笑
チュートリアル記事読みながら1時間半くらいでLaravelの環境構築出来たんで、なかなか便利と思います。
ちなみにDockerってイメージからの環境構築が爆速でできる!ってイメージしかなかったんですが、同僚に聞いたところ、コンテナベースで管理できることで言語の別バージョンを同じサーバー内で管理できるメリットもあるそうです。凄いなぁ。
トランザクションを使用したDB操作の実装
業務でめっちゃトランザクション使いまくる設計&実装に遭遇したので、トランザクションしてる中で別でトランザクションしたらロールバックはどうなるの?とか色々調べました。
昨年に比べて、こういう複雑な処理に遭遇する機会が増えましたね。成長したということかな!!!(ポジティブ)
Adobe XDのデザインカンプからWordPressでWebサイト作成
プライベートで知り合いにWordPressでコーポレートサイト作って欲しい!という依頼を受け、Adobe XDのデザインカンプを元に作ってました。
割と操作も簡単で、サクッとアセット書き出したりできるのはとても便利でした。
【技術以外】
「CONCAT」などの簡単なExcel関数(まじで使ったことなかった)
これですね、普段Excel使ってる方からしたら意味分かんないと思うんですけど、前職(不動産営業)では本当に関数なんか書いたことなかったんですよ。
数字に関しては何千万〜何億という金額で間違ったらやばいので、管理部が作ったExcelの、このセルだけに名前と数字入力して使ってくださいって運用だったので今年初めて「Excelすげーー!!!」ってなりました笑
地味にローカルでテストデータ大量に入れたい時とか使いまくってます。
設計~実装~結合テストまでの工数見積もりとスケジューリング
今までは先輩にやってもらっていたんですが、今年から頻繁にスケジューリングするようになりました。
いやはや、工数見積もりって難しい。
「多分このくらいでいけそう」って本気で思ってても、想定してなかったケースが見つかったり考慮漏れが出ちゃったりして、結局後ろ倒しになっちゃうんですよね。
これも修行あるのみって感じですが、私みたいなペーペーの場合は「このくらいでいけそう」っていう自分の感覚に+2,3日くらい足して、かつ「想定外のことが起きたらMAXこのくらいまでは伸びちゃいそうだな。ただ最短でここまでに出来る可能性はあるな」というMIN/MAXを考えておくのが良いと思います。
自社サービスのTwitterアカウント運用
これ、なかなかできない経験で楽しかったです。
昨年、会社で転職支援サービスが立ち上がったんですが、そのSNS運用ということでTwitterのいわゆる「中の人」になってました。
まず自分のアカウントと間違えて変な呟きをしないようにかなり気をつけていましたね…笑
たまに誤爆してる公式アカウント見かけるので、ちょっとヒヤッとしてました。
SNS運用ってやっぱ難しいなぁと思うのが、ターゲットがどんなツイートを見たいと思っているか?という部分ですね。
個人では「酒がうまい」とか「連休キタ━━━(゚∀゚)━━━!!」とか、本当に『呟き』ってレベルの事しか呟いてなかったので、転職したい人がどんなツイートに惹かれるのかを考えるのに結構苦労しました。
色んな人のツイートを覗きに行ったり、流行ってるっぽいハッシュタグ見てみたり…色んな人にアドバイス貰いながら色々試行錯誤して、なんとかフォロワー500人前後までは到達しました。
今は中の人担当変更しましたが、滅多にできない経験だったのでこれはやって良かったなと思ってます。
料理
これは2020年特有かなって思います。
コロナで在宅勤務になり、飲食店も閉店しまくり、友達ともなかなか飲みに行かなくなり、暇すぎて自炊してたら料理スキル爆上げしました。
今年作った中で一番すげー!ってなったのは、小松菜のおひたし。
これ作り置きしようと思って多めに作ったんですが、美味しすぎて一晩で全部食べてしまいました。最高でした。
あと、オリーブオイルで自家製ポテチ作ると最高にウマいので、お暇な方は是非。味付けは塩だけが最高です。
来年出来るようになりたいこと
個人でWebサービス開発
来年ね、これですよ、これ。
エンジニアに転職しようって決めた時から、自分でなにかイケてるサービス開発したいなって思い続けてきました。
とはいえなかなかアイデアが浮かばない日々なんですが、日常でネタを探しつつ、また色んなコミュニティに顔出して色んな人と交流して、来年はなんか作ります!!!絶対やぞ!絶対
開発時に使ってみたい技術・ツールは以下↓
・Google APIとかTwitter APIとかのWeb API
・HerokuかFirebaseかAWS
・ReactかVue.js(jQuery以外使えるようになりたい!)
とりあえずAPI使って便利サービス作りたいので、まず自分用にAPIでデータやりとりしてみるとことから始めようかな。
まずやる。すぐやる。をモットーに動いていきたいと思います。
とにかく自分でなんかカッコいいWebサービス作ってみたい!
ここが2021年の最終目標なので、これに付随して来年も色んなことが出来るようになるんだろうな〜って楽観的に考えてます。
ポジティブにいこうぜ!
まとめ
なんか毎年なんとなく日々を過ごしてなんとなく年越して…と生きてきましたが、初めてちゃんと1年を振り返ったかも。
なんだ、自分ちゃんとできること増えてんじゃん。
って、自分を褒めてあげたくなりました。
自己肯定感低い人ほどこれやった方が良いですよ!
無理矢理でも、今年できたことを箇条書きにしていく。
これだけで結構幸せになるのでおすすめです。
ま、365日生活してて、去年より出来ることは何かしら増えてるでしょうからね。
そうそう、自己肯定感で思いました。
アドベントカレンダーの昨日の記事(Misosoupさん)で書かれてた、これ。
この業界の方々を見ててすごくいいなと思ったのは、みんな当たり前にずっと勉強されているところです。フィヨルドでもTECHPLAY女子部でも、あたらしく勉強始めましたという人を絶対に馬鹿にしたりしない。転職するのも結構普通。今そういう場所にいるのがとてもうれしいし、社会にもっと広がっていって欲しいな〜と思っています。
これめっちゃ同意です。
この業界、新しく勉強始めたとか異業種から転職してきたって人に対してあったかいんですよ。
この風土にはめっちゃ助けられました。
異業種から勉強始めた人なんか特に、最初は怖いと思います。コミュニティに入るのも。
でもこの業界で私が出会った人はみんな優しくて、みんな勉強し続けてて、他人の失敗を笑ったりしないし、結果がどうあろうがチャレンジすることをよしとする文化がある。
この文化ほんと最高だし、これこそ文明が進化する土台やろ!って思うので、ぜひ日本全国に広まって欲しいなぁと思ってます。
ま、何はともあれ、今年も良い年になりました。
来年も良い年になりますよう。
P.S
今回これ書くために毎日書き溜めていた作業ログ見返したんですが、大体3カ月くらいに1回大きめのミスしてました。
自分はドジ踏みがちな人間なので、ドジらないような仕組みで自分の周りを固めていくしかないっすね!と落ち込まないよう頑張ってます!!!
ポジティブこそ正義!
【JavaScript】splice()メソッドの使い方【配列操作】
JavaScriptで配列を編集したい場合にsplice()メソッドが便利だと知ったので、備忘録として。
splice()メソッドを使えば、配列の指定した位置への要素の追加&削除、置き換えができる。
参考:Array.prototype.splice() - JavaScript | MDN
基本型
array.splice(index , howMany, array())
第1引数に指定したいインデックス番号、 第2引数にいくつ削除(=置き換え)するか、 第3引数に追加したい配列を指定します。
要素の追加はせず削除だけしたい場合は、第3引数を指定しなければOK。
例
- 要素を追加したい場合
var fruits = ['apple', 'orange', 'kiwi', 'peach']; // index1に'pineapple'を追加し、代わりに0個削除する(=削除はしない) fruits.splice(1, 0, 'pineapple'); console.log(fruits);
出力結果
Array ["apple", "pineapple", "orange", "kiwi", "peach"]
- 要素の追加&削除(置き換え)したい場合
// index2に'pineapple'を追加し、代わりに1個削除する fruits.splice(2, 1, 'pineapple'); console.log(fruits);
出力結果
Array ["apple", "orange", "pineapple", "peach"]
これでslickGridの表示順変更も怖くない! やったね!
好きなことに夢中になってる人って、カッコいいね
何かに夢中になってる人って何歳でもカッコいいよなあ、って思った1日でした。
職場の元同僚が入っている社会人演劇サークルのミュージカルに誘われ、本日観に行ってきました。
最初は付き合いのつもりで。
これがかなり完成度が高く、何故有名にならないのだろう?と思ってしまうくらい心が動かされるショーでした。
学生時代に演劇をしていたメンバーが中心となって構成されているそうなのですが、
ここまでレベルが高いものか…と衝撃を受けました。
本当に、プロレベル。
歌が上手いのはもちろん、
ダンスもキレッキレ、
演技も引き込まれるし、
脚本も演出も見ていて没入感がある面白さ。
ストーリーのメッセージとして、
“夢を追い続けよう”
“諦めないで”
“自分の心のままに楽しく生きよう”
といった感じだったので、なおさら観ている社会人には突き刺さります。
ただ彼らは全員がプロを目指している訳でもなく、
楽しいから、好きだからミュージカルをやっている。
そのことに胸が熱くなりました。
好きなことを楽しんでやってる姿って、本当に輝いてて、カッコいい。
いわゆる大人は、すぐに
「それやってどうするの?」
「何かメリットあるの?」
「目的は?目標は?」
なんて訊くけど、そんなんじゃなくて、
自分の心が躍ることに夢中になって取り組む
ってだけで素晴らしくイケてるし、輝いてると思う。
いつまで経っても、何歳になっても、
好きなことを追い求める気持ち、楽しむ気持ち、
これは忘れちゃいけないなって思えた1日でした。
未経験から転職したエンジニア6ヶ月の若手が詳細設計書作成でつまずいている事
お久しぶりです。
元気にエンジニアやってます、しぶです。
つい先日から、新規画面の詳細設計を担当させて貰っているのですが
今、滅茶苦茶に躓いています。
世の中、デキるエンジニアばかりではないことを痛感します。
少しでもデキるエンジニアに近付きましょう…!
これは自分の備忘録として、悩める若手エンジニアのため、そして、若手が何に躓いてるのか分からないベテランエンジニアの方々のために書いておきます。
感じている事
基本設計(のような表)から詳細設計書に落とし込んで作成するのが難しい。
どんな設計書を書いているの?
新規に作成する、ユーザー検索画面の詳細設計書。
ここでいう「詳細設計書」は、実際にコーディングする際に参照する資料のことです。
どのタイミングでどんな処理をするのか?その順序は?必要なパラメータは?エラーが起きたらどうする?
などが書いてあります。
技術的な前提
- PHP(Phalcon,Twig)
- JavaScript(jQuery)
- 外部APIを使用してユーザー情報を取得する必要がある
どこが難しい?どこが分からない?
ここが多く、雑多で、悩みどころなので一旦冷静になろう。
整理します。
- 処理の流れが分かっていない
社内のライブラリがある中で、何をどこに使って、どうやってデータのやり取り&表示をするのか?
twig,jsからどうやってコントローラに繋げているのか?(yaml等の設定ファイルの動き)
- 処理を書く際に考えなけれならない事が分かっていない
検索するのに閲覧者の権限チェックは必要?
それってどの資料見たら分かる?
外部APIに渡すパラメータは本当にそれで合ってる?
エラーが起きたときどうする?
取得件数が想定と違うときどうする?
そもそも想定されていない取得件数って何件のこと?
- 実装の想像がつかない(上記と被りますが)
外部APIの設計書を見ても、どんな実装になるのか想像できない。(そういうコードを見たことが無い)
- このチームでの「正解」がわからない
自分一人だけの開発ではないので、好き勝手できない。
どのくらい細かく書けば良いか分からない。
そもそも設計書の書き方がザックリとしか分かっていない。
既存の設計書をコピーして書き換えたら、型が違うらしい!(これはショックでしたw)
これらを解決するには?
では、解決策を考えていきましょう✌︎('ω')✌︎
- 処理の流れが分かっていない
まず、こちらを参考に画面全体の処理の流れを整理。
めっちゃためになりました。ありがとうございました…!
その上で、メモを見ながら簡単な機能を作ってみました。
理解してない社内ライブラリは使わず、PHP側で用意した文字列を表示するだけの流れを
Twig+JS+PHP
で作成。
これで、やりたいことや必要なことが結構理解できました。
まずは全体の流れと工程を把握して、
標準関数をメインに使って処理の“流れ”だけを作ってみることが大事ですね。
- 処理を書く際に考えなけれならない事が分かっていない&実装の想像がつかない
これは先輩に聞くしかないです(笑)
一人で悶々と悩んでる時間が無駄なので。(自分への戒め)
でも、ただ聞くより
・この処理はこんな流れで、
・あのパターンからこのパターンまでは考えた!
・この他に考えるべき事ってありそうですか?
・それか、これの参考になりそうな画面他に知ってます?
を考えて、整理してから聞くとなお良しです。
先輩も、その質問聞いている間は自分の時間を奪われているので。
- このチームでの「正解」がわからない
これはチームの雰囲気によりますね。
最初に全部、分かりやすく教えてくれるところも…あるのか?まぁあるかも知れないですね。
私のチームは、一通りのマニュアル的なドキュメントは揃ってるけど細かい部分が慣習なので、いちいち聞く必要があります。
そんな時は、率直に
「これどうすれば良いですか?」
でも良いんですが、
せっかくなら少し考えてみましょう。自分の糧になります。
・他の設計書で似たような処理を書いているところはあるか?あるなら、そこはどうなってる?
・何も参考に出来るものがなければ、自分で自由に作ってみる。
そして、その理由をそれっぽく文章化する。(なんでそう考えたの?って聞かれてきちんと答えられるように)
この辺やって『自分なりの仮説を立てて相談』すれば、自分の為にもなるし、
聞かれる方も
「ここは分かってるけどあそこが分かってないんだな。」
とあなたの思考を理解することができます。
以上、状況の整理と解決策をまとめてみました。
ほぼ自分用です(笑)
やっぱ文章にすると思考の整理ができて良いですね。
若手って全部を分かろうとして頭の中がぐちゃぐちゃになってしまいがちなので、
「もう訳わかんね〜〜!!!」と嫌になったら一旦整理しましょう。
下手すると、私なんかは全体を3分の1ずつしか理解できてない、なんて事がザラにあるので…😂
ではまた!