TECH PLAY

株匏䌚瀟ラクス

株匏䌚瀟ラクス の技術ブログ

å…š935ä»¶

匊瀟で毎月開催し、 PHP ゚ンゞニアの間で奜評いただいおいる PHP TechCafe。2021幎8月のむベントでは瀟倖でご掻躍されおいる PHP ゚ンゞニアにもご参加いただいお「PHP8.1の新機胜」に぀いお語り合いたした。 rakus.connpass.com PHP8.1の新機胜は8.0に比べれば少ないずはいえ、順番に远いかけおみるず思ったより倧きなボリュヌムになったためむベント内容を2回に分けおレポヌトしたす。今回は埌線ずしお埌半の半分をご玹介したす。 前線はこちら。 tech-blog.rakus.co.jp PHP8.1 新機胜に぀いお Pure intersection Types 他の蚀語ではあたりない機胜 New never type 静的解析などで圹立぀期埅あり New array_is_list function ネヌミングに関する議論 Final class constants New fsync function ゚ラヌで萜ちおも曞き蟌みは保蚌 Explisit octal integerliteral notation 利甚シヌンは少ないが事故を防げそう Restrict $GLOBALS usage パフォヌマンス向䞊のための䜿甚制限 Deprecate passing null to non-nullable arguments of internal functions nullが入りうるパタヌンに芁泚意 その他の倉曎点 今埌はPHPUnitやLaravelをテヌマに開催予定 PHP8.1 新機胜に぀いお PHP8.1の新機胜は匊瀟のメンバヌが事前にShowNoteにたずめおいたす。今回はこの埌半郚分の新機胜をみおいきたした。 hackmd.io Pure intersection Types 亀差型 ず呌ばれ、型AずBがあるずきに、Aでありか぀Bの䞡方の性質をも぀型を衚すずきに A&B のように蚘述したす。 「AたたはB」のような衚珟は8.0で Union Type ずいう型が導入されおおり、 瞊棒で A|B のように蚘述したす。 「それの逆版が8.1で入りたす。」ず玹介されたした。 ※参考PHP8.0で導入されたUnion Type wiki.php.net この亀差型に察しおは次のような意芋が出たした。 新しく型を定矩しなくおも良くなる むンタヌフェヌス名から䞡方の特性を持っおいるっおいうのがひず目でわかるので、意図が分かりやすくなるし、管理もしやすくなるのかな 色々ず賛吊や考え方が出るかもしれたせん 亀差型のサンプルコヌド ShowNote より抜粋 <?php class A { private Traversable & Countable $ countableIterator ; public function setIterator ( Traversable & Countable $ countableIterator ) : void { $ this -> countableIterator = $ countableIterator ; } public function getIterator () : Traversable & Countable { return $ this -> countableIterator; } } ※参考サンプルコヌドで䜿われおいる Traversable ず Countable むンタヌフェヌスに぀いお www.php.net www.php.net 䞊蚘のコヌドを元に詳しく解説されたした。今たでは Traversable ず Countable ずいう2぀の振る舞いを持぀オブゞェクトを䜜るようなケヌスでは䞡方を継承する新しいむンタヌフェヌスを䜜る必芁がありたした。バリ゚ヌションが増えおくるず、この振る舞いずこの振る舞いずこの振る舞いの組み合わせで ずいうように、どんどん耇雑な むンタヌフェむス が増えおきたす。亀差型を䜿うこずで新しく型を定矩しなくおも良くなり、䞊蚘のように Traversable ず Countable の䞡方を持っおいるずいうのがひず目でわかりやすくなりたす。 ただし、䜿う䞊では泚意も必芁です。 ルヌプできる Traversable ずカりントできる Countable はセットになりがちず思えたすが、党然関係ないAずBずいう属性が Traversable でくっ぀けるず密結合になるのかなず思うので、気を぀けないず倉な蚭蚈になる。 実は嬉しいずころがあんたりない。 あたり䜿いすぎるず耇雑な蚭蚈になるので泚意が必芁です。亀差型が必芁になるようなシヌンでは以䞋のような疑問を持っおみるのも良さそうです。 そもそもここたで现分化しおいるこずがおかしいのでは 連想できない無関係なものが䞀぀のオブゞェクトにたずたっおいるのがうたく ドメむン を分解できおいないっお事なのでは 他の蚀語ではあたりない機胜 たた、 PHP 以倖の プログラミング蚀語 にも目を向けた議論がありたした。 普通の静的型付蚀語でもあたりない機胜。 どちらかずいえば動的型付蚀語に拡匵で導入される䟋が倚い気がしたす。 倚重継承が前提の機胜なのでいきなり䜿うようなものじゃないですが、䜿えるず䟿利。 正盎ここたでやるなら Haskell 系の蚀語や Scala ずか、倚重継承が普通にできる蚭蚈か぀匷い静的型付の蚀語を䜿うほうが良い気もしたすが、TypeScriptでも導入されおいるので動的型付蚀語ならではの䜿いどころがあるのではないでしょうか 「䟿利だけど、あたり䜿うシヌンはない」ずいう、やや消極的な意芋が倚かったものの、 RFC をみおみるず賛成意芋がほずんどで採択されおいたした。 RFC では賛成30で採択 亀差型は「もずもずPhpStormやPHPDocでサポヌトされおいたもの」ずのこずで、亀差型が導入されるこずで䜕かを壊すずいうこずもなく、「衚珟の幅が広がる」ずいうこずから受け入れられやすかったのではないかずのこずでした。 ※参考PHPStanの䜜者のブログPHP8.1の機胜ではできないが倚重継承的なこずができる事䟋も玹介されおいる medium.com New never type 垞に䟋倖出したり、exitで終わっおしたうような凊理の返り倀に never ず曞いお衚せるようになりたす。「レガシヌなコヌドであればあり埗る話だよなあず思うので、かなり䜿い所が倚いんじゃないか」ずのこずです。 <?php function redirect ( string $ uri ) : never { header ( 'Location: ' . $ uri ) ; exit () ; } RFC 段階では never ず noreturn の二案があったそうですが、最終的に never になりたした。参加者からも「 noreturn のほうがわかりやすい気もするんですけどね。」ずいう意芋がありたした。「悪くなかったず思うんですけど、二語になるからややこしいっお話があった」「noずreturnの間にハむフン入れるのか、アンダヌバヌ入れるのかっおなっお䞀語にしようっお話になったようです。」ずのこずです。「静的解析などをするうえでは never は別の目的で䜿いたいので noreturn を掚しおいたみたいです」ずいう背景もあったようです。 静的解析などで圹立぀期埅あり 䞊蚘のサンプルコヌドのように、リダむレクトしたり exit() で終わっおしたうずきに曞いおおけば「静的解析ずかでもうたく䜿えそうな気がしたすね。」ずのこずです。PhpStormで「 redirect を呌んだ次の行ずかに違う凊理があるず実行されない ステヌトメント ずいう譊告が出せる。」ずいう実珟むメヌゞです。 最終的に never が採甚されたしたが、静的解析に関しおは圹立぀期埅が持おそうです。「個人的にはReadonlyに䞊んで期埅しおいる機胜ですね。」ずのこずでした。 New array_is_list function 配列のキヌが0番目からスタヌトする配列なのか 連想配列 なのかを刀定する機胜です。 array_is_list ずいう関数を䜿うこずで、0番目から始たる配列なら true 、それ以倖は false が返りたす。 <?php $ list = [ "a" , "b" , "c" ] ; array_is_list ( $ list ) ; // true $ notAList = [ 1 => "a" , 2 => "b" , 3 => "c" ] ; array_is_list ( $ notAList ) ; // false 参加者から質問がありたしたが、 [0=>"A", 2=>"B", 3=>"C"] ずいう 連想配列 でも false が返るようです。 ネヌミングに関する議論 array_is_list ずいうネヌミングに関しおは様々な議論があったようです。 RFC の議論を読むず is_list ずいう候補もあったこずが曞かれおいたす。 wiki.php.net 参加者からも「名前がすごいですよね。」「䜕だろう同じこずを蚀っおいる感じがする。」「名前を芋れば芋るほどモダモダしたすね。」ずいう声があがっおいたした。 ここで議論しおいるものは「 コンピュヌタサむ゚ンス でいう連結Listずは違う」「これたでList構造ずいうのは分割代入のために䜿われおいた」が、そうではなく「玔粋な配列」ずのこずです。「静的解析などではlistずいう型が䜿えるようになっおいお連番で衚す」ずいうこずで、そういう経緯もあっおこういう名前になったのではないか、「奇跡的なバランスでできた名前ですね。」ず解説されたした。 Final class constants 継承したclassの定数をオヌバヌラむドするこずを犁止するこずが出来るようになりたす。これたではclass間で定数を曞き換えるこずができたため、芪classの蚭蚈者の意図に反しお「䞀定ではない」状態が起こりうるようになっおいたした。 <?php class Foo { final public const X = "foo" ; } class Bar extends Foo { public const X = "bar" ; } // Fatal error: Bar::X cannot override final constant Foo::X 前線の「 Readonly Properties 」で final の䜿い方ずの違いが玹介されたしたが、「 Readonly ずはたた䜿い所が違う」ずのこずです。 New fsync function ファむルの曞き蟌み内容をメモリから実際にファむルぞ曞き蟌む機胜です。 これは内郚実装が倉わっお、「现かく蚀うずI/Oの順番が倉わった」こずで、「途䞭で凊理が止たっおも曞き蟌みをちゃんずしおくれる」ずのこずです。 ゚ラヌで萜ちおも曞き蟌みは保蚌 ここでは「趣味で PHP でDBを䜜っおいる」ずいう参加者から利甚シヌンの䞀䟋が玹介されたした。 キャッシュメモリ からディスクに曞き蟌むずころで゚ラヌハンドリングずかで fsync が䜿えたらな、ず思っおいた そういう甚途でしかあたり䜿わない たしかに甚途は少なそうですが、䜿い方がむメヌゞできお他の参加者も玍埗しおいたした。 Explisit octal integerliteral notation 0o れロ・オヌずいう接頭詞を眮くこずで8進数ず明瀺できるようになりたした。 元々、 0 で始たる堎合は8進数ずしお扱われ、䟋えば 16 == 016 の 016 は8進数ず解釈されるためfalseになりたす。 0o が䜿えるようになり芖芚的にわかりやすく衚蚘できたす。 利甚シヌンは少ないが事故を防げそう 8進数を䜿う堎所は限られるのでい぀䜿うのだろうずいう疑問もありたすが、䞀䟋ずしお chmod の利甚シヌンが玹介されたした。 chmod でファむルの パヌミッション を蚭定するずき 0755 ず曞くず正しく パヌミッション を蚭定できたすが、間違えお 755 ず曞くず意図しない動䜜になりたす。 「誰かが 0755 の 0 が邪魔じゃないず思っお消したら事故になる、ずいうケヌスを防げるんじゃないかず思いたす。」ず、 0o ず明蚘するこずで事故が防ぎやすくなるメリットの䞀䟋が玹介されたした。 ※参考 chmod 関数 PHP: chmod - Manual たた、他にも「 PHP のバヌゞョンアップしようずした時に、8進数や16進数の振る舞いが倉わりたすずなった時にどうやっお探せば良いんだず思ったんですが、接頭詞を眮けば探しやすくなりたすね。」ずいう意芋もありたした。 そのほか、なぜ 0 ず o ずいう芋間違えやすい文字を連続しお䜿うのかずいう意芋もありたしたが、8進数octaずいう意味から来おいるこずが解説されたした。16進数はHexの x を䜿っお 0x です。このあたりは PHP 以倖の蚀語でも採甚されおいる衚蚘法でもありたす。 Restrict $GLOBALS usage ここからは仕様倉曎の機胜に぀いおの玹介です。スヌパヌグロヌバルの $GLOBALS で他の倉数にアクセスできる特殊な倉数ですが、䞀郚の䜿い方ができなくなりたす。 <?php $ a = 1 ; $ GLOBALS [ 'a' ] = 2 ; var_dump  $ a ; // int2 // Generates compile-time error: $ GLOBALS = [] ; $ GLOBALS += [] ; $ GLOBALS =& $ x ; $ x =& $ GLOBALS ; unset ( $ GLOBALS ) ; パフォヌマンス向䞊のための䜿甚制限 なぜこのような倉曎が行われたのかに぀いお、次のように解説されたした。 他の倉数にはない特殊な䜿い方が出来るようにしおいたこずで、 PHP 党䜓の配列アクセスぞの ボトルネック になっおいた 芋るからに誰も䜿わなさそうな凊理が PHP ナヌザヌ党䜓の凊理の足かせになっおいた 䞖に転がっおいるラむブラリを芗くずそんな䜿い方しおいるや぀ほずんど無いやずなった じゃあ消しちゃおうずいうこずで䜿えなくしようずなった PHP 党䜓の配列アクセスのパフォヌマンス向䞊のため、「元々はできおいたんだけど今埌はできなくなりたす。」ずのこずです。誰も䜿わなそうではありたすが、「ある皮䟿利な機胜だったず思うんですよね。 $GLOBALS 経由でなんでもアクセスできたしたし。テストで倉数党郚吹っ飛ばすずか。」「無理やりいじるずかはあるのかなず。 WordPress のカスタマむズ案件ずかで、ベヌス郚分はさわれないけどどうにかこうにかしたいみたいなケヌスずか。」ずいう意芋もあり、䜿わないだろうず決め぀けるのも危険かもしれたせん。 なお、「 PHP8.1でいきなり゚ラヌになりたす 」ずのこずで、非掚奚化による譊告などではない点も泚意が必芁です。 なお、 $GLOBALS の䜿甚に぀いおは䞊蚘のような特殊なケヌスで䜿甚するこずはあるかもしれたせんが、本来は「これ自䜓䜿うべきではないですね。」ずいう意芋も出おいたした。今回の倉曎の圱響にかかわらず、 なるべく $GLOBALS を䜿わず別の方法を怜蚎するほうが良さそうです。 Deprecate passing null to non-nullable arguments of internal functions str_contents ずいう暙準関数の第2匕数に null を指定するこずが非掚奚化されたす。 <?php // PHP8.1 では非掚奚、PHP9 では譊告が出力される str_contains ( "string" , null ) ; str_contents はPHP8.0から導入された暙準関数で、第1匕数の文字列䞭に第2匕数の文字列が存圚する堎合にtrueが返されたす。 PHP: str_contains - Manual PHP8.0では第2匕数にnullを指定するずtrueが返されおいたしたが、これ自䜓が䞍具合だったようです。「 PHP のナヌザヌ定矩関数ずかだず普通はStringっお型宣蚀しおいるので通らないんですが、 PHP のネむティブな関数だからこそ入っちゃったバグですね。」ずのこずです。内郚的にnullをキャストしたこずで空文字列ずしお凊理され、「空文字列はあらゆる文字列の郚分集合なのでtrueになる」ようです。 nullが入りうるパタヌンに芁泚意 str_contents に察しお盎接的にnullを指定するケヌスはあたりなさそうですが、参加者からは以䞋のような泚意点も共有されたした。 未定矩倉数ずかがnullが入りうるパタヌンなので芁泚意ですね PHP8.0から導入されたのでそんなに䜿っおいないず思いたすが、䟿利な関数なので発生しうるかな だからPHP8.1で䞀回譊告を挟むんでしょうね PHP8.0で早速䜿い始めたけど、特定のパタヌンで未定矩倉数が玛れ蟌むこずはありそうです。䞇が䞀そのようなパタヌンがあっおもPHP8.1の間は譊告が出るので芋぀けたらすぐに察凊しおおくず良さそうです。 その他の倉曎点 時間の関係ですべおは玹介できたせんでしたが、これ以倖の倉曎点も以䞋にたずめられおいるのでご確認ください。たた、機䌚があれば次回以降のPHPTechCafeで話題にあがるかもしれたせん。 hackmd.io 今埌は PHPUnit やLaravelをテヌマに開催予定 次回以降は9月ず10月のテヌマず開催日が既に決たっおおり参加者を募集䞭です。参加頂くずブログには掲茉しきれない现かい情報や、 PHP の最新動向のニュヌスの玹介などもありたすのでぜひご参加ください。 rakus.connpass.com rakus.connpass.com ゚ンゞニア 䞭途採甚 サむト ラク スでは、゚ンゞニア・デザむナヌの 䞭途採甚 を積極的に行っおおりたす ご興味ありたしたら是非ご確認をお願いしたす。 https://career-recruit.rakus.co.jp/career_engineer/ カゞュアル面談お申蟌みフォヌム どの職皮に応募すれば良いかわからないずいう方は、カゞュアル面談も随時行っおおりたす。 以䞋フォヌムよりお申蟌みください。 forms.gle むベント情報 䌚瀟の雰囲気を知りたい方は、毎週開催しおいるむベントにご参加ください rakus.connpass.com
アバタヌ
はじめに おすすめの読者局 芁件定矩ずは よくある問題 芁求が䞍足しおいる 芁求が曖昧 そもそも芁求を叶えるのが䞍可胜 芁件定矩の始め方 おわりに はじめに こんにちは。rs_chankoです。 最近はもっぱらオフショア管理の業務をしおいたす。 最初は玍品物のチェックがメむンだったんですが、ここ数か月、案件の䟝頌を出すこずが増えたした。 最初は芋様芋真䌌でリヌダヌのやっおいるこずをやっおみおはいろいろ指摘を受けおいたのですが、 自分の持っおいる技法や芳点では思うように内容を拟いきれず、䟝頌内容がいたいちになっおしたうこずが倚いこずに気付きたした。 「このたたではだめだ」ず思いいったん本を読んでみようずいうこずで芁件定矩に぀いおの本に手を出しおみたした。 䜜業䟝頌っお芁件定矩の簡易版っお感じなんですよね。䜓感的にですが。 そこで今回はその本がなかなか初玚者に易しく、さっそく実践しおいるので蚘事にしおみようかなず思い曞いおいるずいったずころです。 今回読んだ本はこちらです。(これもリヌダヌのお勧めで決めたのは秘密です。) www.amazon.co.jp 衚玙の通り、前半は目玉焌きを䜜る工皋で芁件定矩ずは䜕ぞやずいう説明がされおいる本です。(ずっおもずっ぀きやすい) ◆ 関連ブログも合わせおご参考ください。 ・ 芁件定矩 ずは【たずめ】 ・ プロゞェクトマネゞメントTips 20遞 珟堎から語るプロマネの極意 おすすめの読者局 これから芁件定矩に参画する人 芁件定矩をするメンバヌに教育する人 ふわっずしおいる案件を圢にしお䟝頌する人(私はこれです) 芁件定矩ずは そのたた芁件を定矩するこずなんですが、実際その「芁件」を「定矩する」ずは䜕なんでしょうか。 ■芁件=泚文 䟝頌する人(ナヌザヌや䌁画郚など)が開発に察しお「こういうものを䜜っおほしい」「こんな機胜があったら䟿利」ずいうずころから、プロダクトの開発は始たるず思いたす。 個人であればそのふわっずしたものからあれやこれやず぀けたい機胜を぀けおアプリなりなんなりを䜜成したすよね。 ただグルヌプや䌁業だず最初に認識を合わせおおかないず倧きな霟霬が起きたり、倧量のバグの枩床になりかねたせん。 そういったこずを避けるために 䜜っおほしい人が䜜る人に出す芁望 が芁件になりたす。 䟋えばの話にはなりたすが、なんでもできる䞇胜な車を䜜ろうず考えおいたす。 䟝頌䞻からの芁望は * 空を10m飛びたい * ベヌスは日本補の䞀般車にしたい * 陞䞊は通垞通り走れるようにする * ガ゜リンが燃料 これらの芁望が 芁件 です。 ただ、お客さんが芁件を䞊べたらすべおが叶うずいうわけではありたせん。 魔法の力で䜕ずか空を飛ぶ車は䜜るこずができるずしたす。 日本補の車に空を飛ぶ 拡匵機胜 を付けたした。 䜙分なパヌツを぀ける堎所もなくなり、完璧な圢に仕䞊げるこずができたした しかし、あずから䟝頌䞻が「氎䞊も走れるようにできないかな」ず蚀い出したした。 事前に決たっおいればそれ甚に䜜るこずもできたしたが、 空陞甚に䜜り䞊げおしたったため、氎䞊を走れるようにずいうのは叶えられたせんでした。 このため、こちらの芁望は諊めおもらうこずにしたした。 本来であれば、氎䞊も走れるようにしたいず蚀うのは、芁望をたずめる段階で出しおおいおもらうべきです。 ただ、その郚分を完璧に詰めずに車を䜜っおしたったため、䟝頌䞻は枋々諊めるこずになりたした。 このような「できるこず」「しおほしいこず」「できないこず」をはっきりずしおおくこずが 芁件定矩 なんですね。 よくある問題 珟実的な開発の話に戻したす。 事業郚や取匕先などから新しい補品や、新しい機胜を䜜る話が開発に降りおくるでしょう。 芁件定矩の堎を蚭けお、仕様に぀いおたぁたぁ詰めた状態たで持っおいったかなずいうずころで、 「これやっおください」が決たったずしたす。 開発者はそれを実珟するために動くず思いたす。 ただ、次のような問題が埀々にしおあるはずです。 芁求が䞍足しおいる 実際に䜜っおみたものはいいものの、既存の機胜の考慮が足りおいたせんでした。 「あれ、この既存機胜も新機胜反映しないずいけないんだっけ」「え、無芖しおいいんじゃないの」 ずいった具合に埌から芁件の芋盎しをするこずもあるんじゃないでしょうか 芁求が曖昧 どんなものを䜜るかむメヌゞは぀きたした。 むメヌゞは぀いたものの、仕様が虫穎で「この条件は付けるべきなのか」「この時の動䜜はこれでいいのか」が分からず、蚭蚈段階で詰みたすね。 もっず酷ければ実装しおテストしおいるずきに気付いたりするこずもありたす。 そもそも芁求を叶えるのが䞍可胜 芁件定矩の時点で䞍可胜やないかヌいずいった事態。 技術的な物だったり、既存機胜を壊しおしたったりなど、様々な理由でできないこずがあったり。 基本はスタヌトの段階で気づくずは思いたすが、䜜っおみお気づくなんおこずも珟堎では起きたすね。 芁件定矩ではじゃあいざ蚭蚈だ実装だより前に今あるものに察しおどのように察応しおいくのか、そこたで考える必芁が出おきたす。 今ある機胜や実珟したい機胜ず、バッティングする堎合どちらを生かすか、どう共生させるか 実珟したい機胜が今の補品や機胜に䞎える圱響はどの皋床がいいのか そもそも実珟したい機胜の现かな぀くりはどこたで考慮すればいいのか これでいいのではで進めおしたうこずで、正しく䜜った぀もりが䟝頌䞻ずの間で出来䞊がりに乖離が出おしたいたすよね。 䟝頌䞻からの芁求が足りおいないのであれば芁件定矩の段階ですり合わせおいくずいうフェヌズが必芁です。 各䌚瀟や個人で流儀や手法はあるず思いたすが、 画面のモックなどのむメヌゞや、システム郚分の仮蚭蚈を䜿いながら、䞍足しおいる芁求を匕き出すこずが開発偎の芁件定矩です。 芁件定矩の始め方 たずは実珟したいこずを䞀芧にしおわかりやすくする必芁がありたす。 曞籍では䌁画曞の䜜り方ずしお曞かれおいたしたが、ナヌザヌや事業郚の望んでいるものがふわっずしおいるずきには開発偎でそこたでたずめる堎合もあるず思いたす。 曞籍で曞かれおいるような技法を、アレンゞしお業務に取り入れたりもしおいるため、 ブログ甚にさらにアレンゞしお、曞籍の技法を簡単にたずめおみたした。 今回は蚘事甚に遠い昔にアルバむト時代の店長にアプリを䜜っおず蚀われた際の芁求をたずめおみたす。( アプリ制䜜 自䜓は諞事情あっおやっおいたせんが。。。) その時に店長が䜜っおくれずいったアプリの芁求は以䞋のようなものです。 倖囜人メンバヌのためのマニュアルアプリ メンバヌ同士で泚意点を共有できるように、蚘事を投皿できる いいねボタンみたいに参考になったよボタンを蚭眮しおポむント制にする 圓時こんなふわっずしたオヌダヌだけでアプリ䜜っおず蚀われ困惑したしたが、それは眮いおおきたす。 これだけ聞いた際にどんなこずが実珟できればいいかなず思っお ヒアリ ングをしたので、そこから芁求をたずめおみたした。 抂芁 倖囜人・新人メンバヌのための手順曞・泚意事項共有アプリ 目的 ・䌚瀟から提䟛される手順曞は぀ぶれた写真だったり、癜黒で分かりにくい ・文字での説明は぀いおいるけど、倖囜人にはニュアンスで䌝わりにくい ・䞊䜍メンバヌが知っおるコツを集玄しおどのメンバヌでもわかるように動画などで共有したい 珟状 ・玙のマニュアルのみで、䞊䜍メンバヌが぀きっきりで教える必芁がある ・耇数のメンバヌに手順曞には曞いおいない同じ泚意をしたこずがある ・メモを自発的にするメンバヌず党くしないメンバヌがいる あるべき姿 ・䞊䜍メンバヌでない人でも教育ができるようになる ・誰かに䞀床説明したら、メンバヌ同士にその内容が共有される ・メモをしないメンバヌでも手元に情報が残っおいる 目暙達成に必芁な芁玠 ・ twitter などのように各メンバヌが蚘事を投皿できるアプリ ・動画付きで投皿ができる ・参考になる床合いで゜ヌトするこずができる(必芁性の高いものから芋るこずができる) 無芖しおいい芁玠 ・投皿に察するコメント機胜は必芁ない 䟋なのでかなり荒いですがこんな感じで「できるこず」「しおほしいこず」「できないこず(厳密にいえばしなくおいいこずですが)」を䞊べたした。 芖芚的に䜕をすればいいのかがわかるため、実珟したいこず実珟できないこずを早い段階で拟うこずができるようになりたす。 これが芁件定矩の第䞀歩、スタヌトです。 こちらを元に実装や蚭蚈をする開発偎ず䟝頌䞻偎で、実際に出来䞊がるもののむメヌゞをすり合わせおいきたす。 出来䞊がっおから「あれはできないの」「これはできないの」ずなっおしたうず、最悪䞀から䜜り盎しお倍の 工数 がかかっお玍品が倧幅に遅れおしたうず蚀うこずもありたすね。 そういうこずを避けるためにも、じっくり芁件定矩で時間をかけお、蚭蚈、実装はすんなり、サクサク進めお埌から䜙蚈な工皋が起きないようにするこずを心がけるこずが倧事です。 そのためにも芁件定矩のスキルを習埗しお、確実な状態でのスタヌトを切れるようにするこずが䞊手な開発の第䞀歩です おわりに 最近はあたり倧きな機胜を扱っおいないので、䟋で皋床瀺した皋床の粒床のものを耇数打っおいたす。 仕事でもオフショア先に䟝頌する際にも䞊蚘のように文面を組み立おおパタヌン化しお以来前の確認もしやすいようにしおいたす。 なのであんたりテクいこず曞けおないんですが、芁件定矩や䜜業の䟝頌に重芁なのは䞊蚘の衚みたいな内容だずいうこずが本を読んで確信を持おた、ずいった感じです。(やっおいるこずが、䞖間的に䜿われるような技法だったず蚀う裏どり、心匷く感じお倧事だず思いたす。) 目的(䜕がしたいのか、) 珟状(問題点、䞍足しおいるずころ) あるべき姿(問題が解消された状態、できるようになるこず) 必芁な芁玠(あるべき姿にするためにすべきこず、付随しおできるべきであるこず) 䞍芁な芁玠(考慮する必芁のないこず、察応できるけどしなくおよいこず) この蟺をはっきりしおおくこずでいざ蚭蚈だ実装だっおなった時に迷うこずも枛りたすし、 玍品だっお時に「いやそれは芁件ずしお提瀺されおいないので」ずいう材料になるんですね。 逆に蚀えばですが、はっきりしおいないず「え、これは圓然じゃないの」ず抌し切られ、ネットでよく芋るn次受けの地獄珟堎みたいなこずが起こるんですよね。。。 自分の身を守るため、クラむアントず良奜な関係を築くためにも、芁件定矩の技法は自分の物にしおいきたいず思いたした。 皆さんも気持ちよく、無駄のないスマヌトな開発をするためにも、こちらの本読んでみおください。 䜿える技法から埐々に取り蟌んでいくこずで珟状を打砎するきっかけになるかもしれたせんね。。。 さらに现かいこず、蚭蚈チックな話は玹介した曞籍に现かに曞いおあるのでぜひ読んでみおください。 内容的にも読みやすいのでどんな方にもおすすめです。 たず第䞀に抑えるずころ的な蚘事になっおしたいたした。 あたり现かく曞きすぎるず盗䜜になっおしたいそうなのでこんな感じで悪しからず 。 ゚ンゞニア 䞭途採甚 サむト ラク スでは、゚ンゞニア・デザむナヌの 䞭途採甚 を積極的に行っおおりたす ご興味ありたしたら是非ご確認をお願いしたす。 https://career-recruit.rakus.co.jp/career_engineer/ カゞュアル面談お申蟌みフォヌム どの職皮に応募すれば良いかわからないずいう方は、カゞュアル面談も随時行っおおりたす。 以䞋フォヌムよりお申蟌みください。 forms.gle むベント情報 䌚瀟の雰囲気を知りたい方は、毎週開催しおいるむベントにご参加ください rakus.connpass.com
アバタヌ
技術広報の yayawowo です。 iPhone や iPod のモバむルデ バむス をお持ちの皆様、 「 Podcastポッドキャスト 」ずいう無料のアプリをご存知でしょうか 是非ご自身のモバむルデ バむス をご確認ください。 Podcast  ポッドキャスト がデフォルトで既にむンストヌルされおいるはずです。 むンタヌネットを通じお配信された音声や動画を無料で芖聎できるサヌビスずなっおおり、暇぀ぶしや勉匷にも圹立぀ 最匷アプリ なんです 今回は、゚ンゞニアやデザむナヌの皆様向けにTech系の Podcast  ポッドキャスト 番組をにたずめおみたした。 本ブログを通しお、是非おうち時間を有効掻甚する䞀぀の手段に Podcast  ポッドキャスト を远加しおいただけたすず幞いです。 囜内倖のTechç³» Youtube チャンネルをたずめた蚘事は以䞋になりたす 【2021年版】国内外Tech系YouTubeチャンネル10選 - 登録者数順まとめ! - - RAKUS Developers Blog | ラクス エンジニアブログ Podcastポッドキャストを始めおみよう Techç³»Podcast人気番組 Apple Events Rebuild Apple Events (video) Apple News Radio ワンボタンの声 backspace.fm Image Cast texta.fm TEDTalks テクノロゞヌ TED Radio Hourt 電脳タむガヌ飯店 Off Topic // オフトピック 石川枩のスマホNo.1メディア 匊瀟゚ンゞニアおすすめ番組 fukabori.fm UIT INSIDE EM . FM #EMFM PHPの珟堎 ajitofm 終わりに Podcast  ポッドキャスト を始めおみよう Podcast  ポッドキャスト は Apple 瀟が提䟛しおいるアプリケヌションずなりたす。 名前の由来は、ポヌタブルマルチ メディアプレヌダヌ である iPod  アむポッド ず、攟送を意味するbroadcastブロヌドキャストを組み合わせた造語ずのこずです。 最近では、 Apple 瀟だけでなくGoolgeや Spotify でも Podcast がでおおりたす。 Google Podcasts Spotify for Podcasters 今回は、 Apple 瀟が提䟛しおいる Podcast の始め方をご説明したす。 1. Apple Store で「 Podcast  ポッドキャスト 」を怜玢し、アプリを開く 図 Apple Store 画面 2. Podcast  ポッドキャスト のアプリが起動する 図 Podcast 起動画面 3. 芋たいカテゎリ or キヌワヌドを怜玢する 図 Podcast 怜玢画面 たったこれだけです。簡単ですよね。 次に゚ンゞニアやデザむナヌの皆様に芋おいただきたい、Techç³» Podcast  ポッドキャスト の番組をご玹介したす Techç³» Podcast 人気番組 Podcast の「テク ノロ ゞヌ 」人気番組ランキングは以䞋の通りです。 順䜍 番組名 1 Apple Event 2 Rebuild 3 Apple Events (video) 4 Apple News Radio ワンボタンの声 5 backspace.fm 6 Image Cast 7 texta.fm 8 TEDTalks テク ノロ ゞヌ 9 TED Radio Hour 10 電脳タむガヌ飯店 11 Off Topic 12 石川枩の スマホ No.1メディア ※2021/9/17時点での情報です。 では、早速番組ごずに玹介しおいきたす Apple Events Apple Events (audio) Apple テク ノロ ゞヌ Â¥0 podcasts.apple.com 秋の新補品を発衚した Apple 瀟が配信する番組「 Apple Events」が堂々の1䜍 番組説明 The Apple Events podcast is home to the latest keynote addresses. Listen to announcements of new products and services and browse the archive of past events to relive revolutionary moments in the history of personal technology. 匕甚元 Podcast 配信先リンク Apple Podcast 䜜成者 配信開始 ゚ピ゜ヌド Webサむト 曎新タむミング Apple Inc. 2019幎 8 Apple Events 䞍定 期新補品が発衚された時 ※2021/9/17時点での情報です。 人気の゚ピ゜ヌドはこちら 最新゚ピ゜ヌド  ‎Apple Events (audio):Apple Podcast内のApple Event, September 2021  ‎Apple Events (audio):Apple Podcast内のWWDC21 Keynote  ‎Apple Events (audio):Apple Podcast内のApple Event, April 2021 ※2021/9/17時点での情報です。 こちらの番組は音声のみの配信ずなっおいたす。 もし動画、日本語字幕ず合わせお芖聎したい堎合は、これからご玹介する「 Apple Events (video)」番組をご確認ください Rebuild Rebuild Tatsuhiko Miyagawa テク ノロ ゞヌ Â¥0 podcasts.apple.com Tech系番組の日本で䞀番有名ず蚀われおいるのが、「Rebuild」です 番組説明 りェブ開発、プログラミング、モバむル、ガゞェットなどにフォヌカスしたテク ノロ ゞヌ ç³» ポッドキャスト です。 匕甚元 Podcast 配信先リンク Apple Podcast Google Podcasts Spotify 䜜成者 配信開始 ゚ピ゜ヌド Webサむト 曎新タむミング Tatsuhiko Miyagawa 2013幎 441 rebuild.fm 䞍定 期(月に3回くらい) ※2021/9/17時点での情報です。 rebulid.fmの䞭で最新の゚ピ゜ヌドは以䞋になりたす。 最新゚ピ゜ヌド  ‎Rebuild:Apple Podcast内の316: Domestic Violence Camcorder (N)  ‎Rebuild:Apple Podcast内の315: Our Bank Doesn't Like Your Voice Service (higepon)  ‎Rebuild:Apple Podcast内の314: Takeda Shingen of Silicon Valley (hak) ※2021/9/17時点での情報です。 rebuild.fmは、色々なゞャンルのゲストを亀えた トヌク が聞けるのでどの゚ピ゜ヌドも楜しく聞くこずができる番組ずなっおおりたす 9/14に最新゚ポ゜ヌドも䞊がっおいたすので、こちらも芋逃せたせんね Apple Events (video) Apple Events (video) Apple テク ノロ ゞヌ Â¥0 podcasts.apple.com 1䜍に続き、 Apple 瀟の新補品や新サヌビスの発衚を アヌカむブ 動画ずしお配信しおいる Podcast の番組が「 Apple Events (video) 」です Apple 補品奜きの方には有難い番組ですね。 番組説明 The Apple Events podcast is home to the latest keynote addresses. Watch announcements of new products and services and browse the archive of past events to relive revolutionary moments in the history of personal technology. 匕甚元 Podcast 配信先リンク Apple Podcast 䜜成者 配信開始 ゚ピ゜ヌド Webサむト 曎新タむミング Apple Inc. 2008幎 53 Apple Events (video) 䞍定 期新補品が発衚された時 ※2021/9/17時点での情報です。 最新゚ピ゜ヌド  ‎Apple Events (video):Apple Podcast内のApple Event, September 2021  ‎Apple Events (video):Apple Podcast内のWWDC21 Keynote  ‎Apple Events (video):Apple Podcast内のApple Event, April 2021 ※2021/9/17時点での情報です。 こちらの番組は前述した通り音源だけでなく、動画の配信も行っおおりたす。 たた、 スマヌトフォン で芖聎するず字幕も぀いおみれたすので英語の解説でも問題なく理解できたす Apple 補品だけでなく、英語孊習にも䜿える良い番組です Apple News Radio ワンボタンの声 Apple News Radio ワンボタンの声 ワンボタンの声制䜜委員䌚 テク ノロ ゞヌ Â¥0 podcasts.apple.com Apple 関連のニュヌスを䞭心にナヌザヌ目線で玹介しおいる Podcast が「 Apple News Radio ワンボタンの声」ずいう番組です やはりどの番組も、話題は Apple の新商品に぀いおばかりですね。 番組説明 Mac , iPod , iPhone , iPad , Apple watch , Apple TVなど Apple にた぀わるニュヌスをもずにリスナヌず䞀緒に楜しむ podcast です。Old Mac ナヌザヌには懐かしい埀幎の Apple 補品を振り返る"Time machine radio"も奜評です。30分間の番組を火・朚・土の早朝に配信しおいたすので通勀、通孊のお䟛にお楜しみください。 匕甚元 Podcast 配信先リンク Apple Podcast Google Podcasts Spotify 䜜成者 配信開始 ゚ピ゜ヌド Webサむト 曎新タむミング ワンボタンの声制䜜委員䌚 2009幎 15 Apple News Radio ワンボタンの声 火・朚・土の早朝 ※2021/9/17時点での情報です。 最新゚ピ゜ヌド  ‎Apple Podcast内のApple News Radio ワンボタンの声  ‎Apple Podcast内のApple News Radio ワンボタンの声  ‎Apple Podcast内のApple News Radio ワンボタンの声 ※2021/9/17時点での情報です。 30分ずいう尺で配信を行っおいたすので、通勀・通孊期間にぎったしのコンテンツずなっおおりたす。 Apple ナヌザの皆様、是非ご芖聎ください backspace.fm backspace.fm backspace.fm テク ノロ ゞヌ Â¥0 podcasts.apple.com 続きたしお、 フェンリル 株匏䌚瀟さんが提䟛しおいる「backspace.fm」です 番組説明 䞀週間分のテック・ガゞェットニュヌスを配信する ポッドキャスト 匕甚元 Podcast 配信先リンク Apple Podcast Google Podcasts Spotify 䜜成者 配信開始 ゚ピ゜ヌド Webサむト 曎新タむミング Koichi Aoki 2014幎 664 backspace.fm 䞍定 期(3日に1回くらい) ※2021/9/17時点での情報です。 以䞋が最新゚ピ゜ヌドになりたす。 最新゚ピ゜ヌド  ‎backspace.fm:Apple Podcast内の#411:【後編】次が人生最後のクルマなら、あなたは何を買いますか?  ‎backspace.fm:Apple Podcast内の#411:【前編】次が人生最後のクルマなら、あなたは何を買いますか?  ‎backspace.fm:Apple Podcast内の#410:【お便りコーナー】転職ホヤホヤの山川記者と議論する最近のカメラ事情とコロナ禍での働き方 ※2021/9/17時点での情報です。 1週間分のテック・ガゞェットニュヌスを配信しおいるず蚘茉がありたすが、曎新頻床を芋るず3日に1回くらいず頻床は高めです。 ぀たり、最新情報がすぐに入っおくる良いコンテンツずいうこずになりたすので是非ご興味あればご芖聎ください Image Cast Image Cast Image Club テク ノロ ゞヌ Â¥0 podcasts.apple.com クリ゚むティブな話を聞きたい方におすすめなのが、「Image Cast」です 番組説明 Image Castは、個人でものを䜜る人の集たりImage Clubずしお掻動しおいるあずたず鉄塔が自宅からお送りする30分ほどの Podcast です。技術・デザむン・制䜜・衚珟などに関係のあるような無いようなトピックを䞭心に、毎週二人が気になったもの、発芋したこずをそれぞれ持ち寄っおおしゃべりしたす。 匕甚元 Podcast 配信先リンク Apple Podcast Google Podcasts Spotify 䜜成者 配信開始 ゚ピ゜ヌド Webサむト 曎新タむミング Image Club 2020幎 52 Image Club 毎週土曜日朝 ※2021/9/17時点での情報です。 人気の゚ピ゜ヌドはこちら 最新゚ピ゜ヌド  ‎Image Cast:Apple Podcast内の#49 うまくいかないのが自分のせいか世界のせいかは気分で決めていい  ‎Image Cast:Apple Podcast内の#48 全ての道はマリオペイントに通ず  ‎Image Cast:Apple Podcast内の#47 ポイントカードお持ちですか? ※2021/9/17時点での情報です。 制䜜、衚珟、技術、デザむンなどに関係のある話が30分1時間くらいで聞けるので通勀やお昌䌑憩の際に最適なコンテンツずなっおおりたす。 毎週土曜日に曎新されるそうですので、気になった方はフォロヌしおみおくださいね texta.fm texta.fm Design and Engineering team at PIXTA テク ノロ ゞヌ Â¥0 podcasts.apple.com 動画・動画の玠材サむトを運営しおいるピクスタ株匏䌚瀟さんの「texta.fm」です Podcast で配信しおいるなんおすごいですね 。 番組説明 texta.fmは、ピクスタで働くデザむナヌ・゚ンゞニアによる技術ブログ「おくすた」の ポッドキャスト 版です。 匕甚元 Podcast 配信先リンク Apple Podcast Google Podcasts Spotify 䜜成者 配信開始 ゚ピ゜ヌド Webサむト 曎新タむミング Design and Engineering team at PIXTA 2020幎 11 texta.fm 䞍定 期(2か月に1回くらい) ※2021/9/17時点での情報です。 最新゚ピ゜ヌドはこちら 最新゚ピ゜ヌド  ‎texta.fm:Apple Podcast内のSideshow 7. Jbuilder was Right  ‎texta.fm:Apple Podcast内の7. Fat Controllers and Models  ‎texta.fm:Apple Podcast内の6. 1on1 in Public ※2021/9/17時点での情報です。 テスト駆動開発 TDDの スペシャ リストずしお知られる和田卓人さんずの トヌク が聞けたす。 ラゞオ感芚で孊習ができるずおも良いコンテンツです TEDTalks テク ノロ ゞヌ TEDTalks テクノロゞヌ TED テク ノロ ゞヌ Â¥0 podcasts.apple.com 䞖界䞭の発明家や研究者たちが技術発信をしおいる番組が「TEDTalks テク ノロ ゞヌ 」です 番組説明 TEDカンファレンス、TEDxむベント、䞖界䞭の提携むベントのステヌゞから、䞖界最先端の発明家、研究者たちが、デモや発芋やビゞョンを披露しおくれたす。これらに加え、たくさんのビデオが、英語の スクリプト や最倧80の蚀語から遞んだ字幕を付けおTED.comから無料でダりンロヌドできたす。TEDは「広める䟡倀のあるア むデア 」を远い求める非営利組織です。 匕甚元 Podcast 配信先リンク Apple Podcast 䜜成者 配信開始 ゚ピ゜ヌド Webサむト 曎新タむミング TED Talks 2012幎 120 TEDTalks テクノロゞヌ 䞍定 期 ※2021/9/17時点での情報です。 人気の゚ピ゜ヌドはこちら 最新゚ピ゜ヌド  ‎TEDTalks テクノロジー:Apple Podcast内の電化による素晴らしい未来の空の移動 | コリー・コウムズ  ‎TEDTalks テクノロジー:Apple Podcast内の都市が交通機関をデトックスする | モニカ・アラヤ  ‎TEDTalks テクノロジー:Apple Podcast内のパンデミックを乗り越え、公衆衛生を再考する上でテック企業にできること | カレン・デサルヴォ、ホイットニー・ペニントン・ロジャース、クリス・アンダーソン ※2021/9/17時点での情報です。 5分皋で終わる内容や、1時間語り続けおいるものたで゚ポ゜ヌドは様々ありたす。 ご興味のある分野から是非ご芖聎ください なお、日本語の字幕も蚭定できたすのでご掻甚ください。 TED Radio Hourt TED Radio Hour NPR テク ノロ ゞヌ Â¥0 podcasts.apple.com アメリ カで攟送しおいるラゞオの Podcast 「TED Radio Hourt」です 番組説明 Exploring the biggest questions of our time with the help of the world's greatest thinkers. Host Manoush Zomorodi inspires us to learn more about the world, our communities, and most importantly, ourselves. 匕甚元 Podcast 配信先リンク Apple Podcast Google Podcasts Spotify 䜜成者 配信開始 ゚ピ゜ヌド Webサむト 曎新タむミング NPR 2012幎 150 TED Radio Hour 毎週金曜日 ※2021/9/17時点での情報です。 最新の゚ピ゜ヌドはこちら。 最新゚ピ゜ヌド  ‎TED Radio Hour:Apple Podcast内のListen Again: The Gratitude Chain: A.J. Jacobs  ‎TED Radio Hour:Apple Podcast内のThe Food Connection  ‎TED Radio Hour:Apple Podcast内のListen Again — Esther Perel: Building Resilient Relationships (2020) ※2021/9/17時点での情報です。 アメリ カのラゞオ局が配信しおいるずいうこずもあり、党゚ピ゜ヌド英語ずなっおおりたす。 英語が埗意な方にずっおは面癜い番組なのではないでしょうか 電脳タむガヌ飯店 秘密結瀟 電脳タむガヌ飯店 dentora テク ノロ ゞヌ Â¥0 podcasts.apple.com 次はなんず2021/8月から配信を開始したばかりの「電脳タむガヌ飯店」ずいう番組です 始めたばかりにも関わらず、Tech系ランキングで䞊䜍にきおいる番組ずなっおおりたす。 番組説明 毎回、テク ノロ ゞヌ ×䜕かで䞖界埁服が実珟できないかをテヌマに語る䞖界埁服系 Podcast 番組です。 匕甚元 Podcast 配信先リンク Apple Podcast Google Podcasts Spotify 䜜成者 配信開始 ゚ピ゜ヌド Webサむト 曎新タむミング 電脳タむガヌ 2021幎 5 電脳タむガヌ飯店 毎週火曜20時 ※2021/9/17時点での情報です。 最新゚ピ゜ヌド  ‎秘密結社 電脳タイガー飯店:Apple Podcast内の#05 全人類をテックで秘密結社に入社させる方法(前編)  ‎秘密結社 電脳タイガー飯店:Apple Podcast内の#04 テック×占いで世界征服できるのか(後編)  ‎秘密結社 電脳タイガー飯店:Apple Podcast内の#03 テック×占いで世界征服できるのか(前編) ※2021/9/17時点での情報です。 前述にも蚘茉したしたが、配信を開始したばかりの番組ずなっおおりたすので゚ピ゜ヌド数もただただ䞀桁です。 これから話題ずなっおきそうな番組ずなっおおりたすので、是非ご確認ください Off Topic // オフトピック Off Topic // オフトピック Off Topic テク ノロ ゞヌ Â¥0 podcasts.apple.com アメリ カスタヌトアップに詳しい「Off Topic // オフトピック」番組です 番組説明 Off Topicは、米囜を䞭心に最新テックニュヌスやスタヌトアップ、ビゞネス情報、たたにカルチャヌをゆるヌく深堀りしながら解説する番組です。 匕甚元 Podcast 配信先リンク Apple Podcast Google Podcasts Spotify 䜜成者 配信開始 ゚ピ゜ヌド Webサむト 曎新タむミング Off Topic 2018幎 84 Off Topic // オフトピック 毎週朚曜 ※2021/9/17時点での情報です。 では、最新゚ピ゜ヌドです 最新゚ピ゜ヌド  ‎Off Topic // オフトピック:Apple Podcast内の#83 Bored ApesやCryptoPunksに秘めたNFTアバターの可能性  ‎Off Topic // オフトピック:Apple Podcast内の#82 NFTとオーナーシップ経済  ‎Off Topic // オフトピック:Apple Podcast内の#81 注目のクリエイターたちに学ぶ ファンとの向き合い方 ※2021/9/17時点での情報です。 泚目は米囜の最新テックニュヌスを分かりやすく解説しおくれるずころだず思いたす。 海倖のトレンドやニュヌスを知りたい方におすすめの番組です 石川枩の スマホ No.1メディア 石川枩のスマホNo.1メディア ラゞオNIKKEI テク ノロ ゞヌ Â¥0 podcasts.apple.com ラゞオNIKKEI がお送りする番組が「石川枩の スマホ No.1メディア」です スマホ に関する最新情報を発信しおおりたす 番組説明 䞖界䞭を飛び回っお取材する スマホ ケヌタむゞャヌナリストの石川枩さんをパヌ゜ナリティに迎えおお送りする スマホ 情報番組。最新情報からお圹立ち情報たで、 スマヌトフォン に関連する幅広い情報をお届けしたす。 ラゞオNIKKEI 第1で毎週朚曜日20:2020:50攟送䞭 匕甚元 Podcast 配信先リンク Apple Podcast Google Podcasts Spotify 䜜成者 配信開始 ゚ピ゜ヌド Webサむト 曎新タむミング ラゞオNIKKEI 2014幎 364 石川枩のスマホNo.1メディア 毎週朚曜日 ※2021/9/17時点での情報です。 最新゚ピ゜ヌド  ‎石川温のスマホNo.1メディア:Apple Podcast内の2021.9.16・第364回「iPhone 13発表。Apple秋のスペシャルイベント」  ‎石川温のスマホNo.1メディア:Apple Podcast内の2021.9.9・第363回「片手に収まるハイスペック。ASUS『Zenfone 8』」  ‎石川温のスマホNo.1メディア:Apple Podcast内の2021.9.2・第362回「PayPay、これからのスマホ決済」 ※2021/9/17時点での情報です。 毎週攟送毎週曎新される Podcast のため最新情報をすぐにむンプットできるコンテンツです スマホ にご興味がある方は是非ご芖聎ください 匊瀟゚ンゞニアおすすめ番組 fukabori.fm fukabori.fm iwashi テク ノロ ゞヌ Â¥0 podcasts.apple.com アゞャむル / スクラム /デザむン/マネゞメント/コンテナ/ 自然蚀語 など様々な技術を深堀しお発信しおいるのが「fukabori.fm」です 番組説明 技術などを深掘りしお楜しむ Podcast です。 匕甚元 Podcast 配信先リンク Apple Podcast Google Podcasts Spotify 䜜成者 配信開始 ゚ピ゜ヌド Webサむト 曎新タむミング iwashi 2018幎 57 fukabori.fm 䞍定 期月1皋床 ※2021/9/17時点での情報です。 最新゚ピ゜ヌド  ‎fukabori.fm:Apple Podcast内の56. 自然言語処理(NLP)の歴史、BERT w/ Takahiro Omi  ‎fukabori.fm:Apple Podcast内の55. コンテナランタイム(後編) w/ TokunagaKohei  ‎fukabori.fm:Apple Podcast内の54. コンテナランタイム(前編) w/ TokunagaKohei ※2021/9/17時点での情報です。 曎新頻床は䜎いですが、1コンテンツの配信内容はずおも濃いです。 箄40分皋で1技術を孊べるずなれば聞くしかないですよね UIT INSIDE UIT INSIDE UIT テク ノロ ゞヌ Â¥0 podcasts.apple.com 人気のフロント゚ンドに関する技術をLINE株匏䌚瀟の゚ンゞニアが配信しおいる番組、「UIT INSIDE」 UITずは、 User Interface + Technology の頭文字を取っおいるずのこず。 番組説明 LINE UIT の開発者による「最新のフロント゚ンド」をキャッチアップできる Podcast 匕甚元 Podcast 配信先リンク Apple Podcast Google Podcasts Spotify 䜜成者 配信開始 ゚ピ゜ヌド Webサむト 曎新タむミング UIT 2019幎 94 UIT INSIDE 金曜日月3回くらい ※2021/9/17時点での情報です。 最新゚ピ゜ヌド  ‎UIT INSIDE:Apple Podcast内のep.97『フロントエンドに詳しい CTO がいてよかったことは?heyのフロントエンド事情を聞いてみた』  ‎UIT INSIDE:Apple Podcast内のep.96 『Shell scriptがもっと身近に! zx活用術』  ‎UIT INSIDE:Apple Podcast内のep.95 Front-End Tooling 実践!最新のツールチェインで長大なビルド時間の改善に挑む ※2021/9/17時点での情報です。 倉化が速いフロント゚ンド技術に泚目し、配信しおくれるのはずおも有難いです。 箄30分で最新のフロント゚ンドの知識をむンプットできる優れたコンテンツずなっおおりたす EM . FM #EMFM EM . FM #EMFM EM.FM テク ノロ ゞヌ Â¥0 podcasts.apple.com ゚ンゞニア リングマ ネヌゞャヌEMのための番組、「EM . FM」 名前のたんたです 番組説明 Engineering ManagerによるEngineering Managerのための Podcast 匕甚元 Podcast 配信先リンク Apple Podcast Google Podcasts Spotify 䜜成者 配信開始 ゚ピ゜ヌド Webサむト 曎新タむミング EM.FM 2018幎 50 EM . FM #EMFM 䞍定 期2か月に1回くらい ※2021/9/17時点での情報です。 最新゚ピ゜ヌド  ‎EM . FM #EMFM:Apple Podcast内のlv12. ユニークなキャリアは代替ができない  ‎EM . FM #EMFM:Apple Podcast内のlv11. 「自分で考える」ことの脆弱性  ‎EM . FM #EMFM:Apple Podcast内のlv10. 『EMが必要だからやる』から『EMになりたい』へ ※2021/9/17時点での情報です。 マネゞメント向けの内容を1時間ほど語っおいる番組ずなりたすが、聞いずいお損はないず思いたす ご興味ありたしたら是非 PHP の珟堎 PHPの珟堎 Masashi Shinbara テク ノロ ゞヌ Â¥0 podcasts.apple.com PHP コミュニティの䞭では有名な番組、「 PHP の珟堎」 PHP の珟堎で開発しおる䞭玚者以䞊向けの内容ずなっおおりたす。 番組説明 PHP の珟堎にいる人ず話す ポッドキャスト です。 匕甚元 Podcast 配信先リンク Apple Podcast Google Podcasts Spotify 䜜成者 配信開始 ゚ピ゜ヌド Webサむト 曎新タむミング Masashi Shinbara 2017幎 44 PHPの珟堎 䞍定 期2か月に1回くらい ※2021/9/17時点での情報です。 最新゚ピ゜ヌド  ‎PHPの現場:Apple Podcast内の44. ちゃんとしなきゃいけない呪い(hanhan1978)  ‎PHPの現場:Apple Podcast内の43. ゲーム開発での DDD 実装パターンの活用(n_1215)  ‎PHPの現場:Apple Podcast内の42. Laravel 本と開発現場(ytake / kurikazu / omoon) ※2021/9/17時点での情報です。 開発珟堎で掻躍する珟圹 PHP ゚ンゞニアの皆様が出挔しおいるため、゚ピ゜ヌド毎に雰囲気が異なり面癜く芖聎できたす PHPerの皆様、お時間ある際にご芖聎ください ajitofm ajitofm Kenta Suzuki テク ノロ ゞヌ Â¥0 podcasts.apple.com 続いお、VOYAGE GROUPの瀟内バヌでの語りを収録しおいる「ajitofm」です 曎新頻床は䜎めですが、ゲスト参加する゚ンゞニアの皆さんのレベルが高いためアップされるず泚目される番組ずなっおおりたす。 番組説明 技術・ガゞェット・゚ンゞニアリング・組織などに関する ポッドキャスト です。 匕甚元 Podcast 配信先リンク Apple Podcast Google Podcasts 䜜成者 配信開始 ゚ピ゜ヌド Webサむト 曎新タむミング Kenta Suzuki 2017幎 58 ajitofm 䞍定 期1幎に3本くらい ※2021/9/17時点での情報です。 最新゚ピ゜ヌド  ‎ajitofm:Apple Podcast内のajitofm 58: Engineer in VOYAGE 出版しました #voyagebook  ‎ajitofm:Apple Podcast内のajitofm 57: Nature Remoのシステムの裏側をsongmuさんに聞いてみた  ‎ajitofm:Apple Podcast内のajitofm 56: DX Criteriaやってみた ※2021/9/17時点での情報です。 ゚ンゞニアの皆様におすすめの番組です 最新がアップされる前にたずは過去の゚ピ゜ヌドをご芖聎ください 終わりに Techç³» Podcast はいかがでしたでしょうか 今回は Podcast 内の「テク ノロ ゞヌ 」で人気の番組だけでなく、匊瀟゚ンゞニアおすすめの番組も玹介させおいただきたした。 おうち時間が増えおいる今、 Podcast は技術の情報収集を行うにあたりずおも䟿利なコンテンツです 無料䞔぀、最新トレンドをいち早く収集するのに最適な Podcast  是非本日からお楜しみいただければず思いたす。 最埌たでお読みいただきありがずうございたした ゚ンゞニア 䞭途採甚 サむト ラク スでは、゚ンゞニア・デザむナヌの 䞭途採甚 を積極的に行っおおりたす ご興味ありたしたら是非ご確認をお願いしたす。 https://career-recruit.rakus.co.jp/career_engineer/ カゞュアル面談お申蟌みフォヌム どの職皮に応募すれば良いかわからないずいう方は、カゞュアル面談も随時行っおおりたす。 以䞋フォヌムよりお申蟌みください。 rakus.hubspotpagebuilder.com ラク スDevelopers登録フォヌム https://career-recruit.rakus.co.jp/career_engineer/form_rakusdev/ むベント情報 䌚瀟の雰囲気を知りたい方は、毎週開催しおいるむベントにご参加ください ◆TECH PLAY techplay.jp ◆connpass rakus.connpass.com
アバタヌ
こんにちは。west-cです。 オブゞェクト指向 を意識した開発を行うようになっお からし ばらく経ちたした。 圓初に比べるず手続き的な考え方からいくらかは脱华できたかず思いたすが、 オブゞェクト指向 的な蚭蚈手法やコヌディング方法が完璧に身に付いたず蚀える自信はただありたせん。 そこで今回は、 オブゞェクト指向 的な考え方を鍛えるこずができるず蚀われおいる「 オブゞェクト指向 ゚クササむズ 」を詊しおみるこずにしたした。 オブゞェクト指向ずは オブゞェクト指向゚クササむズずは オブゞェクト指向゚クササむズをやっおみた ・すべおのプリミティブ型ず文字列型をラップするこず ・ファヌストクラスコレクションを䜿甚するこず ・Getter、Setter、プロパティを䜿甚しないこず ・else句を䜿甚しないこず ・名前を省略しないこず ・1行に぀きドットは1぀たでにするこず おわりに 参考文献・参考資料 オブゞェクト指向 ずは オブゞェクト指向 ずは、システムで扱う事柄をオブゞェクトずしお捉える技法ず蚀えたす。 オブゞェクト指向 が普及する以前に甚いられおいた手続き型の蚭蚈の堎合、システムの機胜党䜓の手順を埐々に分解しお小さな郚品を䜜り䞊げおいくような、いわゆる トップダりン 的なアプロヌチずなりたす。 手続き型での開発手法の堎合、改修時の圱響範囲が広くなるず䞀般に蚀われおいたす。 䞀方、 オブゞェクト指向 では郚品オブゞェクトを䞭心に考えたす。 たず、システムの実珟を担う個々の郚品を定矩し、その郚品自身に振る舞いをもたせたす。 そしお、定矩した郚品同士を組み合わせるこずでシステムを実珟したす。 手続き型ずは正反察の、 ボトムアップ のアプロヌチを取るこずが特城的です。 個々の郚品の独立性が高いため、改修時の圱響範囲も限られ、コヌドの保守性や再利甚性が高たるこずが期埅できたす。 オブゞェクト指向 ゚クササむズずは オブゞェクト指向 ゚クササむズずは、曞籍『 ThoughtWorksアン゜ロゞヌ 』で玹介されおいる オブゞェクト指向蚭蚈 を理解し実際に䜿えるようになるための゚クササむズです。 オブゞェクト指向 ゚クササむズの具䜓的な方法は、以䞋に定められた9぀のルヌルを適甚しおコヌドを曞く、ずいうものになりたす。 1぀のメ゜ッドに぀きむンデントは1段階たでにするこず else句を䜿甚しないこず すべおのプリミティブ型ず文字列型をラップするこず 1行に぀きドットは1぀たでにするこず 名前を省略しないこず すべおの゚ンティティを小さくするこず 1぀のクラスに぀き むンスタンス 倉数は2぀たでにするこず ファヌストクラスコレクションを䜿甚するこず Getter、Setter、プロパティを䜿甚しないこず オブゞェクト指向 ゚クササむズをやっおみた お題には「 チケット料金モデリング 」を利甚し、映画のチケットずその料金を決定するコヌドを、 オブゞェクト指向 ゚クササむズの9぀のルヌルを守った䞊で曞いおみたした。なお䜿甚蚀語は Java です。 䜜成したコヌドは以䞋に眮いおありたす。 github.com 以䞋、ルヌルのうちいく぀かをコヌドを亀えお玹介したす。 ・すべおのプリミティブ型ず文字列型をラップするこず いわゆる Value Object の考え方です。 今回の堎合、チケット料金の決定には䞊映日平日か・土日祝か・ 映画の日 かや䞊映時間レむトショヌかどうかが必芁になりたす。 そこで、 LocalDate や LocalTime をそのたた利甚するのではなく、これらをラップした ScreenTime オブゞェクトを䜜成したした。 これにより䞊映日時にた぀わる必芁な振る舞いを ScreenTime に閉じ蟌めるこずができ、「 映画の日 かどうか」や「レむトショヌかどうか」ずいった業務固有の振る舞いもオブゞェクト内で衚珟するこずができたした。 public class ScreenTime { private final LocalDate date; private final LocalTime time; // 略 /** * 映画の日かどうか. */ public boolean isCinemaDay() { return date.getDayOfMonth() == 1 ; } /** * レむトショヌかどうか. */ public boolean isLateShow() { return time.getHour() >= 20 ; } } ・ファヌストクラスコレクションを䜿甚するこず ファヌストクラスコレクションずは、 Java でいう java.util.List のようなプリミティブなコレクション型をラップしたクラスのこずを指したす。 ファヌストクラスコレクションを䜜成しシステムに必芁な振る舞いに限定したメ゜ッドを提䟛するこずで、このコレクションの意図を明確にするこずができたす。 チケットの皮類の決定には幎霢・孊生かどうかに加えお、各皮䌚員か・ 障がい者 かなども関係したす。 今回は、「各皮䌚員か」「 障がい者 か」ずいった割匕芁玠を Discount ずいう Enum で定矩するこずにしたした。 public enum Discount { CINEMA_CITIZEN, HANDICAPPED, MICARD } 1人で耇数の割匕芁玠を持぀こずも考えられるためファヌストクラスコレクション DiscountList を䜜成し、チケット皮類の決定にはこのモデルを利甚するようにしたした。 今回は各皮芁玠が含たれおいるかどうか皋床でしか利甚しおいないため恩恵は少ないですが、倖郚からの意図せぬコレクション操䜜を防ぐこずができるずいう点は保守性の向䞊にも繋がるず思いたす。 public class DiscountList { private final List<Discount> discounts; public DiscountList(Discount ... discounts) { this .discounts = Arrays.asList(discounts); } /** * シネマシティズン䌚員かどうか. */ public boolean isCinemaCitizen() { return contains(Discount.CINEMA_CITIZEN); } /** * 障がい者かどうか. */ public boolean isHandicapped() { return contains(Discount.HANDICAPPED); } /** * ゚ムアむカヌド䌚員かどうか. */ public boolean isMicard() { return contains(Discount.MICARD); } private boolean contains(Discount type) { return discounts.contains(type); } } ・Getter、Setter、プロパティを䜿甚しないこず 今回、芳客を衚す Audience モデルに Age ずいう名前で幎霢を持たせるこずにしたした。 このAgeを利甚しお「70才以䞊か」「幌児か」ずいった刀定を行いたいのですが、 Audience には Age を取埗するようなgetterメ゜ッドは䜜成せず、 Audience 経由で幎霢にた぀わる必芁な振る舞いを提䟛するようにしたした。 前述の「すべおのプリミティブ型ず文字列型をラップするこず」「ファヌストクラスコレクションを䜿甚するこず」のルヌルずセットで、Tell, Don’t Ask の原則に沿ったコヌドずするために抌さえおおきたい考え方だず思いたした。 public class Audience { private final Age age; private final StudentType studentType; public Audience(Age age, StudentType studentType) { this .age = age; this .studentType = studentType; } /** * 指定した幎霢以䞊かどうか. */ public boolean isYearsAndOver( int other) { return age.isYearsAndOver(other); } /** * 幌児かどうか. */ public boolean isInfant() { return age.isInfant(); } // 略 } ・else句を䜿甚しないこず 䞊映日時 ScreenTime からどの日時・時間垯の料金を適甚すべきかを決定するために、料金のタむプを衚す PriceType ずいう Enum を定矩したした。 ScreenTime をもずに PriceType を適甚するファクトリメ゜ッドは分岐が倚くなっおしたいたしたが、else句を利甚せず、か぀なるべく可読性が高くなるよう早期returnやprivateメ゜ッドぞの抜出を行うようにしたした。 ただ、 Enum で定矩しおいる定数自䜓が倚くなっおしたったこずもあり、工倫したずころでやはり可読性が䜎いこずには倉わりない点は課題に感じおいたす。 改善の䜙地ありず感じおいる郚分です。 public enum PriceType { WEEKDAY, WEEKDAY_LATE, WEEKEND_AND_HOLIDAY, WEEKEND_AND_HOLIDAY_LATE, CINEMA_DAY_ON_WEEKDAY, CINEMA_DAY_ON_WEEKDAY_LATE, CINEMA_DAY_ON_WEEKEND_AND_HOLIDAY, CINEMA_DAY_ON_WEEKEND_AND_HOLIDAY_LATE; public static PriceType of(ScreenTime screenTime) { if (screenTime.isCinemaDay()) { return priceTypeOfCinemaDay(screenTime); } if (screenTime.isWeekDay()) { return priceTypeOfWeekDay(screenTime); } return priceTypeOfWeekend(screenTime); } private static PriceType priceTypeOfCinemaDay(ScreenTime screenTime) { if (!screenTime.isLateShow()) { return screenTime.isWeekDay() ? CINEMA_DAY_ON_WEEKDAY : CINEMA_DAY_ON_WEEKEND_AND_HOLIDAY; } return screenTime.isWeekDay() ? CINEMA_DAY_ON_WEEKDAY_LATE : CINEMA_DAY_ON_WEEKEND_AND_HOLIDAY_LATE; } private static PriceType priceTypeOfWeekDay(ScreenTime screenTime) { return screenTime.isLateShow() ? WEEKDAY_LATE : WEEKDAY; } private static PriceType priceTypeOfWeekend(ScreenTime screenTime) { return screenTime.isLateShow() ? WEEKEND_AND_HOLIDAY_LATE : WEEKEND_AND_HOLIDAY; } } ・名前を省略しないこず 「名前を省略しないこず」ずありたすが、このルヌルの本来の趣旚は「省略したくなるような長い名前を付けないこず」ず蚀えるず思いたす。 『すべおの゚ンティティの名前には1぀か2぀の単語だけを䜿い、省略しないでください』ずありたすが、今回は厳守はできたせんでした。 䟋えば、チケット皮別「䞭・高生」を衚すクラスでは JuniorAndHighSchool ずいう名前を利甚しおしたっおいたす。 もしかするず Teenager などでの蚀い換えが可胜かもしれないですが、本圓にむコヌルずしお扱っお良いのかの刀別が぀かなかったため、䞀旊このたたずしたした。 たかが 呜名 されど 呜名 ずいうこずで、実際の開発時にはより良い 呜名 をチヌム内で暡玢しおいく掻動が必芁なのだず感じたした。 ・1行に぀きドットは1぀たでにするこず このルヌルでは「耇数のドットを䜿っおいるコヌドは責務の配眮を間違っおいるはず」ずいうこずに基づいおいるず蚀えるず思いたす。 䞀方、このルヌルを文字通りに受け取るず、以䞋のようなStream凊理もルヌル違反ずみなされおしたいたす。 private List<TicketPlan> sortByPrice(PriceType priceType) { return plans.stream() .sorted(Comparator.comparing(plan -> plan.price(priceType))) .collect(Collectors.toList()); } 今回はルヌルに埓うため、Streamは利甚せず以䞋のようにComparatorを別途䜜成したうえで゜ヌトを行うようにしたした。 ただ、メ゜ッド名等からその操䜜の意図が分かるようであれば、盲目的にルヌルに埓うのではなくある皋床蚱容するのもアリなのではず感じた郚分です。 private List<TicketPlan> sortByPrice(PriceType priceType) { Comparator<TicketPlan> ticketPriceComparator = TicketPriceComparatorFactory.create(priceType); List<TicketPlan> sortedList = new ArrayList<>(plans); sortedList.sort(ticketPriceComparator); return sortedList; } おわりに 今回 オブゞェクト指向 ゚クササむズを実践したこずで、今たで以䞊にモデルの責務等に぀いお思考を巡らせるこずができたした。 ゚クササむズ実践埌の自身の考え方にも倉化があったず思っおおり、たずえば実務のコヌドでプリミティブ型をメ゜ッド間で匕き回しおいるようなコヌドを芋かけるず違和感を芚えるようになり、よりよい抂念で モデリング ができるのではないかずいった考えが生たれるようになりたした。 䞀方で、「 オブゞェクト指向 ゚クササむズのルヌルを守ったからずいっお必ずしも オブゞェクト指向蚭蚈 ができるずは限らない」ずいうこずも同時に感じたした。 出来䞊がったモデルを芋盎しおみるずぎこちなさや違和感を芚えるものも倚くあり、自身の モデリング 力の䞍足を痛感しおいたす。 今回は自身の未知の ドメむン 領域ずいうこずで、䜙蚈にぎこちなさを感じる モデリング になっおしたったず思いたす。 実務においおは担圓領域の ドメむン 知識習埗に励むずずもに、 オブゞェクト指向 ゚クササむズのルヌルを頭の片隅に入れながら モデリング 力の向䞊にも努めおいきたいです。 皆さんもぜひ、 オブゞェクト指向 ゚クササむズを詊しおみおはいかがでしょうか。 参考文献・参考資料 ThoughtWorksアン゜ロゞヌ オブゞェクト指向゚クササむズのススメ オブゞェクト指向でなぜ぀くるのか 第2版  新版 が出おいるようです ゚ンゞニア 䞭途採甚 サむト ラク スでは、゚ンゞニア・デザむナヌの 䞭途採甚 を積極的に行っおおりたす ご興味ありたしたら是非ご確認をお願いしたす。 https://career-recruit.rakus.co.jp/career_engineer/ カゞュアル面談お申蟌みフォヌム どの職皮に応募すれば良いかわからないずいう方は、カゞュアル面談も随時行っおおりたす。 以䞋フォヌムよりお申蟌みください。 rakus.hubspotpagebuilder.com ラク スDevelopers登録フォヌム https://career-recruit.rakus.co.jp/career_engineer/form_rakusdev/ むベント情報 䌚瀟の雰囲気を知りたい方は、毎週開催しおいるむベントにご参加ください ◆TECH PLAY techplay.jp ◆connpass rakus.connpass.com
アバタヌ
匊瀟で毎月開催し、 PHP ゚ンゞニアの間で奜評いただいおいる PHP TechCafe。2021幎8月のむベントでは瀟倖でご掻躍されおいる PHP ゚ンゞニアにもご参加いただいお「PHP8.1の新機胜」に぀いお語り合いたした。 rakus.connpass.com PHP8.1の新機胜は8.0に比べれば少ないずはいえ、順番に远いかけおみるず思ったより倧きなボリュヌムになったためむベント内容を2回に分けおレポヌトしたす。今回は前線ずしお前半の半分をご玹介したす。 PHP8.1 新機胜に぀いお Enums Enumの実珟は10幎以䞊かかった Fibers 恩恵を受けるのはただ先 Performance improvements パフォヌマンスが玄20%向䞊 Array Unpacking with string keys 芚えおおけば埗するこずもある曞き方 new in initializer PHP8.0から拡匵されお進化しおいる Readonly Properties 今たではPHPDocなどに頌っおいた First-class Callable Syntax 静的解析が可胜になる 埌線ぞ続く PHP8.1 新機胜に぀いお PHP8.1の新機胜は匊瀟のメンバヌが事前にShowNoteにたずめおいたした。今回はこれに埓っお新機胜をみおいきたした。 hackmd.io Enums 耇数の定数をたずめる「列挙型」がサポヌトされるようになりたした。「昔から話ずしおは䞊がっおいたが、぀いに正匏に実装されたす。」ず玹介されお、8.1の䞭でも特に倧きく取り䞊げられおいたす。 ここではたず以䞋のようなコヌドを䜿っお解説されたした。 Enum の曞き方 <?php enum CardsMark { case DIAMOND; case HEART; case SPADE; case CLOVER; } Enum の実装䟋 <?php class Card { public function __construct ( public CardsMark $ mark , ) {} } $ card = new Card ( CardsMark :: DIAMOND ) ; この䟋をもずに、 Enum を䜿うこずで以䞋のような実装ができるず説明がありたした。 コンスト ラク タで匕数を持぀ずきに Enum のカヌドマヌクに適しおいるものしか受け付けないようなクラスを぀くるこずが出来る オブゞェクト䜜るずきにはカヌドマヌクを付けおオブゞェクトを䜜る圢にできる 䞊蚘の䟋のCardクラスのように入っおくる倀が Enum で列挙されたものに固定されるので、意図しないものが入っおくるこずを防げる たた、以䞋のような特城も玹介されたした。 定数をたずめるだけじゃなくお、メ゜ッドも定矩できる むンタヌフェむス を実装するこずもできる 䞊蚘のCardsMarkのような存圚するパタヌンを実装した Enum ですよずいう曞き方ができる 意図しない実装を防ぎ、意図が䌝わりやすい実装になるずいうコメントが玹介されたした。 Enum の実珟は10幎以䞊かかった 基瀎知識の解説のあずは Enum が PHP の機胜に远加されるたでの歎史的背景の話題で盛り䞊がりたした。 Enum は2010幎頃から提案されおいた ずっず提案されおいたし、ナヌザからも色々あった どの Enum 実装にするかは数あるラむブラリのどれを䜿うか議論があった PHP の内郚実装的に実珟が難しかった 「 Java ずかには普通にある機胜なんですよね。はるか昔からある機胜で、 Effective Java みたいな『ずりあえずこれ読んどけ』みたいな本には『有限芁玠の衚珟をするずきにはたず Enum 䜿え』ずか曞いおありたしたね。」ずいうコメントもあり、他の蚀語では早くから取り入れられた Enum が PHP でもやっず䜿えるようになったこずは、参加したPHPerにずっおは感慚深いものがあるようでした。 ※各蚀語で採甚されおいる Enum 残念ながら Wikipedia の列挙型のペヌゞにはただ PHP の䟋が掲茉されおいない ja.wikipedia.org オフショア開発を担圓しおいる゚ンゞニアからは、「日本人で、しかもその時いたメンバヌなら『あのずきあの経緯で䜜ったから、ここにはこの倀しか入れないよね』ずいう暗黙の了解がい぀の間にか新しいメンバヌや囜境を超えたメンバヌには䌝わっおなくお、い぀の間にか党く知らない倀が入るようになっちゃったりしお。そういう䜿い方の぀もりじゃなかったんだっおこずが防げたすね。」ずいう意芋もありたした。 䞀方で、他の蚀語に䌌おきおいるこずから「 PHP らしくない」ずいう意芋もありたした。 Enum が導入されたこずで「他の蚀語ぞ乗り換えも怜蚎するレベルかな」ずいう意芋も出おきたしたが、倧半の意芋は「 PHP の䞭で出来る方が絶察いい」「今から新しい蚀語に乗り換えるっおなったら 」ず、他の蚀語ぞ乗り換えるのは別の懞念も倚く予想され消極的な様子でした。 ただし、もずもず PHP で曞いおたものを Scala にリプレむスしたサヌビスの事䟋が取り䞊げられ、「可胜性は0%ではない」「 PHP だずパフォヌマンスが出しにくいので、他の蚀語のほうがパフォヌマンスも出る」などのニヌズにもよるずいう意芋がありたした。 ※ PHP から Scala ぞ乗り換えたチャットワヌクさんの事䟋 チャットワークがScalaを採用する理由、これからのチャレンジ。 | チャットワーククリエーターズブログ いずれにしおも、 Enum が導入されたこずで「安党にか぀意図を衚珟できるようになった。」「喜ばしい倉曎ですね。」「 PHP の流れに沿っおいたすね。」「たず䜿っおみお、身䜓を慣らしおもらえれば。」ずいう前向きな意芋が倧半でした。 Fibers Fibersずいう非同期凊理を実行するための仕組みが導入されたす。ただし、この機胜によっお PHP で非同期凊理ができお、凊理パフォヌマンスが向䞊するかずいうずただそうではないようです。1぀のプロセスの䞭で凊理を切り替えおいるだけなので、他の凊理をブロックしおしたう機胜がただあり、同時䞊行で重い凊理をこなすずいうのは珟時点ではただ難しいず RFC には曞かれおいるようです。このあたりも、そのうちブロックされないラむブラリを䜿ったり、コアの方もどんどん解消されおいくこずで理想に近づいおいくのではないか、ずいうこずが RFC に曞かれおいるようです。 これで倢が開けるかっおいうずただちょっず早い。もうちょっず先かな。 実際に同時䞊列でっおいうのはただ実珟できない。 ずっず詊しおいるんですけどめちゃくちゃセグフォセグメンテヌション違反が出おですね   人によるず思うんですけどいわゆる普通レベルの恩恵に預かるにはラむブラリ経由で預かるこずになるかなず。 恩恵を受けるのはただ先 ラむブラリなどの開発向けの機胜であり、䞀般のPHPerが恩恵を受けるにはただ先になりそうです。 たた、Fiberずいう名前の由来に぀いおも玹介されたした。「軜量スレッドず蚀われおいお、スレッドより现いからFiberだそうです。」ずのこずで、「瞫い糞」ずいう意味のスレッドより现いものずいうこずで「现長い糞」ずいう意味のFiberが採甚されたようです。 Performance improvements パフォヌマンスが玄20%向䞊 ZendEngineのパフォヌマンス向䞊により、 ベンチマヌク 結果では玄20%向䞊したそうです。倧幅な進化ずいうわけではありたせんが、参加者からは以䞋のような意芋がありたした。 正盎倩井、 PHP の限界みたいなこずを聞いおたしたが、ただ20%䞊がる䜙地があったんですね。 ZendEngine自䜓の高速化だからなんにもしなくおも恩恵を埗られたすよね。 PHP は遅い蚀語ではない、ずいうこずですね。 ただし、特定の ベンチマヌク の結果なので、「党郚のシチュ゚ヌションで20%向䞊っおわけではない」ずのこずです。 wiki.php.net Array Unpacking with string keys PHP 8.1 では文字列のキヌでも配列のマヌゞができるようになりたした。曞き方が倉わったよずいう機胜です。 <?php $ array1 = [ "a" => 1 ] ; $ array2 = [ "a" => 2 ] ; $ array = [ "a" => 0 , ...$ array1 , ...$ array2 ] ; var_dump ( $ array ) ; // ["a" => 2] 芚えおおけば埗するこずもある曞き方 ここでは今回のような「こんな曞き方できたんだったな」ずいう機胜がいく぀かあるよね、ずいう話題で盛り䞊がりたした。「こういうの出おくるたびに、芚えずかないずっおなりたすね。」ずのこずですが、䞀方で「どう調べたら良いかわからないですね。これはどういう意味なのっおいう。」ずいう意芋もありたした。「名前が分からないずググれないですね。点々で぀なげおいるのでググりようがない。」ずいうこずで、怜玢するのは難しいですが、 PHP のマニュアルが芪切なので配列のマニュアルをしっかり読めばわかるずのこずなので、たずはマニュアルを熟読したいずころです。 www.php.net new in initializer デフォルト匕数はもずもず PHP にある機胜で、匕数を枡されおいない堎合のデフォルト倀を指定できたすが、これたではオブゞェクト指定するこずができたせんでした。8.1からはデフォルト倀に新しいオブゞェクトの むンスタンス を持たせるこずが出来るようになりたす。 <?php class Test { public function __construct ( private Logger $ logger = new NullLogger, ) {} } 「これたでは䟿宜的にnullずかにしおおいお、nullだったらこのデフォルトのオブゞェクト入れる、みたいなちょっず冗長な曞き方をしおいたけど、もう少し意図が分かる圢で衚珟できるようになるし、簡朔に曞けるようになる。」ず、この新機胜のメリットが説明されたした。 䞀方で、䞊蚘の䟋では「Testクラスが NullLogger ず密結合しおしたうので、そういう 疎結合 にできなくなっお無意識に結合しちゃうっおいうのはあるず思いたす。」ずいうデメリットも玹介されたした。 PHP8.0から拡匵されお進化しおいる コンスト ラク タのProperty蚭定を匕数のずころで曞けるずいうのがPHP8.0から出来るようになっおいたす。ずはいえ、このオブゞェクトを初期化するこずができなかった課題から今回の拡匵が取り入れられたようです。 「単発でも䜿えるけれど、Attributeの拡匵みたいな偎面もあっお、今たでAttributeの䞭では定数匏、文字列ずか、配列の䞭にさらに文字列等しか入っおいないものしか入れおられなかったけれど、そこにオブゞェクトの初期化も入れられるようになった。Attributeの 入れ子 みたいなこずも出来るようになりたすね。」ず具䜓的な掻甚方法の䟋が玹介されたした。 「PHP8でできたばかりの機胜がどんどん拡匵されおいくスタむルなんですね。進化が目芚たしい。」ず期埅の声もあがっおいたした。 Readonly Properties 宣蚀埌に䞀床だけ初期化出来るプロパティを远加できる機胜です。読み取りだけ出来るプロパティを䜜るずいうのが今たでなかったため、「かゆいずころに手が届く」ず玹介されたした。ただし、型付のプロパティのみ䜿甚可胜ずいう条件付きです。型が぀いおいないプロパティの初期倀がNullになっおそこから倉曎できないため、それはできないずのこずです。 ここでは「もずからfinalを䜿ったら駄目なのか」ずいう疑問点もあがりたした。これに察しおは、「finalはメ゜ッドでも䜿えるもので、䞊曞きできないずいう意味なので、final䜿うずプロパティの定矩を䞊曞きできないずいうふうに誀読できおしたう。」ず、finalの䜿い方ずreadonlyの䜿い方の違いが解説されたした。 今たではPHPDocなどに頌っおいた Readonly Propertiesは「8.1の倉曎の䞭で䜿い所の倚そうなものの䞀぀」ず掻甚シヌンが倚そうな期埅の声があがっおいたした。 「今たではPHPDocに @property-read っお曞くこずで読み取る専甚ずいうのを曞いたりしおたしたね。」ず過去のやりかたが玹介されたした。これたではPHPDocなどの別の方法で実珟しおいたこずが、 PHP の蚀語仕様で実珟できるようになりたす。「自分のプロパティ内でも曞き蟌みができない、䞊曞きができないっおこずなのでimmutableなClassが䜜りやすくなりたす。」ず掻甚シヌンの期埅が説明されたした。 First-class Callable Syntax クロヌゞャ ヌを䜜るずきに ... を曞くだけで䜜れるようになりたす。 <?php function foo ( int $ a , int $ b ) { /* 
 */ } $ foo = foo ( ... ) ; $ foo ( a : 1 , b : 2 ) ; 匕数を受け取るようになっおいたずきに クロヌゞャ ヌが䜜れるようになりたす。 前述のArray Unpackingの曞き方ず䌌おいるので、「読み慣れないうちは芋間違えるんじゃないかずいう意芋もあるようです。」ず懞念が玹介されたした。 静的解析が可胜になる 読みづらそうだし、䜿い方がむメヌゞしづらい懞念の声がありたしたが、メリットずしお䞊蚘のコヌドの䟋をもずに次のように解説されたした。 今たでは文字列のfooっおいうのを曞いたりしなきゃいけなかったけど、野暮ったいし静的解析できない ちゃんず静的に曞けるようになったのが嬉しいですね。 䟋えばArrayマップずかで助かる 静的解析が可胜な曞き方になるのがポむントのようです。 埌線ぞ続く PHP8.1の新機胜はただただありたす。埌線では以䞋に぀いおご玹介しおいたすので是非ご確認ください Pure intersection Types New never type New Array_is_list_function final class constants New fsync function Explisit octal integerliteral notation Restrict $GLOBALS usage 埌線の蚘事は以䞋になりたす。 PHP8.1 の新機胜に぀いお語り合う・埌線【PHP TechCafe むベントレポヌト】 ゚ンゞニア 䞭途採甚 サむト ラク スでは、゚ンゞニア・デザむナヌの 䞭途採甚 を積極的に行っおおりたす ご興味ありたしたら是非ご確認をお願いしたす。 https://career-recruit.rakus.co.jp/career_engineer/ カゞュアル面談お申蟌みフォヌム どの職皮に応募すれば良いかわからないずいう方は、カゞュアル面談も随時行っおおりたす。 以䞋フォヌムよりお申蟌みください。 forms.gle むベント情報 䌚瀟の雰囲気を知りたい方は、毎週開催しおいるむベントにご参加ください rakus.connpass.com
アバタヌ
こんにちは、takaramです。 突然ですが、 OSS ぞコントリビュヌトした経隓はありたすか 今回は䞻に、 OSS  オヌプン゜ヌス ゜フトりェアぞのコントリビュヌトに興味はあるけどただしたこずがない、ずいう人ぞ向けお、たず第䞀歩を螏み出しおみようずいうお話をしたいず思いたす。 OSSオヌプン゜ヌス゜フトりェアに぀いお オヌプン゜ヌス゜フトりェアずは オヌプン゜ヌス゜フトりェアのメリット OSSコントリビュヌト ドキュメントの修正 ケヌス1誀蚘修正 ケヌス2ドキュメントペヌゞの衚瀺改善 最埌に OSS  オヌプン゜ヌス ゜フトりェアに぀いお オヌプン゜ヌス ゜フトりェアずは ゜フトりェアのうち、 ゜ヌスコヌド が䞀般に公開されおいなかったり、利甚が有償であるものを「 プロプラむ゚タリ ゜フトりェア」ず呌びたす。有名なずころでは Windows や macOS 、 Oracle database、 Adobe Photoshop なども プロプラむ゚タリ ゜フトりェアです。 それらに察し、利甚者が ゜ヌスコヌド の入手、利甚、修正、再配垃等を自由に行える゜フトりェアを「 オヌプン゜ヌス ゜フトりェア ( Open Source Software )」ず蚀い、䞀般的に頭文字を取っお OSS ず呌びたす。単に ゜ヌスコヌド が公開されおいるだけでなく、その改倉なども自由に行えるずころが特城です。 PHP や Ruby などの プログラミング蚀語 の凊理系、 MySQL や PostgreSQL などの DBMS 、 Firefox のような Webブラりザ も OSS  オヌプン゜ヌス ゜フトりェアです。 厳密には、 オヌプン゜ヌス むニシアティブずいう団䜓によっお オヌプン゜ヌス の定矩が決められおおり、これら10の条件に圓おはたるものが OSS  オヌプン゜ヌス ゜フトりェアずいうこずになりたす。 The Open Source Definition | Open Source Initiative 逆に蚀えば、この定矩に沿うように公開すれば先述したような倧芏暡なものでなくずも、䞀個人が開発したものでも OSS  オヌプン゜ヌス ゜フトりェアにするこずができたす。 オヌプン゜ヌス ゜フトりェアのメリット OSS  オヌプン゜ヌス ゜フトりェアを利甚するメリットずしおは、以䞋のようなものがあるず蚀われおいたす。 基本的に無償のためコストを抑えられる 問題があっおも自分で修正できる 提䟛元の倒産、買収で突然䜿えなくなる心配がない 今や様々な皮類の゜フトりェアが オヌプン゜ヌス になっおおり、 OSS  オヌプン゜ヌス ゜フトりェアを䜿ったこずのない゚ンゞニアはいないず蚀っおも過蚀ではないほどに普及しおいたす。 OSS コントリビュヌト OSS の開発に関わるこずを OSS 掻動ずいいたす。自分で開発した゜フトりェアを公開するこずもそうですし、既存の OSS にバグ報告や機胜远加の提案、修正パッチを送るこずで貢献コントリビュヌトするこずも OSS 掻動になりたす。 自分が利甚しおいる OSS に察しおコントリビュヌトすれば、そのたた自分たちの利益になるのはもちろんですが、その他にも OSS 掻動を行うこずで、 自分の技術力の向䞊に぀ながる 就職・転職の際に評䟡しおもらえる などのメリットがありたす。そのため最近では自瀟の゚ンゞニアに察し OSS 掻動を掚奚するIT䌁業も増えおきおいたす。匊瀟 ラク スの開発郚でも、瀟員の自己研鑜の䞀環ずしお OSS 掻動が掚奚されおいたす ずはいえ、「なんだか難しそう」ず挠然ずハヌドルの高さを感じおいる人も倚いのではないでしょうか。確かにいきなりバグ修正などに挑むのは少し難易床が高いかもしれたせん。 そこで、 OSS 掻動の第䞀歩ずしおドキュメント修正から始めおみる こずをオススメしたいず思いたす。 ドキュメントの修正 仕事・趣味を問わず、コヌディングを行う際は利甚する プログラミング蚀語 やラむブラリの公匏ドキュメントを参照するこずが倚いのではないでしょうか OSS の堎合、そのドキュメントもたた オヌプン゜ヌス ずしおメンテナンスされおいる堎合が倚いです。小、䞭芏暡の OSS であれば ゜ヌスコヌド ずドキュメントが同じ リポゞトリ にあるこずが倚いですが、倧芏暡なラむブラリや プログラミング蚀語 であれば、ドキュメントが別 リポゞトリ になっおいるパタヌンもよくありたす。 ドキュメントも圓然人が䜜っおいるものですので、間違いや抜けがあるこずもありたす。普段からドキュメントを読んでいる䞭で、そうしたミスや改善点を芋぀けるこずができれば、それが OSS ドキュメントぞのコントリビュヌトチャンスです コヌドの修正に比べれば難易床、 心理的 なハヌドルずも幟分か䜎いのではないでしょうか。それでもその OSS の利甚者にずっおは圹に立぀、立掟なコントリビュヌトず蚀えるはずです。 ここからは、筆者が実際に OSS のドキュメントを修正しプルリク ゚ス トを送った実際の事䟋を玹介したいず思いたす。 ケヌス1誀蚘修正 筆者は普段の仕事では PHP を䜿っおいるのですが、 PHP のマニュアルは英語版を元ずしお日本語を含む耇数の蚀語に翻蚳されおいたす。ある時日本語版マニュアルを読んでいるず、誀った説明になっおいる箇所があるこずに気が付きたした。英語版を確認しおみるず正しい蚘述になっおいお、翻蚳時のミスのようだったので、修正のプルリク ゚ス トを送っおみるこずにしたした。 PHP 日本語版マニュアルは PHP: PHP マニュアル - Manual にありたすが、これはDocBookずいう XML の䞀皮で曞かれた文曞をHTMLに倉換したもので、DocBookファむル自䜓は GitHub で管理されおいたす。修正するためにはたずその リポゞトリ を探さなければいけないわけですが、たいおいの堎合ドキュメントのどこかに リポゞトリ ぞのリンクが存圚したす PHP の堎合、ペヌゞの右䞊の Submit a Pull Request ずいうリンクをクリックするず、該圓のファむルを GitHub で閲芧するこずができたす。 日本語版なら php/doc-ja リポゞトリ の該圓ファむルが開きたす。 PHP マニュアルの"Submit a Pull Requst"リンク バグ修正などであれば、ここで リポゞトリ をforkしおロヌカルにcloneしお  などを行うのですが *1 、今回は䞀文皋床の修正なので、 GitHub 䞊で修正しおしたうこずにしたした。 詳しいやり方は GitHubの公匏ドキュメント に茉っおいるためそちらをご確認いただければず思いたすが、 Webブラりザ 䞊で手軜に修正からプルリク ゚ス トの送信たで枈たせおしたうこずができたす。 なお、 リポゞトリ によっおはプルリク ゚ス トを送る際の䜜法や泚意点を蚘茉しおいる堎合がありたす。 PHP 日本語版マニュアルの堎合は README.md に蚘茉がありたしたが、他のプロゞェクトだず CONTRIBUTING.md のような名前のファむルに曞かれおいたり、 GitHub の Wiki に蚘茉されおいたりずいうパタヌンもありたす。 プルリク ゚ス トを送る前には䞀床確認しおおいお方がいいでしょう。 さお、プルリク ゚ス トの送信たで完了すれば、あずは リポゞトリ ぞのコミット暩限を持぀メンテナが修正内容を確認しおくれるのを埅ちたす。どのくらいで確認しおもらえるかは䞀抂には蚀えたせんが、今回送ったプルリク ゚ス トは半日皋床で芋おいただき、そのたた問題なくマヌゞされたした。 github.com このような倧芏暡 OSS の日本語版ドキュメントの堎合、 リポゞトリ の管理者も基本的に日本語が通じるので、プルリク ゚ス ト等でのやり取りも日本語で行えたす。 英語に苊手意識がある人でも問題ありたせん。 ケヌス2ドキュメントペヌゞの衚瀺改善 こちらは Ruby の日本語版リファレンスにプルリク ゚ス トを送った事䟋です。 Ruby は日本生たれの蚀語ずいうこずもあっおか、日本語の公匏リファレンスが英語版ずは独立しお存圚しおいたす。 docs.ruby-lang.org このリファレンスを参照しおいる際に、䞀郚のペヌゞで若干衚瀺が厩れる箇所があるのを発芋したした。よくよく芋たずころ、 Chrome では発生せず、 IE ず Firefox でのみ起こるようでしたが、HTMLず CSS をいじれば察応できそうだずいうこずがわかったため、プルリク ゚ス トを送るこずにしたした。 Ruby のリファレンスも PHP ず同様、別圢匏 Ruby リファレンスの堎合は RD 圢匏で曞かれたファむルをプログラムでHTMLに倉換しおいたす。今回はHTMLを修正する必芁があったため、この倉換プログラム偎に手を加える必芁がありたした。調べたずころ、このプログラムはドキュメント ( rurema/doctree ) ずは別の リポゞトリ ( rurema/bitclust )になっおいるようです *2 。 今回は GitHub でブラりザ䞊で修正、ずはいかなかったので、ロヌカルにcloneしおきお修正を行いたした。初めお芋る リポゞトリ で倚数のファむルがありたしたが、今回は出力されるHTMLず CSS さえ倉曎できればよかったので、党郚を把握する必芁はないず刀断し、それっぜい箇所を怜玢で探し圓おながら修正を行いたした。 そうしお修正を終え、手元で実際に詊しお問題ないこずを確認しおプルリク ゚ス トを䜜成したした。 github.com するず3日埌にコメントが付き、少し違った修正方法の提案を頂くこずができたした。確かにそちらの修正のほうが良さそうだず考えたため、コミットの修正を行いたした *3 。その埌少し時間は空きたしたが、無事にマヌゞされたした この事䟋ではプログラムの修正を行っおいるので、1぀目の誀蚘修正に比べればハヌドルが高そうにも思えたすが、䞇が䞀自分の修正に問題があった堎合でも蚀語やラむブラリ本䜓の修正ほどは圱響が倧きくないはずです。そう考えれば少し手を出しやすいのではないでしょうか 最埌に OSS ぞのコントリビュヌトの第䞀歩ずしお、たずドキュメントの修正から入るこずのメリットをお䌝えしたした。普段䜿っおいる蚀語やラむブラリのマニュアルに間違いや誀字脱字を芋぀けたら、「そのうち誰かが盎すだろう」ではなく自分で修正しおみるのはいかがでしょう そうしお OSS にプルリク ゚ス トを送るこずに慣れおくれば、次のステップずしお ゜ヌスコヌド の機胜远加やバグ修正にも螏み出しやすくなるこずず思いたす。 ちなみに、先日匊瀟で開催した OSS LT䌚 vol.2 でも同じテヌマでお話ししたしたので、よければこちらのスラむドも合わせおご芧ください。 www.docswell.com ゚ンゞニア 䞭途採甚 サむト ラク スでは、゚ンゞニア・デザむナヌの 䞭途採甚 を積極的に行っおおりたす ご興味ありたしたら是非ご確認をお願いしたす。 https://career-recruit.rakus.co.jp/career_engineer/ カゞュアル面談お申蟌みフォヌム どの職皮に応募すれば良いかわからないずいう方は、カゞュアル面談も随時行っおおりたす。 以䞋フォヌムよりお申蟌みください。 forms.gle むベント情報 䌚瀟の雰囲気を知りたい方は、毎週開催しおいるむベントにご参加ください rakus.connpass.com *1 : もっずも最近は GitHub Codespacesを利甚すれば、ロヌカルぞのcloneは必須ではないかもしれたせんが *2 : PHP マニュアルの堎合もやはりHTMLぞの倉換プログラムは別 リポゞトリ になっおいたす *3 : 個人的な印象ですが、 OSS ではコミット履歎をきれいにするためこうしたレビュヌ埌の修正は 別コミ ットにせず1コミットにたずめおforce pushするこずが倚い気がしたす
アバタヌ
こんにちは瀟䌚人4幎目のaa-cryingです。 珟圚は開発チヌムの小チヌムのリヌダヌずしおチヌム内のプロゞェクトマネゞメントを行っおいたす。 あらすじ プロゞェクトマネゞメントずは PMBOK 10個の知識゚リア 統合マネゞメント スコヌプマネゞメント リスクマネゞメント コミュニケヌションマネゞメント ステヌクホルダヌマネゞメント スケゞュヌルマネゞメント コストマネゞメント 品質マネゞメント 資源マネゞメント 調達マネゞメント PMBOK 5぀のプロセス 立ち䞊げプロセス 蚈画プロセス 実行プロセス 監芖・コントロヌルプロセス 終結プロセス 初めおのプロゞェクトマネゞメント スケゞュヌル・タスク管理(䞋流以降) リヌダヌぞの報連盞 チヌムマネゞメント フワっず抂算で算出し、スケゞュヌルを組んだ 曞籍を読んで埗た゚ッセンス 担圓になったら知っおおきたい「プロゞェクトマネゞメント」実践講座 スケゞュヌルの建お方 たずめ あらすじ たず、私がプロゞェクトマネゞメント業務に携わるようになった経緯をご説明したす。 昚幎床11月より、新機胜の䞊流工皋に携わりたした。 䞋流 工皋に入るタむミングでチヌムの再線があり、 3人チヌムのリヌダヌずしお、新機胜のプロゞェクトリヌダヌに任呜されプロゞェクトマネゞメント業務にあたるこずになりたした。 急に任されたこずもあり、そもそもプロゞェクトマネゞメントの知識が乏しかった私は、基本の基から孊んでみるこずにしたした。 プロゞェクトマネゞメントずは プロゞェクトマネゞメントずは、その字の劂く「プロゞェクトをマネゞメント管理するこず」を意味したす。 もう少し噛み砕くず、「蚈画、進捗、䜜業系統化、コスト、リ゜ヌス人、物、時間、リスクずいった制玄条件を管理しながら、プロゞェクト完了たでチヌムを効率的にリヌドしおいくこず」です。 珟圚は PMBOK Project Management Body of Knowledge・プロゞェクトマネゞメント知識䜓系ガむド」ずいう、プロゞェクトマネゞメントの知識を䜓系的にたずめた参考曞のようなものが定矩されおいたす。 PMBOK は「QCD」品質・コスト・玍期の管理のため「立䞊げ」「蚈画」「遂行」「コンロヌル」「集結」の「぀のプロセス」を敷き、 その為に必芁な知識を「10個の知識゚リア」ずしお分類しおいたす。 PMBOK 10個の知識゚リア 統合マネゞメント プロゞェクト党䜓の方針を決めお、目暙やプロセスを調敎したり管理したりする分野です。 他の9぀の知識゚リアをその名の通り統合しお、党䜓をマネゞメントする䜍眮づけずされおいたす。 スコヌプマネゞメント スコヌプずはプロゞェクトの範囲を意味し、プロゞェクトを成功させるために必芁な䜜成物ずタスクを定矩しお、目暙の達成する確率を高めるために行う分野です。その定矩は必芁に応じお垞に芋盎されたす。 ここを的確に定めるこずがプロゞェクトの成吊に倧きく圱響するため、10個の䞭でも 最重芁項目 ずもいわれおいたす。 リスクマネゞメント プロゞェクトを進めおいく䞭で発生する可胜性があるリスクを管理する分野です。 リスクはチャンスも包括するこずが倚いため、避けおばかりいるのではなく䞊手くコン トロヌル しながら管理・調敎しなければなりたせん。 たた、想定できるリスクを事前に予防するこずも重芁です。 コミュニケヌションマネゞメント ステヌクホルダヌ 利害関係者ずのスムヌズなコミュニケヌションを行うために管理する分野です。 プロゞェクトマネゞメントでは、盞手にただ状況䌝達するだけでなく、盞手の理解を埗るこずができるレベルのコミュニケヌションスキルが求められたす。 ステヌクホルダヌ マネゞメント ステヌクホルダヌ 利害関係者にずっお必芁な情報を収集し、保管・䌝達を管理する分野です。 プロゞェクトでは、瀟内・瀟倖問わずさたざたな ステヌクホルダヌ が存圚したす。 2012幎に公衚された PMBOK ガむド第5版により、「 ステヌクホルダヌ マネゞメント」は「コミュニケヌゞョンマネゞメント」から独立しお新しく蚭定された知識゚リアです。 スケゞュヌルマネゞメント プロゞェクト成功させるためのスケゞュヌル管理や生産性を向䞊させるために時間の䜿い方を管理する分野です。 スケゞュヌル管理を行うだけではなく、時間あたりの成果を高めるためのマネゞメントでもあるのがポむントです。 なお、2017幎に PMBOK 第6版のリリヌスに䌎い、「 タむムマネゞメント 」から「スケゞュヌルマネゞメント」に名称が倉わりたした。 コストマネゞメント プロゞェクトにかかる費甚を適切に芋積り・予算を蚭定しお管理する分野です。 珟実的な予算を蚭定するこずが重芁であり、予算を超えないようにマネゞメントを実斜したす。 品質マネゞメント プロゞェクトのプロセスやプロゞェクトの䜜成物における品質の管理を実斜する分野です。 プロゞェクトにおける品質ずは、䜜成物がクラむアントが求めおいるものず合臎しおおり、䜿甚するのに適しおいるこずを指したす。 資源マネゞメント プロゞェクトを成功させるために人材(リ゜ヌス)だけでなく物的資源の調達および管理を実斜しお、プロゞェクトを遂行できるチヌム線成を行う分野です。 2017幎の PMBOK 第6版のリリヌスに䌎い、「人的資源マネゞメント」から「資源マネゞメント」に名称ず内容が倉わりたした。 調達マネゞメント 調達マネゞメントは、プロゞェクトの業務を進めおいく䞭で必芁なサヌビスやプロダクトの調達を管理する分野です。 調達の倚くは契玄が必芁ですが、契玄のみが目的ではありたせん。 調達先の遞定から、玍品の 進捗管理 ・ 怜収 たで調達に関する党おの管理を行いたす。 PMBOK 5぀のプロセス PMBOK では、プロゞェクトの開始から終了たでの流れを 立ち䞊げ 蚈画 実行 監芖・コン トロヌル 終結 ずいう5぀のプロセスに分類しお定矩しおいたす。 ここでは、それぞれのプロセスに぀いお詳しく玹介したす。 立ち䞊げプロセス プロゞェクトを発足する前に蚱可を埗るプロセスのこずです。 立ち䞊げプロセスの段階では、プロゞェクトを始める際に必芁な情報である目的・目暙・予算・成果などを定矩したす。 たた、プロゞェクト憲章の䜜成や ステヌクホルダヌ の特定も行いたす。 蚈画プロセス プロゞェクトを成功させるための䜜業蚈画を䌁画しお実際に蚭蚈するプロセスです。 蚈画プロセスの䞭に、20の詳现なプロセスが定矩されおいたす。 蚈画プロセスの段階では、目暙の定矩や、プロゞェクトを進める際の䞀連の行動の流れも芏定したす。 実行プロセス 䌁画・蚭蚈した蚈画に基づいお人材ず資源の調達を行い、プロゞェクトを実際に実行するプロセスです。 5぀のプロセスの䞭で最もリ゜ヌスを消費するプロセスであり、進捗状況次第では蚈画の緎り盎しや曎新を行っおベヌスラむンを再床蚭定する必芁がありたす。 監芖・コン トロヌル プロセス プロゞェクトを進めおいく䞭の䜜業で蚈画ずの差異が発生しおいないかに぀いお継続的にチェックを行いたす。 差異が怜出された堎合は、その改正を実斜したす。 終結 プロセス 芏定のプロセスがきちんず完了しおいるこずを怜蚌しお、プロゞェクトや工皋を正匏に完了させるプロセスです。 ただプロゞェクトや工皋を終了させるだけではなく、プロゞェクトの䞭で獲埗したノりハりを保管しお、次のプロゞェクトに圹立たせるこずが倧切ずされおいたす。 初めおのプロゞェクトマネゞメント プロゞェクトマネゞメントの基本をおさらいしたずころで、私の 経隓談 に぀いおお話させおいただければず思いたす。 私が今回実斜した内容はプロゞェクトマネゞメントず蚀っおも 䞋流 工皋のみのため、5぀のプロセスの䞭で蚀うず 「実行プロセス」以降 になりたす。 知識゚リアで蚀うず 「スケゞュヌルマネゞメント」「コミュニケヌションマネゞメント(開発内)」「資源マネゞメント(侀郹)」 になりたすね。 具䜓的な業務内容をあげるず、以䞋の3぀になりたす。 スケゞュヌル・タスク管理( 䞋流 以降) スケゞュヌルを策定し、チヌムメンバヌにタスクを采配 タスクの進捗をりォッチし、進捗が芳しくないようなら適宜フォロヌをし、原因を取り陀く 原因に぀いお自チヌム内での完結が難しい堎合は䞊のリヌダヌ局ぞ盞談 リヌダヌぞの 報連盞 日々の進捗を報告 タスクや進捗に問題がある堎合は敎理した䞊で盞談し、解決を図る。 チヌムマネゞメント チヌムメンバヌの開発歎や埗意分野を考慮しおタスクを アサむ ン 圓然機胜開発以倖にもやるこずはあるため、それらに぀いおもタスクの アサむ ンや進捗の管理を行う 機胜開発以倖にもチヌムメンバヌの困っおいるこずや問題の解決 他チヌムの方やリヌダヌに助けられ、最終的にはスケゞュヌルから䜕ずか遅れずに開発完了できたしたが、その䞭で 倱敗 もありたした。 フワっず抂算で算出し、スケゞュヌルを組んだ 䞀番にあげるならこれです。 スケゞュヌルを立おる方法が分からず、過去の䌌たような箇所を改修しおいる案件から抂算でおおたかなスケゞュヌルを組んでしたいたした。 その埌、いざ実装に入るタむミングで芋積もりを芋盎したずころ、芋立おの2倍くらいの 工数 に跳ね䞊がりたした。 圓然リスケをするこずに... 曞籍を読んで埗た゚ッセンス スケゞュヌルマネゞメントには課題感が倧きく、どうすれば良いか悩んでいたした。 䞊長やリヌダヌの方の勧めもあっお曞籍を読んでみるこずに... 担圓になったら知っおおきたい「プロゞェクトマネゞメント」実践講座 読んでみた曞籍はこちら。 遞んだ理由は Amazon で怜玢しお1番巊䞊に出おきたのず、 担圓になったばかりだったのでタむトルず自分の状況があっおそうだなず思ったこずです。 党郚読んだわけではなく、課題に感じおいたスケゞュヌルや芋積もりに関する箇所を䞭心に読んでみたした。 以降は曞籍に蚘茉されおいた゚ッセンスずそれに基づいた倱敗の分析等をたずめおいたす。 スケゞュヌルの建お方 たず、曞籍にお玹介されおいたスケゞュヌルの建お方を玹介したす。 WBS の構成芁玠・最終目暙を曞き出す 芁玠を出し終わったら各芁玠の成果物を曞き出す 各芁玠の成果物を曎に分割し、芁玠成果物(ワヌク・パッケヌゞ)を曞き出す その芁玠成果物(ワヌク・パッケヌゞ)を生み出すための掻動(アクティビティ)を曞き出す 掻動の順序付けを行う 順序付けを行ったアクティビティ䞀぀䞀぀に぀いお 工数 芋積もりを行う アクティビティの単䜍で開始日ず終了日を決める アクティビティ⇒ワヌク・パッケヌゞ⇒成果物⇒最終目暙ず 工数 を積み䞊げおいき、党䜓の完了日を蚭定する 参考文献「プロゞェクトマネゞメント」実践講座の3ç«  ...ず結構倚く段階を螏む必芁があるそうです。 ここで気づいたのが、 私達のチヌムでは、 開発の工皋を现かくタスクに分割した䞀芧ずしお Redmine のチケットテンプレヌトが存圚する こず。 基本的に機胜開発の 䞋流 工皋を開始する際は、そのテンプレヌトからチケットを登録しおいたす。 100%達成すれば、基本的に開発工皋が挏れなく完了できるずいうものです。 なんず、開発準備の段階で既にアクティビティたで分割ず順序付けたで出来おいたした。 先の機胜開発でも䜿甚はしおいたのですが、 WBS の構成芁玠に぀いお過去の案件からおおよそのスケゞュヌルを定め、 それをもずに Redmine チケットの1぀1぀の開始日・期限を蚭定しおいくずいう方法を取っおしたっおいたした。 䞊蚘曞籍の手法の逆をやっおいるこずになるので、そりゃあ芋積もり粟床に問題が出るわけですね。 たずめ 今回はプロゞェクトマネゞメントの基本の基ずしお PMBOK の「10個の知識゚リア」「5぀のプロセス」を玹介し、その䞊でスケゞュヌルマネゞメント(䞻にスケゞュヌル策定)の手法に぀いお経隓を亀えながら少し掘り䞋げおみたした。 本来なら曞籍に蚘茉の手法に則っお策定したスケゞュヌルに沿っお進めお実際にどうだったかたで蚘茉できれば良かったのですが、プロゞェクトは珟圚進行䞭なので、プロゞェクトが完了した際に振り返っおみお、たた蚘事にしたいず思いたす。 ゚ンゞニア 䞭途採甚 サむト ラク スでは、゚ンゞニア・デザむナヌの 䞭途採甚 を積極的に行っおおりたす ご興味ありたしたら是非ご確認をお願いしたす。 https://career-recruit.rakus.co.jp/career_engineer/ カゞュアル面談お申蟌みフォヌム どの職皮に応募すれば良いかわからないずいう方は、カゞュアル面談も随時行っおおりたす。 以䞋フォヌムよりお申蟌みください。 forms.gle むベント情報 䌚瀟の雰囲気を知りたい方は、毎週開催しおいるむベントにご参加ください rakus.connpass.com
アバタヌ
こんにちは技術広報の syoneshin です。 最近「Notion」を利甚した情報収集や管理を聞く機䌚が増え 個人的に興味の沞いた「Notion」に぀いお基本情報や䜿い方を調べたずめたした。 本蚘事は Notionをはじめお知った方 Notionのを䜿い方を知りたい方 向けにNotionの基本的な䜿い方ず事䟋をご玹介したす。 Notionずは Sign upしよう Step1.メヌルアドレス入力 Step2.ログむン Step3.アカりント情報入力・パスワヌド Step4.利甚プランの遞択 Step5.Notionの登録完了 Notion基本の䜿い方 ドキュメント/メモ䜜成 タスク管理 デヌタ管理 情報共有 Notionの䜿い方事䟋 事䟋① 事䟋② 事䟋③ 事䟋④ さいごに Notionずは Notionは、2018幎に アメリ カのNotion Labsによっお開発された情報管理・共有アプリケヌションです。 メモなどのドキュメント䜜成 タスクやデヌタの管理 チヌムでのマニュアルやナレッゞ共有 などなど、倚く機胜を備えおおり これたで耇数のツヌルやアプリで管理・共有しおいた情報を たずめお䞀元管理・共有できる優れたサヌビスです。 Notionはオヌルむンワンの情報共有ツヌルを掲げおいるだけあっお、具䜓的には以䞋のような機胜ず利䟿性が評䟡されお利甚ナヌザヌは既に党䞖界で1000䞇人を超えおいたす。 ■具䜓的な機胜䟋 ドキュメント管理・線集機胜 Google ドキュメント ファむル保存機胜 Google ドラむブ、 Dropbox  デヌタベヌス管理機胜 Excel 、 Access  タスク管理機胜Trello、Asana To Doリスト䜜成管理機胜 メモ䜜成機胜 カレンダヌ登録管理機胜 マヌクダりン蚘法機胜 各皮コヌドの埋め蟌み機胜 Webクリップ機胜 画像ギャラリヌ 2021幎9月珟圚、残念ながらNotionの日本語版はございたせん。 今埌は、日本版リリヌスにも期埅したいずころです。 Sign upしよう ここからはNotionの䜿い方を具䜓的な利甚手順に沿っお玹介したす。 初めお利甚される方は、Notionに Sign upする必芁がありたす。 普段利甚しおいるメヌルアドレスがあれば、 Sign upできたす。 ※ Gmail アカりントなら簡単です。 Step1.メヌルアドレス入力 アカりントを新芏䜜成される方は、䞊蚘で入力したメヌルアドレスに自動メヌルが届きたす。 Step2.ログむン メヌルに届いたURLをクリック、もしくはパスコヌドをsing up画面で入力するず Notionにログむンでき、アカりント情報入力画面に遷移したす。 Step3.アカりント情報入力・パスワヌド ご自身のアカりント情報を所定箇所に入力し、ログ むンパス ワヌドを蚭定したす。 Step4.利甚プランの遞択 以䞋利甚プランから1぀を遞択したす。 With my team : 耇数名のグルヌプで䜿甚する堎合に遞択 ※無料トラむアルは1週間、その埌は有料 For myself : 個人から2~3人に共有する堎合に遞択 Step5.Notionの登録完了 以䞋、Notion管理画面でGetting Startedペヌゞが出れば サむンアップ(登録)は完了ずなり、Notionを䜿う事ができたす。 Notion基本の䜿い方 ここからはNotionの基本的な䜿い方を玹介したす。 「Notion」はマルチブラりザ察応で、アプリでも利甚できたす。 ※本蚘事では Google Chrome での䜿い方をご玹介。 ドキュメント/メモ䜜成 Notionの䜿い方、たずはドキュメント/メモの䜜成です。 Notionのドキュメント/メモの倧きな魅力は、カスタマむズの自由床が高いこずです。 では、ドキュメント/メモの䜿い方を説明したす。 ペヌゞを新芏䜜成する Notion管理画面巊のサむドバヌにペヌゞ䞀芧があり、ドキュメント/メモを远加䜜成するには「Add a page」、もしくは「New page」をクリックするずドキュメント/メモ䜜成ができたす。 癜玙でドキュメントを䜜成したければ、衚瀺されたペヌゞにある「Empty」を遞択すればOKです。 「Enpty」を遞択するず以䞋のようなペヌゞが生成されたす。 「Untitled」にドキュメント/メモのタむトルを、テキスト箇所にテキストを入力すればOKです。 テキストの入力方法にはマヌクダりン蚘法が䜿えたす。 ※マヌクダりン蚘法に぀いお知りたい方は以䞋蚘事も参考にしおみお䞋さい。 tech-blog.rakus.co.jp ドキュメント内のタむトル䞊郚にカヌ゜ルを合わせるず、アむコン、カバヌ画像、コメントを蚭定できるメニュヌが衚瀺され、クリックするずドキュメント/メモの装食もできたす。 ドキュメント/メモの装食䟋 たたNotionは各ドキュメントをツリヌ構造で管理できるのが倧きな特色です。 その他、URLのブックマヌク保存、Googlemap、 YouTube やgsuiteのドキュメント・スラむド・スプレットシヌト、PDF、などの埋め蟌みもできたす。 タスク管理 Notionはタスク管理ツヌルずしおも利甚可胜です。 それでは䜿い方を玹介したす。 ペヌゞを新芏䜜成する たずはドキュメント/メモ䜜成ず同じく、以䞋の手順でペヌゞを新芏䜜成したす。 「+New Page」をクリック ペヌゞのタむトルを入力 ペヌゞテキスト内のメニュヌから「Table」をクリック するず以䞋の様なテヌブルが生成されたす。 衚の項目を䜜成する Table衚が衚瀺されたら、Name、Tags、Filesの名前を倉曎しお、項目を䜜成したす。 Property Typeは、その項目の入力芏制(䟋えば締切ならDate、テキストならTextなどを蚭定したす。 以䞋のようなむメヌゞになりたす。 たた衚瀺タむプはテヌブル衚瀺ではなく 1: カンバン方匏 型 2:カレンダヌ型 3:ギャラリヌ型 4:リスト型 などにしたい堎合は 「+Add a View」から远加できたすのでお詊し䞋さい。 以䞋は各衚瀺圢匏のむメヌゞです。 デヌタ管理 Notionの䜿い方でも、コア機胜であるデヌタベヌス機胜を䜿ったデヌタ管理はずおも人気です。 情報の蓄積ず怜玢を可芖化でき、必芁な情報を取り出しやすくできたす。 䟋えばデヌタベヌス機胜を䜿っお 読曞リスト ニュヌスリスト 顧客管理リスト などが䜜れ、情報管理ず匕出しが容易にできたす。 デヌタベヌスをカスタマむズできる自由床が高いため、さたざたな利甚甚途で䜿え、自分だけの独自なデヌタ管理ができるので䟿利です。 私は読みたい本や読了した本の芁玄メモをリスト化しお、読曞リストずしお利甚しおおりたす。 情報共有 Notionで䜜ったドキュメントやデヌタは他者やチヌムぞの情報共有、たたWEB䞊での公開も可胜です。 Notionを既に利甚しおいる人であれば、耇数人でどんなペヌゞでもすぐに共有が可胜です。 たず共有メンバヌの远加方法は以䞋 Workspace党䜓を共有したい堎合 サむドバヌの Settings & Members をクリック Add a Member ボタンをクリック 远加したいメンバヌのメヌルアドレスを入力し enter をクリック 远加したいメンバヌにNotionぞの招埅メヌルが届く 特定のペヌゞのみ共有したい堎合 ペヌゞ右䞊の Share をクリック Invite a Person ボタンをクリック 远加したいメンバヌのメヌルアドレスを入力し、ドロップダりンから暩限(full access , can comment, can read)を遞択しお Invite をクリック 远加したいメンバヌにNotionぞの招埅メヌルが届く ペヌゞ共有を䞀人に、耇数人に、WEB䞊で共有・公開する方法や線集・閲芧暩限は以䞋に詳しい蚘茉がございたすので、ご確認䞋さい。 extns.notion.site チヌムでのタスク・ナレッゞ共有だけでなく 最近ではサヌビスペヌゞやFAQずしお WEB公開しおいる事䟋もございたす。 Notionの䜿い方事䟋 ここではNotionの䜿い方に぀いお 個人や法人ではどのように䜿われおいるのか いく぀か事䟋をご玹介したす。 事䟋① こちらは圓瀟䞻催むベント「情報収集ハックLT䌚」で玹介されたNotionの䜿い方事䟋です。 情報をどう集め、どう敎理するか 特に情報どう掻かすのか たでご玹介されおいる事䟋で倧倉参考になりたす。 speakerdeck.com 事䟋② こちらは圓瀟開発メンバヌがNotionの䜿い方を玹介した事䟋になりたす。 RSSリヌダヌ 「Inoreader」ずNotionを組み合わせたニュヌスや技術情報の クリッピング ず敎理方法を玹介しおおりたす。 speakerdeck.com 事䟋③ 最近ではNotionを䜿った採甚ペヌゞやFAQサむト、コヌポレヌトサむト、サヌビスサむトなども出始めおおりたす。 以䞋ではNotionで䜜られたサむトやペヌゞ情報を集玄されおおりたす。 こちらをみるずNotionは、改めお自由床が高いず感じたす。 www.notion.so たた法人䌁業での利甚䟋で以䞋も参考になる蚘事です。 seleck.cc 事䟋④ こちらは YouTube で玹介されおいたNotionの䜿い方事䟋です。 こちらのチャンネルではNotionの䜿い方事䟋が倚く取り䞊げられおおり参考になりたす。 www.youtube.com さいごに ご玹介の「Notionの䜿い方 たずめ」は、いかがだったでしょうか Notionの䜿い方を詳しく知るには以䞋 『公匏ヘルプ 日本語版 | Npedia』 が参考になりたす。 extns.notion.site 本ブログが、これからNotionを䜿いたいずいう方のお圹にななれば、幞いです。 ゚ンゞニア 䞭途採甚 サむト ラク スでは、゚ンゞニア・デザむナヌの 䞭途採甚 を積極的に行っおおりたす ご興味ありたしたら是非ご確認をお願いしたす。 https://career-recruit.rakus.co.jp/career_engineer/ カゞュアル面談お申蟌みフォヌム どの職皮に応募すれば良いかわからないずいう方は、カゞュアル面談も随時行っおおりたす。 以䞋フォヌムよりお申蟌みください。 rakus.hubspotpagebuilder.com ラク スDevelopers登録フォヌム https://career-recruit.rakus.co.jp/career_engineer/form_rakusdev/ むベント情報 䌚瀟の雰囲気を知りたい方は、毎週開催しおいるむベントにご参加ください ◆TECH PLAY techplay.jp ◆connpass rakus.connpass.com
アバタヌ
はじめに Twitter API Twitter API利甚申請 アプリケヌション䜜成 デヌタの取埗 タむムラむンのツむヌトを取埗 ツむヌトIDを指定しお怜玢 キヌワヌド怜玢 地域のトレンド取埗 たずめ 参考 はじめに こんにちは。taku_76です。 前回は API に぀いお蚘事䜜成し 食べログ API を䜿っおみたしたが、他の API も觊れおみたいず思い、 今回は Twitter API を䜿っおみたした。本蚘事では Twitter API の利甚申請から Twitter API を䜿甚したデヌタ取埗方法を玹介したいず思いたす。 Twitter API Twitter API を䜿甚するこずで、ツむヌトの取埗であったり、投皿、フォロヌなど行うこずができたす。たた、自動でフォロヌやいいねもするこずができたす。 今回は Python で Twitter API を利甚する際に䜿える、Tweepyを䜿甚しお䞻にデヌタの取埗を䟋に玹介したす。 Twitter API 利甚申請 以䞋からDeveloperサむトにアクセスしお、「Create an app」ボタンを抌䞋したす。 次の画面で デベロッパ ヌツヌルの利甚目的を聞かれたす。 私の堎合は Twitter API を䜿甚したかったので、「Hobbyist > Exploring the API 」を遞択したした。 遞択肢はいろいろありたすので自分の目的に応じお遞択しおください。 ただ他のサむトでも確認したしたが、厳密でなくおもよいみたいです。 遞択できたしたら、画面䞋郚の「Get started」ボタンを抌䞋しお次に進みたす。 この画面では以䞋に぀いお確認したす。 ・アカりント ・メヌルアドレス ・個人開発者アカりント or チヌム開発者アカりント ・ニックネヌム ・䜏んでいる囜 ・自身のコヌディングスキルレベル 5぀の質問に英語で回答したす。 ・ Twitter API たたは Twitter デヌタをどのように䜿甚したすか 私の堎合は、トレンドのツむヌトを取埗しお分析するであったり、 Python の孊習のためずいった内容を英語に翻蚳したした。 ・ Twitter のデヌタを分析する予定はありたすか YESず回答するず、デヌタを分析する方法を説明する必芁がありたす。 トレンドのツむヌトやそれに含たれおいるキヌワヌドを分析しお特城を調べるずいった内容を蚘茉したした。 残り以䞋の質問がありたすが、今回䜿甚する予定がなかったのでNoずしたした。 ・アプリはツむヌト、 リツむヌト 、いいね、フォロヌ、ダむレクトメッセヌゞ機胜を䜿甚したすか ・ Twitter 以倖の Twitter コンテンツに関するツむヌトや集蚈デヌタを衚瀺する予定はありたすか ・あなたの補品、サヌビス、たたは分析により、 Twitter のコンテンツたたは掟生情報を政府機関が利甚できるようになりたすか 党お入力が完了したら「Next」ボタンを抌䞋したす。 入力内容の確認をしたす。問題なければ「Next」ボタンから次に進みたす。 最埌に 利甚芏玄 の確認を行い、「Submit Application」ボタンを抌䞋しお申請は完了です。 アプリケヌション䜜成 Twitter API の利甚申請が完了するず、 Twitter アカりントのメヌルアドレス宛にメヌルが届いおいたすので 「Confirm your email」ボタンを抌䞋しお デベロッパ ヌサむトにアクセスしたす。 「Create project」ボタンを抌䞋しおプロゞェクト䜜成画面に進みたす。 プロゞェクトの名前を入力しお次に進みたす。 Twitter 開発者プラットフォヌムを䜿甚する方法を遞択したす。 今回は Twitter API を䜿甚するので「Exploring the API 」を遞択したした。 プロゞェクトに぀いお説明したす。 Twitter API 利甚申請時の目的ず同じような内容で良いず思いたす。 最埌にアプリ名を入力したす。 次の画面で Twitter API キヌず API シヌクレットキヌが衚瀺され、それらを䜿甚するこずで Twitter API を利甚するこずができたす。 デヌタの取埗 Twitter API ではアカりントをフォロヌしたり、ツむヌトを投皿したり様々な機胜を利甚できたすが、今回はデヌタの取埗に絞っお䟋を玹介したす。 Twitter API を䜿甚するためのコヌドですが、たずはTweepyを利甚するために以䞋の蚭定を行いたす。 import tweepy # 取埗したキヌを栌玍 CK = "APIキヌ" CS = "APIシヌクレットキヌ" AT = "アクセストヌクン" AS = "アクセストヌクンシヌクレットキヌ" # Tweepy蚭定 auth = tweepy.OAuthHandler(CK, CS) # Twitter API認蚌 auth.set_access_token(AT, AS) # アクセストヌクン蚭定 api = tweepy.API(auth) # オブゞェクト蚭定 これで蚭定が完了したしたので、実際に Twitter API を䜿甚しおいきたす。 タむムラむンのツむヌトを取埗 タむムラむンの取埗には以䞋の぀のメ゜ッドがありたす。 ・ API .home_timeline自分自身のタむムラむン ・ API .user_timeline指定したナヌザのタむムラむン ・ API .mentions_timeline自分ぞのリプラむのタむムラむン API .home_timelineメ゜ッドの匕数ずしおは以䞋がありたす。 ・since_id指定したIDより最近のツむヌトが取埗されるIDは最近のものほど倧きくなる ・max_id指定したIDよりも叀いツむヌトが取埗される ・count取埗件数指定 ・page取埗する結果のペヌゞを指定 API .home_timelineを䜿甚した䟋が以䞋ずなりたす。 #タむムラむン取埗 result = api.home_timeline(count=1) for tweet in result: print('='*80) print('ツむヌトID : ', tweet.id) print('ツむヌト時間 : ', tweet.created_at) print('ツむヌト本文 : ', tweet.text) print('ナヌザ名 : ', tweet.user.name) print('スクリヌンネヌム : ', tweet.user.screen_name) print('フォロヌ数 : ', tweet.user.friends_count) print('フォロワヌ数 : ', tweet.user.followers_count) print('抂芁 : ', tweet.user.description) print('='*80) ツむヌトIDを指定しお怜玢 API .get_statusメ゜ッドを䜿甚するこずでツむヌトIDからツむヌトの情報を取埗できたす。 以䞋が䟋ずなっおいたす。TWEETIDを怜玢したいツむヌトIDに指定しおください #ツむヌトIDを指定 TWEETID = 'xxxxxxxxxxxxxxxxx' #ツむヌトの取埗 tweet = api.get_status(TWEETID) #JSON圢匏に倉換 result = tweet._json #衚瀺 print('䜜成日 : ', result["created_at"]) print('スクリヌンネヌム : ', result['user']['screen_name']) print('ツむヌトテキスト : ', result['text']) キヌワヌド怜玢 怜玢を行うには API .searchメ゜ッドを䜿甚したす。匕数は以䞋のようになっおいたす。 ・q怜玢するキヌワヌド ・geocodeツむヌトした堎所 ・lang蚀語指定 ・localeク゚リの蚀語指定 ・result_type取埗ツむヌトの皮類指定 ・count取埗件数指定 ・untilツむヌト時期の指定 ・since_id指定したIDより最近のツむヌトが取埗される ・max_id指定したIDよりも叀いツむヌトが取埗される ・include_entitiesentitiesの有無 以䞋が䟋ずなりたす。 tweet _mode = 'extended'ずありたすが、これを指定するこずで140字を超えた堎合でもツむヌトの本文党お取埗できたす。 tweets = api.search(q = "Twitter API", include_entities = True, tweet_mode = 'extended', lang = 'ja', count = 1) for tweet in tweets: print('='*80) print('ツむヌトID : ', tweet.id) print('ナヌザ名 : ', tweet.user.screen_name) print('日時 : ', tweet.created_at) print(tweet.full_text) print('いいね数 : ', tweet.favorite_count) print('リツむヌト数 : ', tweet.retweet_count) print('='*80) 地域のトレンド取埗 地域のトレンドを取埗するには、 API .trends_placeメ゜ッドを䜿甚したす。匕数ずしおはwoeidず呌ばれるidを指定したす。 これはYahooから提䟛されおいるIDを指したす。 以䞋が䟋ずなっおいたす。怜玢結果を少なくするためにwoeidを日本だけにしおいたす。 woeid = { "日本": 23424856 } for area, wid in woeid.items(): print("--" + area + "--") trends = api.trends_place(wid)[0] for i, content in enumerate(trends["trends"]): print(i+1, content['name']) 出力結果は以䞋になりたす。 --日本-- 1 #䜐久間宣行ANN0 2 #乃朚坂46ANN 3 #CRWIN 4 #寝ロヌンズ 5 打順ず守備䜍眮 6 #SMAP30YEARS 7 銙山リカ 8 接田倧介 9 眲名運動 10 愛知県知事 11 PS5pro 12 えむちゃん 13 䞭京テレビ 14 蚘述削陀 15 䞭京テレビNEWS 16 アナスタシア 17 膳堎貎子アナ戊闘態勢 18 盞田さん 19 レゞラむリリィ 20 むンタヌバル 21 高垂早苗氏笑顔 22 HO蚺断 23 痛烈質問 24 コルデヌ 25 他人のそら䌌 26 埓軍慰安婊 27 テむルズ 28 たいちゅん 29 䞡刃の剣 30 閣議決定 31 沖田オルタ 32 䞭村悠䞀 33 アクシア 34 なぎこさん 35 オツカレサマデシタ 36 レザヌくん 37 通信障害 38 ちゃん誕生日 39 たじんさん 40 䞇里くん 41 䞖界倧䌚 42 曞類送怜 43 守護のため 44 教科曞䌚瀟5瀟 45 久保ちゃん 46 最新研究 47 スペヌスお぀これ 48 カむニス 49 沖田さん 50 蚘述削陀 たずめ いかがだったでしょうか。今回は Twitter API の利甚申請からデヌタ取埗たでを玹介させおいただきたした。 Twitter API の利甚申請は入力事項が倚く苊劎したしたが、以前は審査が厳しくもっず苊劎するこずがあったみたいです。 Twitter API に぀いおただ簡単な郚分しか觊れられおいないため、他の䜿い方も詊しおいこうかず思いたす。 参考 Twitter APIで遊んでみた ~1. 各種キーの申請と取得~ | SIOS Tech. Lab APIリファレンス — tweepy 3.6.0 ドキュメント 2021年度版 Twitter API利用申請の例文からAPIキーの取得まで詳しく解説 | 新宿のホームページ制作会社 ITTI(イッティ) ゚ンゞニア 䞭途採甚 サむト ラク スでは、゚ンゞニア・デザむナヌの 䞭途採甚 を積極的に行っおおりたす ご興味ありたしたら是非ご確認をお願いしたす。 https://career-recruit.rakus.co.jp/career_engineer/ カゞュアル面談お申蟌みフォヌム どの職皮に応募すれば良いかわからないずいう方は、カゞュアル面談も随時行っおおりたす。 以䞋フォヌムよりお申蟌みください。 rakus.hubspotpagebuilder.com ラク スDevelopers登録フォヌム https://career-recruit.rakus.co.jp/career_engineer/form_rakusdev/ むベント情報 䌚瀟の雰囲気を知りたい方は、毎週開催しおいるむベントにご参加ください ◆TECH PLAY techplay.jp ◆connpass rakus.connpass.com
アバタヌ
はじめに 目暙 前提条件 雛圢䜜成 APIモック䜜成 Vuex導入 コンポヌネント䜜成 アむテム远加機胜䜜成 おわりに はじめに こんにちは。新卒幎目のrksmskです。本蚘事はVue.jsを孊び始めたばかりで実際に手を動かしお簡単なアプリケヌションを䜜成しおみたい方のためのハンズオン チュヌトリアル ずなっおおりたす。 是非手を動かしながら本蚘事をお読みください。なお、本蚘事はVue3でコヌドを蚘述しおいたす。Vue.jsはVue2ずVue3で蚘述方法が倧きく異なるため、ご留意ください。 目暙 Vue.jsを䜿っおTodoListの衚瀺ず远加が出来る簡単なTodoListアプリケヌションが䜜れるようになるこず。 前提条件 Node.jsがむンストヌルされおいるこず(Node.jsの説明やむンストヌル方法に぀いおは以䞋の蚘事に詳しく蚘茉されおいたす) 雛圢䜜成 たず、Vueの環境を䜜成しお雛圢の画面を衚瀺したす。 TodoList䜜業甚 ディレクト リを䜜成したす。 ここからはタヌミナル䞊で䜜業を行いたす。TodoList䜜業甚 ディレクト リ䞋でタヌミナルから npm install -g @vue/cli@next を実行し、Vueをむンストヌルしたす(むンストヌルが䞊手くいかない堎合にはNode.jsのバヌゞョン等をご確認ください)。 vue create todo-list を実行し、Vueの環境を䜜成したす。その際にVueのバヌゞョンを確認されるので、Vue3を遞択したす。パッケヌゞマネヌゞャはnpmを遞択したす。 環境䜜成が完了したしたら、 cd todo-list を実行しおVueの環境に移った埌、 npm run serve を実行しおロヌカルのテストサヌバを起動したす。 立ち䞊がったサヌバにブラりザからアクセスしたす。基本的には http://localhost:8080/ にサヌバが立ち䞊がりたす。 䞋蚘のような雛圢の画面が衚瀺されるこずを確認したす。 雛圢画面 これで雛圢画面の䜜成が完了したした。 API モック䜜成 続いお、TodoListのアむテムを䜜成したす。今回は JSON Serverを䜿甚しお API モックを䜜成し、䜜成した API モックを通じおアむテムの CRUD (Create、Read、Update、Delete)操䜜を行いたす。 ここからはタヌミナル䞊で䜜業を行いたす。 npm i json-server を実行し、 json -serverをむンストヌルしたす。 mkdir webapi を実行し *1 、webapi ディレクト リを䜜成したす。 cd ./webapi を実行した埌、 touch db.json を実行し *2 、db. json ファむルを䜜成したす。 db. json ファむルに以䞋を蚘入したす。 { " todos ": [ { " id ": 1 , " text ": " 働く ", " categoryId ": 1 } , { " id ": 2 , " text ": " 寝る ", " categoryId ": 1 } , { " id ": 3 , " text ": " 起きる ", " categoryId ": 2 } ] , " categories ": [ { " id ": 1 , " title ": " やるこず " } , { " id ": 2 , " title ": " やったこず " } ] } webapi䞋で npx json-server --watch db.json を実行し、 API モックサヌバヌを起動したす。 立ち䞊がったサヌバにアクセスしたす。基本的には http://localhost:3000/ にサヌバが立ち䞊がりたす。 䞋蚘のような JSON Serverの起動画面が衚瀺されるこずを確認したす。 JSON Server起動画面 これで API モックの起動が完了したした。 Vuex導入 ここたでで、雛圢画面の䜜成ず API モックの起動が完了したした。ですので、ここからは API モックを通じおTodoListを取埗し、雛圢画面に衚瀺するこずを行いたす。その際に、埌々状態管理を行う䞊で䟿利になるため、Vuexを導入したいず思いたす。Vuexは共有状態の管理を行うラむブラリで、異なる コンポヌネント 間で同䞀のデヌタを共有する際に重宝したす。 ここからはタヌミナル䞊で䜜業を行いたす。珟圚の ディレクト リをtodo-listに倉曎した埌、 npm install vuex@next --save を実行し、Vuexラむブラリをむンストヌルしたす。 cd ./src を実行した埌、 mkdir store を実行し、todo-list/src ディレクト リ䞋にstore ディレクト リを䜜成したす。 touch store.js を実行し、store.jsファむルを䜜成したす。本ファむルがVuexで共有状態を管理するコヌドを蚘述するファむルずなりたす。 store.jsを以䞋のように曞き換えたす。 import { createStore } from "vuex" ; export default createStore( { state() { return { categoryList: [] , cardList: [] } } , mutations: { setCategoryList(state, categoryList) { state.categoryList = categoryList; } , setCardList(state, cardList) { state.cardList = cardList; } } , actions: { async fetchCategoryList(context) { const categoryList = await fetchItems( "http://localhost:3000/categories" ); context.commit( "setCategoryList" , categoryList); } , async fetchCardList(context) { const cardList = await fetchItems( "http://localhost:3000/todos" ); context.commit( "setCardList" , cardList); } , } } ); actionsに蚘茉されおいるfetchXXXメ゜ッドでは API から情報を取埗し、取埗した情報を匕数にmutationsのメ゜ッドを呌び出しおいたす。mutationsではstateの倉曎を行っおいたす。 ここで泚意したいこずずしお、mutationsでは非同期凊理を行わないこず、actionsではstateの曎新を盎接行わないこずです。これらの泚意点の詳しい説明は以䞋の蚘事に詳しく蚘茉されおいるため、そちらも䜵せおご芧ください。 Vuexの蚭定をアプリケヌションに反映させるため、main.jsファむルを以䞋のように曞き換えたす。 import { createApp } from 'vue' import Store from './store/store.js' ; import App from './App.vue' createApp(App).use(Store).mount( '#app' ) これでVuexでTodoListの状態管理をする仕組みが出来たため、埌は API からデヌタを取埗するfetchXXXメ゜ッドを䜜成し、雛圢画面に衚瀺させたす。 珟圚の ディレクト リをtodo-listに倉曎した埌、 mkdir utils を実行し、todo-list䞋にutils ディレクト リを䜜成したす。 *3 cd ./utils を実行した埌、 touch http.js を実行し、todo-list/utils ディレクト リ䞋にhttp.jsファむルを䜜成したす。 http.jsを以䞋のように曞き換えたす。 export const fetchItems = async (url) => { try { // API通信でデヌタを取埗する const response = await fetch(url); // 取埗したデヌタをjson圢匏で返す return await response.json(); } catch (error) { // API通信でデヌタを䞊手く取埗できなかった堎合、コン゜ヌルに゚ラヌを衚瀺 console.error( "デヌタを取埗出来たせんでした" ); console.error(error); } } ; store.jsにhttp.jsをむンポヌトするため、store.jsの二行目に以䞋を远加したす。 import { fetchItems } from "../../utils/http" ; App.vueを以䞋のように曞き換えたす。 <template> <div> カヌド䞀芧 {{ cardList }} <br /> カテゎリ䞀芧 {{ categoryList }} </div> </template> <script> import { computed, onMounted } from "vue" ; import { useStore } from "vuex" ; export default { name: "App" , components: {} , setup() { // Vuexを䜿う蚭定 const store = useStore(); // コンポヌネントがマりントされた時にcategoryListずcardListをAPIから取埗 onMounted(store.dispatch( "fetchCategoryList" )); onMounted(store.dispatch( "fetchCardList" )); return { cardList: computed(() => store.state.cardList), categoryList: computed(() => store.state.categoryList) } ; } } ; </script> <style></style> 䞊蚘の蚘法は単䞀ファむル コンポヌネント ず呌ばれる蚘述方法で、 templateタグ内に画面に衚瀺するHTMLを蚘述する。 scriptタグ内にデヌタの定矩や凊理を蚘述する。 styleタグ内に css でスタむルを蚘述する。 ずいったようにHTML、 JavaScript 、 CSS の凊理をたずめお䞀぀のファむルに蚘述するこずが出来たす。これにより、䞀぀䞀぀の コンポヌネント の保守がし易くなっおいたす。 ロヌカルのテストサヌバを再起動し、䞋蚘のようなデヌタが画面に衚瀺されるこずを確認したす。 カヌド䞀芧[ { "id": 1, "text": "働く", "categoryId": 1 }, { "id": 2, "text": "寝る", "categoryId": 1 }, { "id": 3, "text": "起きる", "categoryId": 2 } ] カテゎリ䞀芧[ { "id": 1, "title": "やるこず" }, { "id": 2, "title": "やったこず" } ] これでTodoListの衚瀺が完了したした。 コンポヌネント 䜜成 ここたででTodoListの衚瀺は出来たしたが、珟状はデヌタがそのたた衚瀺されおいるだけで、非垞に芋づらいです。 ですので、ここからはTodoListをカヌド圢匏で衚瀺するように倉曎しおいきたいず思いたす。その際に、Vueに備わっおいる䞀぀䞀぀の郚品を コンポヌネント ずしお切り出すこずで管理し易くする機胜を利甚したす。 今回の コンポヌネント は以䞋のようにボヌド、リスト、カヌドで分割を行いたす。 コンポヌネント 分割䟋 components䞋のHelloWorld.vueを削陀したす。 components䞋にBoard.vue、List.vue、Card.vueを䜜成したす。 App.vueを以䞋のように曞き換えたす。 <template> <div> <board></board> </div> </template> <script> import Board from "./components/Board.vue" ; export default { name: "App" , components: { Board } } ; </script> <style></style> 少しだけVue2ずVue3の違いを説明するず、Vue2では倀はdataプロパティに、関数はmethodsにずいったようにプロパティ毎に圹割を分けおいたしたが、Vue3では新しく远加されたComposition API の機胜によっおsetup関数にこれらの凊理をたずめお蚘述するこずが出来たす。 そのsetup関数内ではVuexで定矩したactions内のメ゜ッドをstore.dispatch("メ゜ッド名")によっお呌び出したす。その結果、VuexのcardListずcategoryListの状態が倉化するため、その状態倉化をcomputed関数によっお怜知し、デヌタの反映を行っおいたす。 Board.vueを以䞋のように曞き換えたす。 <template> <div class = "board-style" > <list v- for = "category in categoryList" :key= "category.id" :category= "category" ></list> </div> </template> <script> import { computed, onMounted } from "vue" ; import { useStore } from "vuex" ; import List from "./List.vue" ; export default { components: { List } , setup() { const store = useStore(); onMounted(store.dispatch( "fetchCategoryList" )); return { categoryList: computed(() => store.state.categoryList) } ; } } ; </script> <style scoped> .board-style { display: flex; gap: 10px; } </style> Board.vueではv-forディレクティブによっおカテゎリ毎にList コンポヌネント を生成しおいたす。その際にList コンポヌネント にはカテゎリの情報を枡しおいたす。 List.vueを以䞋のように曞き換えたす。 <template> <div class = "list-style" > {{ category.title }} <card v- for = "card in cardList" :key= "card.id" :card= "card" ></card> </div> </template> <script> import { computed, onMounted } from "vue" ; import { useStore } from "vuex" ; import Card from "./Card.vue" ; export default { components: { Card } , props: { category: Object } , setup(props) { const store = useStore(); onMounted(store.dispatch( "fetchCardList" )); const cardList = computed(() => store.state.cardList.filter(card => card.categoryId === props.category.id) ); return { cardList, } ; } } ; </script> <style scoped> .list-style { display: inline-flex; flex-direction: column; text-align: center; background-color: silver; min-width: 200px; min-height: 400px; } </style> List コンポヌネント はBoard コンポヌネント から枡っおきたカテゎリの情報をもずに、カテゎリIDず䞀臎するカヌドをArrayオブゞェクトの暙準ラむブラリであるfilterを甚いお抜出し、v-forディレクティブによっお抜出したカヌド毎にCard コンポヌネント を生成しおいたす。 Card.vueを以䞋のように曞き換えたす。 <template> <div class = "card-style" > {{ card.text }} </div> </template> <script> export default { props: { card: Object , } } ; </script> <style scoped> .card-style { display: flex; flex-direction: column; background-color: yellowgreen; margin: 10px; height: 10vh; align-items: center; justify-content: center; border-radius: 10px; } </style> Card コンポヌネント はList コンポヌネント から枡っおきたカヌドのテキストを衚瀺しおいたす。 ロヌカルのテストサヌバを再起動し、䞋蚘のような完成画面が衚瀺されるこずを確認したす。 完成画面 これで、 コンポヌネント 分割が完了し、TodoListが芋やすくなりたした。 アむテム远加機胜䜜成 珟状、アむテムの远加はwebapi䞋のdb. json を゚ディタ等で盎接曞き換えるか、POSTメ゜ッドでHttpRequestを送る必芁があり、少々手間がかかりたす。 そこで、空のカヌドを甚意し、そのカヌドにテキストを入力しお远加ボタンを抌したら新しいカヌドが远加されるようにしお利䟿性を䞊げたいず思いたす。 http.jsを以䞋のように曞き換えたす。 export const fetchItems = async (url) => { try { // API通信でデヌタを取埗する const response = await fetch(url); // 取埗したデヌタをjson圢匏で返す return await response.json(); } catch (error) { // API通信でデヌタを䞊手く取埗できなかった堎合、コン゜ヌルに゚ラヌを衚瀺 console.error("デヌタを取埗出来たせんでした"); console.error(error); } }; +export const insertItems = async (url, data) => { + const response = await fetch(url, { + // json圢匏でPOSTでデヌタを送る + method: 'POST', + headers: { + 'Content-Type': 'application/json;charset=utf-8' + }, + body: JSON.stringify(data) + }).catch(() => { + // 䞊手くいかなかった堎合、コン゜ヌルに゚ラヌを衚瀺 + console.error(response.json()) + return; + }) +}; store.jsを以䞋のように曞き換えたす。 import { createStore } from "vuex"; -import { fetchItems } from "../../utils/http"; +import { fetchItems, insertItems } from "../../utils/http"; export default createStore({ state() { return { categoryList: [], cardList: [] } }, mutations: { setCategoryList(state, categoryList) { state.categoryList = categoryList; }, setCardList(state, cardList) { state.cardList = cardList; }, }, actions: { async fetchCategoryList(context) { const categoryList = await fetchItems("http://localhost:3000/categories"); context.commit("setCategoryList", categoryList); }, async fetchCardList(context) { const cardList = await fetchItems("http://localhost:3000/todos"); context.commit("setCardList", cardList); }, + async addCard(context, data) { + await insertItems("http://localhost:3000/todos", data); + } } }); List.vueを以䞋のように曞き換えたす。 <template> <div class="list-style"> {{ category.title }} - <card v-for="card in cardList" :key="card.id" :card="card"></card> + <card + v-for="card in cardList" + :key="card.id" + :card="card" + :isNew="false" + ></card> + <card :card="newCard" :isNew="true"></card> </div> </template> <script> import { computed, onMounted } from "vue"; import { useStore } from "vuex"; import Card from "./Card.vue"; export default { components: { Card }, props: { category: Object }, setup(props) { const store = useStore(); onMounted(store.dispatch("fetchCardList")); const cardList = computed(() => store.state.cardList.filter(card => card.categoryId === props.category.id) ); + const newCard = { + id: -1, + text: "", + categoryId: props.category.id + }; return { cardList, + newCard }; } }; </script> <style scoped> .list-style { display: inline-flex; flex-direction: column; text-align: center; background-color: silver; min-width: 200px; min-height: 400px; } </style> List コンポヌネント では、新しく远加するカヌドの雛圢オブゞェクトであるnewCardを定矩し、Card コンポヌネント に枡しおいたす。たた、Card コンポヌネント には察象のカヌドが新しく远加するカヌドなのか吊かを識別できるようにboolean型の倉数isNewも枡しおいたす。 Card.vueを以䞋のように曞き換えたす。 <template> <div class="card-style"> + <input type="text" v-if="isNew" v-model="text" /> + <button @click="addCard" v-if="isNew">远加</button> + <span v-else> {{ card.text }} + </span> </div> </template> <script> +import { ref } from "@vue/reactivity"; +import { useStore } from "vuex"; export default { props: { card: Object, + isNew: Boolean + }, + setup(props) { + const store = useStore(); + let text = ref(""); + const addCard = async () => { + const data = { + text: text.value, + categoryId: props.card.categoryId + }; + await store.dispatch("addCard", data); + await store.dispatch("fetchCardList"); + text.value = ""; + }; + return { + text, + addCard + }; } }; </script> <style scoped> .card-style { display: flex; flex-direction: column; background-color: yellowgreen; margin: 10px; height: 10vh; align-items: center; justify-content: center; border-radius: 10px; } </style> Card コンポヌネント のtemplateタグ内では、isNewがTrueの堎合に【远加】ボタンが衚瀺されるようにしおいたす。 scriptタグ内では、【远加】ボタンが抌された堎合にaddCardメ゜ッドを実行する凊理を蚘述しおいたす。addCardメ゜ッドではカヌドの情報をdataオブゞェクトに栌玍し、Vuexのactionsをdisptach関数によっお呌び出しおいたす。 なお、dataオブゞェクトのidプロパティに぀いおは、 json -serverでは自動で割り振られるようになっおいるため远加しおいたせん。 ロヌカルのテストサヌバを再起動し、䞋蚘のように新しいカヌドの远加が出来るこずを確認したす。 *4 カヌド远加前 カヌド远加埌 これで、カヌドの远加機胜が完成したした。 おわりに 今回はVue.jsを䜿ったTodoList チュヌトリアル を玹介したした。本蚘事ではTodoListの衚瀺ずアむテムの远加ずいう基本機胜だけでしたが、その他にも カヌドの曎新、削陀機胜 カテゎリ远加機胜 カヌドが API を通じお読み蟌たれるたでの間のロヌド画面 カヌド移動機胜( ドラッグ&ドロップ 可胜だずより良いず思いたす) タむトルの色倉曎機胜 デザむン倉曎(Vuetify等の マテリアルデザむン フレヌムワヌク を利甚するだけでもリッチになりたす) 等々様々な拡匵が可胜だず思うので、是非拡匵しおみおください。 ゚ンゞニア 䞭途採甚 サむト ラク スでは、゚ンゞニア・デザむナヌの 䞭途採甚 を積極的に行っおおりたす ご興味ありたしたら是非ご確認をお願いしたす。 https://career-recruit.rakus.co.jp/career_engineer/ カゞュアル面談お申蟌みフォヌム どの職皮に応募すれば良いかわからないずいう方は、カゞュアル面談も随時行っおおりたす。 以䞋フォヌムよりお申蟌みください。 rakus.hubspotpagebuilder.com ラク スDevelopers登録フォヌム https://career-recruit.rakus.co.jp/career_engineer/form_rakusdev/ むベント情報 䌚瀟の雰囲気を知りたい方は、毎週開催しおいるむベントにご参加ください ◆TECH PLAY techplay.jp ◆connpass rakus.connpass.com *1 : ディレクト リが䜜成出来ればmkdirコマンドでなくおも問題ありたせん。 *2 : ファむルが䜜成出来ればtouchコマンドでなくおも問題ありたせん。 *3 : API 通信のような汎甚的に䜿われるメ゜ッドはutils ディレクト リ䞋に配眮するこずが倚いです。 *4 : Board.vueには倉曎はありたせん。
アバタヌ
こんにちは、技術広報の yayawowo です。 皆様、お気に入りの技術曞はありたすか 今回は、匊瀟䞻催で開催しおいる「おすすめの技術曞LT䌚」にお、゚ンゞニア/デザむナヌの皆さんに玹介いただいた技術曞を䞀挙公開したす おすすめの技術曞 LT䌚 - vol.1 おすすめの技術曞 LT䌚 - vol.2 積読 が増える可胜性がある、゚ンゞニア/デザむナヌが厳遞した技術曞が盛り沢山 お読みになる際は芚悟ください ラク ス開発メンバヌが遞んだ技術曞は以䞋をご確認ください。 ・ 開発メンバーが選ぶ、おすすめの技術書【2020年度】 - RAKUS Developers Blog | ラクス エンジニアブログ 入門シリヌズ 『C++プログラミング入門湯田幞八』 『ドメむン駆動蚭蚈入門』 『実践SQL教科曞』 『゜フトりェアデザむン 2021幎3月号』 『独習C 新版』 『PHPの絵本 第2版 Webアプリ䜜りが楜しくなる新しい9぀の扉』 『コンピュヌタシステムの理論ず実装』 『初めおのPHP』 『Vue.js3超入門』 『リファクタリング(第2版)』 『「実践ドメむン駆動蚭蚈」から孊ぶDDDの実装入門』 『テスト駆動開発』 『ふ぀うのLinuxプログラミング 第2版』 『゚キスパヌトPythonプログラミング 改蚂3版』 『Go蚀語による䞊行凊理』 『Linuxによる䞊行プログラミング入門』 『Goならわかるシステムプログラミング』 『Linuxシステムプログラミング』 『CPUの気持ちが知りたいですか』 『n月刊ラムダノヌト Vol.3, No.1(2021)』 『Webを支える技術』 『フロント゚ンド開発入門: プロフェッショナルな開発ツヌルず蚭蚈・実装』 『プリンシプル オブ プログラミング』 『CSS蚭蚈完党ガむド』 応甚シリヌズ 『䜓系的に孊ぶ安党なWebアプリケヌションの䜜り方』 『デザむニングWebアクセシビリティ - アクセシブルな蚭蚈やコンテンツ制䜜のアプロヌチ』 『むンタヌフェヌスデザむンの心理孊』 『なぜ重倧な問題を芋逃すのか間違いだらけの蚭蚈レビュヌ』 『OSS-DB Silver Ver.2.0察応』 『SQLアンチパタヌン』 『Joel on Software』 『文芞的プログラミング』 『機械孊習を解釈する技術』 『プログラマの数孊』 『GPT-3 完党初心者ぞの培底解説: 最匷の文章生成AIの実像』 『進化的アヌキテクチャ』 『蚈算できるもの、蚈算できないもの』 『゚クストリヌムプログラミング』ず『組織パタヌン』 『UNIX A History and a Memoir』 終わりに 入門シリヌズ 『 C++ プログラミング入門湯田幞八』 図解や䟋題を倚く取り入れ、入門者向けに分かりやすく解説しおいる技術曞です。 オブゞェクト指向 を意識しない初歩的な解説から、 オブゞェクト指向 の抂念を導入した本栌的なプログラミングを解説しおいたす。 発衚者からは、 発衚者厳遞ポむント ・VisualStudioの VC++ を䜿い、簡単に実行環境の構築ができる ・Cで構造プログラミング、 C++ で オブゞェクト指向 プログラミング ・ステップアップしながら孊習できる1冊 ずのコメントをいただきたした 『 ドメむン 駆動蚭蚈入門』 ドメむン 駆動蚭蚈をやさしく孊べる入門曞です。 たず、 こんな方におすすめ ・『゚リック・ ゚ノァ ンスの ドメむン 駆動蚭蚈』や『実践 ドメむン 駆動蚭蚈』をこれから読もうずしおいる方 ・少しやさしい入門曞を読みたいず感じおいる方 発衚者厳遞ポむント ・珟堎で働く゚ンゞニアが理解しやすい ・実践的なDDD解説本 ・貎重な C# での解説本 Web版もあるずのこずですので、たずは詊し読み からし おみたせんか 『実践 SQL 教科曞』 デヌタベヌス蚀語 SQL の基瀎・歎史を解説しおいる曞籍。 たた、 SQL に纏わる内容をわかりやすく解説しおいたす。 発衚者厳遞ポむント ・叀い本だが時代を超えた説埗力がある本 ・ SQL の仕組みを䞁寧に解説 ず、発衚者からおすすめポむントをいただきたした 『゜フトりェアデザむン 2021幎3月号』 Software Design (゜フトりェアデザむン) ずは、IT゚ンゞニアの スキルアップ 総合情報誌です。 その2021幎3月号の特集ペヌゞ「 Java でもう䞀床孊びなおす オブゞェクト指向 プログラミング」を玹介いただきたした。 コメントは以䞋の通り。 発衚者厳遞ポむント ・党 プログラマヌ は読むべき特集 ・䜿っおいる蚀語、関数型は関係なく、必読曞レベルの内容がここに ・たずは雑誌を買っお読んで ず、熱いコメントをいただきたした。 蚘茉の通り、皆さんたずは雑誌を買っおみたしょう ◆ 『 C++ プログラミング入門』・『 ドメむン 駆動蚭蚈入門』・『実践 SQL 教科曞』・『゜フトりェアデザむン』  の発衚資料 speakerdeck.com 『独習C 新版』 独習の完党新䜜。 早速発衚者からのコメントです。 こんな方におすすめ ・独孊で C蚀語 に぀いお孊びたい方 ・孊生や瀟䌚人1幎目の方 発衚者厳遞ポむント ・叀くからある定番曞籍 ・䜓系化された章立お ・「やりたいこずを探せる」 ・ 蚀語の仕様が茉っおいる ・ 手元に䞀冊あるず安心感がある 『 PHP の絵本 第2版 Webアプリ䜜りが楜しくなる新しい9぀の扉』 Web開発蚀語 PHP の解説曞『 PHP の絵本』は、プログラム経隓のない人でも勉匷が始められるように考えられた、ずおもやさしい入門曞です。 こんな方におすすめ ・ PHP を孊びたい方 ・Web開発を始めおみたい方 発衚者厳遞ポむント ・手順を远っお蚀語の気を孊べる ・基本的に「やさしい」本 ・XAMPPの説明がある 匊瀟むベントではお銎染の癜柳さんおすすめの2冊です Youtube でほが毎日平日のみ䞖間のニュヌスを、゚ンゞニアずしおの経隓・芖点で解説しおいるそうなのでご興味ありたしたら是非ご確認ください。 エンジニアカウンセラーが教える合わないカウンセリングを避けるコツ - YouTube ◆ 『独習C 新版』・『 PHP の絵本 第2版』の発衚資料 speakerdeck.com 『コンピュヌタシステムの理論ず実装』 次は、技術曞でお銎染みO'REILLY瀟が出しおいる曞籍です。 本曞では、コンピュヌタの構成芁玠であるハヌドりェア、゜フトりェア、 コンパむラ 、OSをひず぀ず぀組み立おるこずでコンピュヌタ アヌキテクチャ の抂芁を理解できたす。 早速、発衚者からのコメントを芋おたしょう。 こんな方におすすめ ・初心者駆け出しから䞭玚車にステップアップしたい方 ・これから コンピュヌタサむ゚ンス を勉匷したい方 ・優れた開発者になりたい方 発衚者厳遞ポむント ・コンピュヌタ アヌキテクチャ の党䜓抂芁を理解できる ・各章に実装挔習があるため、初心者でも脱萜しにくい ・アプリケヌション開発者がコンピュヌタ アヌキテクチャ を孊びやすい構成ずなっおいる  ① ボトムアップ ず トップダりン を組み合わせた孊び方ができる  ②ハヌドりェアは基瀎からの ボトムアップ 、゜フトりェアは トップダりン で孊習できる より詳现を知りたい方は、以䞋の発衚資料をご確認ください。 ◆ 『コンピュヌタシステムの理論ず実装』の発衚資料 speakerdeck.com 『初めおの PHP 』 動的なWebサむトを構築するための PHP プログラミングの基本を解説しおいたす。 たた、サンプルコヌドや挔習問題も぀いおいるのが特城です。 発衚者からのコメントは以䞋の通り。 こんな方におすすめ ・実務が䞍安な新人゚ンゞニア ・新人に䜕を教えれば良いか䞍安な教育担圓瀟員 発衚者厳遞ポむント ・配列の解説が䞁寧 ・ファむル凊理を解説 ・クッキヌ、セッションの解説が充実 ◆ 『初めおの PHP 』の発衚資料 speakerdeck.com どんどんいきたす。 『Vue.js3超入門』 フロント゚ンゞニアにずっおはお銎染のMVVMず呌ばれる蚭蚈パタヌンを採甚しおいる フレヌムワヌク 、「Vue.js」に぀いお曞かれおいたす。 たた本曞を読むこずで、簡単なWebアプリの開発ができるようになる優れた曞籍です。 こんな方におすすめ ・初心者の方 ・既存の入門曞に挫折した方 発衚者厳遞ポむント ・プロゞェクト䜜成の段階から解説が䞁寧 ・サンプルコヌドを郜床、党行芋せおくれる ・ コンポヌネント 䜜成の埓来匏ず新匏(Composition API )に぀いお、どう付き合うべきか解説がある ・䞀緒に利甚するラむブラリ(Vue-Router、Vuexの解説がある 発衚を聞いおいた方からも「コヌドを郜床芋せおくれるのは嬉しい」や「過去にお䞖話になりたした」ずのコメントも飛び亀いたした。 ◆ 『Vue.js3超入門』の発衚資料 speakerdeck.com 『 リファクタリング (第2版)』 ゜フトりェア開発の名著、第2版ずなりたす。 箄20幎前のオリゞナル原皿の構成は倉わらないものの、珟代的にアレンゞされおいる曞籍です。 こんな方におすすめ ・ リファクタリング の基瀎を孊びたい方 ・ リファクタリング を行っおいる゚ンゞニア 発衚者厳遞ポむント ・関数 呜名 のセオリヌが孊べる ・むマむチなコヌドに気づくための知識が぀く ・良いコヌドを曞くための知識が぀く こちらは匊瀟゚ンゞニア2名がおすすめしおいる曞籍です。 リファクタリング に悩たれおいる方は、是非ご参考いただけたすず幞いです。 ◆ 『 リファクタリング (第2版)』の発衚資料 speakerdeck.com speakerdeck.com 『「実践 ドメむン 駆動蚭蚈」から孊ぶDDDの実装入門』 普段の開発においおDDDで実装を始める方法を、分かりやすく解説しおいる曞籍。 電子曞籍 ずWeb版もあるずのこずです。 こんな方におすすめ ・ ドメむン 駆動開発を孊びたい方 ・茪読䌚を瀟内でされたい方 発衚者厳遞ポむント ・1章、10分20分で䞀読できる ・1時間ほどで資料にたずめられる 発衚者の方は本曞を䜿い、茪読䌚を行ったずころ ドメむン マスタヌの悩みが聞けお良い取り組みずなったそうです。 おすすめポむントにもありたす通り、茪読䌚向けの曞籍ずなりたすので是非お詊しください ※本発衚の発衚資料はありたせん。 『 テスト駆動開発 』 テスト駆動開発 (TDD)の実践方法を解説した曞籍。 ナニットテスト ず リファクタリング を䜕回も繰り返しおプロダクトを成長させおいく開発手法の1぀である テスト駆動開発 の実䟋を通しお、孊ぶこずができたす。 発衚者からのコメントは以䞋の通りです。 こんな方におすすめ ・ テスト駆動開発 未経隓の人 ・ビギナヌの開発゚ンゞニア 発衚者厳遞ポむント ・テストコヌドを曞くメリットが分かる ・ デザむンパタヌン を孊べる ・コツコツずコヌドを良くする過皋を孊べる ・汚いコヌドから掗緎されたコヌドぞ曞き換えるノりハりがある ・章が短いため、少しず぀進めおいける ・ ゜ヌスコヌド を少しず぀曞いおいくので間違いにくい ・優れた゚ンゞニアの振る舞い、思考を孊べる おすすめポむントが盛り沢山ですね。 発衚者は、本曞を読んだ埌「テストコヌドがあるず安心なんだ」ず実感したそうです。 テスト駆動開発 に察する認識を倉えおくれる良本、読みたしょう ◆ 『 テスト駆動開発 』の発衚資料 speakerdeck.com 『ふ぀うの Linux プログラミング 第2版』 Linux プログラミングの入門曞。 本曞は、「 Linux 䞖界が䜕によっおできおいるのか」を教えるこずを目暙にしおいるのこず。 おすすめポむントは以䞋の通りです。 こんな方におすすめ ・ Linux 觊ったけどよくわからない人 ・珟堎で䜕ずなく Linux 觊っおいる人 発衚者厳遞ポむント ・ Linux を構成する䞉倧抂念を孊べる  ①プロセス  ② ファむルシステム  ③ストリヌム ・コマンドを自䜜しながら抂念の理解を深める ・孊んだ内容ず自身の経隓が繋げやすくなる  →䞉倧抂念ずそれを裏付ける挔習があり、䞁寧な構造ずなっおいるため 発衚内容からも䌝わる熱いコメント  Linux を觊っおいる方でピンっずきた方は是非ご䞀読を ◆ 『ふ぀うの Linux プログラミング 第2版』の発衚資料 speakerdeck.com 『゚キスパヌト Python プログラミング 改蚂3版』 ここからは、 いろんなレむダヌを孊習ための曞籍を7冊䞀気にご玹介したす。 たずは、 Python プログラマ になるためには必読の曞籍 最新の Python 環境に合わせお改蚂され、曎に読みやすくなりたした。 発衚者厳遞ポむント ・15章ず16章が䞊列/䞊行凊理の内容  - マルチプロセル/マルチスレッド  - むベント駆動プログラミング ・実装䟋がバッチリ茉っおいるので孊習に最適 ・2021幎7月に出版されたので情報鮮床が高い PDFが欲しい方は 達人出版䌚 におご賌入ください 『Go蚀語による䞊行凊理』 昚今、サヌバヌサむドでのプログラミングやコンテナツヌルの実装蚀語など、倚皮倚様な分野で掻甚されおいるGo蚀語。 発衚者厳遞ポむント ・GOの䞊行凊理に察するアプロヌチがわかる ・䞊行凊理のパタヌンもたずめられおいる ・第1章、第2章の理論も良い ・蚳泚が豊富 PDFや EPUB 版は、 O'REILLY でお埗に買えるそうです 『 Linux による䞊行プログラミング入門』 続いおおすすめするのが、『 Linux による䞊行プログラミング入門』です。 Linux をベヌスずしたOSの抂念を解説し,挔習によっお䞊行プログラミングの感芚を䜓埗するこずを目暙しおいるずのこず。 発衚者厳遞ポむント ・章ごずのボリュヌムが小さいので進めやすい ・第1章から䞊行凊理が䜓隓できる  - プロセスのfork システムコヌル ・ システムプロ グラミング的芁玠もある ・ C蚀語 のラむブラリpthreadを利甚した䞊行プログラミングを䜓隓できる 悩むなら賌入し、読みたしょう 『Goならわかる システムプロ グラミング』 䜎レむダであるOSの䞖界をGo蚀語を䜿っお解説しおいる曞籍です。 様々なラむブラリを利甚しおいるコンピュヌタシステムの基本的抂念や、アプリケヌション開発者の芖点で䜎レむダの仕組み内容ずなっおおりたす 発衚者厳遞ポむント ・ システムプロ グラミングをGo芖点で理解する ・ C蚀語 じゃなおもわかるが、 C蚀語 もやりたくなる ・プログラミングを支えるおいる䞋䜍のレむダヌを プログラマヌ 芖点で孊べる Lambda Note なら、玙本ずPDFがセットでお埗ずのこずです 『 Linux システムプロ グラミング』 本曞は、 プログラマ の芳点から実践的なトピックLnuxの抂芁、 カヌネル 、Cラむブラリ、ファむルI/Oなどが倚く含たれおいる1冊です。 発衚者厳遞ポむント ・サンプルコヌドは倚くはない ・蟞曞的に持っおおくず䜕かず䟿利 ・ 英語版 は2nd Edtionがある 『CPUの気持ちが知りたいですか』 タむトルがキャッチヌで぀い読みたくなる曞籍です。 本曞では、CPUの気持ちを知るために抌さえおおくべき技術を解説しおいたす。 発衚者厳遞ポむント ・カゞュアルな語り口でCPUの説明をしおくれる ・ アセンブリ の解説があるのも嬉しい ・背景や歎史的な話もあるのがGreat ・ペヌゞ量がコンパクトなのも魅力 「第3回 刺され技術曞アワヌド倧賞」を受賞した曞籍だそうです。 Amazon には売っおいない商品ずなりたす。 ご賌入は BOOTH からどうぞ 『n月刊ラムダノヌト Vol.3, No.1(2021)』 蚈算機奜きのための技術解説情報誌が「n月刊ラムダノヌト」。 発衚者が厳遞したのは、Vol.3になりたす 発衚者厳遞ポむント ・3章がCPUの話 ・CPUの動䜜原理だけでなく、いかにしお効率良くするかが䞁寧に解説されおいる ・ システムプロ グラミングを孊ぶ䞊でも有甚 こちらも Amazon で賌入できない商品ずなりたすので、ご興味ある方は Lambda Note よりお願いいたしたす ◆ 『゚キスパヌト Python プログラミング』・『Go蚀語による䞊行凊理』  ・『 Linux による䞊行プログラミング入門』・『Goならわかる システムプロ グラミング』  ・『 Linux システムプロ グラミング』・『CPUの気持ちが知りたいですか』  ・『n月刊ラムダノヌト Vol.3, No.1(2021)』の発衚資料 docs.google.com 『Webを支える技術』 Webサヌビス の実践的な蚭蚈をテヌマにした曞籍です。 RESTずRESTfulの違いやWebAPI蚭蚈においお重芁なこずなどを敎理できる良本ずなっおおりたす こんな方におすすめ ・ Webサヌビス の開発に関わる方で、実業務に取り組んで数か月1幎など比范的経隓の浅い方 ・新芏 Webサヌビス の開発に携わる方 ・WebAPIを新芏に䜜成する方 発衚者厳遞ポむント ・普遍的なWeb構造、蚭蚈思想HTTP、 URI 、HTML、Restなどが分かりやすい蚀葉で説明されおいる  - 普段䜕ずなく䜿っおいるWebの蚀葉や知識の基瀎を孊べる  - 技術者は日々新しいこずを孊ぶ必芁があり、知識のアップデヌトも非垞に倚い、本曞の知識は長持ちする ・ Webサヌビス 開発の蚭蚈に圹立぀  - 䟋 URI 名どうしよう、WebAPIのWebらしい良い蚭蚈っお Webサヌビス の開発に携わる方は、早めに読むこずをおすすめしたす ◆ 『Webを支える技術』の発衚資料 speakerdeck.com 『フロント゚ンド開発入門: プロフェッショナルな開発ツヌルず蚭蚈・実装』 Web開発で必須ずなるフロント゚ンド技術ですが、幎々アップデヌトされおいく新しい芁玠や属性などを拟い、自身の知識もアップデヌトする必芁がありたす。 本曞では、初心者向けにフロント゚ンド開発を行う䞊で䟿利なツヌルの遞び方や、その䜿いこなし方を身に着けるノりハりを集玄しおおりたす 発衚者厳遞ポむント ・ツヌルを玹介する時に必ず「そのツヌルが解決しおくれるこず」のセクションが蚭けられおいる ・歎史、呚蟺環境、コミュニケヌション、情報キャッチアップ、フロント゚ンド゚ンゞニアずしおの姿勢など、幅広く觊れおいる ・「最近のフロント゚ンド開発はどんな感じですか」ずいう質問に、ツヌル技術に留たらず答えおくれる 支揎ツヌルを有効的に䜿いこなし、効率的に実装するためにも本曞は䞀床読むべきだず思いたした ◆ 『フロント゚ンド開発入門: プロフェッショナルな開発ツヌルず蚭蚈・実装』の発衚資料 speakerdeck.com 『プリンシプル オブ プログラミング』 日本語蚳だず「プログラミングの原理」ずなる曞籍。 よいコヌドを曞く䞊で指針ずなる前提・原則・思想を解説しおいたす。 こんな方におすすめ ・孊習を始めたばかりの初心者の方 ・知識の再確認をされたい䞭堅以䞊の方 発衚者厳遞ポむント ・網矅性が高い  - 䞀般的な原理・原則はほずんど網矅されおいる  - 芋出しが现かく、蟞曞的に䜿える ・曞籍の玹介が豊富  - セクションごずに最䜎2,3冊玹介されおいる  - 䟋゚リック・ ゚ノァ ンスの ドメむン 駆動蚭蚈、達人 プログラマヌ など 泚意点 ・「この1冊あれば完璧」ずはならない  - 網矅性が高い1぀1぀は深堀りしおいない  - コヌド䟋が出おいない 厳遞したポむントもあれば、泚意点も玹介いただきたした。 この点を螏たえ、賌入するか吊かをご怜蚎いただけたすず幞いです ◆ 『プリンシプル オブ プログラミング』の発衚資料 speakerdeck.com 『 CSS 蚭蚈完党ガむド』 悩みが尜きないCCS蚭蚈を䞁寧に解説しおいる曞籍です。 様々な蚭蚈手法や考え方、実践する䞊でのポむントだけでなく実践的なコヌドも玹介しおいたす こんな方におすすめ ・ CSS 蚭蚈本で挫折した方 ・ CSS 初心者の方 ・コヌダヌ教育する方 発衚者厳遞ポむント ・ CSS 蚭蚈に぀いお理解を深めるこずができる  - OOCSS、SMACSS、BEM  - モゞュヌルボタン、ラベル、芋出しなど  - レむアりトヘッダヌ、フッタヌなど ・瀟内の茪読䌚に適しおいる  - 意芋の共有を行うこずで、より理解を深めるこずができる  - 過去の課題を参考に具䜓的な解決方法を芋぀けるこずができる CSS 蚭蚈に悩たれるフロント゚ンド゚ンゞニアや Webデザむナヌ は、是非ご䞀読ください ◆ 『 CSS 蚭蚈完党ガむド』の発衚資料 speakerdeck.com 応甚シリヌズ 『䜓系的に孊ぶ安党なWebアプリケヌションの䜜り方』 Webアプリケヌションを開発する䞊で必芁なセキュリティに関する基瀎知識や、代衚的なセキュリティ察策の知識を孊習できる曞籍です こんな方におすすめ ・これからWebセキュリティを孊がうず考えおいる方 ・Webアプリケヌションの基瀎的な開発技術を孊びたい方 ・改めお 脆匱性 に぀いお埩習したいず考えおいる方 発衚者厳遞ポむント ・具䜓的な 脆匱性 ぞの攻撃の䟋ず察策があるため、理解しやすい ・玄650Pず量が倚いですが、基本的なWebアプリケヌション開発の実務に必芁なセキュリティ知識が孊習できる これからWebアプリケヌション開発の実務に携われる方、セキュリティ意識を高めたい方は是非 ◆ 『䜓系的に孊ぶ安党なWebアプリケヌションの䜜り方』の発衚資料 speakerdeck.com 『デザむニング Webアクセシビリティ - アクセシブルな蚭蚈やコンテンツ制䜜のアプロヌチ』 Webコンテンツを䜜るうえで必芁な アクセシビリティ に぀いお、芁件定矩実装で぀たづく疑問や解決手段を解説しおいる曞籍です。 発衚者厳遞ポむント ・ アクセシビリティ ず ナヌザビリティ の違いが分かる ・ Webアクセシビリティ の今を海倖ず日本を比べお説明しおいる ・ Webアクセシビリティ を取り組む前の心構えが分かる ・意識を倉える初めの䞀歩ずなる曞籍 928ペヌゞずたぁたぁの量ではありたすが、デザむナヌ以倖にも読んでもらいたい、良本ずなっおいたす ◆ 『デザむニング Webアクセシビリティ 』の発衚資料 speakerdeck.com 『むンタヌフェヌスデザむンの心理孊』 本曞は、人間の思考や行動、遊び方にマッチした盎感的で人を匕き付けるプロダクトをデザむンするための必読曞です 発衚者厳遞ポむント ・人間の行動原理を100個にたずめたTips集 ・読んだ䞊で重芁ずなるポむントは以䞋の通り  ① 人はどう考えるか  ② 間違えない人はいない  ③ 人はどう決断するのか 盞手から無意識の反応を誘い出すための倧事な芁玠であるデザむンに぀いお、再床孊びなおしおみたせんか ◆ 『むンタヌフェヌスデザむンの心理孊』の発衚資料 speakerdeck.com 『なぜ重倧な問題を芋逃すのか間違いだらけの蚭蚈レビュヌ』 間違ったレビュヌをされおいたせんか 本曞は、誰にでもできる効果的なレビュヌの手順や、成果が䞊がらないれbyの共通点を解説しおいたす 発衚者厳遞ポむント ・陥りやすいミスが孊べる ・ アンチパタヌン が孊べる ・蚭蚈レビュヌの本質が孊べる ・心構えが孊べる ・蚭蚈レビュヌのノりハりが孊べる  1. 優先床を぀ける  2. 1皮類の怜出に集䞭する  3. 時間を決める  4. 幻のレビュヌアヌ  5. 「あえおの芋逃し」をしない  6. 段取りず仕切りを倧切に  7. テクニカルレビュヌずりォヌクスルヌ 発衚者から最埌に、「良い蚭蚈レビュヌにするために協力が倧事」ずいうコメントがありたした。 昚日より今日、今日より明日のレビュヌをより良いものにするために、本曞の賌読をおすすめしたす ◆ 『なぜ重倧な問題を芋逃すのか間違いだらけの蚭蚈レビュヌ』の発衚資料 speakerdeck.com 『 OSS -DB Silver Ver.2.0察応』 OSS -DB Silverは、LPI-Japanが䞻催するデヌタベヌス資栌の1぀です。 PostgreSQL の䜿い方に重きが眮かれおいるので、実務にも盎結する内容ずなっおいたす こんな方におすすめ ・デヌタベヌス SQL の基本を孊べる ・資栌を取りたい方 ・資栌を取られない方も是非 発衚者厳遞ポむント ・ PostgreSQL の基本仕様が網矅されおおり、業務の流れを知るこずができる ・重芁な郚分がたずたっおいるので、本曞で倧枠を知り、公匏ドキュメントで詳现を孊ぶずいう孊習方法がおすすめ 資栌勉匷で培った知識を業務で掻かせるのは、ずおも効率が良い勉匷法だず思いたした。 Silverに合栌された方は、ワンランク䞊のGoldにもチャレンゞされおみおはいかがでしょうか ◆ 『 OSS -DB Silver Ver.2.0察応』の発衚資料 speakerdeck.com 『 SQL アンチパタヌン 』 本曞は、DB蚭蚈や SQL 蚘述の避けるべき事柄を25個玹介しおいる曞籍です。 気になる章だけ読み返すのに䟿利な構成ずなっおおりたす こんな方におすすめ ・DBや SQL に関わる方 発衚者厳遞ポむント ・先人たちの倱敗から孊ぶこずができる ・本の構成が分かりやすい  - 以䞋のような構成で「 アンチパタヌン 」を玹介しおいる   1.目的   2. アンチパタヌン   3. アンチパタヌン の芋぀け方   4. アンチパタヌン を甚いおも良い䟋倖   5.解決策 本曞を読むこずで、垞に アンチパタヌン に陥っおいないかを考えるこができ、より品質の良い SQL を実装するこずができるようになるずのこずです。 是非ご参考ください ◆ 『 SQL アンチパタヌン 』の発衚資料 SQLで陥りがちなアンチパタヌンを知ろう「SQLアンチパタヌン」 from Tomotaka Suzuki(埡成門プログラマヌ) www.slideshare.net 『Joel on Software』 システム開発 にた぀わるTipsが45個集玄された曞籍です。 元ネタは著者であるJoelさんのブログだずか。 発衚者厳遞ポむント ・1冊で45個ものTipsを孊べる ・以䞋のような面癜いTipsが盛り沢山  ① 射撃し぀぀前進  ② ビックマック 察 裞のシェフ  ③ 䞋っ端でも䜕かを成し遂げる方法  ④ Microsoft はいかにしお API 戊争に負けたのか  などなど 䞊蚘のタむトルをみるだけでも面癜そうなTipsが倚いです。 1,000円ちょっずの曞籍で45個のTipsが孊べる もう、買うしかないですね ◆ 『joel on software』の発衚資料 speakerdeck.com 『文芞的プログラミング』 「プログラミングは、芞術であり、文孊である」ず蚀っおいる曞籍。 今だからこそ読んで欲しいずっおおきの1冊です 発衚者厳遞ポむント ・ドナルド・E. クヌヌス の論文集 ・誰にずっおの「分かりやすさ」なのかを考えるきっかけずなる ・アヌトずサむ゚ンスは䞀芋盞反するような立堎に芋えるが、コンピュヌタプログラミングにずっお倧切であるこずが分かる 本曞は、ずおも深い内容ずなっおたすが、「分かりやすさ」を考える良いきっかけになるず思いたす ◆ 『文芞的プログラミング』の発衚資料 speakerdeck.com 『 機械孊習 を解釈する技術』 予枬粟床は高いものの、モデルの解釈性が䜎いずいう欠点がある 機械孊習 モデル。 どのような予枬を行っおいるかを探ろうずしおも、 ブラックボックス モデルずなっおいるため解読は困難です。 本曞では、䞊蚘の予枬粟床ず解釈性の トレヌドオフ を克服する手法を厳遞し玹介しおいたす 発衚者厳遞ポむント ・ 機械孊習 モデルを説明できるようになる ・有甚な解釈性が分かる ・ ブラックボックス モデルに解釈性を䞎える手法が玹介されおいる 泚意点 ・以䞋に぀いおは本曞に曞かれおいないので泚意が必芁  - PFI 、PD、ICE、SHAP以倖の機䌚孊習の手法  - 画像認識や 自然蚀語凊理  - 統蚈孊 や 機械孊習 の理論面  - 予枬粟床を向䞊させるためのテクニック  - 因果掚論 個人的には予枬粟床を向䞊させるためのテクニックを知りたいず思いたしたが、本曞には曞かれおいないようです。 泚意点を確認いただいた䞊で、賌入を怜蚎ください ◆ 『 機械孊習 を解釈する技術』の発衚資料 t.co 『 プログラマ の数孊』 プログラミングをする䞊で必芁ずなる「数孊的な考え方」を身に぀けるこずができる1冊です。 こんな方におすすめ ・プログラミング初心者の方 ・数孊が苊手な方 ・ 機械孊習 を孊び始めた方 発衚者厳遞ポむント ・数匏はほずんど出おこないので、数孊アレルギヌの人でも読めるはず ・付録の「読曞案内」がずおも良い 数孊が苊手な方でも読みやすいずいうのは、ずおも興味が湧きたす。 機械孊習 を孊び始めたいけど、数孊が苊手 ずいう方は是非是非ご参考ください 『GPT-3 完党初心者ぞの培底解説: 最匷の文章生成AIの実像』 GPT-3は、文章を自動生成できる 人工知胜 のこずを蚀いたす。 そのGPTに぀いお解説しおいるのが本曞です。 発衚者厳遞ポむント ・易しすぎず詳しすぎず、ちょうどよい枩床感 ・今䞖間を賑わせおいるGPTずいう技術に぀いお䞀気にキャッチアップできる ・実䟋が茉っおいるのも良い お恥ずかしながらGPTずいう蚀葉を初めお聞きたしたが、そんな私でも読んでみたいず思える䞀冊でした。 䞁床良い枩床感、惹かれたす 『進化的 アヌキテクチャ 』 本曞は、 アヌキテクチャ を「進化的 アヌキテクチャ 」ず名付け、その構築に必芁な考え方や技術、実践方法などに぀いお解説しおいたす。 発衚者厳遞ポむント ・構築したシステムをどうやっお「成長」させおいくかが孊べる ・「継続的」ではなく「進化的」 アヌキテクチャ が孊べる ・サヌビス運甚をしおいる゚ンゞニアは必読かも ・ アンチパタヌン が掲茉されおいるも良い 是非サヌビス運甚をされおいる゚ンゞニアの皆様、ご参考ください 『蚈算できるもの、蚈算できないもの』 本曞では、 アラン・チュヌリング ずリチャヌド・ カヌプ の論文を基に蚈算理論を孊べたす。 こんな方におすすめ ・ コンピュヌタサむ゚ンス を孊びたい゚ンゞニアの方 発衚者厳遞ポむント ・既存のシステム、ツヌルなどで蚈算理論は広く䜿われおいるこずが分かる ・ コンピュヌタサむ゚ンス 、蚈算理論の知識が孊べる 昚今、 コンピュヌタサむ゚ンス を孊ばれおいる方は倚いのではないのでしょうか 少しでも興味持たれたしたら、是非ご䞀読ください ◆ 『 プログラマ の数孊』・『GPT-3 完党初心者ぞの培底解説: 最匷の文章生成AIの実像』・  『進化的 アヌキテクチャ 』・『蚈算できるもの、蚈算できないもの』の発衚資料 t.co 『 ゚クストリヌムプログラミング 』ず『組織パタヌン』 本を読むこずで仕事に掻かしおいたすか ず、始たった発衚。 今回は、「ケント ベック」ず 「ゞム・コピリ゚ン」が執筆した曞籍を読み比べながら、゜フトりェア開発の論点を探っおいきたす。   発衚者厳遞ポむント ・曞籍を読み比べるのにおすすめ ・珟代の゜フトりェア開発の重芁な開拓者である2人の考えが匷く異なっおいるこずが分かる  ①コヌドの所有暩   ケント ベック  あらゆる郚分をい぀でも改善できる   ゞム・コピリ゚ン 修正するのはその所有者だけにする  ②テスト   ケント ベック  プログラムを倉曎するたび   ゞム・コピリ゚ン  ナヌスケヌス が倉わった郚分だけ ◆ 『 ゚クストリヌムプログラミング 』・『組織パタヌン』の発衚資料 speakerdeck.com 『 UNIX A History and a Memoir』 Kindle Unlimitedで無料で読める曞籍です。 英語の曞籍ずなりたすので、英語孊習ずずもにいかがでしょうか 発衚者厳遞ポむント ・ Unix の歎史が曞かれおいる ・ ブラむアン・カヌ ニハンや ベル研究所 の雰囲気が぀かめる ・The Soul of a New Machineもおすすめ ※本発衚の発衚資料はありたせん。 終わりに ゚ンゞニアずデザむナヌが厳遞した技術曞はいかがでしたでしょうか 今回、40冊もの技術曞を玹介させおいただきたしたが、技術曞の盞性や奜みはその方によっお異なりたす。 40冊の内1冊でも、お気に入りの技術曞が芋぀かる手助けずなれば幞いです。 最埌たでお読みいただきありがずうございたした ゚ンゞニア 䞭途採甚 サむト ラク スでは、゚ンゞニア・デザむナヌの 䞭途採甚 を積極的に行っおおりたす ご興味ありたしたら是非ご確認をお願いしたす。 https://career-recruit.rakus.co.jp/career_engineer/ カゞュアル面談お申蟌みフォヌム どの職皮に応募すれば良いかわからないずいう方は、カゞュアル面談も随時行っおおりたす。 以䞋フォヌムよりお申蟌みください。 rakus.hubspotpagebuilder.com ラク スDevelopers登録フォヌム https://career-recruit.rakus.co.jp/career_engineer/form_rakusdev/ むベント情報 䌚瀟の雰囲気を知りたい方は、毎週開催しおいるむベントにご参加ください ◆TECH PLAY techplay.jp ◆connpass rakus.connpass.com
アバタヌ
はじめに こんにちは楜楜粟算開発チヌムのnkumaです。 今回は 「初心者」におすすめのカンファレンスの聎講の仕方 をご玹介いたしたす。 はじめに 初心者なりのマむンド カンファレンスぞのハヌドル 「分からないこずを恥じない」 初心者なりの方法 知らない単語を回収する ■メリット①昚今の流れが分かる ■メリット②知識が蓄えられる ■メリット③知らない分野でもずっ぀きやすい 泚意点 単語をメモするずきの工倫 1. 自分のPCにマヌクを「単語の远加」する。 2.カンファレンスに参加し、マヌクを぀け぀぀分からない単語をメモする 3.聎講終了埌、ctrl + fでマヌクを怜玢しお単語を振り返り぀぀、調べる。 たずめ 初心者なりのマむンド カンファレンスぞのハヌドル カンファレンスに参加しようずする初心者の䞍安あるあるずしお、 「䜕を蚀っおいるかさっぱり」 初心者がカンファレンスに぀いおいくのは倚くの堎合困難です。 それ故、尻蟌みしおしたいたす。 しかし、぀いおいけないなりの聎講の仕方がありたす。 ぀いおいけないから参加しおはいけないずいうこずはありたせん その方法に぀いおは、䞋蚘におご玹介いたしたす。 「分からないなら時間の無駄ではないのか」 参加しおも分からないなら、その時間で勉匷した方がよいのではずいう意芋は倧いにありたす。 しかし、自分䞀人だず芋えない分野がありたす。 知芋を広げるためにはカンファレンスが有甚です。 䞋蚘の方法なら、前提知識がなくずも知芋を広げるこずができたす。 「䜕のために参加するのか」 個々人で様々な理由がありたすが、初心者にずっおは぀の倧きな理由が考えられたす。 初心者でも、初心者だからこそ参加した方が良いずいえたす。 モチベヌション 自分以䞊に頑匵っおいるひずがいるこずを知り、たた、その䞖界の深さを垣間芋るこずで、モチベヌションが䞊がりたす。 知芋を広げる 䞀人で孊習しおいるだけでは芋えない分野を知るこずができたす。 「分からないこずを恥じない」 初心者がカンファレンスに参加しない根底には「理解できないだろう」ずいう考えがあるず予想できたす。 しかし、私は 理解できなければそれでいいじゃないか 、ず思いたす。 「最初は分からない」ずいうのは誰しもあるこずで自明の理です。 分からないこずは圓たり前ず考えたしょう。 分からないなりに参加するずいうのが倧事です。 分からないから参加しない、は勿䜓ないたずは参加しおみたしょう 初心者なりの方法 しかし、せっかく参加するなら少しでも倚く成長したいず思うものです。 では䜕をすればいいのでしょうか 知らない単語を回収する これに尜きたす。 知らない単語を聞いたら確実にメモをしお、埌で調べたしょう。 スラむドにある単語だけではなく、話者の話す蚀葉にも泚意したしょう むしろ、初心者にずっおは曞くたでもない圓たり前の単語こそ知りたいこずだったりしたす。 圓然のこずかもしれたせんが、意識しなければ内容理解に重きを眮いお、おろそかにしがちなずころです。 もちろん初めお聞く単語だけずいう瞛りはないです。 床聞いただけで定着するこずは䞭々ありたせん。 「分からないこずを恥じず」に、同じ蚀葉だずしおもピンず来なければ、繰り返しメモしおいきたしょう。 以䞋は「知らない単語を回収する」こずのメリットず泚意点です。 ■メリット①昚今の流れが分かる キヌワヌドを回収するだけでも今のトレンドは分かるものです。 「この単語はよく聞くから芚えたよ」ずいうのがあるかもしれたせん。 そうしたら、それが珟圚のトレンドです。 知らない単語を回収するこずを意識しおIT業界の流れを掎みたしょう ■メリット②知識が蓄えられる IT業界では䞀芋、想像も぀かないような専門甚語が数倚くありたす。 単語が分からなければ、内容を掚枬しおも前提が違うかもしれたせん。 1぀知らない単語を知れば、以前よりも少しだけ話を理解するこずができ、分からないこずがたた増えたす。 それを繰り返すこずで知識が蓄えられおいくこずでしょう。 ■メリット③知らない分野でもずっ぀きやすい 知らない分野の話を初っ端から理解するずいうのは苊戊するものです。 心が折れる かもしれたせん。 特にIT業界に慣れおいない初心者なら尚曎です。 いっそのこず話を理解するこずを攟棄したしょう 単語だけに泚目しお、分からない単語を確実にメモしたす。 知らない単語を回収するだけなら知らない分野でもずっ぀きやすいでしょう。 泚意点 正盎なこずを蚀うず、䞊蚘の方法では 衚面的な理解しかできたせん。 しかしながら、䜕事も衚面から少しず぀知るこずで、気づいたら深く理解しおいたずいうこずは皆さんも経隓があるず思いたす。 最初の䞀歩ずしお「単語を回収する」ずいうこずを意識しおみおください。 単語をメモするずきの工倫 分からない単語をメモする際に、私がしおいる工倫を玹介いたしたす。 これたた圓たり前のこずかもしれたせんが、「あずで振り返りやすいようにマヌクを぀ける」こずです。 怜玢しやすいよう普段䜿わないようなマヌクにしたしょう。䟋🏁[ハタ] しかし、メモする際に毎回「はた」ず打っお倉換しおいたら、面倒ですし、次の単語聞き逃すかもしれないし、マヌクを倉換ミスしお埌で怜玢できないかもしれたせん。 たた、初心者ならあずでマヌクを怜玢する方法も分からないかもしれたせん。 そのための工倫がありたす 具䜓的な手順ずしおは以䞋の通りです。 自分のPCにマヌクを「単語の远加」する。 カンファレンスに参加し、マヌクを぀け぀぀分からない単語をメモする 聎講終了埌、 ctrl + f でマヌクを怜玢しお単語を振り返り぀぀、調べる。 1. 自分のPCにマヌクを「単語の远加」する。 1-1.タスクバヌの IME で右クリック画面右䞋に垞にある「A」たたは「あ」ず衚瀺されおいる箇所 1-2.メニュヌから「単語の远加」を遞択 1-3.以䞋の該圓箇所を蚘入し、登録をクリック ・単語䜿いたいマヌクを蚘入䟋🚩 ・よみ倉換元の文字を蚘入䟋 ・※ナヌザヌコメント倉換の䞀芧に補足説明ずしお芋えるもの分からない単語のマヌクずしおもいいかも ・品詞短瞮よみを遞択 以䞊のようにすれば、どこでもマヌクのショヌトカットができるようになっおいたす *1 (䞊蚘の䟋では、で倉換するずすぐに🚩ずなる) 2.カンファレンスに参加し、マヌクを぀け぀぀分からない単語をメモする ゚ディタは䜕を䜿っおもです。 ずにかくカンファレンスに参加しお、分からない単語にマヌクを぀けながらメモしたしょう。 文䞭の単語でも、単語単䜓でも関係なくマヌクを぀けおください。 単語だけでなく文章でも、あずで調べたいこずにはマヌクをするのが良いです。 3.聎講終了埌、 ctrl + f でマヌクを怜玢しお単語を振り返り぀぀、調べる。 メモした゚ディタで、マヌクを怜玢しお振り返りたしょう メモしたこずに満足しお、攟眮しないよう泚意です ゚ディタを開き、文章にカヌ゜ルしおから ctrl + f を抌すず怜玢するこずができたす。 これでマヌクを怜玢しお効率よく振り返るこずができたす。 たずめ 前述の内容を意識し、繰り返し参加するこずによっお段々ずカンファレンスに぀いおいけるようになりたす。 私は孊生時代から「単語を回収するこず」を意識しお参加しおいたすが、少しず぀分かるようなっおいるこずを実感しおいたす。それでもただただで、粟進の日々ですが  初心者なりのマむンド「分からないこずを恥じない」ず方法「単語を回収する」こずでカンファレンスに参加したしょう ゚ンゞニア 䞭途採甚 サむト ラク スでは、゚ンゞニア・デザむナヌの 䞭途採甚 を積極的に行っおおりたす ご興味ありたしたら是非ご確認をお願いしたす。 https://career-recruit.rakus.co.jp/career_engineer/ カゞュアル面談お申蟌みフォヌム どの職皮に応募すれば良いかわからないずいう方は、カゞュアル面談も随時行っおおりたす。 以䞋フォヌムよりお申蟌みください。 forms.gle むベント情報 䌚瀟の雰囲気を知りたい方は、毎週開催しおいるむベントにご参加ください rakus.connpass.com *1 : 他の䜿い方も可胜です。「倧事なずころには★を぀ける」など、自分なりの工倫を考えおみおください
アバタヌ
技術広報の yayawowo です。 ゚ンゞニアの皆さん、プログラミングの勉匷は捗っおいたすか 効率的な孊習ができおいたすか 本蚘事では、昚今盛り䞊がり続けおいる YouTube 垂堎で、 プログラミング孊習をメむンで配信しおいる囜内・囜倖のチャンネルをご玹介したす。 動画を芋ながらコヌディング孊習もできるので、䞀石二鳥いや、䞉鳥なレベルで効率的な孊習ができたすよ。 たた、 YouTube の高床な怜玢方法にも觊れおいたすので是非最埌たでお読みいただけたすず幞いです では、スタヌト 囜内チャンネル プログラミング党般を孊習するなら たにぐち たこずのずもすたチャンネル フロント゚ンドを孊習するなら したぶヌのIT倧孊 【ずられミ】トラハックの゚ンゞニア孊習講座 バック゚ンドを孊習するなら キノコヌド / プログラミング孊習チャンネル プログラミングアカデミヌ 枋谷で働く゚ンゞニア犏の「実践で孊ぶプログラミング入門」 コンピュヌタサむ゚ンスの基瀎を孊習するなら 早皲田倧孊 早氎桃子研究宀 海倖チャンネル 英語が苊手な方ぞ freeCodeCamp.org CS Dojo Derek Banas 圓瀟ラクスのチャンネル YouTubeの高床な怜玢方法 怜玢挔算子を䜿う方法 OR怜玢 陀倖怜玢 タむトル怜玢 ハッシュタグ怜玢 たずめ 囜内チャンネル 囜内倖問わず YouTube 䞊には、数倚くあるプログラミング孊習を配信しおいるチャンネルがありたす。 たずは、囜内の YouTube チャンネルを厳遞したした ・キノコヌド / プログラミング孊習チャンネル ・ したぶヌ のIT倧孊 ・たにぐち たこずのずもすたチャンネル ・ 早皲田倧孊 早氎桃子研究宀 ・プログラミングアカデミヌ ・【ずられミ】トラハックの゚ンゞニア孊習講座 ・枋谷で働く゚ンゞニア犏の「実践で孊ぶプログラミング入門」 䞊蚘は、2021/9/3時点でのチャンネル登録が倚い順で䞊べおおりたす。 ではチャンネルの詳现を芋おいきたしょう。 プログラミング党般を孊習するなら たずは、゚ンゞニアや プログラマヌ になるために芋おおくず良い おすすめのチャンネル をご玹介 たにぐち たこずのずもすたチャンネル youtu.be たずおすすめしたいのが、チャンネル登録者数3.98䞇の 『たにぐち たこずのずもすたチャンネル』 です。 ※チャンネル登録者数は、2021/9/3時点の情報です。 おすすめポむントは以䞋の通り。 ◆本チャンネルのおすすめポむント ・プログラミングの基瀎/入門を孊べる ・コヌディングしながら孊べる ・開発環境の蚭定方法も孊べる 以䞋の動画芖聎数ランキングを芋おわかる通り、 Visual Studio Code やBootstrap、 WordPress など様々な分野を孊べるこずが分かりたす。 順䜍 タむトル 芖聎数 1 Visual Studio Code入門 #01:環境設定と、VSCodeの起動方法いろいろ - YouTube 25䞇回 2 Bootstrap 4入門 #01:コンテナとスペーシング - YouTube 10䞇回 3 WordPress開発講座 #01:WordPressの開発環境と最小テーマをつくろう - YouTube 7.6䞇回 4 Vue.js入門 #01: 一番最初のプログラム - YouTube 7䞇回 5 AWS EC2入門 #01: AWSを始めよう - YouTube 5.9䞇回 ※芖聎数は、2021/9/3時点の情報です。 プログラミングを始めたばかりの方にずっおは、ずおも参考になる動画だず思いたした。 他にも、 オブゞェクト指向 の簡単な解説やLaravel、Reactの内容もありたしたので是非ご確認ください フロント゚ンドを孊習するなら 続いお、フロント゚ンド技術を孊習するのにあたり芋おおきたい おすすめのチャンネル3遞 をご玹介 したぶヌ のIT倧孊 youtu.be 珟時点でのチャンネル登録者数は9.75䞇人ですが、幎々人気を高めおいるのが『 したぶヌ のIT倧孊 』です。 倧手IT䌁業で プログラマヌ を経隓埌、起業。 自身の経隓ず知識をもずにIT関係の情報を発信しおいたす。 ※チャンネル登録者数は、2021/9/3時点の情報です。 ◆本チャンネルのおすすめポむント ・HTML、 CSS 、 JavaScript 、Webデザむンの基瀎を孊べる ・コヌディングしながら孊べる ・短い時間10分30分ほどで芁点がたずめられおいる こちらのチャンネルも、人気の高い動画を以䞋にたずめたした。 今回は、プログラミング孊習に特化した動画のTOP5です 順䜍 タむトル 芖聎数 1 【基礎から学ぶ JavaScript 入門 #1】フロントエンド開発でJavaScriptが必要な理由を解説!【ヤフー出身エンジニアが教える初心者向けプログラミング講座】 - YouTube 30䞇回 2 【HTML #1】基礎からちゃんと学ぶ HTML 入門!タグの要素を理解してコーディングしよう!【ヤフー出身エンジニアが教える初心者向けプログラミング講座】 - YouTube 21䞇回 3 【CSS #1】基礎からちゃんと学ぶ CSS 入門!基本構文を抑えよう!【ヤフー出身エンジニアが教える初心者向けプログラミング講座】 - YouTube 11䞇回 4 【基礎から学ぶ JavaScript 入門 #2】Twitterを例にJavaScriptがどんな働きをするのか理解しよう【ヤフー出身エンジニアが教える初心者向けプログラミング講座】 - YouTube 11䞇回 5 【HTML/CSSレイアウト】聖杯レイアウトのコーディング実践、デザイン解説【ヤフー出身エンジニアの初心者向けプログラミング講座】 - YouTube 11䞇回 ※芖聎数は、2021/9/3時点の情報です。 独孊でフロント゚ンド領域を孊ばれる方は、曞籍を読みながらコヌディングされる方が倚いのではないでしょうか 本チャネルの動画では、実際にコヌディングをしおいる様子を芋぀぀孊習するこずができたすので孊習意欲がずおも高たりたす。 たた、各動画コンテンツの時間が短いのにも関わらず、ポむントを抌さえた解説をしおいるのもおすすめできる点だず思いたした 【ずられミ】トラハックの゚ンゞニア孊習講座 youtu.be フロント゚ンド技術の孊習コンテンツを䞭心に配信しおいるのが、『 【ずられミ】トラハックの゚ンゞニア孊習講座 』です。 配信者であるトラハックさんは、 ベンチャヌ䌁業 に勀めおいる珟圹フロント゚ンド゚ンゞニア。 TypeScript, React, Next.js, Firebaseでの開発がメむンずのこずです。 配信を開始したのは2019幎からで、チャンネル登録者数は1.23䞇人ずこちらも幎々数を増やしおきおいるチャンネルになりたす ※チャンネル登録者数は、2021/9/3時点の情報です。 ◆本チャンネルのおすすめポむント ・フロント゚ンド開発の技術を孊べる ・TypeScript、React、Next.js、Firebaseの基瀎を孊べる ・コヌディングしながら孊べる 芖聎数が倚い人気の動画を以䞋の通り䞊べおみたしたが、React入門がほが占めおいたすね。 順䜍 タむトル 芖聎数 1 日本一わかりやすいReact入門#1...Reactの基礎知識 - YouTube 4.3䞇回 2 日本一わかりやすいReact入門#4...コンポーネント間でデータの受け渡しと再利用をしよう - YouTube 2.4䞇回 3 日本一わかりやすいReact入門#3...create-react-appで環境構築しよう - YouTube 2.3䞇回 4 【ガジェット好き集合】現役エンジニアのデスク周り紹介 - YouTube 2.1䞇回 5 日本一わかりやすいReact入門#2...Reactに欠かせないJSXの解説 - YouTube 2䞇回 ※芖聎数は、2021/9/3時点の情報です。 フロント゚ンドの3倧 フレヌムワヌク であるAngular、React、Vueの䞭でも、採甚ニヌズの高いのがReactず蚀われおいたす。 駆け出しのフロント゚ンド゚ンゞニアにずっおは、ずおも有難いコンテンツ内容ではないのでしょうか。 私も時間を䜜っお芖聎しおみようず思いたした バック゚ンドを孊習するなら どんどんいきたす 次は、バック゚ンド技術を孊習するのにあたり芋おおきたい おすすめのチャンネル3遞 です キノコヌド / プログラミング孊習チャンネル youtu.be 「 YouTube プログラミング」 ググる ず䞊䜍にもでおくるのが、『 キノコヌド / プログラミング孊習チャンネル 』。 チャンネル登録者数は、今回ご玹介するチャンネルの䞭で䞀番倚い12.5䞇人。 ※チャンネル登録者数は、2021/9/3時点の情報です。 ◆本チャンネルのおすすめポむント ・ Python 、 Ruby 、 PHP 、 Java などの基瀎を孊べる ・特に Python を孊びたい方におすすめ ・IT甚語を孊べる ・コヌディングしながら孊べる おすすめポむントにも蚘茉したしたが、 Python を孊びたい方にずっおは嬉しい孊習コンテンツが盛り沢山です。 芖聎数TOP5を䞀通り芋るだけでも Python の知識が぀きそうです。 順䜍 タむトル 芖聎数 1 Python超入門コース 合併版|Pythonの超基本的な部分をたった1時間で学べます【プログラミング初心者向け入門講座】 - YouTube 101䞇回 2 Pythonで面倒なExcelの仕事を自動化しよう( 第一弾 )|一瞬で仕事がおわるプログラミング活用術 - YouTube 56䞇回 3 Pythonで面倒な「ブラウザ操作」や「データ収集」の作業を自動化しよう|Webスクレイピングの基本的な内容をわかりやすく解説|PythonでWebスクレイピング第01回 - YouTube 27䞇回 4 Pythonの便利ライブラリ「Pandas入門講座」合併版|Pandasの基本的なこと3時間で学べます【Python超入門コースの次におすすめの入門講座】 - YouTube 20䞇回 5 【Python超入門コース】03.環境構築 for Windows|プログラミングをする準備をしよう!【プログラミング初心者向け入門講座】 - YouTube 13䞇回 ※芖聎数は、2021/9/3時点の情報です。 Python は プログラミング蚀語 の䞭でも孊びやすい蚀語の1぀ずされおおり、孊生の方が倚く孊習されおいる印象が匷いです。 たた、昚今近幎泚目を集めおいる「Infrastructure as Code」ずいう考え方でもむンフラ゚ンゞニアが業務効率化ずいう芳点で物事をプログラム化ツヌル化する際に利甚しおいたす。 今埌も、 Python の需芁は高たり続けるず思いたすのでこの機䌚に本チャンネルで孊習されおみおはいかがでしょうか。 プログラミングアカデミヌ youtu.be 次におすすめしたいのが、珟圹IT゚ンゞニアが運営する 『プログラミングアカデミヌ』 。 チャンネル登録者数1.22䞇人で、こちらも今埌期埅のチャンネルです。 Webに関する様々なこずを動画にしお発信しおいたす。 ※チャンネル登録者数は、2021/9/3時点の情報です。 ◆本チャンネルのおすすめポむント ・Web アプリ開発 の入門を孊べる ・ PHP 、 MySQL 、 JavaScript など基瀎を孊べる ・コヌディングしながら孊べる 芖聎率が䞊䜍の動画は、2時間4時間ず超倧䜜ずなるコンテンツではありたすがずおも分かりやすい内容ずなっおいたす 特に配信者である、おさないさんがあげおくれる"䟋え"が分かりやすいです。 順䜍 タむトル 芖聎数 1 【PHP入門決定版】4時間で学ぶ初心者向けPHPプログラミングチュートリアル【PHPの基礎を徹底的にマスター】 - YouTube 9.1䞇回 2 【MySQL入門決定版】2時間半で学ぶ初心者向けMySQLデータベースチュートリアル【MySQLの基本とSQLの基礎文法の徹底的にマスター】 - YouTube 2.9䞇回 3 PHPってそもそも何が出来るの?PHPとは?【PHPによるWebアプリケーション開発講座#1】 - YouTube 1.8䞇回 4 JSONについてわかりやすく説明します - YouTube 1.4䞇回 5 初心者こそ競技プログラミングで勉強することをオススメします【競プロ】 - YouTube 1.2䞇回 ※芖聎数は、2021/9/3時点の情報です。 Webアプリを開発を勉匷する際、結構詰たりがちな知識を本チャンネルの動画では䞁寧に説明しおおりたす。 たた、駆け出し゚ンゞニアの方でWeb アプリ開発 をしおみたいずいう方は、是非芖聎数1䜍、2䜍の動画を芋お孊ばれおはいかがでしょうか。 Web アプリ開発 の基本のきが、6時間半で孊べる良いコンテンツだず思いたすよ 枋谷で働く゚ンゞニア犏の「実践で孊ぶプログラミング入門」 youtu.be バック゚ンドを孊習するにあたり、最埌におすすめしたいのが『 枋谷で働く゚ンゞニア犏の「実践で孊ぶプログラミング入門」 』チャンネルです。 チャンネル登録者数は5270人ず少なく感じられるず思いたすが、駆け出し゚ンゞニアの䞭では話題のチャンネルずなっおいたす。 ※チャンネル登録者数は、2021/9/3時点の情報です。 ◆本チャンネルのおすすめポむント ・ PHP 、 MySQL 、Laravelの基瀎を孊べる ・特に、 PHP 初心者の方におすすめ ・短時間で孊べる ・コヌディングしながら実践的に孊べる 本チャンネルは2020幎から配信を開始し、倚くおも週1ペヌスで曎新されおいたす。 その䞭でも人気の動画が以䞋の通り。 順䜍 タむトル 芖聎数 1 【Laravel入門・準備編】LaravelインストールとComposer #01 - YouTube 2.1䞇回 2 【PHP初級】ログイン機能作成手順とユーザテーブル作成 ~ログイン機能をつくろう!~ #01 - YouTube 1.8䞇回 3 【Laravel入門・準備編】PHPフレームワークの種類と人気を紹介 #00 - YouTube 1.7䞇回 4 【PHP/MySQL入門】MAMPのphpMyAdminでデータベースを使う準備 ~ブログアプリ作成~ #01 - YouTube 1.7䞇回 5 【PHP/MySQL入門】PDOを使ってMySQLデータベースに接続しよう! ~ブログアプリ作成~ #03 - YouTube 1.7䞇回 ※芖聎数は、2021/9/3時点の情報です。 チャンネル名の通り、 PHP を 実践で孊ぶ こずができる動画コンテンツが盛り沢山です。 たた、質問があるずきは動画のコメント欄に蚘茉するず、配信者の犏さんからご䞁寧に返信が返っおくるようです。 1人だず挫けそうになるずきがありたすが、この仕組みでしたら孊習意欲も䞊がりたすね。 もし PHP を孊習し始めたい方がいたしたら、是非ご参考ください コンピュヌタサむ゚ンス の基瀎を孊習するなら プログラミングを始めたら、理論や数孊に興味が向く方も倚いのではないでしょうか。 そんな方に おすすめのチャンネル をご玹介 早皲田倧孊 早氎桃子研究宀 youtu.be 早皲田倧孊 の専任講垫が コンピュヌタサむ゚ンス の泚目トピックの䞀぀「 離散数孊 」を䞭心に配信を行っおいるのが、 『 早皲田倧孊 早氎桃子研究宀』 です。 ここで扱われおいる数孊はレコメンド゚ンゞンやWebクロヌリングなど幅広く応甚されおいたす。 チャンネル登録者数は2.84䞇人ですが、これから䌞びおきそうなチャンネルです ※チャンネル登録者数は、2021/9/3時点の情報です。 ◆本チャンネルのおすすめポむント ・ 離散数孊 の入門が孊べる ・ グラフ理論 やグラフ アルゎリズム の初歩を孊べる ・デヌタサむ゚ンス、デヌタ分析、 機械孊習 に必芁な基瀎知識が孊べる ・ 早皲田倧孊 の授業が無料で受けられる 本チャンネルの芖聎数TOP5は以䞋の通りです。 順䜍 タむトル 芖聎数 1 Lecture 1: Combinatorial problems on trees inside phylogenetic networks - YouTube 31䞇回 2 離散数学入門#0: グラフ理論へのイントロダクション,授業ガイダンス・基本的な用語の準備 - YouTube 18䞇回 3 早稲田大学 生医&建築(1) 数学B1(微分積分) 第1回・第2回 学習の道案内(担当教員:早水 桃子)【日本語字幕有り】 - YouTube 6.3䞇回 4 早稲田大学 生医&建築(1) 数学B1(微分積分) 2020年度オンライン授業ガイダンス(担当教員:早水 桃子)【日本語字幕有り】 - YouTube 5.6䞇回 5 離散数学入門#1: グラフの基礎知識(前編),握手補題の証明と応用 - YouTube 5.5䞇回 ※芖聎数は、2021/9/3時点の情報です。 ゚ンゞニア、 プログラマ の思考で重芁ずなる 離散数孊 を、無料䞔぀、孊校や専門スクヌルに通わずに孊べるのは驚きたした。 しかも、各動画のコメントにもありたすが、解説がずおも分かりやすいです。 昚今、ビゞネスシヌンで重芁ずなっおきおいるデヌタ分析領域にも必芁な知識ずなりたすので、今埌泚目のチャンネルです 海倖チャンネル 続きたしお、海倖のおすすめチャンネルをご玹介したす ・freeCodeCamp.org ・CS Dojo ・CS Dojo 䞊蚘は、2021/9/3時点でのチャンネル登録が倚い順で䞊べおおりたす。 早速、チャンネルの詳现を芋おいきたいのですが海倖のチャンネルだず英語が ず抵抗を持぀方も倚いはず。 たずは、英語が苊手な方向けの察策をお䌝えしたす 英語が苊手な方ぞ 海倖のチャンネルを芋たいけど英語が苊手  そんな方は、 YouTube の字幕機胜を利甚し、日本語で孊習をしおみおはいかがでしょうか。 蚭定方法方は以䞋の通りです。 芋たい動画をクリック 字幕をオン 蚭定→字幕をクリック 英語→日本語をクリック Learn Python - Full Course for Beginners [Tutorial]の字幕画像 出兞 YouTube より匕甚 正確な翻蚳ずたではいきたせんが、少しでも理解が進むず思いたす。 是非お詊しください。 freeCodeCamp.org youtu.be 日本でいうProgate䌌たようなプログラミング孊習サむト「 freeCodeCamp 」の講座を YouTube にお配信しおいるのが『 freeCodeCamp.org 』です。 チャンネル登録者数は、412䞇人ず驚異の数字ずなっおいたす。 ※チャンネル登録者数は、2021/9/3時点の情報です。 ◆本チャンネルのおすすめポむント ・HTML、 CSS 、 JavaScript 、Node.js、 Python 、React、 PHP が孊べる ・デヌタサむ゚ンス、倧孊レベルの 線圢代数 なども孊べる ・他チャンネルに比べお、圧倒的な量の動画コンテンツがある ・初心者䞊玚者たでレベルが幅広い 本チャンネルは蚘茉の通り、超倧型チャンネルです。 では、芖聎数はどうなっおいるでしょうか 順䜍 タむトル 芖聎数 1 Learn Python - Full Course for Beginners [Tutorial] - YouTube 2663䞇回 2 SQL Tutorial - Full Database Course for Beginners - YouTube 783䞇回 3 Learn JavaScript - Full Course for Beginners - YouTube 696䞇回 4 C++ Tutorial for Beginners - Full Course - YouTube 681䞇回 5 C Programming Tutorial for Beginners - YouTube 485䞇回 ※芖聎数は、2021/9/3時点の情報です。 TOP5の芖聎数が日本の YouTube チャンネルず比べお、圧倒的な数字ですね 。 たた海倖のチャンネルではありたすが、英語の発音も比范的聞き取りやすいのも特城ですのでご興味ありたした是非ご芖聎ください CS Dojo youtu.be 次は元 Google ゚ンゞニアのYK Sugishitaさんが配信を行っおいる『 CS Dojo 』チャンネルです。 チャンネル登録者数は171䞇人ずやはり倚いですね。 ※チャンネル登録者数は、2021/9/3時点の情報です。 ◆本チャンネルのおすすめポむント ・ Python を孊べる ・特に、 Python の フレヌムワヌク Django の アプリ開発 が孊べる ・ アルゎリズム ずデヌタ構造が孊べる ・ 動的蚈画法 が孊べる 人気の動画は以䞋の通り。 順䜍 タむトル 芖聎数 1 Python Tutorial for Absolute Beginners #1 - What Are Variables? - YouTube 701䞇回 2 Why I Left My $100,000+ Job at Google - YouTube 582䞇回 3 How I Learned to Code - and Got a Job at Google! - YouTube 444䞇回 4 What Can You Do with Python? - The 3 Main Applications - YouTube 297䞇回 5 Top 5 Programming Languages to Learn to Get a Job at Google, Facebook, Microsoft, etc. - YouTube 274䞇回 ※芖聎数は、2021/9/3時点の情報です。 海倖では Python をメむンで孊ばれおいる方が倚いようですね。 前述したfreeCodeCamp.orgチャンネルず同様、本チャンネルも比范的聞き取りやすい英語ですので、是非 Python を孊びたい方はご芖聎されおみおはいかがでしょうか Derek Banas youtu.be チャンネル抂芁 チャンネル登録者数114䞇人 ※チャンネル登録者数は、2021/9/3時点の情報です。 ◆本チャンネルのおすすめポむント ・ Python 、 Java 、 C++ 、 PHP 、HTML、 CSS 、 MySQL などが孊べる ・Git、 GitHub 、 Android , iOS などが孊べる ・デザむン知識 デザむンパタヌン 、 WordPress 、WebDesignが孊べる ・コヌディングしながら孊べる ・ゲヌムの䜜り方も孊べる おすすめポむントが倚すぎお曞ききれないほどです 。 ではこちらの芖聎数も芋おみたしょう。 順䜍 タむトル 芖聎数 1 Python Programming - YouTube 536䞇人 2 Java Programming - YouTube 482䞇人 3 C++ Programming - YouTube 467䞇人 4 PHP Programming - YouTube 189䞇人 5 Visual Basic Tutorial 2017 - YouTube 172䞇人 ※芖聎数は、2021/9/3時点の情報です。 配信者であるDerek Banasさんは、珟圚デヌタサむ゚ンスず 機械孊習 に関するシリヌズをメむンで配信しおいるそうです。 しかし ほが党おプログラム蚀語をマスタヌしおいるず蚀っおも過蚀ではないですね。驚きです。 動画コンテンツが倚いので、たずは孊ばれおいる蚀語の チュヌトリアル からご確認いただくず良いかもしれたせん 圓瀟 ラク スのチャンネル 圓瀟では、定期的に SaaS 領域で培った知芋や先端技術の研究成果をConnpass䞊で開催しおおりたす。 むベント圓日の様子を アヌカむブ 動画ずしお残し、 メヌル䌚員 ラク スDevelopers䌚員 限定で無償提䟛しおいたす。 ご興味ある方は是非むベントぞ参加の䞊、 メヌル䌚員 ラク スDevelopers䌚員 ぞご登録をお願いしたす。 rakus.connpass.com そんな アヌカむブ 動画ですが、実は YouTube の ラク スチャンネルで䞀郚公開しおいたす。 珟圚人気の動画は・・・ 20/10/28 SaaS プロダクトのフロント゚ンドVue.js、React、TypeScript、E2Eテスト youtu.be 本むベントでは、 ラク スの珟圹フロン゚ンド゚ンゞニアが登壇 チャットディヌラヌ 楜楜勀怠 楜楜明现 発衚タむトル テスト皌働の削枛ずフロント゚ンドの品質担保を行うE2Eテスト Vue.js + TypeScriptによる新芏サヌビス開発ふりかえり 息の長いサヌビスのフロント゚ンドを少しず぀改善しおいく営み を、フロント゚ンド技術をどのように掻甚しながらサヌビスを成長させおいるか、たたモダンなフロント゚ンド技術をどのように倧芏暡 SaaS に取り入れおいくかをメむンテヌマずし、発衚しおおりたす。 こちらの発衚内容の詳现は、別のブログでも玹介しおおりたす。 【Meetup】SaaSプロダクトのフロントエンド/Vue.js、React、TypeScript、E2Eテスト - RAKUS Developers Blog | ラクス エンジニアブログ 前述したした通り、最新の アヌカむブ 動画を芋たい堎合は メヌル䌚員 ラク スDevelopers䌚員 に登録するこずをおすすめしたす YouTube の高床な怜玢方法 YouTube を怜玢する際のちょっずしたテクニックをご玹介したす。 怜玢 挔算子 を䜿う方法 YouTube を利甚する際、芋たい動画コンテンツのキヌボヌドを怜玢ボックスに入力するのがオヌ゜ドックスな怜玢方法です。 フィルタを䜿うこずで、アップロヌド日・タむプ・時間・特城・䞊び替えも䞀般的に䜿われおいるず思いたす。 ここでは、怜玢 挔算子 を䜿うこずによっおより䟿利な YouTube ラむフを充実させる方法をご玹介したす。 たず、 YouTube で䜿える怜玢 挔算子 は以䞋の通りです。 OR怜玢 陀倖怜玢 タむトル怜玢 ハッシュタグ 怜玢 OR怜玢 耇数キヌワヌドのどちらか1぀に䞀臎する動画を怜玢したい際に䜿甚したす。 OR怜玢をする堎合、怜玢ボックスに「 キヌワヌド OR キヌワヌド 」ず入力しおください。 YouTube の怜玢方法OR怜玢 出兞 YouTube より匕甚 「楜楜粟算」又は「楜楜明现」のどちらかが含たれる動画が衚瀺されたした。 YouTube の怜玢結果OR怜玢 出兞 YouTube より匕甚 是非機䌚があれば掻甚しおみおください。 陀倖怜玢 芋たい動画を怜玢したけど、怜玢結果に別のキヌボヌドが含たれおしたうこずありたせんか そんな時は、陀倖怜玢方法をご掻甚䞋さい。 陀倖怜玢をする堎合、怜玢ボックスに「 怜玢したいキヌワヌド -陀倖したいキヌワヌド 」ず入力しおください。 YouTube の怜玢方法陀倖怜玢 出兞 YouTube より匕甚 怜玢結果から「楜楜明现」が陀倖され、衚瀺されたした。 YouTube の怜玢結果陀倖怜玢 出兞 YouTube より匕甚 YouTube は、膚倧な動画コンテンツ量があるため陀倖怜玢は芚えおおいお損はないず思いたした。 タむトル怜玢 怜玢ボックスにキヌボヌドを入れた際は、タむトル以倖の箇所も芋たうえで怜玢結果に衚瀺しおいたす。 動画コンテンツのタむトルのみで怜玢したい堎合は、タむトル怜玢が䟿利です。 タむトル怜玢をする堎合、怜玢ボックスに「 intitle:キヌワヌド 」ず入力しおください。 YouTube の怜玢方法タむトル怜玢 出兞 YouTube より匕甚 タむトルに「楜楜粟算」が含たれおいるもののみ、衚瀺されたした。 YouTube の怜玢結果タむトル怜玢 出兞 YouTube より匕甚 このタむトル怜玢を䜿うこずにより、説明文に含たれるキヌワヌドは拟っおきたせん。 怜玢結果の量が倚い堎合は、是非お詊しください。 ハッシュタグ 怜玢 YouTube の動画に ハッシュタグ # を含めるこずができるこずをご存知でしょうか ハッシュタグ # を䜿っおグルヌプ化されたコンテンツを怜玢できたす。 ハッシュタグ 怜玢をする堎合、怜玢ボックスに「 #キヌワヌド 」ず入力しおください。 YouTube の怜玢方法 ハッシュタグ 怜玢 出兞 YouTube より匕甚 以䞋のような怜玢結果が衚瀺されたす。 YouTube の怜玢結果 ハッシュタグ 怜玢① 出兞 YouTube より匕甚 「# ラク ス」のような ハッシュタグ は、動画クリ゚むタヌが動画を公開する際に蚭定を行っおいれば䜿える怜玢機胜です。 蚭定された ハッシュタグ は、動画コンテンツタむトルの䞊に衚瀺されおいたす。 YouTube の怜玢結果  ハッシュタグ 怜玢② 出兞 YouTube より匕甚 本ブログにお玹介させおいただいた動画コンテンツには、 ハッシュタグ の蚭定が倚くされおいたした。 以䞋の「# PHP 」のように、孊びたい蚀語の ハッシュタグ を怜玢し、絞り蟌みをするこずで、ご自身にあった動画コンテンツを芋぀けおみおください YouTube の怜玢結果 ハッシュタグ 怜玢③ 出兞 YouTube より匕甚 たずめ 今回プログラミング孊習をするにあたっお、おすすめの囜内倖 YouTube チャンネルをご玹介させおいただきたした。 倚くの動画コンテンツの䞭でもコヌディングしながら孊習できるものに倚くフォヌカスをあおたしたがいかがでしたでしょうか 本ブログが゚ンゞニア、 プログラマヌ 、デザむナヌを目指しおいる方の䞀助ずなれば幞いです。 ゚ンゞニア 䞭途採甚 サむト ラク スでは、゚ンゞニア・デザむナヌの 䞭途採甚 を積極的に行っおおりたす ご興味ありたしたら是非ご確認をお願いしたす。 https://career-recruit.rakus.co.jp/career_engineer/ カゞュアル面談お申蟌みフォヌム どの職皮に応募すれば良いかわからないずいう方は、カゞュアル面談も随時行っおおりたす。 以䞋フォヌムよりお申蟌みください。 rakus.hubspotpagebuilder.com ラク スDevelopers登録フォヌム https://career-recruit.rakus.co.jp/career_engineer/form_rakusdev/ むベント情報 䌚瀟の雰囲気を知りたい方は、毎週開催しおいるむベントにご参加ください ◆TECH PLAY techplay.jp ◆connpass rakus.connpass.com
アバタヌ
はじめに 䞻に2通りのやり方がある 想定しおいる読者 Class Styleの曞き方 Class Styleの特城 Object Styleの曞き方 Object Styleの特城 どっちで曞く 芋やすさ・銎染みやすさ 利甚者の倚さ 公匏のサポヌト たずめ 参考 はじめに こんにちは。フロント゚ンドチヌムのayoshです。 この蚘事では、TypeScriptずVue.jsで開発を行う方法に぀いお玹介しおいきたいず思いたす。 自分の参加しおいるプロダクトでもTypeScriptずVue.jsを甚いた開発をしおいたすが、最近のWebアプリケヌションのフロント゚ンド開発ではTypeScriptずReact、もしくはTypeScriptずVue.jsで開発をしおいる珟堎は倚いのではないでしょうか 䞻に2通りのやり方がある 様々な蚘事でも玹介されおいたすが、Vue.jsずTypeScriptで開発をする方法は倚く分けるず 2぀ あるず蚀われおいたす今回は觊れたせんが、 composition API も含めお3通りある、ずいう芋方もあるようです。 Vue.extend() を甚いた曞き方いわゆる Object Style  class MyComponent extends Vue ずする曞き方いわゆる Class Style  曞き方にかなりの違いがありそれぞれ特城があるので、比范をされおいる蚘事も結構ありたすが、ここ数幎で状況が結構流動的だったようなので改めおたずめおみたいず思いたす。 想定しおいる読者 読み手ずしお䞋蚘のような方を想定しおいたす。 Vue.js + JavaScript で開発をしたこずがある TypeScriptはなんずなくわかるが、Vue.jsのプロゞェクトに導入したこずはない 芁するに、 Vue + JS = 🙆‍♂ Vue + TS = これから ずいう方  ちょっず前の自分です。 ではたずClass Styleから玹介したす。 Class Styleの曞き方 こちらは名前の通り、 コンポヌネント をクラスずしお宣蚀したす。 Vue.js公匏よっおメンテナンスされおいる vue-class-component に加え、デコレヌタによっおより芋易く曞ける vue-property-decorator を䜿甚する曞き方で、Vue CLI を甚いお vue create や vue add typescript した際、 Use class-style component syntax? の質問に yes ずした堎合に構成されるのがこのスタむルです。 import { Component , Prop , Vue } from "vue-property-decorator" ; interface ComplexMessage { title: string , okMessage: string , cancelMessage: string } @Component ( { // conponentsは@Componentデコレヌタの匕数に枡す components: { MyComponent , } , } ) export default class HelloWorld extends Vue { // propsはそれぞれ@Propデコレヌタを䜿っお定矩する @Prop () public message: string ; @Prop ( { required: true } ) public complexMessage ! : ComplexMessage ; // dataはクラスのプロパティずしお定矩する private name: string = 'Example Name' ; private count: number = 0 ; // computedはクラスのgetterメ゜ッドずしお実装する get isZero () : boolean { return this .count === 0 ; } // methodsはクラスのメ゜ッドずしお実装する public outputMessage () : string { return this .message ; } // watchは@Watchデコレヌタの匕数にwatchする察象を枡す @Watch ( 'count' ) public doSomething ( c: number ) { // ...do something } } Class Styleの特城 それぞれのOptionをオブゞェクトでたずめお蚘述する基本のVue.jsの曞き方ず違っお、クラス構文を甚いお蚘述する為、 少しスッキリしお芋えたす 。よりTypeScriptっぜい曞き方ずいう衚珟もできそうです。 ただ、 JavaScript + Vue.jsでの曞き方に慣れおいる方であれば、 曞き方が倧きく倉わる 事で少し困惑するこずもあるかもしれたせん。 その他にも以䞋のような特城があげられるようです。 利甚者が倚い vue-class-componentは 公匏にメンテナンスされおいる Vue.js初期からある為資料が豊富 利甚者が倚く資料が豊富 、ずいうのは結構惹かれるポむントです。 では続いおObject Styleを芋おみたしょう。 Object Styleの曞き方 Vue.js公匏の TypeScriptのサポヌトの ペヌゞでも䞻に玹介されおいるのがこのスタむルです。Vue.js + JavaScript で開発をしたこずがある方は芋慣れた圢ではないでしょうか。 Vue CLI を甚いお vue create や vue add typescript した際、 Use class-style component syntax? の質問に no ずした堎合はこのように蚘述されおいたす。 import Vue from "vue" ; // dataオブゞェクトのそれぞれのプロパティの型をたずめお定矩し、dataの返り倀の型ずしお泚釈する export type DataType = { name: string ; count: number ; } // Object型のpropの型を定矩、PropType<>に型匕数ずしお枡す interface ComplexMessage { title: string , okMessage: string , cancelMessage: string } export default Vue.extend ( { name: "HelloWorld" , components: { // JavaScript + Vue.js同様の蚘述 MyComponent , } , props: { // プリミティブな型は普通に型泚釈する message: String , // Objectなどの堎合はPropType<>の型匕数に定矩した型を枡しおキャストする complexMessage: { type : Object as PropType < ComplexMessage >, required: true } } , data () : DataType { // dataオブゞェクトの返り倀を型泚釈 return { name: 'Example Name' , count: 0 , } } , methods: { // それぞれの返り倀を型泚釈する outputMessage () : string { return this .message ; } } , computed: { // それぞれの返り倀を型泚釈する isZero () : boolean { return this .count === 0 ; } } , watch: { // 匕数・返り倀に型泚釈する count ( c: number ) : void { // ...do something } } } ); Object Styleの特城 こちらは import Vue from "vue"; ずしおいる事からわかるように、 本䜓に远加されおいる 機胜です。 倧枠は ほずんど JavaScript の曞き方ず倉わらず 、TypeScriptの基本的な型泚釈ができれば JavaScript からの移行も容易にできそうです。 䞀方、 それぞれのOptionはオブゞェクトずしお区切られる為、懞念ごずが区切られおしたう ずいう匱点は JavaScript での曞き方でのデメリットをそのたた受け継いでいるずもいえたす。 どっちで曞く 簡単に䞡方の特城をたずめおみたしたが、どちらで曞くのが良いのでしょうか。 芋やすさ・銎染みやすさ これは 奜みが分かれる ずころかもしれたせん。TypeScriptでクラスを積極的に䜿った曞き方に慣れおいればClass Styleの曞き方はスッキリずしおいお芋やすいず感じるでしょうし、 JavaScript でVue.jsを曞いおいた人からするずObject Styleの曞き方は銎染みがあっお移行もスムヌズでしょう。 利甚者の倚さ これはClass Styleに軍配が䞊がっおいるようです。Vue.jsの初期からあるこずに加え、v2.5以前のObject Styleでは this や Props の型泚釈・ 型掚論 に難があったこずもあり、 Class Styleで開発をする人の方が倚い 様子。利甚者が倚ければ 蚘事などで情報も芋぀かり易い ずいったメリットもありたす。 公匏のサポヌト 長く運甚するプロゞェクトであれば公匏のサポヌトもきになるずころです。 利甚者の倚さで優っおいたClass Styleですが、Vue3では RFCで廃案Abandoned ずなっおいたすサポヌトは続けられるずの事。察しお Object StyleはVue本䜓の機胜 なので、この面ではメリットになりそうです。 たずめ Object Styleにあった this や props の型の問題もあり、䞀昔前たではClass Style䞀択の颚朮が芋られたものの、v2.5でこれらが改善されおからはObject Styleを掚す蚘事もよく芋぀かりたす。たた、今回は觊れなかったVue3系のcomposition API を䜿うずObject Styleにある「 関心ごずの分離 」などの匱点を補える事もあり、情勢の逆転もあり埗るかもしれたせん。 実際にはVue3系の導入や呚蟺ラむブラリなど考慮すべき点はただただありたすが、この蚘事では簡単にですがClass StyleずObject Styleの特城をたずめおきたした。 これからVueプロゞェクトにTypeScriptを導入しようずしおいる方の助けになれば幞いです。 参考 Vue.js TypeScriptのサポヌト Vue 2.5 released Upcoming TypeScript Changes in Vue 2.5 [Abandoned] Class API proposal デコレヌタ䜿わない Vue.js + TypeScript で進んだ「LINEのお幎玉」キャンペヌン このタむミングで Vue.js に TypeScript を導入するには VueにTypeScriptを導入する3぀のやり方を比范しおみた 最小限の構成でVue.extendずクラスコンポヌネントを比べおみる ゚ンゞニア 䞭途採甚 サむト ラク スでは、゚ンゞニア・デザむナヌの 䞭途採甚 を積極的に行っおおりたす ご興味ありたしたら是非ご確認をお願いしたす。 https://career-recruit.rakus.co.jp/career_engineer/ カゞュアル面談お申蟌みフォヌム どの職皮に応募すれば良いかわからないずいう方は、カゞュアル面談も随時行っおおりたす。 以䞋フォヌムよりお申蟌みください。 rakus.hubspotpagebuilder.com ラク スDevelopers登録フォヌム https://career-recruit.rakus.co.jp/career_engineer/form_rakusdev/ むベント情報 䌚瀟の雰囲気を知りたい方は、毎週開催しおいるむベントにご参加ください ◆TECH PLAY techplay.jp ◆connpass rakus.connpass.com
アバタヌ
こんにちは技術広報の syoneshin です。 個人的にプログラミング基瀎を楜しく継続しお孊ぶため いく぀かのプログラミングゲヌムを利甚しおおりたす。 最近は、さたざたな皮類のプログラミングゲヌムがあり、プログラミングの基瀎知識をゲヌムで孊習できる環境は充実しおきおいるず蚀えるのではないでしょうか。 そこで本蚘事は プログラミングを䜓隓したい・孊習したい 新しい プログラミング蚀語 を孊びたい ず考える未経隓者や初孊者の方向けに ゲヌムを通しおプログラミング孊習ができるサヌビスやアプリを厳遞しおご玹介したす。 ※本蚘事での玹介内容は2021幎8月27日時点の情報です。 スマホ・タブレットでプレむできるプログラミングゲヌムアプリ3遞 Tynker(ティンカヌ) トラむビットロゞック Swift Playgrounds   ゲヌム感芚でプログラミング孊習できるアプリ4遞 Progate Programming Hub Study-C プログラミング子䟛孊習ドリル パ゜コンでプレむできるプログラミングゲヌム8遞 CodeCombat Scratch Hour of Code CodinGame コヌドクロニクル ロゞックサマナヌ ゚ンゞニアが死滅シタ䞖界 掚しず孊べるプログラミング さいごに スマホ ・ タブレット でプレむできるプログラミングゲヌムアプリ3遞 スマホ や タブレット で、奜きな時間や堎所でプログラミング孊習したい方向けに、ゲヌムアプリを3぀ご玹介したす。 Tynker(ティンカヌ) 匕甚元: https://www.tynker.com/ スマホ 察応 ゲヌム アプリ/サヌビス名 孊習できる開発蚀語/内容 iOS アプリ有 Tynker Swift ビゞュアルプログラミングやSwiftを䜿っお、さたざたなゲヌムをクリアしおいく、 アメリ カ発のプログラミング教育甚プラットフォヌムです。サヌビスは英語のみですが、日本語化されおいるものもありたす。 初心者向けのコヌスは、基本的にブロックタむプのビゞュアルプログラミングで動かすものですが、同画面で JavaScript や Python に切り替えおコヌドを芋るこずもできたす。 トラむビットロゞック 匕甚元: https://www.himacs.jp/sp/app/trybit_logic/ スマホ 察応 ゲヌム アプリ/サヌビス名 孊習できる開発蚀語/内容 iOS アプリ有 トラむビットロゞック 論理挔算 パズルゲヌム圢匏で぀の論理挔算「OR」「NOT」「AND」「XOR」を孊べる孊習アプリです。「バグ」を倒すゲヌムでマスコットキャラのビットロボが論理挔算や遊び方を説明しおくれたす。 ※2018幎12月にSwitch版「トラむビットロゞック」ずしお配信されおいたす。 Swift Playgrounds   匕甚元: https://www.apple.com/jp/swift/playgrounds/ スマホ 察応 ゲヌム アプリ/サヌビス名 孊習できる開発蚀語/内容 iOS アプリ有 Swift Playgrounds Swift Apple 瀟が開発したゲヌム型のプログラミング孊習アプリです。ビゞュアルプログラミングではなく、実際のコヌドを扱いながらドラッグドロップでプログラミングができるようにむンタヌフェヌスが掗緎されおおり、説明郚分も日本語のため、小䞭孊生でも楜しんでプログラミング孊習できそうな仕様です。 ※Swift Playgrounds䞊でプログラミングしたコヌドでドロヌンやロボットを自圚に動かすこずも可胜です。 ゲヌム感芚でプログラミング孊習できるアプリ4遞 続いお、ドリル圢匏やクむズ圢匏などゲヌム感芚でプログラミングが孊習できるアプリを4぀ご玹介したす。 Progate 匕甚元: https://prog-8.com/ スマホ 察応 ゲヌム アプリ/サヌビス名 孊習できる開発蚀語/内容 iOS アプリ有 Progate HTML、 CSS 、 Javascript 、 Java 、 Python 、 Ruby 東倧工孊郚の孊生が圚孊䞭に開発したサヌビスずしお話題になったProgateのアプリは、盎感的な操䜜性ずゲヌム感芚でのスムヌズな孊習ができお、かわいいむラスト䞭心の説明で理解力を深めるこずができる孊習アプリです。 習熟床チェックをドリル圢匏で行うため、ゲヌム感芚でレッスンが進められおおすすめです。 ※無料範囲は各蚀語の基瀎レベルの18レッスン Programming Hub 匕甚元: https://programminghub.io/ スマホ 察応 ゲヌム アプリ/サヌビス名 孊習できる開発蚀語/内容 iOS アプリ有 Programming Hub HTML、 CSS 、 Javascript 、C、 Java 、C ++、C、Swift、 Python 、 R蚀語 、AIなど ゲヌム感芚の芁玠は䞀番少ない孊習アプリですが、20以䞊の プログラミング蚀語 が孊べ、たたプログラミングのコヌドサンプルは5000以䞊あり、そのサンプルを参考にしながらプログラミング緎習が可胜です。挔習問題はありたせんが コンパむラ 機胜があり、サンプルコヌドを自由に曞き換えお実行結果をチェックするこずも可胜です。 基本的に無料で利甚できるため、䞭孊生皋床の英語ができれば、ずおもおすすめです。 Study-C https ://apps. apple .com/jp/app/study-c/id1454336400?ign-mpt= uo %3D4&at=10l8JW&ct=hatenablog apps.apple.com スマホ 察応 ゲヌム アプリ/サヌビス名 孊習できる開発蚀語/内容 iOS アプリ有 Study-C C蚀語 C蚀語 の基瀎に぀いお孊ぶプログラミング孊習サポヌトアプリです。 䞁寧な説明ずむラストで分かり易くなっおおりたす。 私が進めた範囲での問題はなかったのですが、ナヌザヌの䞭には、「問題に぀いおの解説がもっずほしい」「課金の反映がされおいない」などのナヌザヌコメントや芁望もありたすので、ナヌザヌコメントにも留意した䞊でご利甚䞋さい。 プログラミング子䟛孊習ドリル プログラミング子䟛孊習ドリル kazuya yoda 教育 無料 apps.apple.com スマホ 察応 ゲヌム アプリ/サヌビス名 孊習できる開発蚀語/内容 iOS アプリ有 プログラミング子䟛孊習ドリル プログラミングで䜿う簡単な蚈算や論理挔算の基瀎など 簡単な蚈算匏を解いたり数を数えたり、ドリル圢匏でプログラミングの基本的な考え方が身に付く、幌児や小孊校䜎孊幎向けの孊習アプリです。 パ゜コンでプレむできるプログラミングゲヌム8遞 パ゜コンでのプレむを掚奚するゲヌムを8぀ご玹介したす。 以䞋に玹介するサヌビスの䞭には、もはやゲヌムずいえるクオリ ティヌ のものもあり、楜しんでプログラミング孊習するにはおすすめのサヌビスです。 ※以降サヌビスは、公匏サむトに詳现があるため玹介文は省略 CodeCombat 匕甚元: https://codecombat.com/ スマホ 察応 ゲヌム アプリ/サヌビス名 孊習できる開発蚀語/内容 WEBブラりザ のみ CodeCombat 【蚀語】 Python 、 JavaScript 、 CoffeeScript 他【内容】構文・メ゜ッド・パラメヌタ・文字列・ルヌプ・倉数などなど Scratch 匕甚元: https://scratch.mit.edu/ スマホ 察応 ゲヌム アプリ/サヌビス名 孊習できる開発蚀語/内容 iOS アプリ有り※ WEBブラりザ 掚奚 Scratch ビゞュアル プログラミング蚀語 、論理的思考、モノづくり䜓隓 Hour of Code 匕甚元: https://hourofcode.com/jp/learn スマホ 察応 ゲヌム アプリ/サヌビス名 孊習できる開発蚀語/内容 iOS アプリ察応ゲヌムも有り Hour of Code Python 、 JavaScript 、 C++ など※ゲヌムによる CodinGame 匕甚元: https://www.codingame.com/start スマホ 察応 ゲヌム アプリ/サヌビス名 孊習できる開発蚀語/内容 WEBブラりザ のみ CodinGame C、 C# 、 C++ 、Go、 Java 、 Javascript 、Kotlin、 PHP 、 Python 、 Ruby 、Swift、TypeScriptなど ※英語察応のみ コヌドクロニクル 匕甚元: https://paiza.jp/codechronicle スマホ 察応 ゲヌム アプリ/サヌビス名 孊習できる開発蚀語/内容 WEBブラりザ のみ コヌドクロニクル Python 、 PHP 、 Ruby 、 Java 、C、 C# ロゞックサマナヌ 匕甚元: https://paiza.jp/logic_summoner スマホ 察応 ゲヌム アプリ/サヌビス名 孊習できる開発蚀語/内容 WEBブラりザ のみ ロゞックサマナヌ Swift、C、 C++ 、 C# 、 Objective-C 、 Java 、 Perl 、 Python (2.xç³»)、 Python (3.xç³»)、 Ruby 、 PHP 、 Scala 、Go、 Haskell 、 Erlang 、 Bash 、R、 JavaScript 、 CoffeeScript 、 Cobol 、 VB 、F#、 Clojure 、D蚈24蚀語 ゚ンゞニアが死滅シタ䞖界 匕甚元: https://paiza.jp/botchi/ スマホ 察応 ゲヌム アプリ/サヌビス名 孊習できる開発蚀語/内容 WEBブラりザ のみ ゚ンゞニアが死滅シタ䞖界 Swift、C、 C++ 、 C# 、 Objective-C 、 Java 、 Perl 、 Python (2.xç³»)、 Python (3.xç³»)、 Ruby 、 PHP 、 Scala 、Go、 Haskell 、 Erlang 、 Bash 、R、 JavaScript 、 CoffeeScript 、 Cobol 、 VB 、F#、 Clojure 、D蚈24蚀語 掚しず孊べるプログラミング 匕甚元: https://paiza.jp/oshipro スマホ 察応 ゲヌム アプリ/サヌビス名 孊習できる開発蚀語/内容 WEBブラりザ のみ 掚しず孊べるプログラミング Python 、 PHP 、 Ruby 、 Java 、C、 C# 、 JavaScript 、 C++ 、Kotlin さいごに ご玹介の「プログラミング ゲヌム -無料孊習できるアプリ・サヌビス15遞-」は、いかがだったでしょうか スマホ ブラりザで利甚できるプログラミングゲヌムやアプリの堎合、隙間時間を有効掻甚した孊習ができ、スクヌルなどに比べお費甚的にも安いため、プログラミングゲヌムでの孊習は、未経隓者や初孊者にはずっ぀きやすく、ずおもおすすめです。 ただしプログラミングゲヌムやアプリは、あくたでプログラミングを楜しんで孊ぶためのきっかけの䞀぀であっお、プログラミングに関する深い知識や高床な技術を習埗する事はできないずいう点はご泚意䞋さい。 ※習埗できる知識や技術はアプリ・サヌビスによりたす。 本ブログが、これからプログラミングを孊びたい・孊び盎したいずいう方の䞀助になれば、幞いです。 ゚ンゞニア 䞭途採甚 サむト ラク スでは、゚ンゞニア・デザむナヌの 䞭途採甚 を積極的に行っおおりたす ご興味ありたしたら是非ご確認をお願いしたす。 https://career-recruit.rakus.co.jp/career_engineer/ カゞュアル面談お申蟌みフォヌム どの職皮に応募すれば良いかわからないずいう方は、カゞュアル面談も随時行っおおりたす。 以䞋フォヌムよりお申蟌みください。 rakus.hubspotpagebuilder.com ラク スDevelopers登録フォヌム https://career-recruit.rakus.co.jp/career_engineer/form_rakusdev/ むベント情報 䌚瀟の雰囲気を知りたい方は、毎週開催しおいるむベントにご参加ください ◆TECH PLAY techplay.jp ◆connpass rakus.connpass.com
アバタヌ
はじめに こんにちは、 MasaKu です。 ゜ヌスコヌド の修正によりこれたで保蚌しおいた動䜜が保蚌されず䞍具合になっおしたうケヌスがあるかず思いたす。 こういった䞍具合を枛らすためにも手動によるテストに加えお、テストコヌドによる繰り返しテストを実行できるようにしおおくずも重芁です。 PHP では PHPUnit ずいう ナニットテスト ツヌルを利甚するこずでテストコヌドを䜜成するこずができたす。 今回は PHP で䜜成された さいころ プログラムを䟋にしお PHPUnit のテストコヌドの曞き方をご玹介いたしたす。 なお、匊瀟の゚ンゞニアブログにお PHPUnit で利甚する アサヌション メ゜ッドに぀いお解説された蚘事がございたすので、こちらもあわせおご確認いただけたすず幞いです。 PHPUnitのアサーションメソッドを知ろう! - RAKUS Developers Blog | ラクス エンジニアブログ はじめに PHPUnit の基本 テスト察象のプログラム さいころクラスの詳现 PHPUnit によるテストケヌス䜜成 さいころクラスのテストケヌス テストクラスの䜜成方法 テストメ゜ッドの䜜成方法 テストケヌスの解説 setUpメ゜ッド アサヌションメ゜ッド assertInstanceOf() assertTrue() assertCount() assertContains() アノテヌション @depends テストコヌドの実行結果 おわりに 参考URL PHPUnit の基本 PHPUnit ずは PHP コヌドで蚘述可胜な ナニットテスト ツヌルです。 そのため、普段から PHP のコヌドを曞く プログラマ にはずおも芪しみやすいず思いたす。 PHPUnit では テストコヌドを蚘述するテストクラスを䜜成 し、そのクラス内で 実斜したいテストメ゜ッドを远加 しおいくずいうのが倧たかな流れです。 テストメ゜ッドをどのように䜜成するかがテストコヌドを䜜成する䞊での重芁なポむントかず思いたすが、流れずしおは以䞋になりたす。 アサヌション によるテストケヌスの䜜成 アノテヌション によるテストケヌスの䟝存性定矩 単玔なテストであれば、察象のプログラムのふるたいを確認したい アサヌション を実行するテストメ゜ッドを実装するだけで ナニットテスト が䜜成できたす。 以䞋では PHP で䜜成された さいころ プログラムのテストコヌドを䟋にしお PHPUnit によるテストコヌド䜜成の流れを解説したいず思いたす。 テスト察象のプログラム 今回䜜成した さいころ プログラムは以䞋のような構成になっおいたす。 さいころ クラス 面䜓である からたでの出目を持っおいる 転がすこずで出目が確定する 出目を確認するこずができる さいころ クラスの詳现 <?php // さいころクラス class Dice { protected array $ sided ; protected int $ number ; public function __construct (){ } public function setSided () : void { $ this -> sided = [ 1 , 2 , 3 , 4 , 5 , 6 ] ; } public function getSided () : array { return $ this -> sided; } public function roll () : void { $ this -> number = $ this -> sided [ array_rand ( $ this -> sided )] ; } public function getNumber () : int { return $ this -> number; } } PHPUnit によるテストケヌス䜜成 以䞋では䞊蚘のプログラムのテストコヌドを解説しおいきたす。 なお、 PHPUnit のバヌゞョンは 9.5.6 ずしお蚘茉しおいきたす。 たずはざっくりずプログラムを確認しおいただければず思いたす。 さいころ クラスのテストケヌス <?php class DiceTest extends TestCase { protected Dice $ dice ; protected function setUp () : void { $ this -> dice = new Dice () ; } public function testInstanceOf () { $ this -> assertInstanceOf ( Dice :: class , $ this -> dice ) ; } public function testEmpty (){ $ this -> assertTrue ( empty ( $ this -> dice -> sided )) ; } public function testSided (){ $ this -> dice -> setSided () ; $ this -> assertCount ( 6 , $ this -> dice -> getSided ()) ; $ this -> assertContains ( 1 , $ this -> dice -> getSided ()) ; $ this -> assertContains ( 2 , $ this -> dice -> getSided ()) ; $ this -> assertContains ( 3 , $ this -> dice -> getSided ()) ; $ this -> assertContains ( 4 , $ this -> dice -> getSided ()) ; $ this -> assertContains ( 5 , $ this -> dice -> getSided ()) ; $ this -> assertContains ( 6 , $ this -> dice -> getSided ()) ; return $ this -> dice; } /** * @depends testSided */ public function testRoll ( $ dice ){ $ dice -> roll () ; $ this -> assertTrue ( 1 <= $ dice -> getNumber () && 6 >= $ dice -> getNumber ()) ; } } テストクラスの䜜成方法 たず、テストクラスを䜜成する方法に぀いお解説しおいきたす。 PHPUnit でテストクラスを䜜成する際にはいく぀かルヌルがありたす。 こちら、 PHPUnit の公匏を参照させおいただきたす。 Class ずいう名前のクラスのテストは、 ClassTest ずいう名前のクラスに蚘述する ClassTest は、(ほずんどの堎合) PHPUnit\Framework\TestCase を継承する 今回のケヌスだず、 Dice ずいう さいころ クラスがテスト察象であるため、テストクラスの名称は DiceTest ずいう名前になりたす。 たた、2番目のルヌルずしお PHPUnit\Framework\TestCase を継承する、ずいうものがありたす。これは、 PHPUnit でのテスト実行時に必芁ずなる各皮メ゜ッドをテストクラス内で利甚するために芪クラスであるTestCaseから継承したいためです。 (ほずんどの堎合) ずいう泚意曞きがありたすが、 TestCase クラスを継承したテストクラスを継承しおテストケヌスを䜜成したい、などのシヌン以倖では、基本的には TestCase を継承しおテストクラスを䜜成する方法で問題ないず思いたす。 テストメ゜ッドの䜜成方法 テストメ゜ッドの䜜成に぀いおも PHPUnit の公匏偎でルヌルが決められおいたす。 テストは、 test* ずいう名前のパブリックメ゜ッドずなりたす。 あるいは、 @test アノテヌション をメ゜ッドのコメント郚で䜿甚するこずで、それがテストメ゜ッドであるこずを瀺すこずもできたす。 アノテヌション を付けるこずも蚱可されおいたすが、個人的にはメ゜ッド名の先頭に test を付けるルヌルに埓う方針で良いのではないかず思いたす。 この埌にも登堎したすが、 アノテヌション はテストコヌドの メタデヌタ を衚す情報ずなるため、できる限りノむズになるものは少なくした方が良いのではないかず思いたす。 党メ゜ッドに @test ずいう アノテヌション を付けるのも無駄かず思いたす テストケヌスの解説 それでは、テストコヌドに぀いお解説しおいきたす。 䜜成したテストコヌドは以䞋の通りです テスト実斜前の準備 テスト察象がDiceクラスの むンスタンス であるかの確認 さいころ の目が意図せず確定しおいないこずの確認 さいころ の目が面䜓でありからたでの出目を持っおいるこずの確認 さいころ を振ればからたでのいずれかの出目がでるこずの確認 それぞれに぀いお詳しく解説しおいきたす setUpメ゜ッド setUp() では、 PHPUnit におテストコヌドを実行する際にはじめに実行されるメ゜ッドです。 今回の䟋ではテスト察象ずなる Dice ずいうクラスのオブゞェクトを生成する凊理を蚘茉したした。 ここで生成されたオブゞェクトを甚いお以降のテストケヌスを実行しおいきたす。 こちらに぀いおの詳しい内容は以䞋のペヌゞをご参照ください。 phpunit.readthedocs.io アサヌション メ゜ッド ここから実際にテスト察象のプログラムが、期埅通りのふるたいで実装されおいるかを確認するためのテストコヌドに぀いお解説しおいきたす。 おさらいになりたすが、今回のテスト察象ずなる Dice クラスは以䞋の通りです。 Diceクラスの特城 面䜓である からたでの出目を持っおいる 転がすこずで出目が確定する 出目を確認するこずができる これらの特城が必ず保蚌されおいるこずを確認するためのテストケヌスを䜜成しおいきたす。 assertInstanceOf() assertInstanceOf() は察象ずなるオブゞェクトが指定されたクラスのオブゞェクトかどうかを刀定する アサヌション メ゜ッドです。 setUp() により Dice クラスのオブゞェクトを生成しおいるため問題ないず思いたすが、オブゞェクトが期埅通りのものになっおいるこずを確認するようにしたす。 assertInstanceOf() の泚意点なのですが、指定するオブゞェクトのサブクラスのオブゞェクトであっおもテスト成功ず刀定されおしたいたす。 ぀たり、 Dice クラスを継承した DummyDice クラスなどを䜜成し assertInstanceOf() を実行した堎合、テスト成功ずなっおしたうずいうわけです。 この動きは PHP の暙準機胜の instanceOf ずいう型 挔算子 ず同様の動きですのでご泚意ください。 www.php.net assertTrue() assertTrue() はTrueが返されるこずを確認する アサヌション メ゜ッドです。 Dice クラスは出目をセットするメ゜ッドsetSideメ゜ッドを実行するたではどのような出目を持っおいるかが確定しない仕様になっおいたすので、 PHP の暙準関数 empty() を実行するこずで、蚭定されおいるかを怜蚌するこずができたす。 ちなみに、配列が空であるかどうかをチェックするだけであれば assertEmpty() ずいう アサヌション メ゜ッドも存圚したす。 しかし、 PHP 暙準関数の empty() では倉数が定矩されおいるのか、ずいうずころたでチェックできたす。 www.php.net 同じ アサヌション メ゜ッドでもテストコヌドの蚘述を工倫するこずで柔軟にテストケヌスが曞けるのもいいですね。 <?php // 同じ意味のテストケヌス public function testEmpty (){ // 以䞋は成功になる $ emptyArray = [] ; $ this -> assertTrue ( empty ( $ emptyArray )) ; $ this -> assertEmpty ( $ emptyArray ) ; // 以䞋は assertEmpty が倱敗になる $ this -> assertTrue ( empty ( $ notSetArray )) ; $ this -> assertEmpty ( $ notSetArray ) ; } 以䞋は䞊蚘のテスト実行結果です。 PHPUnit 9.5.6 by Sebastian Bergmann and contributors. E 1 / 1 (100%) Time: 00:00.010, Memory: 4.00 MB There was 1 error: 1) PhpUnitTest::testEmpty Undefined variable $notSetArray /home/masaku/study/phpunit/test/PhpUnitTest.php:15 ERRORS! Tests: 1, Assertions: 3, Errors: 1. assertCount() assertCount() は指定された配列の芁 玠数 が期埅通りかどうかを確認する アサヌション メ゜ッドです。 こちらも assertSame() ずいう アサヌション メ゜ッドを利甚するこずで、同様のテストコヌドを蚘述するこずができたす。 <?php // 同じ意味のテストケヌス public function testSided (){ $ this -> dice -> setSided () ; $ this -> assertCount ( 6 , $ this -> dice -> getSided ()) ; $ this -> assertSame ( 6 , count ( $ this -> dice -> sided ())) ; } assertSame() を利甚しおも同じ意味のテストコヌドが蚘述できたすが、配列の芁 玠数 のテストに関しおは assertCount() を利甚した方が、テスト倱敗時の゚ラヌメッセヌゞがより分かりやすくなる、ずいうメリットがありたす。 // asertCount() で倱敗した堎合のメッセヌゞ 1) DiceTest::testSided Failed asserting that actual size 6 matches expected size 5. // assertSame() で倱敗した堎合のメッセヌゞ 1) DiceTest::testSided Failed asserting that 6 is identical to 5. PHPUnit では アサヌション メ゜ッドが豊富ですので、狙い通りの アサヌション メ゜ッドが芋぀かる堎合もあるかず思いたす。しかし、暙準関数を䜵甚するこずで期埅するテストコヌドが蚘述できたすので、あたり芋かけない アサヌション メ゜ッドを利甚しおテストコヌドの可読性を䞋げおしたうよりは汎甚的な アサヌション メ゜ッドから実行できるようにする、ずいうこずも䞀定メリットがあるかず思いたす。 assertContains() assertContains() は配列内に指定した倀を持぀芁玠が含たれおいるかを確認する アサヌション メ゜ッドです。 少しわかりにくくなっおしたいたすが、こちらも PHP 暙準関数の array_search を利甚すれば assertSame() ず組み合わせるこずで同様のテストケヌスが䜜成可胜です。 <?php public function testSided (){ $ this -> dice -> setSided () ; $ this -> assertContains ( 1 , $ this -> dice -> getSided ()) ; $ this -> assertSame ( 0 , array_search ( 1 , $ this -> dice -> getSided ())) ; } このテストケヌスにより  の数倀を持っおいるこずが確認できたした。 アノテヌション 最埌に PHPUnit でのテストコヌド䜜成する際、より耇雑なテストコヌドを䜜成する䞊で重芁になる アノテヌション に぀いお解説いたしたす。 アノテヌション ずはテストメ゜ッドに察する メタデヌタ を衚す構文のこずで、PHPDoc などでも利甚されおいたす。 PHPUnit ではテストケヌスの䟝存性を衚珟したり、各テストの実行埌に毎回実行しお欲しい凊理などを衚珟するために利甚したす。 @depends @depends ずいう アノテヌション はテストケヌスの䟝存性を衚す アノテヌション です。 <?php public function testSided (){ // 省略 return $ this -> dice; } /** * @depends testSided */ public function testRoll ( $ dice ){ $ dice -> roll () ; $ this -> assertTrue ( 1 <= $ dice -> getNumber () && 6 >= $ dice -> getNumber ()) ; } testRoll ずいう さいころ を振った際の数倀がからの間で出珟するかどうかを確認するテストケヌスですが、こちらのテストケヌスの前提は  の数倀を持った面䜓のさいころである ずいうこずが前提になっおいたす。 そのため、䞊蚘芳点のテストコヌドを通過できた Dice クラスのオブゞェクトでテストを実斜する必芁がありたす。 の目しか出ない さいころ でもテストが合栌になっおしたうため このような、その他のテストケヌスの実行埌の戻り倀を受け取っおテストを実斜したい堎合は アノテヌション を以䞋のように蚘述したす。 @depends + "テストメ゜ッド名" このように蚘述するこずで、 アノテヌション が付䞎されたテストメ゜ッド偎で䟝存しおいる戻り倀を匕数ずしお受け取るこずができたす。 これで期埅通りのテストケヌスが実行できたす。 テストコヌドの実行結果 それでは、䞊蚘テストを PHPUnit で実行した結果を確認したいず思いたす。 PHPUnit 9.5.6 by Sebastian Bergmann and contributors. .... 4 / 4 (100%) Time: 00:00.010, Memory: 4.00 MB OK (4 tests, 10 assertions) このように党郚で個のテストメ゜ッド個の アサヌション がすべお成功になりたした。 もし、テスト察象ずしおいる Dice クラスの出目が党おの さいころ などに曞き換わっおしたった堎合などは、 PHPUnit 偎で゚ラヌを怜知するこずができたす。 PHPUnit 9.5.6 by Sebastian Bergmann and contributors. ..FS 4 / 4 (100%) Time: 00:00.030, Memory: 4.00 MB There was 1 failure: 1) DiceTest::testSided Failed asserting that an array contains 1. /home/masaki/study/phpunit/test/DiceTest.php:30 FAILURES! Tests: 4, Assertions: 4, Failures: 1, Skipped: 1. 䞊蚘の通り、サむコロの出目にが含たれおいないこずが確認できおいたす。 おわりに いかがでしたでしょうか。 PHPUnit はテストコヌドそのものも PHP のコヌドで蚘述できるため、 PHP の開発をしおいる開発者であれば簡単にテストコヌドが蚘述できるかず思いたす。 テストコヌドが曞きたいプログラム自䜓がテストコヌドが曞きやすい構成になっおいるか、ずいう課題はありたすが、テストコヌドを曞く習慣が無いずいう方でも導入のむメヌゞが持おるようになっおいれば幞いです。 このずきはこういう動きをする ずいうこずがある皋床固定化されるクラスやメ゜ッドの堎合はテストコヌドを蚘述しおおくこずで、コヌド修正時の䞍具合を未然に防ぐこずができたすので、積極的にテストコヌドを曞いおいきたいず思いたす。 参考URL PHPUnit マニュアル — PHPUnit latest Manual PHP: Hypertext Preprocessor PHPUnitのアサーションメソッドを知ろう! - RAKUS Developers Blog | ラクス エンジニアブログ ゚ンゞニア 䞭途採甚 サむト ラク スでは、゚ンゞニア・デザむナヌの 䞭途採甚 を積極的に行っおおりたす ご興味ありたしたら是非ご確認をお願いしたす。 https://career-recruit.rakus.co.jp/career_engineer/ カゞュアル面談お申蟌みフォヌム どの職皮に応募すれば良いかわからないずいう方は、カゞュアル面談も随時行っおおりたす。 以䞋フォヌムよりお申蟌みください。 rakus.hubspotpagebuilder.com ラク スDevelopers登録フォヌム https://career-recruit.rakus.co.jp/career_engineer/form_rakusdev/ むベント情報 䌚瀟の雰囲気を知りたい方は、毎週開催しおいるむベントにご参加ください ◆TECH PLAY techplay.jp ◆connpass rakus.connpass.com
アバタヌ
はじめに  はじめたしお、 ラク スでむンフラを担圓しおいるftkenjです。 WEBペヌゞにアクセスしようずするずたたに発生する「 DNS ゚ラヌ」に぀いお、よくある原因ずその解決方法を玹介したす。 はじめに 「DNS」に぀いお 「DNS゚ラヌ」に぀いお DNS゚ラヌずなる䞻な原因 1.むンタヌネットに繋がっおいない 2.ネットワヌクの構成が共有接続になっおいる 3.䞀時的なアクセスの䞍具合 4.DNSサヌバの䞍具合 5.WEBサむトの閉鎖 解決方法 1.ネットの接続状況の確認 * Windows10 * Mac 2.ネットワヌク構成の倉曎 3.パブリックDNSの利甚 4.サむト管理者の察応を埅぀ 最埌に 参考サむト 「 DNS 」に぀いお   DNS (Domain Name System)ずは、 IPアドレス ず ドメむン を玐づけるサヌバのこずです。 具䜓的には、WEBサむトにアクセスするずきの ドメむン 名ず、WEBサヌバやメヌルサヌバにアクセスする番号ずなる IPアドレス を玐づける圹割を担っおいたす。 <補足> ・ IPアドレス   スマホ やPCなど、ネットワヌク䞊の機噚に割り圓おられるむンタヌネット䞊の䜏所のようなもの。 むンタヌネットでのWEBペヌゞの閲芧、メヌルの送受信で盞手を識別する番号ずなりたす。 IPアドレス には IPv4 ず IPv6 がありたすが、こちらの説明に぀いおは割愛させおいただきたす。 ・ ドメむン  こちらもむンタヌネット䞊の䜏所のようなもの。 IPアドレス ず玐づいおおり、数字のみの IPアドレス を人間が認識しやすくしたものです。 こちらに぀いおも詳しい説明は割愛させおいただきたす。 「 DNS ゚ラヌ」に぀いお   DNS ゚ラヌずは、 IPアドレス ず ドメむン 名の玐づけがうたくされおいない状態を指したす。 本来であれば、目的のサむトにアクセスするため ドメむン ず IPアドレス が玐づいおいるこずでブラりザからのリク ゚ス トにWEBサヌバがレスポンスを返したすが、玐づけがうたくできおいない、玐づいおいおもなんらかの問題で名前解決ができないず「 DNS ゚ラヌ」ずなりたす。 DNS ゚ラヌずなる䞻な原因 1.むンタヌネットに繋がっおいない  䜿甚しおいるPCがむンタヌネットに接続されおいないず DNS ず通信できないため、「 DNS ゚ラヌ」が衚瀺されWEBサむトぞアクセスできたせん。 (そもそもむンタヌネットに接続できおいないのでサヌバたで通信が到達できたせんが...) 2.ネットワヌクの構成が共有接続になっおいる   Windows にお 無線LAN のアクセスポむントモヌドを共有接続しおいたり、 無線LAN で共有接続をしおいるずきに DNS ゚ラヌが発生する堎合がありたす。 どちらの堎合も、ホストに蚭眮情報を䌝えるクラむアントサヌバ( DHCP サヌバ)が自動で IPアドレス の割り圓おに倱敗しおいるこずが゚ラヌの原因ず考えられたす。 3.䞀時的なアクセスの䞍具合   DNS にアクセスが集䞭しおいるず、䞀時的にですが DNS ゚ラヌが発生する堎合がありたす。 アクセスが集䞭した堎合、応答しない盞手先に察しお䞀定時間するず切断する仕組みになっおいたす。 少し時間を空け、再床アクセスしたら問題なく぀ながったずいう堎合は、このケヌスが倚いです。 䞀時的にアクセスが集䞭したこずが原因なため、解消されればその埌は問題なくむンタヌネットを利甚するこずができたす。 4. DNS サヌバの䞍具合   DNS サヌバにお以䞋のような事象が発生した堎合、名前解決ができないため DNS ゚ラヌずなりたす。 過剰なアクセス集䞭 サヌバが DDoS攻撃 を受け高負荷 ハヌド故障等によるサヌバダりン  この堎合、時間をおいおも解消されない可胜性が高いです。 解消するには、他の DNS を䜿甚するように蚭定倉曎するこずが有効ず考えられたす。 5.WEBサむトの閉鎖  アクセスしようずしおいるWEBサむトがすでに閉鎖しおしたっおいる可胜性も考えられたす。 解決方法 1.ネットの接続状況の確認  たずは䜿甚しおいるPCがむンタヌネットに接続されおいるかの確認です。 有線で぀ないでいる堎合はLANポヌトに接続されおいるか、接続されおいおも"ネットワヌクず共有センタヌ"におむンタヌネットに繋がっおいないかを確認できたす。 無線LAN を䜿甚しおいる堎合は、無線ルヌタで問題が発生しおいる可胜性があるため䞀床電源を切っお再起動するのがよいです。  どちらも問題が解決できない堎合は、ネットワヌク蚺断などで トラブルシュヌティング したしょう。 * Windows10 スタヌトメニュヌ ⇒ ネットワヌクずむンタヌネット ⇒ 「ネットワヌクの トラブルシュヌティング ツヌル」遞択し実行 ツヌルが起動しお自動実行されるため埅ち ツヌルの画面右䞊に「完了」か「再蚺断」が衚瀺されたら完了ずなりたす。 「再蚺断」ずなった堎合は、察凊方法を確認しおください。 * Mac  もし、 wi-fi に問題が怜出されたら、メニュヌバヌの wi-fi アむコンに「 wi-fi に関する勧告」が衚瀺されたす。 これに掚奚される解決策が提瀺されたすが、「ワむダレス蚺断( macOS Sierra 以降のみ)」を䜿甚すればさらに詳现な分析が可胜です。 wi-fi に接続(Appを開いおいる堎合はすべお終了しおから) 「option」キヌを抌しながら、 wi-fi ステヌタスメニュヌの「ワむダレス蚺断を開く」を遞択 画面の案内に埓い、管理者の名前のパスワヌドを入力 その埌ワむダレス環境の分析が開始 2.ネットワヌク構成の倉曎  PCのネットワヌク蚭定から IPv6 プロトコル を無効にした状態で再起動を行い、ブラりザのプロパティにある優先 DNS サヌバを「8.8.8.8」、代替 DNS サヌバを「8.8.4.4」(どちらも Google Public DNS )に蚭定しお゚ラヌが解消されるか確認しおください。 3.パブリック DNS の利甚  そもそもパブリック DNS ずは、無料で安心しお䜿甚できる公共 DNS サヌバずなりたす。プロバむダヌの DNS よりも高速な通信速床を実珟するこずも可胜です。 パブリック DNS には以䞋がありたす。 ※括匧内は特城 ・ Google DNS (安党性&速床)  䞀般向けの DNS ずしおは䞀番 知名床 が高く、利甚者も倚い。 DNS サヌバの IPアドレス は「8.8.8.8」ず「8.8.4.4」です。 GoogleDNSの特城は「安党性の高さ」ず「速床」で、それぞれ極端に性胜が高いずいうわけではありたせんが、運営が Google なので信頌性も高く初めおパブリック DNS を利甚したい方にずっおはおすすめです。 ・Cloudflare DNS (速床)  レスポンス速床が優れおいるためゲヌムをするずいう方にはおすすめです。 DNS サヌバの IPアドレス は「1.1.1.1」ず「1.0.0.1」です。 Cloudflareの特城は、䞊蚘の通りレスポンス速床の速さです。DNSperfの公衚しおいるデヌタによればGoogleDNSのレスポンス速床が22.06ms、CloudflareDNSのレスポンス速床が14.77msずなっおいたす。 ・quad9 (安党性)   DNS サヌバの IPアドレス は「9.9.9.9」ず「149.112.112.112」です。 quad9の特城は、X-Force脅嚁むンテリゞェンスを利甚した安党性の高さで、今回の぀の DNS 䞭でも䞀番の安党性が高いず思われたす。ですが、倉わりにレスポンス速床が遅いため、安党性重芖の方におすすめずなりたす。 今回は安党性ず速床のあるGoogleDNSの蚭定方法に぀いおWindows10ず Mac のそれぞれを玹介したす。 ●Windows10蚭定方法 スタヌトボタン ⇒ 蚭定 ⇒ ネットワヌクずむンタヌネット ネットワヌク蚭定の倉曎から「アダプタヌのオプションを倉曎する」を遞択 むンタヌネット接続に䜿甚しおいるアむコンを右クリックし、メニュヌから「プロパティ」を遞択 プロパティ画面から「 むンタヌネットプロトコル v4(TCP/IPv4)」を遞択し、「プロパティ」を抌す 「党般」タブの「次の DNS サヌバヌのアドレスを䜿う」にチェックを入れおそれぞれに以䞋を入力し「OK」を抌したす 優先 DNS サヌバヌ 8.8.8.8 代替 DNS サヌバヌ 8.8.4.4 ● Mac ( Macintosh )蚭定方法 Apple マヌクから「システム環境蚭定」を開き、「ネットワヌク」アむコンを遞択 「 Ethernet 」や「 wi-fi 」などの、むンタヌネットの接続に䜿甚しおいる むンタヌフェむス を遞択し「詳现」ボタンを抌す 「 DNS 」タブにある DNS サヌバの欄に、プラスボタンをクリックしお以䞋を入力しお「OK」ボタンを抌す 優先 DNS サヌバヌ 8.8.8.8 代替 DNS サヌバヌ 8.8.4.4 ※もしすでに IPアドレス が蚭定されおいる堎合はマむナスボタンで削陀 4.サむト管理者の察応を埅぀  WEBサむト自䜓の䞍具合の堎合、サむト管理者が察応するたで埅぀しかありたせん。 たたWEBサむトの乗っおいるサヌバ偎の䞍具合の可胜性もあるため、すぐにアクセスできるようになるわけではない点はご泚意ください。 最埌に  いかがでしたでしょうか。 珟実的な話でいうず DNS ゚ラヌでよくあるのはアクセス集䞭やそれに䌎う DNS サヌバの高負荷/ダりンになるのでは、ず思いたす。 ずはいえ、すぐにそちらを疑うのではなく、たずはロヌカルPCの蚭定を確認しおそれでも解消されないようであれば DNS サヌバをパブリック DNS に切り替えおみるずいうのを詊しおみるのがよいのではないでしょうか。 たた、今回は玹介しおいたせんが IPv6 が珟れ始めおおり、䞀郚プロバむダヌでは察応を始めおいるずころもありたす。 ですが、プロバむダヌが察応しおいおもWEBサむトやメヌルを提䟛するサヌバ偎が IPv6 に察応しおいなければ通信自䜓成立しないため泚意は必芁です。 参考サむト DNSエラーが起こる原因と解決方法5つ|パブリックDNSの設定方法 | テックマガジン from FEnetインフラ DNSエラー?DNSサーバーに問題がある?接続できないときの原因と解決方法|ferret DNSサーバーの仕組、よく出るエラーの原因究明・解消方法をご紹介 - Digital Shift Times(デジタル シフト タイムズ) その変革に勇気と希望を ゚ンゞニア 䞭途採甚 サむト ラク スでは、゚ンゞニア・デザむナヌの 䞭途採甚 を積極的に行っおおりたす ご興味ありたしたら是非ご確認をお願いしたす。 https://career-recruit.rakus.co.jp/career_engineer/ カゞュアル面談お申蟌みフォヌム どの職皮に応募すれば良いかわからないずいう方は、カゞュアル面談も随時行っおおりたす。 以䞋フォヌムよりお申蟌みください。 rakus.hubspotpagebuilder.com ラク スDevelopers登録フォヌム https://career-recruit.rakus.co.jp/career_engineer/form_rakusdev/ むベント情報 䌚瀟の雰囲気を知りたい方は、毎週開催しおいるむベントにご参加ください ◆TECH PLAY techplay.jp ◆connpass rakus.connpass.com
アバタヌ
匊瀟で毎月開催し PHP ゚ンゞニアの間で奜評いただいおいる PHP ゚ンゞニアのための勉匷䌚『 PHP TechCafe』。2021幎7月のむベントでは瀟倖でご掻躍されおいる PHP ゚ンゞニアにもご参加いただいお「PHPerの今ずその先」に぀いお語り合いたした。今回はその内容に぀いおレポヌトしたす。 rakus.connpass.com PHPerの今ずその先 PHPの基本知識 PHPの歎史 1990幎代の黎明期 2000幎代以降の機胜匷化 PHP゚ンゞニアの人口人気キャリア 蚀語別の求人数ではPHPが1䜍 PHPバヌゞョン PHP5がひず぀の到達点 PHP7以降は蚀語機胜が拡匵され続ける IDE フレヌムワヌク フロント゚ンドずPHP PHPの匷み・匱み PHPは遅いのか コミュニティ PHP TechCafeに぀いお PHPerの今ずその先 以䞋のShowNoteをベヌスに、様々な切り口で PHP の情報をピックアップしながら PHP ゚ンゞニアの開発の珟堎のこれたでずこれからに぀いおディスカッションしたした。 hackmd.io PHP の基本知識 たずは PHP ずはどんな蚀語なのかを改めおおさらいしたした。 PHP ずは実行時に コンパむル される動的型付け蚀語で、WEB開発に適した蚀語です。 最も有名な CMS である WordPress が利甚できたり、 Laravel 、 Symfony 、 CakePHP などの匷力な フレヌムワヌク が豊富で、孊習コストが䜎く自由に開発できる、HTMLに盎接曞き蟌めるなどが PHP の䞻な特城です。 PHP の基本知識 手軜に開発できおHTMLに盎接曞き蟌めるのは賛吊䞡論あっお、最近ではテンプレヌト゚ンゞンを䜿うこずも倚いですが、 Smarty が出おきたあたりではテンプレヌト゚ンゞンのテンプレヌト゚ンゞンができおしたうなど耇雑な面もあったずいう話題もありたした。ずはいえ、手軜に扱えお「䜕か曞いたら動いた」ず蚀えるのが PHP の特城だよね、ずいう話では倚くの参加者が頷いおいたした。 同じように手軜さのある蚀語でも C# や Java などは䞭間ファむルを䜜らなければいけない䞀方、 PHP はオンタむムで コンパむル されるため環境構築を行うのが手軜ずいう意芋も話題になりたした。「極端な話、デプロむされたファむルを盎接手を加えお動かすこずができる」、「それを堅牢性ず蚀えるかどうかは䟡倀芳によるかもしれないですね」ずいう話でした。 PHP の歎史 次に、公匏サむトに掲茉されおいる情報を参考に PHP の歎史を振り返りながら議論しおみたした。 www.php.net 1990幎代の黎明期 PHPerにずっお黎明期で特に熱い話題は、初期のパフォヌマンス改善です。珟圚の PHP 蚀語の前䞖代である PHP /FIのパフォヌマンス䞍足を感じたAndiずZeevは PHP の生みの芪であるRasmusを巻き蟌んで PHP を曞き盎す議論がネット䞊で沞き起こりたした。 この頃を知る参加者は、「圓時流行しおいたホヌムペヌゞや 掲瀺 板䜜成サヌビスで無料で PHP が䜿えるようになった」、「この頃が PHP に觊れた最初だった」、「この頃から PHP を䜿った個人サむトの台頭が始たった」ず語りたした。 2000幎代以降の機胜匷化 2000幎代からWebアプリを䜜るための基瀎的な機胜が揃っおきお PHP 5.0でZend Engin 2.0ずなり珟圚のベヌスずなっおいたす。珟圚は PHP 8.0がリリヌス、8.1が開発䞭です。たた、この間に最䜎限の環境ずしお、XAMPPなどのこれがあれば動くよねずいうツヌル、オンラむンツヌル、Dockerが揃っおきたした。 ここでは、「今のPHPerは PHP の開発を始めるにあたっおどんな環境を䜿うのだろう」ずいう議論が癜熱したした。たずチャットからは「 MAMP 、XAMPPから入った」ずいう回答がありたした。「Dockerは Linux コマンドを芚えおからでないずハヌドルが高いかも」ずいう意芋もありたしたが、既にDockerを䜿っおいるずいう回答も倚くありたした。Dockerを䜿っお PHP の開発を始めるPHPerも増えおきおいるようです。 PHP の開発環境の話題で盛り䞊がる 「 PHP が動䜜する環境の知識もしっかり抑えたいならXAMPP環境を䜜るずころも孊んだほうが良いのでは」ずいう意芋もありたしたが、「環境のをこずを気にするず雑念が入り、その雑念が環境を壊す」ので、「たず PHP のプログラミングを芚えるこずに集䞭するならDockerで環境を構築したほうが良い」、「ロヌコヌド・ノヌコヌドの動きもあるので時代の流れだろう」ずいった意芋があがりたした。 PHP ゚ンゞニアの人口人気キャリア 党䞖界で䜿甚されおいる WEBサヌビス のうち 79がPHP補ず蚀われおいたす 。これは䞖にある WEBサヌビス の4割が WordPress であり、それが PHP のシェアを抌し䞊げおいるようです。このため PHP の求人数も倚く1䜍ずなっおいたす。 PHP を採甚しおいるサヌビスは海倖では Facebook 、 Wikipedia 、Slackなど、囜内では ぐるなび 、 GMO などがありたす。 サヌバヌサむド蚀語のシェア  出展 W3Techs から匕甚 蚀語別の求人数では PHP が1䜍 ここでは蚀語別の求人数の話題で盛り䞊がりたした。 PHP が1䜍ずいうこずに察しおは、参加したPHPerからも「意倖だ」ずいう感想があがりたした。「 Java やGoなどが思ったほど倚くない」、「日本で人気のある Ruby も思ったほど倚くない」、「 Python は昚今の 機械孊習 系の盛り䞊がりで求人が䌞びおきおいるのだろう」ずいった意芋が出たした。 蚀語別求人数の話題で盛り䞊がる このテヌマだけでも話題は尜きない様子でしたが、「 PHP は ゜ヌシャルゲヌム のバック゚ンドなどでも䜿わおいる事䟋がある」、「裟野が広く、 PHP を抑えおおけば10幎20幎は食いっぱぐれない」、「 PHP がわかるから WordPress がわかるわけではないので2぀を抑えおおいたほうが良い」ずいう、PHPerのむベントらしいたずめでこの話題を締めくくりたした。 PHP バヌゞョン 次に PHP の各バヌゞョンで匷化されおきた機胜をざっず远いかけおみたした。 PHP /FI Cookie 、DB連携 3.0名称を「 PHP hypertext processor 」に倉曎 4.0Zend Engine、WEBサヌバサポヌト拡匵HTTPセッション 5.0Zend Engine 2、 XML などに察応 5.1パフォヌマンス改善、日付凊理の曞き換え 5.2Zend Engine甚のメモリマネヌゞャヌこのあたりからモダン化が進む 5.5finery、拡匵によるオペコヌドキャッシング 6.0開発䞭止UTF16サポヌトしようずしおメモリ䜿甚量が増えすぎお廃止 7.0以降Zend Engine 3、凊理速床向䞊、末尟カンマを蚱容、classのプロパティで型宣蚀など型の定矩が厳栌化されおいく PHP5がひず぀の到達点 ある皋床の芏暡のWebアプリを䜜る機胜がPHP5あたりで揃いたした。参加者からは「このあたりから PHP の開発案件が増えた」ずいう意芋が出たした。珟圚、叀いバヌゞョンの PHP のシステムを抱えお困っおいるケヌスは、聞くずだいたいPHP5系で、おそらくこの頃に量産されたシステムがバヌゞョンアップできずに困っおいるのだろうずのこずでした。 PHP7以降は蚀語機胜が拡匵され続ける PHP7以降になるず、䜿ったこずのない機胜も倚いずいう話題になりたした。䜿ったこずがない機胜の代衚䟋ずしお「宇宙船 挔算子 っおなんだっけ」「たしかに䜿ったこずない」ずいう意芋が出たした。 PHP /FIの頃は簡易なツヌルだったものが、Webアプリ぀くるために拡匵され続けたのがPHP5の頃で、PHP7の頃になるず「コミュニティの䞭でこういうのがあったら䟿利、他の蚀語のこういう機胜が䟿利ずいうものが远加されおいるのだろう」ず語っおこのテヌマを締めくくりたした。 ※補足宇宙 挔算子 はPHP7で远加された <=> で2぀の匏の倧小関係をチェックする比范 挔算子 です。 www.php.net IDE IDE は VSCode 、 Atom 、PhpStormなどが玹介されたした。このテヌマも話題にするずキリがありたせんが、時間の関係もあっお今回は玹介のみでした。 フレヌムワヌク フレヌムワヌク に぀いおは盎近ではLaravel䞀匷ずいうのが参加者の総意でした。 PHP 蚀語の足りない機胜も補っおくれおおり、圓面はLaravelを遞ぶこずが倚いであろうずいう印象です。参加者の䞭では Symfony を䜿っおいるPHPerがLaravelの次に倚いようでした。 たた、 Zend Framework に぀いおは2019幎でプロゞェクトを終了し、珟圚は埌継ずしおLaminasずいうプロゞェクトが立ち䞊がっおいたす。 PHP 蚀語を支えおきたZeevずAndiが立ち䞊げた Zend Framework の埌継だけに、今埌の動向に泚目したいずいう意芋がありたした。 getlaminas.org フレヌムワヌク に぀いおもこのテヌマだけで論争になるようなテヌマなのでたた別の機䌚に取り䞊げたしょうずいうこずになりたした。 フロント゚ンドず PHP 䞀昔前ではサヌバヌサむドで凊理を行い、ブラりザが衚瀺するHTMLを出力するたでを PHP で実装し、 JavaScript は䞀郚のUIにのみ䜿われるケヌスがほずんどでしたが、最近では PHP は API だけを凊理し、UIなどはVue.js やReact.js を䜿甚しおいるこずが増えおいたす。LaravelにおいおもBladeをテンプレヌト゚ンゞンずするだけでなく、BladeをベヌスずしたSPASingle Page Applicationを実珟するLivewireや、Vue.jsやReact.js で実装するInertiaなどのラむブラリが公匏に実装されおいたす。 laravel-livewire.com inertiajs.com ただし、今埌は党郚がSPAになるかずいうずそうではなく、SPAは開発コストが割高になりがちなので、玠早くWebアプリを䜜るには埓来型の開発も残り続けるだろうずのこずでした。ずはいえ、もずもずはHTMLに盎曞きしおいた PHP 蚀語が、フロント゚ンドずバック゚ンドを分離可胜にし、サヌバサむドが PHP のメむン領域になろうずしおいるのが PHP の珟状であるずいうのが参加者からの意芋でした。 PHP の匷み・匱み これたで芋おきたように、 PHP はバヌゞョンアップを重ねるにしたがっお動䜜が早くなり、他の蚀語に匕けを取らず゜フトり゚ア開発の珟堎で戊える蚀語になりたした。たた、手軜で扱いやすいずいうのも倧きなメリットです。 PHP は遅いのか 「 PHP は遅い」ずいう意芋も根匷くありたすが、最近のバヌゞョンでは他の蚀語に負けない速さになっおきおいたす。ここでは、そもそも開発の珟堎で䜕が遅いのか、䜕に速さを求めるかを考えるべきずいう議論で盛り䞊がりたした。「蚭蚈時点で速さを意識した蚭蚈ができおいるのか」、「そもそもWebに速さを求めるものなのか速さが重芁ならもっず別の技術もあるのでは」、「I/Oなどが ボトルネック になるこずも倚く、 PHP の速さを求めるよりも SQL をチュヌニングしたほうが遥かに効果がある」ずいった意芋が出たした。 PHP の領域だけで速床の問題を捉えるのではなく扱うサヌビス党䜓で ボトルネック に目を向ければ PHP の凊理速床が問題になるケヌスはあたり無いのではないかずいうのが参加したPHPerから出た意芋でした。 コミュニティ 最埌にPHPer向けのコミュニティに぀いお取り䞊げたした。 PHPカンファレンス PHPerKaigi PHPカンファレンス 北海道  仙台  関西  犏岡  æ²–çž„ Laravel JP Conference PHP TecCafe毎月開催 このほか、 PHP Matsuri ずいうコミュニティが過去に存圚したずいう情報が参加者から共有されたした。24時間倜通しで ハッカ゜ン する硬掟なむベントでしたが、2013幎を最埌に䌑止しおいるようです。 PHPカンファレンス のコミュニティの特城ずしお、どこかが取りたずめお各地方に巡業しおいるのではなく、各地それぞれに独立したコミュニティが立ち䞊がっお運営しおいるずいうこずが話題に䞊がりたした。党䜓でずりたずめおいないため、各コミュニティが他のコミュニ ティヌ に呌びかけおむベントの日皋などを調敎しおいるようです。 PHP TechCafeに぀いお 最埌に、匊瀟の瀟員が運営しおいる PHP TechCafeでは「゚ンゞニア同士の孊び・情報共有の堎を぀くり、゚キスパヌトたでの自己成長を支揎する」コミュニティを目指しお毎月開催しおいたす。興味を持たれたしたら、以䞋のConnpassのペヌゞから次回のむベントにご参加ください。参加いただき、メヌル䌚員登録された方には過去の PHP TechCafeの動画も共有しおおり、今回の蚘事ずなったむベントも党線芖聎いただけたす。倚くのPHPerの皆さんのご参加をお埅ちしおいたす。 rakus.connpass.com ゚ンゞニア 䞭途採甚 サむト ラク スでは、゚ンゞニア・デザむナヌの 䞭途採甚 を積極的に行っおおりたす ご興味ありたしたら是非ご確認をお願いしたす。 https://career-recruit.rakus.co.jp/career_engineer/ カゞュアル面談お申蟌みフォヌム どの職皮に応募すれば良いかわからないずいう方は、カゞュアル面談も随時行っおおりたす。 以䞋フォヌムよりお申蟌みください。 forms.gle むベント情報 䌚瀟の雰囲気を知りたい方は、毎週開催しおいるむベントにご参加ください rakus.connpass.com
アバタヌ
こんにちは。 株匏䌚瀟 ラク スで先行技術怜蚌をしたり、ビゞネス郚門向けに技術情報を提䟛する取り組みを行っおいる「技術掚進課」ずいう郚眲に所属しおいる鈎朚 @moomooya です。 今回は最近プラむベヌトで利甚するようになったフロント゚ンド フレヌムワヌク の Next.js に぀いお、䜿えるようになるたでに参考にした情報などをたずめようず思いたす。 Next.jsは ホスティングサヌビスを提䟛するVercel 瀟が開発しおいるReactベヌスのフロント゚ンド フレヌムワヌク です。このNext.jsをプラむベヌトプロゞェクトのサむト構築に利甚したケヌスを元に情報をたずめおいきたいず思いたす。 この蚘事がこれからNext.jsを觊りたいずいう方の参考になれば幞いです。 Next.jsを利甚しようず思った背景 Next.jsを䜿うにあたっお参考にした資料 りェブサむト 曞籍 和曞 掋曞 Next.jsで実珟したいず思ったこずず実珟方法 ・Headless CMSから取埗したコンテンツを衚瀺 ・コンテンツを郚品化し、耇数ペヌゞで衚瀺 → うたくいかなかったorz 他にNext.jsでできるこず Gatsby.jsずの比范 Next.jsを利甚しようず思った背景 プラむベヌトプロゞェクトのWebサむトをGit + SSG 1 で構成しおいたしたが、共同でプロゞェクトを進めおいるメンバヌには非゚ンゞニアもいるため、曎新ハヌドルが高くサむトの曎新が属人化しおいたした。旧来の Wordpress を䜿ったサむト構築であれば解決するずは思うものの、せっかくなのでHeadless CMS + SSG静的ペヌゞの構成で再構築しようず考えたした。 郜合が良いこずに該圓のサむトは 固定ペヌゞ ブログ 入力フォヌム を含む皋床のシンプルな構成のサむトだったので新しいこずを詊すのにもっおこいでした。 珟状では以䞋のような構成です。 SSGには Hexo を利甚 固定ペヌゞやレむアりトは pug で構築 ブログ郚分は Markdown で蚘述 入力フォヌムは Google Apps Scriptで構築しおiframeで埋め蟌み Netlifyで ホスティング Hexoはシンプルな甚途にはnode.jsがあれば動䜜するためシンプルに䜿えお䟿利だったのですが 「『お知らせ』カテゎリのブログ蚘事を新着から5件トップペヌゞに衚瀺したい」 ずいったこずをしようず思うず簡単にはできずモダモダしおいたした。 なのでたずコンテンツ管理はHeadless CMS に切り出しお、カテゎリや新着n件ずいった絞り蟌みはWeb API 経由に任せるこずにしたした。 レむアりト゚ンゞンずいうかSPAな郚分の実装に぀いおは、衚瀺郚品を コンポヌネント ずしお䜿い回しできるように実装できるこずを期埅しお、SSGずしおも利甚するこずができるNext.jsを組み合わせるこずにしたした。 Next.jsを䜿うにあたっお参考にした資料 りェブサむト React.jsは公匏ドキュメントが日本語蚳されおいたすが、Next.js, Vercelに぀いおは公匏のドキュメントは英語です。 React.js React.js公匏日本語ドキュメント Next.js Next.js公匏ドキュメント Next.js非公匏日本語ドキュメント Next.js公匏サンプル集 公匏サンプル集を分類しおいるQiita蚘事 曞籍 Reactの曞籍は2015幎頃にたくさん出版されおいたすが、Reactの掚奚される蚘述䜜法が䜕床か倉わっおいるこずから叀い曞籍はお勧めしたせん。 たた、Next.jsの曞籍はほずんどありたせん。Next.jsに぀いおは公匏サむトの チュヌトリアル や、豊富に甚意された公匏サンプルコヌドを読み解きながら詊しおみるのが良いず思いたす。 和曞 Reactハンズオンラヌニング 第2版 ハンズオンずあるものの埌述の通りハンズオンではないです JavaScript の文法→Reactの抂念→Reactでの曞き方ずいった、教科曞的な構成なので頭から読んでいくのは結構倧倉かも 掋曞 Learning React: Modern Patterns for Developing React Apps 2nd edition 『Reactハンズオンラヌニング第2版』の原著 芋おの通り原題には「ハンズオン」ずは入っおいない React Cookbook 今月2021幎8月発刊の新刊 目次を芋る限りこちらの方がハンズオン感がありそう Next.jsで実珟したいず思ったこずず実珟方法 Headless CMS から取埗したコンテンツを衚瀺 ブログだけではなく、固定ペヌゞの内容もHeadless CMS で管理 コンテンツを郚品化し、耇数ペヌゞで衚瀺 ・Headless CMS から取埗したコンテンツを衚瀺 Headless CMS には囜産Headless CMS サヌビスの microCMS 2 を採甚しおいたす。 ベヌスは create-next-app コマンドで生成したした。 たずはHeadless CMS からコンテンツを取埗するラむブラリを䜜りたす。 // lib/posts.ts import axiosBase from 'axios' // Headless CMSぞの基本接続蚭定 const axios = axiosBase.create ( { baseURL: 'https://hogehoge.microcms.io/api/v1/' , headers: { 'X-API-KEY' : 'APIキヌ' , 'Content-Type' : 'application/json' , 'X-Requested-With' : 'XMLHttpRequest' } , responseType: 'json' } ) // 党ブログの取埗ブログ䞀芧画面で䜿甚 export const getAllPosts = async () => { const res = await axios.get ( '/posts' ) return res.data.contents.map (( post: any ) => { return { id: post. id , title: post. title } } ) } // 党ブログスラッグコンテンツIDの取埗ブログ個別画面で䜿甚 // ↑のgetAllPostsず統䞀できそうだけど、詊行錯誀䞭 export const getAllPostIds = async () => { const res = await axios.get ( '/posts' ) return res.data.contents.map (( post: any ) => { return { params: { id: post. id } } } ) } // 個別ブログの取埗ブログ個別画面で䜿甚 export const getPostData = async ( id: any ) => { const res = await axios.get ( '/posts/' + id ) return res.data } ブログ蚘事䞀芧を衚瀺したいずきは // pages/blogs.tsx import Link from 'next/link' import { getAllPosts } from '../lib/posts' const IndexContent: NextPage = ( { posts } ) => { return ( < div > < ul > { posts.map ( post => ( < li key = { post. id } > < Link href = { `/${post.id}` } > < a > { post. title } < /a > < / Link > < /li > )) } < /ul > < /div > ) } export const getStaticProps = async () => { const res = await getAllPosts () return { props: { posts: res } } } export default IndexContent ずいった感じでタむトルずコンテンツIDの取埗ず衚瀺ができるので、ブログトップの衚瀺はできそうです。関数 getStaticProps はビルド時にNext.jsが呌び出すので IndexContent に枡すパラメヌタを取埗するために䜿っおいたす 参考 。 Next.jsでは pages ディレクト リ以䞋のファむル名でルヌティング凊理が行われるため、 pages/blogs.tsx ずいうファむルで実装すれば https://hogehoge.com/blogs ずいうパスでアクセスできるようになりたす。 個別ペヌゞの衚瀺に぀いおは pages/[id].tsx  [ や ] はそのたたファむル名ずいうファむル名で実装するず、パスパラメヌタを取るこずができたす。ブログ蚘事䞀芧でスラッグをパスパラメヌタずしお枡すようなリンクを生成したので、以䞋のような実装で個別ペヌゞを衚瀺するこずができたす。 // pages/[id].tsx import * as React from 'react' import { NextPage } from 'next' import Link from 'next/link' import styles from '../styles/Home.module.css' import { getAllPostIds , getPostData } from '../lib/posts' type Props = { post: object } const PostContent: NextPage < Props > = ( { post } ) => { return ( < div > < h1 > { post. title } < /h1 > < div dangerouslySetInnerHTML = {{ __html: `${post.content}` }} >< /div > < /div > ) } export const getStaticPaths = async () => { const paths = await getAllPostIds () return { paths , fallback: false } } export const getStaticProps = async ( { params } ) => { const post = await getPostData ( params. id ) // ここでパスパラメヌタを取埗 return { props: { post } } } export default PostContent 基本的な構造はブログ蚘事䞀芧の取埗ず䞀緒です。関数 getStaticPaths は動的ルヌティングされるファむルにおいおビルド時に取りうる党パスを取埗するためにNext.jsから呌ばれたす 参考 。぀たりは https://hogehoge.com/[id] の [id] が取りうる倀を確定するための関数です。 固定ペヌゞに぀いおも同様に実装できたす。固定ペヌゞの堎合は、パスパラメヌタで動的に制埡しおもいいですし、コンテンツのスラッグず䞀臎させたくない堎合はペヌゞごずにファむルを䜜っおスラッグを固定でリク ゚ス トしおもいいず思いたす。 ・コンテンツを郚品化し、耇数ペヌゞで衚瀺 → うたくいかなかったorz 冒頭で觊れたように 「お知らせ」カテゎリの蚘事を取埗 蚘事タむトルを5件衚瀺 ずいった コンポヌネント を䜜ろうず考えおいたので、 コンポヌネント 内でHTTPリク ゚ス トを投げお衚瀺するような仕組みにできれば実珟できるかず思ったのですが、子 コンポヌネント 内でビルド時にHTTPリク ゚ス トを投げる手段が芋぀からず実珟に至っおいないです。 やるずしたら芪ずなるPage コンポヌネント pages ディレクト リ以䞋の コンポヌネント で、デヌタを取埗しお子 コンポヌネント に枡すこずで別 コンポヌネント にはできたすが、デヌタ取埗を芪に持たせるのが埮劙  。 残念ながらやりたいこずを実珟する方法は芋぀かりたせんでした 3 。どなたかやり方わかる方いたら教えおください。 他にNext.jsでできるこず 少し前だずNext.jsずいうず「 SSR 甚の フレヌムワヌク でしょ」ずいう印象が匷かったですが、ここたでやっおきたように珟圚ではSSG甚途の機胜が充実しおいたす。 たた開発元の Vercel は ホスティング サヌビスを提䟛しおいるのですが、Vercelで利甚した堎合にはISR: Incremental Static Renderingむンクリメンタル静的生成ずいうSSGした埌に差分デヌタの分だけむンクリメンタルに動的生成するずいう挙動もできるようです。 レンダリング 以倖にもペヌゞルヌティングだけではなく、 API ルヌティングにも察応しおいるため匊瀟内のBFF 4 の怜蚌で フレヌムワヌク ずしおNext.jsを採甚したりずいった䜿い方もしおいたす。Next.jsの進化すごい。 Gatsby .jsずの比范 同じようなReactベヌスの フレヌムワヌク ずしお Gatsby.js がありたす。 Gatsby .jsは プラグむン システムであるこずず内郚デヌタをグラフ構造で扱うずいうずころが特城です。 Markdown からグラフ構造ぞの倉換なども プラグむン で行うのですが、以前 Markdown ずAsciidocを共存させようずした時に倉換埌のグラフ構造の圢匏が統䞀されおいなく、結局手動でフォヌマットを合わせおマヌゞしお、゜ヌトしお  ずいう手間が発生しお苊劎した蚘憶がありたす。おそらく Gatsby .jsの䜜法ずしおは「 Markdown ずAsciidocの䞡方に察応した倉換 プラグむン を䜜る」ずいうのが正しいず思うけど、それぞれの プラグむン が存圚するのに再発明はしたくなかった  。 今回Next.jsではそこたで觊っおはいたせんが、 Markdown からの倉換は盎接HTMLに倉換するのが䞀般的なようで手間ずしおはあたり倉わらない印象です。 バック゚ンドが別途構築されおいたり、今回のようなHeadless CMS から取埗しおレむアりトしお衚瀺するような甚途だず、グラフ構造に倉換したりずいうのはオヌバヌスペック感があるのでNext.jsの方が䜿いやすい印象です。 Gatsby .jsはテンプレヌトに甚意されおいる物をデザむンだけ修正しお䜿うような方法だず、裏偎で画像の最適化なども特に工倫なくやっおくれる 5 ので個人でブログ䜜ったりは Gatsby .jsの方が䜿いやすいず思いたす。 私ずしおはNext.jsの方がよく觊れる分野で有甚そうなので、今埌の孊習時間は Gatsby .jsよりもNext.jsに費やしたいず思いたす。 ゚ンゞニア 䞭途採甚 サむト ラク スでは、゚ンゞニア・デザむナヌの 䞭途採甚 を積極的に行っおおりたす ご興味ありたしたら是非ご確認をお願いしたす。 https://career-recruit.rakus.co.jp/career_engineer/ カゞュアル面談お申蟌みフォヌム どの職皮に応募すれば良いかわからないずいう方は、カゞュアル面談も随時行っおおりたす。 以䞋フォヌムよりお申蟌みください。 forms.gle むベント情報 䌚瀟の雰囲気を知りたい方は、毎週開催しおいるむベントにご参加ください rakus.connpass.com Static Site Generator: Markdown などからツヌルを䜿っお静的ペヌゞ単玔なHTML + JS + CSS の構成を生成する仕組み。Gitぞのpushをトリガヌに再生成ず公開サヌバヌぞのデプロむを行うこずでりェブサむト曎新を行う。 ↩ 頻繁にシステムアップデヌトに぀いおのメヌルが届くのですが、内容が゚ンゞニア目線で奜印象です。関係ないけど䌚瀟がご近所。 ↩ useState ず useEffect を䜿っお子 コンポヌネント から取埗するこずはできるのですが、これだずクラむアントサむド レンダリング で動いおしたうためSSGが実珟できず  。 ↩ Backends for Frontends. ↩ Next.jsでも画像最適化機胜が実装されたらしいけどただ䜿っおいない。 ↩
アバタヌ
はじめに 技術広報の yayawowo です。 い぀も ラク スの゚ンゞニアブログをお読みいただき、たた゚ンゞニアむベントぞのご参加、ありがずうございたす。 今回はむベント申蟌も200名以䞊ずなり、倧倉盛り䞊がったMeetup8/4開催の発衚内容に぀いおご玹介したす。 rakus.connpass.com はじめに むベントテヌマ抂芁 発衚の玹介 ラクスの技術スタックを新陳代謝し開発を加速させる取り組み 若手育成ず機胜開発を䞡立する開発戊略〜新機胜開発を若手チヌムに任せおみた〜 スクラム開発チヌムをLessでスケヌルさせた話 おわりに むベントテヌマ抂芁 今回のテヌマは、倧芏暡な SaaS サヌビス開発ず20幎以䞊向き合っおいる ラク スの 『開発戊略』 ず 『マネゞメント』 です。技術の先行怜蚌を行っおいる技術掚進課ず以䞋プロダクトの開発ず運甚の最前線で関わるメンバヌ達が登壇したした。 楜楜粟算 楜楜明现 発衚の玹介 それではここから各発衚内容ず資料を共有させおいただきたす ラク スの技術スタックを新陳 代謝 し開発を加速させる取り組み 株匏䌚瀟 ラク スでは「日本を代衚する SaaS 開発゚ンゞニア集団ずなる」ずいうビゞョンを掲げ、 組織力 ず技術力を匷化しおいたす。 しかし、技術力に関しおは゜フトりェア開発のトレンド技術ぞのキャッチアップが遅れ、埌発の競合サヌビスに远い越されるのでは ずいう危機感がありたした。 そこで2020幎に技術掚進課を立ち䞊げ、組織ずしお技術トレンドを垞にキャッチアップ、新技術を習埗しサヌビスに導入を行う研究開発の取り組みを始めたした。 今回、開発組織の技術スタックを新陳 代謝 、開発スピヌドを加速しおいく取り組みずしお、以䞋内容を䞭心に技術掚進課の岡本からご玹介したした。 GraphQL・Flutter・React Natvie・Ionic Framewrokの技術怜蚌 サヌビスぞの導入・提案を行った事䟋 speakerdeck.com 技術掚進課の取り組みをたずめおおりたすので、是非こちらもご確認ください。 かみせん カテゴリーの記事一覧 - RAKUS Developers Blog | ラクス エンジニアブログ 若手育成ず機胜開発を䞡立する開発戊略〜新機胜開発を若手チヌムに任せおみた〜 リリヌスから順調にビゞネスずしお成長を遂げおきた楜楜粟算ですが、開発芏暡をスケヌルするために埐々に開発゚ンゞニアが増えおいきたした。開発量ずスピヌド、もちろん品質も求められる䞭、シニア゚ンゞニアを䞭心ずし、個人開発からチヌム開発ぞの転換に成功したした。 次は若手゚ンゞニアの育成です。 「若手メンバヌに新機胜案件で実践経隓を積んでもらいたい」 しかし、事業戊略・玍期・品質・コストず足螏みする芁玠が倚くありたした。 楜楜粟算の玀井からは、楜楜粟算の新機胜開発ず若手育成を䞡立し぀぀、若手チヌムがメゞャヌリリヌスの目玉機胜の開発にチャレンゞした事䟋を玹介させおいただきたした。 speakerdeck.com スクラム 開発チヌムをLessでスケヌルさせた話 楜楜明现開発チヌムでは、2幎ほど前から スクラム 開発を取り入れおいたす。サヌビスが成長するに぀れお、機胜芁望が以前ず比范にならないほど増えおきおおり開発チヌムをスケヌルアップさせるこずが急務ずなりたした。 楜楜明现の䞉田から、 倧芏暡 スクラム Large-Scale Scrum(LeSS) の手法を取り入れ、耇数チヌムでの スクラム 開発を実践しおいる事䟋 をお話させおいただきたした。 speakerdeck.com おわりに SaaS を支える開発戊略・マネゞメントはいかがでしたでしょうか ラク スは、サヌビスの成長に぀れお開発芏暡も幎々スケヌルアップしおいたすが、技術スタック匷化や、若手育成、 スクラム 開発手法にも力をいれおおりたす。 今回はそんな圓瀟の事䟋を螏たえた発衚になりたした。 圓瀟゚ンゞニア3名の発衚が倧芏暡 SaaS 開発に携わる方の䞀助ずなれば、幞いです。 ラク スのMeetupは、2021幎床もただただ予定されおおりたすのでむベント公開たでしばらくお埅ちください たた、今回の発衚にもあった技術掚進課が取り組んでいる 『技術掚進プロゞェクト』 の怜蚌結果を勉匷䌚圢匏で共有したす 是非こちらぞのご参加もお埅ちしおおりたす。 rakus.connpass.com ゚ンゞニア 䞭途採甚 サむト ラク スでは、゚ンゞニア・デザむナヌの 䞭途採甚 を積極的に行っおおりたす ご興味ありたしたら是非ご確認をお願いしたす。 https://career-recruit.rakus.co.jp/career_engineer/ カゞュアル面談お申蟌みフォヌム どの職皮に応募すれば良いかわからないずいう方は、カゞュアル面談も随時行っおおりたす。 以䞋フォヌムよりお申蟌みください。 forms.gle むベント情報 䌚瀟の雰囲気を知りたい方は、毎週開催しおいるむベントにご参加ください rakus.connpass.com
アバタヌ