Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
はてなと技術研修
Search
shibayu36
December 06, 2015
Programming
1
6.3k
はてなと技術研修
shibayu36
December 06, 2015
Tweet
Share
More Decks by shibayu36
See All by shibayu36
今の生産性改善活動で大切にしている考え方
shibayu36
8
8.4k
エンジニアメンター制度の効果的な運用を目指して/improve-mentor-system
shibayu36
27
10k
グレードイメージ具体化のため昇格理由を公開する
shibayu36
8
5.8k
新機能作成時に開発ブランチに細かくmergeしていく戦略/merge-strategy-for-new-feature
shibayu36
6
17k
一から始めるJavaScriptユニットテスト/js-unit-test-from-scratch
shibayu36
8
32k
技術ブログを書くことについて/writing-tech-blog
shibayu36
17
26k
はてなブログチームの開発フローとGitHub
shibayu36
145
76k
課題をテストで解決する
shibayu36
2
2.3k
Fluentd, mongoDB, Kibanaを利用したはてなブログABテストの事例
shibayu36
30
12k
Other Decks in Programming
See All in Programming
Tuning GraphQL on Rails
pyama86
2
1k
Googleのテストサイズを活用したテスト環境の構築
toms74209200
0
270
組織に自動テストを書く文化を根付かせる戦略(2024秋版) / Building Automated Test Culture 2024 Autumn Edition
twada
PRO
10
4.5k
2万ページのSSG運用における工夫と注意点 / Vue Fes Japan 2024
chinen
3
1.3k
Vue.js学習の振り返り
hiro_xre
2
130
Nuxtベースの「WXT」でChrome拡張を作成する | Vue Fes 2024 ランチセッション
moshi1121
1
490
hotwire_or_react
harunatsujita
8
4k
リリース8年目のサービスの1800個のERBファイルをViewComponentに移行した方法とその結果
katty0324
5
3.5k
EventSourcingの理想と現実
wenas
6
2.1k
アジャイルを支えるテストアーキテクチャ設計/Test Architecting for Agile
goyoki
7
2.8k
レガシーな Android アプリのリアーキテクチャ戦略
oidy
1
170
破壊せよ!データ破壊駆動で考えるドメインモデリング / data-destroy-driven
minodriven
16
4k
Featured
See All Featured
Side Projects
sachag
452
42k
Code Reviewing Like a Champion
maltzj
519
39k
Ruby is Unlike a Banana
tanoku
96
11k
BBQ
matthewcrist
85
9.3k
The World Runs on Bad Software
bkeepers
PRO
65
11k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
290
The Invisible Side of Design
smashingmag
297
50k
Faster Mobile Websites
deanohume
304
30k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
107
49k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
3
370
Building a Modern Day E-commerce SEO Strategy
aleyda
38
6.9k
RailsConf 2023
tenderlove
29
880
Transcript
ͯͳͱٕज़ݚम 2015/12/06 ࢣఋొஃ @shiba_yu36
ࢣঊ : @shiba_yu36 ఋࢠ : @amagitakayosi
ࣗݾհ • @shiba_yu36 • 4ͯͳΤϯδχΞ
ຊ͢͜ͱ • ͯͳͰͷݚमͷߟ͑ํ • ݚम༰ͷհ • ͯͳڭՊॻ • ۀΛ௨ͯ͡ •
@amagitakayosi͔Β࣮ࡍʹݚमΛड͚ͯΈͯ
ͯͳͷݚमͷߟ͑ํ
ΤϯδχΞͷ ֮͑Δ͜ͱແݶ
ΤϯδχΞͷ ֮͑Δ͜ͱແݶ ࣮ફͰ ʹ͚Δ͔͠ͳ͍
ͯͳͷݚमͷߟ͑ํ • ࣮ફͰࣗΒߟ͑ͯखΛಈ͔͢͜ͱ ͕Ұ൪ͷֶश • രͰ࠷ݶͷࣝΛʹ͚ͭɺ ͙͢ʹνʔϜʹଐ
രͰ࣮ફʁ
രͰ࣮ફʁ 2िؒޙʹνʔϜଐ
1. ͯͳڭՊॻͰ1िؒͷݚम 2. ΦϦδφϧαʔϏεΛ1िؒͰ 3. ࣮ࡍʹνʔϜଐ ݚमͷྲྀΕ
None
1.ͯͳڭՊॻͰͷݚम https://github.com/hatena/Hatena-Textbook
ͯͳڭՊॻͱ 1िؒͰ࠷ݶͷWebͷٕज़ ΛֶͿͨΊͷڭՊॻ
ͯͳڭՊॻͱ 1िؒͰ࠷ݶͷWebͷٕज़ ΛֶͿͨΊͷڭՊॻ ग़དྷΔͷ͔ʁ
WebͰ࠷ݶඞཁͳٕज़ ݴޠɺΦϒδΣΫτࢦɺςετɺDBɺ SQLɺURIɺHTTPɺWebαʔόɺHTMLɺ JSɺηΩϡϦςΟɺetc…
WebͰ࠷ݶඞཁͳٕज़ ݴޠɺΦϒδΣΫτࢦɺςετɺDBɺ SQLɺURIɺHTTPɺWebαʔόɺHTMLɺ JSɺηΩϡϦςΟɺetc… ଟ͗͢Δʂʂ
՝Ͱஈ֊తʹ ֓೦Λ֮͑ΒΕΔ designed by Freepik
ஈ֊తʹֶͿ ϒϩάαʔϏεΛஈ֊తʹ࡞Γ ্͛ͯɺࣝΛੵΈ্͍͛ͯ͘
ϓϩάϥϛϯάجૅ σʔλϕʔε WebΞϓϦέʔγϣϯ JS (εϚϗΞϓϦ։ൃ) 1. 2. 3. 4.
ϓϩάϥϛϯάجૅ σʔλϕʔε WebΞϓϦέʔγϣϯ JS (εϚϗΞϓϦ։ൃ) ΦϒδΣΫτͷ͚ؔͩͰϒϩά DBͳͲͰӬଓԽ͠ͳ͍
# هͷ࡞ my $diary = Diary->new('Johnͷه'); # هࣄͷ࡞ my $entry1
= $diary->add_entry( title => 'هͩΑ', body => '͜Ε͕هͷຊจͩΑ', ); my $entry2 = $diary->add_entry( title => '͜ΕهͩΑ', body => 'ͬͺΓهͷຊจͩΑ', ); # ग़ྗ $diary->print;
$ object_diary.pl # Johnͷه # [1] هͩΑ : ͜Ε͕هͷຊจͩΑ #
[2] ͜ΕهͩΑ : ͬͺΓهͷຊจͩΑ
ϓϩάϥϛϯάجૅ σʔλϕʔε WebΞϓϦέʔγϣϯ JS (εϚϗΞϓϦ։ൃ) ϓϩάϥϛϯάͷ֓೦͚ͩΛֶͿ • ݴޠͷ͍ํ • ઃܭ
• ΦϒδΣΫτࢦ • ςετ
ϓϩάϥϛϯάجૅ σʔλϕʔε WebΞϓϦέʔγϣϯ JS (εϚϗΞϓϦ։ൃ)
ϓϩάϥϛϯάجૅ σʔλϕʔε WebΞϓϦέʔγϣϯ JS (εϚϗΞϓϦ։ൃ) ΦϒδΣΫτͷ͚ؔͩͷϒϩάΛ σʔλϕʔεͰӬଓԽɻೖग़ྗCLIɻ
$ db_diary.pl add_entry λΠτϧ1 ຊจ1 $ db_diary.pl add_entry λΠτϧ2 ຊจ2
$ db_diary.pl list_entry # [1] λΠτϧ1 : ຊจ1 # [2] λΠτϧ2 : ຊจ2
ϓϩάϥϛϯάجૅ σʔλϕʔε WebΞϓϦέʔγϣϯ JS (εϚϗΞϓϦ։ൃ) • MySQL • SQL •
ݴޠ͔ΒDBΞΫηε • DBηΩϡϦςΟ • CLI DBͷ֓೦͚ͩΛֶΔ
ϓϩάϥϛϯάجૅ σʔλϕʔε WebΞϓϦέʔγϣϯ JS (εϚϗΞϓϦ։ൃ)
ϓϩάϥϛϯάجૅ σʔλϕʔε WebΞϓϦέʔγϣϯ JS (εϚϗΞϓϦ։ൃ) DBͰӬଓ͞ΕͨϒϩάΛ Web্Ͱॻ͚ΔΑ͏ʹ͢Δ
None
ϓϩάϥϛϯάجૅ σʔλϕʔε WebΞϓϦέʔγϣϯ JS (εϚϗΞϓϦ։ൃ) • HTTPɺURLઃܭɺWebαʔό • WebαʔϏεͷ࡞Γํ •
WebͰͷηΩϡϦςΟ Webͷ֓೦͚ͩΛֶΔ
ϓϩάϥϛϯάجૅ σʔλϕʔε WebΞϓϦέʔγϣϯ JS (εϚϗΞϓϦ։ൃ)
ϓϩάϥϛϯάجૅ σʔλϕʔε WebΞϓϦέʔγϣϯ JS (εϚϗΞϓϦ։ൃ) WebͰॻ͚ΔϒϩάΛ JSͰಈ͔͍ͯ͘͢͢͠Δ
• JSON APIΛͬͨΦʔτϖʔδϟ • ͦͷฤू
ϓϩάϥϛϯάجૅ σʔλϕʔε WebΞϓϦέʔγϣϯ JS (εϚϗΞϓϦ։ൃ) • JSͷجૅɺDOMͷجૅ • Πϕϯτۦಈ •
JSON APIͰͷ࿈ܞ ϑϩϯτΤϯυͷ֓೦͚ͩΛֶΔ
ϓϩάϥϛϯάجૅ σʔλϕʔε WebΞϓϦέʔγϣϯ JS (εϚϗΞϓϦ։ൃ)
ϓϩάϥϛϯάجૅ σʔλϕʔε WebΞϓϦέʔγϣϯ JS (εϚϗΞϓϦ։ൃ) εϚϗΤϯδχΞ͚ʹ͞Βʹ Swiftͷ՝ʂʂ
ϓϩάϥϛϯάجૅ σʔλϕʔε WebΞϓϦέʔγϣϯ JS (εϚϗΞϓϦ։ൃ) 1. 2. 3. 4.
ϨΠϠʔ͔ΒͷੵΈॏͶͰ ஈ֊తʹ֓೦ΛֶΔ designed by Freepik
ڭՊॻʹΑΔݚमऴྃ
2. ΦϦδφϧαʔϏε ͷ࡞
ࣗͰاըͯ͠ ࣗͰ࡞Δʂ
ΦϦδφϧαʔϏε࡞ શࣾһͷલͰൃද 5-9. 10.
ΦϦδφϧαʔϏε࡞ શࣾһͷલͰൃද 5-9. 10. • اը • UI • ػೳ։ൃͷྲྀΕ
WebαʔϏε࡞ͷখ͞ͳ࣮ફ ڭՊॻͰֶΜͩ͜ͱΛ׆͔͢
None
ΦϦδφϧαʔϏε࡞ શࣾһͷલͰൃද 5-9. 10.
શࣾһͷલͰൃද • ࣗͷαʔϏεΛΞϐʔϧ • ίʔυΛಡ·Εٕज़తʹಥͬࠐ·ΕΔ • ઈରʹηΩϡϦςΟϗʔϧΛ୳͞ΕΔ
ΦϦδφϧαʔϏεͷ ࡞ऴྃ
3. ۀΛ௨ͨ͡ݚम
1. ͯ͘͠ઓͯ͠Β͏ 2. αϙʔτମ੍ॆ࣮ͤ͞Δ ߟ͑ํ
1.ઓͯ͠Β͏ • ࣮ࡍʹಈ͍͍ͯΔαʔϏεΛ৮Δ • ͲΜͲΜࣄΛͤΔ • ͍͠ۀͰઓͯ͠Β͏
ઓ • ͦͷਓ͕ڵຯ͕͋Δ͜ͱ • ٕज़తʹ͍͠՝ • ΤϯδχΞ͔Βͷӽڥ
2.αϙʔτମ੍Λॆ࣮ • νʔϜϝϯλʔ • ίʔυϨϏϡʔ • γχΞΤϯδχΞ • ͦͷଞ
νʔϜϝϯλʔ • νʔϜͰڭҭ • ೋਓͰઃܭ૬ஊΛ͠ͳ͕Β։ൃ
ίʔυϨϏϡʔ • ίʔυGitHubͰϨϏϡʔ • ࢦఠΛडֶ͚ͯश͢Δ • ࣗͰଞͷਓͷίʔυΛݟֶͯश
γχΞΤϯδχΞ • νʔϜ֎ͷΤϯδχΞ͕Ұਓ͘ • ΤϯδχΞͱͯ͠ͷํੑΛαϙʔτ
ͦͷଞ • ϖΞϓϩ • ࣾษڧձ • ٕज़ॻࢧԉ • ߹॓ •
னٳΈ
ۀΛ௨ͨ͡ݚम ͍ͭ·Ͱଓ͘…
·ͱΊ
1. ͯͳڭՊॻ 2. ΦϦδφϧαʔϏε 3. νʔϜଐ ݚमͷྲྀΕ
ͯͳͰരͰۀʹ ೖΕΔΑ͏͍ͯ͠·͢
ઓͰ͖ΔڥΛ ἧ͍͑ͯ·͢
13 • ͯͳͰઓ͍ͨ͠ΤϯδχΞΛื ू͍ͯ͠·͢ • http://hatenacorp.jp/recruit/fresh/