Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
インターン生・新卒向け、学校でもっと教えてほしいITエンジニア基本スキル
NearMe技術勉強会の発表資料です
June 10, 2022
Programming
0
130
インターン生・新卒向け、学校でもっと教えてほしいITエンジニア基本スキル
NearMe技術勉強会の発表資料です
June 10, 2022
Tweet
Share
More Decks by NearMe技術勉強会の発表資料です
See All by NearMe技術勉強会の発表資料です
強化学習への入り口 part1
nearme_tech
0
28
最適化への入り口
nearme_tech
0
22
Rustは厳しいが役に立つ Part1「Rustの概要」
nearme_tech
0
51
Other Decks in Programming
See All in Programming
Chart実装が楽になりました。
keisukeyamagishi
0
120
JetPackComposeは宣言型プログラミングパラダイムって実はよくわかってないんですが、別に使ってもいいんですよね、
conigashima
0
190
オブジェクト指向で挫折する初学者へ
deepoil
0
200
短納期でローンチした新サービスをJavaで開発した話/launched new service using Java
eichisanden
6
2k
Improving Developer Experience Through Tools and Techniques 2022
krzysztofzablocki
0
1.2k
【Scrum Fest Osaka 2022】スクラムチームに放り込まれた若手エンジニアの皆さん、どのように技術のキャッチアップをしていくかイメージはついていますか?
miiiki
0
130
CakePHPの内部実装 から理解するPSR-7
boro1234
0
260
GDG Seoul IO Extended 2022 - Android Compose
taehwandev
0
340
Opsしかやってこなかった私が DevOpsが根付いたチームにJoinした話
yhamano
1
100
開発速度を5倍早くするVSCodeの拡張機能を作った
purp1eeeee
2
170
Node.jsデザインパターンを読んで
mmmommm
0
2.8k
Cross Deviceチームにおけるスマートテレビアプリ開発ってどんな感じ?
cokaholic
0
120
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
105
16k
jQuery: Nuts, Bolts and Bling
dougneiner
56
6.4k
Happy Clients
brianwarren
89
5.6k
GitHub's CSS Performance
jonrohan
1020
420k
Designing Experiences People Love
moore
130
22k
Atom: Resistance is Futile
akmur
255
20k
KATA
mclloyd
7
8.7k
StorybookのUI Testing Handbookを読んだ
zakiyama
5
2.3k
JazzCon 2018 Closing Keynote - Leadership for the Reluctant Leader
reverentgeek
172
8.5k
How GitHub (no longer) Works
holman
296
140k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
11
4.7k
The MySQL Ecosystem @ GitHub 2015
samlambert
238
11k
Transcript
0 インターン生・新卒向け 学校でもっと教えてほしい ITエンジニア基本スキル 2022-06-10 第1回NearMe技術勉強会 Kenji Hosoda
1 ユニットテスト • ユニットテストとは ◦ プログラムコードでは、一箇所変更したら、思わぬ箇所でエラーになったりする。これを毎回手作業 でテストするのはコードが大きくなる程難しくなる。そこで、プログラムの挙動を細かな単位で自動で テストできるようにして動作を保証するのがユニットテストである。 • 綺麗に書かないとテストを書くのが難しい
◦ “因数分解”(リファクタリング)されたコードの部品部分をテストする方が、それらが混じったものをテス トするよりも簡潔にわかりやすく書ける。 ◦ 逆にテストを書こうとすることにより、コードが綺麗になるという副作用もある。 • Print文よりテスト駆動開発 ◦ Print文書きながらコード書いてますか?そのPrint文を書く代わりにテストを書くようになれば”いけて る”技術者です。 ◦ テストを先に書いてテストに導かれながら本体コードを書くことをテスト駆動開発と言う。
2 データベース • データベースはサービスの根幹 ◦ サービスを作るとき、まずはデータベースの構造を考える。 ◦ データベースが大元にあって、バックエンドのAPI、フロントエンドのUIが付随する。 • インデックス
◦ データ量が増えていくと、単純にレコードを選択すると全データ走査するため遅くなる。 ◦ そこであらかじめインデックス(索引)を用意しておいて、素早くレコードを引き当てる。 ◦ 複合インデックスなど複雑なインデックスの方法も覚えよう。 ◦ インデックスの張りすぎに注意。レコード挿入・更新が遅くなるので。 • トランザクション ◦ 複数のレコードを一度に処理したいとき、途中で障害が起きると、中途半端な状態になる。 ◦ このとき一連の処理をトランザクションにまとめることで、元の状態に戻せる。 • その他 ◦ ジョイン、外部キー制約、ロック、N+1問題なども把握しておこう。
3 その他 • インターネット ◦ IPアドレス、ポート番号、ドメイン、HTTP、SSL/TLS、など。 ◦ クラウド上でサーバーを建ててインターネットに公開してみるといい。 ▪ インターネットに公開してログを眺めたら、世界中から攻撃されてるのがわかる。
• ターミナル操作 ◦ GUIが使えない環境で操作することが求められる。 ◦ シェルスクリプト、viのエディタ操作などは、とっつきにくいけど覚えておいた方がいい。 • 正規表現 ◦ プログラムの文字列処理で重宝。 ◦ エディタで検索する時も利用。 • 情報収集 ◦ はてなブックマーク、Twitterでプログラマーをフォロー、Feedlyで技術ブログを購読。 ◦ 海外の情報も積極的に取り入れる。英語の苦手意識をなくす。
4 Thank you