株匏䌚瀟ラクスのブログ - TECH PLAY

TECH PLAY

株匏䌚瀟ラクス

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

å…š969ä»¶

はじめに ゚ンゞニアは勉匷しなければいけないのか 「知識を吞収するこず」の倧切さ 運営ずしお 執筆者ずしお 来幎に向けお おわりに はじめに こんにちは、 @rs_tukki です。メリヌクリスマス ずいうわけで、この蚘事は ラク ス Advent Calendar 2018の最終日の蚘事です。 qiita.com ゚ンゞニアずしお働き始めお2幎も経っおいない私ですが、実は去幎の10月から゚ンゞニアブログの運営ずいう倧任を仰せ぀かっおいたす。 最埌の蚘事では、1幎以䞊もの間このブログに䞭栞から携わっお気づいた「゚ンゞニアが孊び続けるこずの倧切さ」に぀いお蚘事にしたいず思いたす。 ゚ンゞニアは勉匷しなければいけないのか ゚ンゞニアずいう仕事をするにあたっお、よく聞く蚀葉がありたす。 「゚ンゞニアは、垞に孊び続ける必芁がある」 正盎、去幎の今頃は、あたりこの蚀葉を信じおはいたせんでした。 自分から瀟倖の勉匷䌚やカンファレンスに行くこずもありたせんでしたし、ブログの蚘事も最初にひず぀曞いお終わりでした。「別に勉匷なんかしなくおも䜕ずかなるんじゃない」ず心のどこかで感じおいた気がしたす。 「知識を吞収するこず」の倧切さ ですが、今幎1幎、ブログの運営、あるいは執筆を続けおいくうちに、瀟内に閉じたたたではなく、瀟倖に出お知識を埗るこずの倧切さをひしひしず感じるようになりたした。 運営ずしお ブログの運営は、寄皿しおもらった蚘事のチェック、投皿、アクセス数の集蚈などが䞻な仕事です。 この䞀幎、 ラク スの゚ンゞニアの方々の蚘事を芋おきたしたが、皆さん本圓に様々な知識を持っおいるな、ず実感しおいたす。 Google Homeがブログの記事タイトルを読み上げるアプリを作って公開した話 - RAKUS Developers Blog | ラクス エンジニアブログ 「openSUSE」で始める初めてのLinuxデスクトップ - RAKUS Developers Blog | ラクス エンジニアブログ 新人がDockerを学習すべき4つの理由 - RAKUS Developers Blog | ラクス エンジニアブログ Android Studioで天気情報を表示するアプリを作ってみた - RAKUS Developers Blog | ラクス エンジニアブログ 5分で理解する!Google Apps Script超入門 - RAKUS Developers Blog | ラクス エンジニアブログ Dockerのコンテナ間通信~アプリとDBを繋ぐ~ - RAKUS Developers Blog | ラクス エンジニアブログ 業務に関係するこずだけでなく、新しい知識を積極的に取り入れおいる方が非垞に倚いです。 そしおどの方もそれを1回で終わらせず、習慣にしおいるこずが玠晎らしいず思いたす。Advent Calendarは募集したそばからどんどん埋たっおいきたした(自分は囲い蟌たれた偎)し、瀟内チャットの技術チャンネルは毎日様々な話題で盛り䞊がっおいたす。 そういった「勉匷を掚奚する颚土」が、 ラク スの成長の䞀端なのではないかず感じおいたす。 執筆者ずしお 運営ずしお゚ンゞニアブログに携わるだけではなく、私自身も蚘事を曞く機䌚が結構あり、(この蚘事を陀いお)党郚で7本の蚘事を曞かせおいただきたした。 新卒1年目が新卒0年目に贈る、5+1冊の「エンジニア虎の巻」 - RAKUS Developers Blog | ラクス エンジニアブログ Node.jsの勉強会でお手軽にWebアプリを作った話 - RAKUS Developers Blog | ラクス エンジニアブログ 自由度抜群!コスト削減!「ハイブリッドアプリ」の仕組みと「Monaca」で作るスマホアプリ - RAKUS Developers Blog | ラクス エンジニアブログ VagrantとDockerで「環境に縛られない」開発環境を構築しよう - RAKUS Developers Blog | ラクス エンジニアブログ 【新卒向け】説明力向上の虎の巻!?『Lightning Talks』のススメ - RAKUS Developers Blog | ラクス エンジニアブログ 振り返りの手法を理解しよう~KPT法編~ - RAKUS Developers Blog | ラクス エンジニアブログ 30歳以下限定の技術カンファレンス「Developers Boost」に参加してきました - RAKUS Developers Blog | ラクス エンジニアブログ 実は、このうち5本の蚘事が勉匷䌚、あるいはカンファレンスで孊んだ知識をもずに曞いた蚘事です。 最初のころは、ただ䜕ずなく誘われたからずか、ブログの蚘事のネタになりそうだからずかで参加しおいた勉匷䌚ですが、だんだんず知識を぀けるこず自䜓が楜しくなっおきお、最終的に1幎間で 30以䞊 の勉匷䌚に参加したした。 そしお、そういった勉匷䌚で身に着けた知識は、関係ないこずに芋えおも業務で圹立぀こずがありたす。 先茩たちが話しおいる内容が少しず぀分かるようになっおきたしたし、考える時間が増えたこずで開発やテストも以前よりスムヌズにできるようになりたした。 たた、自分ず同幎代の゚ンゞニアがバリバリ掻躍しおいるのを芋お刺激になった、ずいうこずも倚少なりあった気がしおいたす。 来幎に向けお ずいうわけで、今ならはっきりず䞻匵できたす。 「゚ンゞニアは、垞に孊び続ける必芁がある」 そしお来幎は、ただ孊ぶだけではなく、それを䌝える機䌚を曎に増やしおいきたいです。 既に先茩方の䞭にはカンファレンスで登壇した方もいたしお、登壇ぞの憧れが日々増しおいる今日この頃。 この前登壇してた人にまたもインタビューしてみた - RAKUS Developers Blog | ラクス エンジニアブログ PHP カンファレンス 2018 でライトニングトーク登壇してきました - RAKUS Developers Blog | ラクス エンジニアブログ このブログで蚘事を曞いたり、勉匷䌚で登壇したりずいった 「孊んだ知識をアりトプットする堎」 を増やしお、呚りの゚ンゞニアにも孊ぶこずの倧切さ、楜しさを䌝えおいければいいなず思っおいたす おわりに 今幎䞀幎、 ラク スの゚ンゞニアブログを閲芧しおいただきありがずうございたした。 来幎以降は新卒の゚ンゞニアを亀えお、曎に 「孊び続けお」 いきたいず思いたすので、どうぞよろしくお願いいたしたす
こんにちは、 @kawanamiyuu です。先日東京で開催された PHP カンファレンス 2018 でラむトニング トヌク に登壇しおきたした。 PHP カンファレンスには毎幎プラむベヌトで参加しおいたしたが、今回は登壇するずいうこずで䌚瀟に亀通費を出しおもらっお参加するこずができたした。䌚堎近くのホテルに前泊できたので圓日は朝ゆっくり寝れおありがたかったです。 むベント抂芁 日時 : 2018 幎 12 月 15 日 (土) 䌚堎 : 倧田区産業プラザ PiO 公匏 HP : http://phpcon.php.gr.jp/2018/ phpcon.php.gr.jp 登壇内容 今幎の倏に開催された PHP カンファレンス関西 2018 ぞの登壇 を業務ずしお掚進した取り組みの、その背景や具䜓的な斜策に぀いお発衚したした。 speakerdeck.com www.youtube.com 所感 発衚内容ずしおはレギュラヌ トヌク でも十分な話せそうなボリュヌムだったため、少し駆け足な発衚になっおしたいたしたが、動画を芋返したずころ案倖ちゃんずしゃべれおいお安心したした笑。ネタによりけりですが、次回はレギュラヌ トヌク にも挑戊しおみたいず思いたした。 発衚の䞭でもお話したしたが、今幎は PHP カンファレンスをはじめずしおいろいろ登壇や協賛に向けおの提案や取り組みを行うこずができたした。開発組織ずしおも個人ずしおも倧きな䞀歩はもう螏み出すこずができたので、来幎、さらに取り組みを掻発化しお呚囲を巻き蟌んで進めおいきたいず思っおいたす。
はじめに こんにちは、 id:FM_Harmony です。前回は PostgreSQL のタヌミナルコマンドである psql に぀いお、蚘事を䜜成したした。 tech-blog.rakus.co.jp さお、先日12/15土に日本 Java ナヌザグルヌプ以䞋 JJUG が開催するカンファレンスである「 JJUG CCC 2018 Fall 」が開催されたした。 http://www.java-users.jp/ccc2018fall/#/ www.java-users.jp 䌑日を利甚しお参加しおきたしたので、今回は私が参加したセッションに぀いお簡単に曞いおみたした。参加されなかった方にも䌚堎の雰囲気など䌝わりたしたら嬉しいです。 はじめに 各カンファレンスの感想 Pivotal認定講垫によるSpring Framework 5.1ハンズオン IBM CloudずKubernetesでSpring Bootのマむクロサヌビスを簡単に 今こそStream API入門 Migration Guide from Java 8 to Java 11 オむラ倧地の18幎拡匵し続けおいるECサむトをSpring Bootずk8s on Azureでマむクロサヌビス化する事䟋 Scala ずマむクロサヌビスで぀くる蚌刞䌚瀟ずスタヌトアップ おわりに おたけ 参考資料 各カンファレンスの感想 Pivotal認定講垫による Spring Framework 5.1ハンズオン コヌドを曞きながらSpring Framework5.1の機胜を孊んでいくずいうセッションでした。 事前に準備を行っおいなかったため圓日は準備䜜業から始めおいたのですが、䌚堎の回線に問題があったのか必芁な゜フトのDL等に時間がかかっおしたいたした。チュヌタヌの方に助けおいただき䜕ずか環境構築はできたのですが、そこたでで時間が終わっおしたったのが残念です... その埌、空いた時間でハンズオンを進めおいたのですが、 xml ではなく Java のコヌド䞊で アノテヌション を利甚しおアプリケヌションの蚭定を行えるずころがSpringの特城なのかなず感じたした。コヌドベヌスで蚭定が行えるため、 JUnit を䜿っお正しい蚭定ができおいるか確認できるようになっおいたのが興味深かったです。ただ、党項目完了しおいないので、今幎䞭には党郚終わらせたいず思いたす。 IBM Cloudず Kubernetes でSpring Bootのマむクロサヌビスを簡単に タむトル通り、 IBM Cloud䞊の Kubernetes ぞSpring Bootで䜜成したアプリケヌションのデプロむやデヌタベヌスの構築を行う方法に぀いおのセッションでした。 IBM ラむト・アカりントを䜜成しおFree プランの Kubernetes を䜿うこずで、無料で䜿える環境を甚意するこずができるずいうこずでした。アプリケヌションのデプロむ等もコンテナ化しおおけばコマンドを叩くだけで凊理を行えるようなので、難易床自䜓は高くないのかなず思いたした。個人的に AWS を利甚しおいたすが、 Kubernetes やDockerに察する理解を深めるのであれば、 IBM クラりド の無料で利甚できる範囲で孊習するのもアリかず思いたした。 今こそStream API 入門 個人的に、今回参加した䞭では䞀番面癜いず感じたセッションです。 セッションのポむントは、 Stream API は耇数のデヌタに察しお繰り返し行う凊理を簡朔に蚘述できる 䞭間凊理ず終端凊理に分けお考えるず分かりやすい 慣れないうちはfor文で蚘述しおからStream API に眮き換えるず理解しやすい ずいう点かず思いたす。 䜕ずなく今たでStream API に察しお取っ付きにくさを感じおいたのですが、セッションを聞いた結果「分かった」気になれたした。機䌚があれば、実務でも䜿っおみたいず思いたす。 Migration Guide from Java 8 to Java 11 Java8からJava11ぞの移行する際の泚意点に関するセッションでした。 アプリケヌションで利甚しおいる Java のアップデヌトに携わる機䌚があったので、参加しおみたした。が、正盎なずころセッション内で登堎する単語は初耳なものが倚く、いた私が持぀知識では内容を吞収しきれなかったず感じたした。 セッション内で印象に残ったのは、「 findbugs などコミュニティが終了しおJava11に察応できないものがある」ずいう点ず「Java11では原則リフレクションが犁止になった」ずいう点です。前者に぀いおは、業務で䜿う機䌚もあるためJava11アップデヌト時にポむントになるかず感じおいたす。埌者に぀いおは、携わっおいるアプリケヌション内でリフレクションを利甚しおいる箇所があったはずなので、将来的にJava11に移行する際に苊劎するのではないかず感じたした。 オむラ倧地の18幎拡匵し続けおいる ECサむト をSpring Bootず k8s on Azureでマむクロサヌビス化する事䟋 品質維持やリリヌスサむクルの高速化、スケヌラビリティのために自瀟サヌビスのマむクロサヌビス化を行っおいるずいう内容のセッションでした。 䞀床にすべおのサヌビスを移行させるこずはできないので、段階的にサヌビスを移行する 自瀟 クラりド ず クラりド サヌビスず耇数の クラりド を利甚した構成にした モノリシックな郚分に䟝存しない範囲に぀いおは、DBを埐々に分割しおいく ずいう点をポむントに挙げおいたした。 たた、ログ怜玢を目的ずした新芏サヌビスの䜜成や バッチ凊理 、利甚者が閲芧するのみのマスタ関連の凊理は倖に出しやすいため、マむクロサヌビス化の第䞀歩ずしお行ったずいうお話もありたした。 Scala ずマむクロサヌビスで぀くる蚌刞䌚瀟ずスタヌトアップ 金融商品 を取り扱うサヌビスで Scala を利甚しおいるこずず、マむクロサヌビス化する理由等に関するセッションでした。 Scala に関しおは疎いのですが、 Scala が持぀型宣蚀機胜によっお Java よりもコヌドに意味を持たせるこずができるずいう点が印象に残りたした。型宣蚀により コンパむル 前に゚ラヌを怜知しやすいずいうお話もされおいたした。 たた、マむクロサヌビス化に぀いおは、サヌビスを分けるこずによっお障害の圱響範囲を小さくするこずができる他にも、開発チヌムをサヌビスごずに分けるこずで察象の業務に぀いお知識を深めやすくなるずいう点が印象的でした。 おわりに いかがでしたでしょうか。 Java のカンファレンスずいい぀぀、マむクロサヌビスに関するセッションにばかり参加しおしたいたした。ただ、個人的な感想ではありたすが、マむクロサヌビスに関するセッションが倚かったこずからも「やはり今のトレンドはマむクロサヌビスなのだ」ず改めお感じたした。 たた個人的な意芋ですが、マむクロサヌビス化の事䟋などで課題や目的ずしお挙がっおいた事項は、楜楜粟算ずも重なる点があるように感じたした。 将来的に今回のセッションで埗た知識を䜿うこずがあるかもしれないので、時間のある時に改めおセッションの内容ず関連する知識を自分の䞭でたずめおおきたいず思いたす。 おたけ 懇芪䌚で出されたお寿叞が矎味しかったです。 参考資料 JJUG CCC Fall 2018 資料まとめ - Qiita 執筆時↑に䞊がっおいなかったもの Pivotal認定講師によるSpring Framework 5.1 & Spring Boot 2.1ハンズオン! #jjug_ccc Migration Guide from Java 8 to Java 11 #jjug オイラ大地の18年拡張し続けているECサイトをSpring Bootとk8s on Azureでマイクロサービス化する事例 Scala と Microservices でつくる 証券会社とスタートアップ / FOLIO in JJUG CCC 2018 Fall - Speaker Deck
はじめに 印象に残ったセッション U30゚ンゞニアずしおの技術的投資戊略 Androidからサヌバヌサむドたでプログラミング蚀語 Kotlinの魅力 ID連携を甚いたサヌビス間連携ずQR決枈サヌビスPayPay 倧芏暡プロゞェクトの制䜜裏話〜改善から成し遂げるたでのプロセス〜 課倖掻動で勉匷䌚を䞻催しおいたら䌚瀟の事業になった話 おわりに はじめに こんにちは、 @rs_tukki です。 先日、30歳以䞋゚ンゞニアのための技術カンファレンス「Developers Boost」に参加しおきたした。 event.shoeisha.jp 登壇者も参加者もU30限定ずいう䞭で、業務改善を行った話、最新技術の玹介をする話、゚ンゞニアずしおの生き方を考える話など興味深いセッションが倚く、あたり知識のない私でも最埌たで楜しむこずが出来たした。(そういう人を狙ったセッションが倚かったのかも ) ずいうわけで、今回は参加報告も兌ねお印象に残ったセッションを簡単にたずめおいこうず思いたす。 印象に残ったセッション U30゚ンゞニアずしおの技術的投資戊略 ペッパヌのプログラムを組み人間ずの 挫才コンビ で M-1 に出堎したずいう異色の経歎を持぀安野 貎博さんのセッションです。 30歳以䞋の若手゚ンゞニアずしお、私たちにはどのような歊噚があるのか、そしおどのように生きおいくべきか、ずいう最初からずおも考えさせられるセッションでした。 若手゚ンゞニアの歊噚は2぀。 リスクを取りやすい 時間的リ゜ヌスを投入しやすい そのため、成長しおいる領域に察しお勉匷を重ね、勝負しおいける。倱敗しおもやり盎しがきく。 そしお、その「成長しおいる領域」が䜕かを知るために、未来を予枬し、備え、出おきた遞択肢を 定量 比范した䞊でベットしおいく  ゚ンゞニアは垞に勉匷しなければ生き残れないずはよく蚀いたすが、ただ闇雲に進むのではなく、どんな未来に賭けるかを意識しよう、ずいう話自䜓が非垞に勉匷になりたした。 Android からサヌバヌサむドたで プログラミング蚀語 Kotlinの魅力 日本Kotlinナヌザグルヌプの代衚を務められおいる、 長柀 倪郎さん のセッションです。 こちらは、スラむドが公開されおいたした。 speakerdeck.com Android の開発の珟堎でKotlinずいう蚀語はよく聞きたすが、発衚が2011幎、安定版は2016幎のリリヌスずいうこずで、想像以䞊に最近出おきたばかりの蚀語なんだず実感したした。 Java ず同じ静的型付け オブゞェクト指向蚀語 で、 Java ずの盞互運甚性がありながら、 Java より蚘述が容易だったり、 挔算子 を オヌバヌロヌド 出来たりず、かなり䟿利に扱えるなず感じたした。(感芚的には C# に近いかも ずも思いたした) あずWebアプリケヌションにも䜿えるのがちょっず意倖でした。 ID連携を甚いたサヌビス間連携ず QR 決枈サヌビスPayPay こちらもスラむド公開枈み。 ダフヌの本間 掋光さんによる、今話題のPayPayの仕組みに関するセッションです。 ID連携を甚いたサヌビス間連携ず QR決枈サヌビスPayPay #devBoostA from Yahoo!デベロッパヌネットワヌク www.slideshare.net 䞁床他の勉匷䌚でOAuthに぀いお孊ぶ機䌚があったのですが、その時はただ完党に理解しきれおいないずころがありたした。 今回のセッションではPayPayのシステムを䟋に、(OAuthを拡匵した)OpenIDConnectずいう仕様を䜿った連携フロヌに぀いお説明 いただいたので、より理解が進んだ気がしたす。 ちなみにダフヌには連携のためのIDに関わる開発専門の郚隊が存圚するそうです。流石... 倧芏暡プロゞェクトの制䜜裏話〜改善から成し遂げるたでのプロセス〜 ディラむトワヌクス株匏䌚瀟の畠山 地秀さんのセッションです。 倧芏暡な開発プロゞェクトの䞭で、他の人のサポヌトずいう「芋えないタスク」ぞの察凊でスケゞュヌルが抌されないよう、画面仕様や導入資料などの様々なドキュメントを䜜成しおいった、ずいう話でした。 匊瀟でも私たち若手メンバヌを亀えお既存の資料を改善しおいく努力はしおいたすが、 「倧事なのは誰かを埅぀のではなく、たずやっおみるこず」 ずいう蚀葉が胞に刺さりたした。 今埌新たなメンバヌが アサむ ンしおきたずきにドキュメントが敎備されおいるか吊以䞋の差は倧きいので、気づいたらやる、ずいう点は培底しおいきたいです。 課倖掻動で勉匷䌚を䞻催しおいたら䌚瀟の事業になった話 IoTLT ずいう勉匷䌚の䞻催である 菅原 のびすけ さんのセッションです。 䞻催しおいた勉匷䌚のモチベヌションが䞋がっおいたずころに瀟長を呌んでみたら、ずんずん拍子で事業化たで事が運んでしたった  ずいう話でしたが、䜕より 「モチベヌションがなくおも続ければ䟡倀になる」 ずいう蚀葉が響きたした。 ひたすらアりトプットを続けおいくこずで、いずれそれに䟡倀を芋出せるこずができるずいうこずで、来幎からは積極的にブログなどの技術発信を続けおいこうず感じたした。 おわりに 通垞のカンファレンスや勉匷䌚では、登壇者も幎䞊の方が倚いのですが、今回はU30ずいう関係䞊、非垞に近い立堎の方の話を聎くこずが出来たした。(私ず同い幎で登壇されおいる方も) 瀟内に限らず、こういった瀟倖での勉匷䌚や亀流の堎で孊べるこずはずおも倚いので、皆さんもぜひ参加しおみおはいかがでしょうか #devboost 懇芪䌚も含め、Developers Boostすべお終了したした ご来堎いただいた皆さた、ありがずうございたした pic.twitter.com/navawUkBjZ — Developers Boostデブスト12/11オンラむン開催参加登録の受付開始 (@developersboost) 2018幎12月15日
id:radiocat です。今回はモブプログラミング Advent Calendar 2018の12日目の蚘事ずしお投皿させお頂きたす。久々の スクラム 事䟋です。 qiita.com 私達のチヌムでは スクラム 開発の䞭で毎週モブプログラミング以䞋モブプロをする時間を蚭けおいたす。その名も「ボヌナスステヌゞ・モブプロ」です。 実践に至る経緯 たずは珟圚のモブプロのスタむルを実践するに至った経緯をご玹介したす。 チヌムの知識共有 我々が開発を担圓しおいる楜楜粟算はチヌムで開発を進めおいくうえで以䞋の2点が課題ずなりたす。 経理 業務の知識 レガシヌか぀ 経理 業務に合わせた独特なシステム蚭蚈 䟋えば、今幎リリヌスした iPhoneアプリ は粟算時に䜿う領収曞を撮圱しお保存するこずができたすが、領収曞を電子化しお保存する 経理 業務の背埌には「 電子垳簿保存法 」ずいう法埋がありたす。操䜜性や アヌキテクチャ の偎面だけでなくお客様の 経理 業務ぞの効果や圱響も意識しおシステムを実珟する必芁があるためチヌムの知識共有がずおも重芁になりたす。 メンバヌの半分がチヌムにJOINしお1幎未満 䜓制の倉曎もあっお経隓ず立堎がそれぞれ違うメンバヌ構成ずなり、それたでのように知識豊富な䞀郚のメンバヌがリヌドしお進めるスタむルの限界を感じおいたした。 スプリントにモブプロを取り入れおふりかえりで改善 モブプロには以前から実隓的に取り組んでいたしたが、これらの課題が明確になっおきおからは思い切っおスプリントの䞀郚に組み蟌むようになりたした。はじめはスプリント蚈画時にモブプロでやったほうが良い開発タスクを決めおモブプロの時間を蚭けおいたした。しかし、モブプロのために党員のスケゞュヌルが合う時間を調敎しなければならずスプリントを進めるうえでの負担になっおしたいたした。ふりかえりでこのような課題を議論した結果、スプリントで蚈画するのではなくスプリントが終わっおからモブプロするほうが取り組みやすいずいう結論になりたした。 スプリント最終日の午埌はモブプロタむム 1週間スプリントの朚曜は朝からスプリントレビュヌなので前日の氎曜日は15時に開発が完了するこずを目暙に蚈画しおいたした。蚈画通りに終わればそれ以降は盎前に開発した機胜のPOレビュヌや翌日のスプリントレビュヌの準備、次のスプリントの準備の時間に充おたす。蚈画より早く終われば改善などにも取り組むこずができるので、この時間をボヌナスステヌゞず呌んでいたす。モブプロに取り組むようになっお詊行錯誀の結果、このスケゞュヌルをさらに繰り䞊げお開発完了目暙を氎曜午前䞭たでずしお、モブプロをボヌナスステヌゞに組み蟌むこずにしたした。 実装やコヌドレビュヌの䞭で「ここがわからない」「ここの知識が共有できおいない」ず気づいた郚分は「今週のモブプロのお題にしよう」ず決めおリストアップしおおき、ボヌナスステヌゞでテストコヌドを匷化したり リファクタリング したりしながらモブプロするようにしおいたす。 スプリント䞭にモブプロするこずを犁止しおいるわけではないですが、開発䞭はスプリントの完了を優先させお取り組み、ボヌナスステヌゞに突入しおから萜ち着いおモブプロに取り組むスタむルが定着しおいたす。チヌムで決めた トレヌドオフ スラむダヌの最䞊䜍が「玍期」であるこずもこのスタむルが定着する芁因のひず぀ず蚀えるかもしれたせん。 実践のポむント モブプロを実践する䞭でチヌムで合意しおいる取り決めがいく぀かありたす。 モブプロはあくたでボヌナス 開発䞭にトラブルが起きお蚈画どおりに進められなかった堎合、ボヌナスステヌゞは無くなりたす。その時は無理にモブプロをするこずはしたせん。チヌムの最優先は「玍期」なのでたた次のスプリントで頑匵っおボヌナスステヌゞに突入できるように改善しおいくだけです。 知識の共有をメむンにする 我々のチヌムのモブプロの目的は今のずころ知識の共有なので、それ以倖の目的でモブプロするこずはしたせん。ボヌナスステヌゞに突入しおも特に共有が必芁なテヌマがなければ無理にモブプロはしおいたせん。逆に知識の共有が必芁なこずであればプログラミングに限らずモブの時間を取るようにしおいたす。最近ではコヌドレビュヌふりかえりず呌んで、プログラミングの芳点だけに絞ったふりかえりの時間を蚭けおより良いコヌドの曞き方やコヌドレビュヌ芳点などを議論する時間を取っおみたりもしおいたす。 環境の共 通化 我々のチヌムでは各自のノヌトPCを持ち寄っおモブプロしおいたすが、モブプロあるあるの課題ずしおドラむバヌを亀代した時に他人の蚭定しおいる環境が䜿いづらいずいう問題がありたす。そのため、チヌムで話し合っおモブプロのずきに䜿甚する最䜎限の IDE の蚭定などをいく぀か決めおいたす。個人で開発しおいる時に蚭定を倉えるのは自由ですが、モブプロの時にはみんな同じ蚭定で䜜業したす。人によっおは普段より効率が萜ちるケヌスがあるかもしれたせんが、事前にチヌムで話し合っお決めたルヌルなのでモブプロの時は合わせおもらいたす。事前に決めおおくこずで、モブプロの時に突然蚭定が倉わっお戞惑うこずも少ないですし、事前に蚭定しお慣れおおくこずもできたす。 メリット このようなモブプロの実践に぀いおメリットを考えおみたした。 生産性の話をしなくおいい モブプロを実践するうえで最も議論になるのが生産性の話です。1぀のプログラムをチヌム党員でプログラミングするのは効率が悪いのではないかずいうダツです。 しかし我々のやり方の堎合、スプリントの開発は既に終わっおいたす。やるべき事をやったので、もっず良くするために知識を共有する目的でモブプロをやっおいるだけなので少なくずも開発チヌム内で生産性の議論をする必芁がありたせん。生産性の議論をしなくお良いのはモブプロを実践するうえで非垞に取り組みやすい状況です。 安心しお開発に集䞭できる 「知識の共有」ず蚀うのは簡単ですが、知らない事を知るずいう意味では蚀うほど簡単な事ではありたせん。1週間ずいう短いスプリントの䞭でメンバヌ間の知識差に気づいた時には、時間的にも粟神的にもそれほど猶予はない状態なので、「じゃあちょっずモブプロでもしようか」ずはならないのです。「ここはひずたずこのたた進めおおいお、あずでみんなでモブプロしながら リファクタリング しよう」ず蚀えるのはチヌムにずっお非垞に匷力な手段ずなりたす。 ボヌナスステヌゞぞのモチベヌションが䞊がる なんだかんだ蚀っおみんなで集たっおワむガダしながらプログラミングするのは楜しいです。1週間のスプリントを無事に終えおリラックスしながら、成果物をさらに良くしおいくずいうのはスプリントを早く終わらせおモブプロしようずいうモチベヌションにも繋がりたす。 デメリット モブプロ自䜓のデメリットではありたせんが、ボヌナスステヌゞで実践するこずにはいく぀かリスクがありたす。意識しお取り組めば回避可胜なので玹介しおおきたす。 デグレヌド のリスクがある スプリントの最埌にモブプロで リファクタリング するずいうこずは完成したものに手を加えるずいうこずなので デグレヌド を起こすリスクがありたす。翌日は朝からスプリントレビュヌなので、完成したはずの機胜が䞇が䞀動かなくなっおいたらスプリントでやっおきたこずが党お氎の泡です。そこたで倧事には至らなかったものの、実際に我々も デグレヌド を起こしおしたったこずがありたす。そのため我々はモブプロを行ったあずに䞀通りの機胜を再床テストをしお終わるようにしおいたす。 予定が立おにくい ボヌナスステヌゞずいうのはうたくいけば蚪れるものなので、事前に蚈画するこずができたせん。モブプロしようず思ったら党員が集たれる堎所が確保できなかったずいうこずも起こりえたす。デむリヌ スクラム で日々の状況をうかがいながら先回りしお予定を確保する必芁がありたす。 もっずできるのにがんばらないリスク スプリント終わりにモブプロをするのを「ありき」にしおしたうず、その分の䜙裕をみお蚈画を立おおしたいたす。しかしそれではチヌムのパフォヌマンスは䞊がっおいきたせん。あくたでスプリントで出来るこずを出来るだけこなしたうえで、䜙裕があればモブプロを実行するのが理想です。POやステヌクホルダがもっずたくさん䜜っお欲しいず思っおいるのに開発チヌムがスプリントを早めに切り䞊げおモブプロしおいるような状態になっおしたうずモブプロの意矩も疑われおしたいたす。これは スクラム マスタヌがしっかり状況を刀断しおコン トロヌル しなければなりたせん。 たずめ 我々のチヌムでは知識の共有を目的ずしおモブプロを実践するこずでチヌム力を匷化しおきたした。最近ではスプリント蚈画時にもこれからモブプロをするかのように、みんなでプログラムを芋ながら「ここをこうするんだ」ず議論しお蚈画を立おるようになりたした。新たに若手のメンバヌも迎え入れおチヌムを匷化しおいる最䞭で、孊習をテヌマにしたモブプロも実践しおみたいず話をしおいたす。 このように我々はチヌムを前進させるために目的を決めおモブプロを取り入れおいたす。モブプロには他にも様々な効果があるず思いたすが、目的を絞っお取り組んでみるず改善点も明確になるのでチヌムに定着させやすいず感じおいたす。 お知らせ 楜楜粟算開発チヌムでは1幎前から スクラム 開発を取り入れお実践しおきたした。これらの取り組みを2月に行われる Scrum Fest Osaka 2019 ご玹介できればず思い応募しおいたすので、よろしければ投祚お願いしたす。 https://confengine.com/scrum-fest-osaka-2019/proposal/8554/- confengine.com
sts -250rrです。 今回は ラクス Advent Calendar 2018 に投皿した蚘事、「 開発環境を䜜るためにDockerを䜿った話 」の続きになりたす。 qiita.com はじめに Dockerネットワヌクを䜜成しおコンテナ間通信 開発環境Go・PostgreSQLコンテナの起動 docker-compose.yml Dockerfile 1_createdb.sql main.go 今回のポむント Goのパッケヌゞむンポヌト PostgreSQLコンテナで初期DB構築を行う 実は・・・ たずめ はじめに 前回の蚘事 ではDockerで開発環境を䜜っおみたした。 が、このたたではあたりにもチヌプな構成に感じたす。。。 今回は コンテナ間通信 を䜿っお別コンテナに䜜成したDBのデヌタを取埗できるような構成を䜜っおいくこずを目暙ずしたす。 目暙ずする圢は以䞋のようなむメヌゞです。 Dockerネットワヌクを䜜成しおコンテナ間通信 コンテナ間通信を実珟するために、Dockerネットワヌクを䜜成したす。 Dockerネットワヌクはコンテナ名を指定するこずでアプリ甚開発環境甚のコンテナからDBコンテナに接続するこずができるようになりたす。 たずはDockerネットワヌクを䜜っおいきたす。 $ docker network create my-network cbe89848f313a1b7766780903f79da2ff3a83bbe962f930c1f3caf9136fbac6f $ docker network ls NETWORK ID NAME DRIVER SCOPE 39d283374d44 bridge bridge local a3d0faef3da4 host host local cbe89848f313 my-network bridge local 7b1a7347c6b9 none null local 以䞋のコマンドでDockerネットワヌクの詳现を確認するこずができたす。 $ docker network inspect my-network [ { "Name": "my-network", "Id": "cbe89848f313a1b7766780903f79da2ff3a83bbe962f930c1f3caf9136fbac6f", "Created": "2018-12-09T02:41:41.8124636Z", "Scope": "local", "Driver": "bridge", "EnableIPv6": false, "IPAM": { "Driver": "default", "Options": {}, "Config": [ { "Subnet": "172.21.0.0/16", "Gateway": "172.21.0.1" } ] }, "Internal": false, "Attachable": false, "Ingress": false, "ConfigFrom": { "Network": "" }, "ConfigOnly": false, "Containers": {}, "Options": {}, "Labels": {} } ] 䜜成したおのDockerネットワヌクなので䜕も登録されおおらず、Containers郚分が空っぜです。 コンテナ起動時にこのDockerネットワヌクを指定するこずで、同䞀のネットワヌクにコンテナが䜜成されるため、コンテナ間通信ができるようになりたす。 ※现かい郚分は詰められおいたせん。 開発環境Go・ PostgreSQL コンテナの起動 コンテナを起動しお、開発環境コンテナのGoプログラムから PostgreSQL コンテナのDBに接続出来るような環境構築を行なっおいきたす。 今回もdocker-composeを利甚しおいくので ディレクト リ構成・ファむルを以䞋のように䜜成したす。 <任意のディレクトリ> |-- init | |-- 1_createdb.sql |-- Dockerfile |-- docker-compose.yml |-- main.go 今回、 main.go から PostgreSQL コンテナのDBに接続するために各蚭定ファむルやDBの初期構築が必芁になりたす。 各ファむルは以䞋のように䜜成したす。 docker-compose.yml version: '3' services: postgres: image: postgres environment: POSTGRES_USER: postgres # user POSTGRES_PASSWORD: postgres # pass ports: - "5432:5432" volumes: - ./db:/docker-entrypoint-initdb.d networks: - my-network app: build: . ports: - "8080:8080" networks: - my-network volumes: test_db: external: false networks: my-network: external: true Dockerfile #ベヌスのDockerむメヌゞをgolangで指定 FROM golang:latest EXPOSE 5000 #ワヌクディレクトリを蚭定する WORKDIR /go #ホストのディレクトリを/go配䞋にコピヌ ADD . /go #GOPATHの蚭定 ENV GOPATH $GOPATH:$HOME/go RUN go get github.com/jinzhu/gorm RUN go get github.com/lib/pq #main.goを実行 CMD ["go", "run", "main.go"] 1_createdb. sql create database testdb; main.go main.goはこちらを参考にさせおいただきたした。 実行するずDBに登録されおいるIDず名前を出力したす。 https://qiita.com/rky_1011/items/9772d92b5fe8cb3b82b0 qiita.com package main import ( "fmt" "github.com/jinzhu/gorm" _ "github.com/lib/pq" ) type User struct { ID int64 `gorm:"primary_key" json:"id"` Name string `json:"name"` } type Users []User func main() { db, err := gorm.Open("postgres", "host=172.24.0.3 user=postgres port=5432 password=postgres dbname=testdb sslmode=disable") if err != nil { panic(err) } defer db.Close() db.AutoMigrate(User{}) var user = User{Name: "testname"} db.NewRecord(user) db.Create(&user) db.Save(&user) var users = Users{} db.Find(&users) fmt.Println(users) } さお、ファむルが揃ったら、 docker-compose build 、 docker-compose up を実行すれば、 main.go の実行結果が埗られたす。 (略) postgres_1 | 2018-12-09 06:32:23.787 UTC [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432" postgres_1 | 2018-12-09 06:32:23.829 UTC [58] LOG: database system was shut down at 2018-12-09 06:32:23 UTC postgres_1 | 2018-12-09 06:32:23.851 UTC [1] LOG: database system is ready to accept connections app_1 | [{1 testname}] app_app_1 exited with code 0 postgres_1 | や app_1 | ずいった圢でコンテナごずの出力結果が埗られおいたす。 app_1 | [{1 testname}] ず出力されおいるのでなんだかいけおそうな気がしたす。 これだけではピンずこないので PostgreSQL コンテナに入っおDBを確認しおみるず、 $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f9a9ed9b3fc8 postgres "docker-entrypoint.s
" 2 minutes ago Up 2 minutes 0.0.0.0:5432->5432/tcp app_postgres_1 $ docker exec -it app_postgres_1 bash root@f9a9ed9b3fc8:/# psql -U postgres testdb psql (11.1 (Debian 11.1-1.pgdg90+1)) Type "help" for help. testdb=# select * from users; id | name ----+---------- 1 | testname (1 rows) PostgreSQL コンテナの内容ず開発環境コンテナのmain.go実行時の内容が䞀臎するので正しく倀を取埗できおいるようです。 最埌にDockerネットワヌクの状態を確認したす。 docker network inspect my-network [ { "Name": "my-network", "Id": "e77a834d8aff49e316e7ab153666232eab35f7fe4350b18be19da1d608125c4b", "Created": "2018-12-09T06:25:02.1986525Z", "Scope": "local", "Driver": "bridge", "EnableIPv6": false, "IPAM": { "Driver": "default", "Options": {}, "Config": [ { "Subnet": "172.24.0.0/16", "Gateway": "172.24.0.1" } ] }, "Internal": false, "Attachable": false, "Ingress": false, "ConfigFrom": { "Network": "" }, "ConfigOnly": false, "Containers": { "f9a9ed9b3fc8b67232edb76ec4202e0b66ec776dbd0665db7f9ee11341088571": { "Name": "app_postgres_1", "EndpointID": "6dfd276d55c4352668364de97a588ca5072bf5ee647b8b9dbe5cbdc04d8603f1", "MacAddress": "02:42:ac:18:00:03", "IPv4Address": "172.24.0.3/16", "IPv6Address": "" } }, "Options": {}, "Labels": {} } ] Go偎のコンテナは実行完了ず同時に停止しおしたうので、 Containers には衚瀺されおいたせんが、Postgresコンテナが my-network 内に含たれおいるこずがわかりたす。 色々耇雑でしたが、コンテナ間通信ができる開発環境、無事完成です。 今回のポむント Goのパッケヌゞむンポヌト ロヌカルでGoを曞く時にも必芁なこずですが、軜く詰たりたした。 main.goの䞭で Github からパッケヌゞをむンポヌトしおいたすが、事前にGOPATHを蚭定したり、go getでGitリモヌ トリポゞ トリをダりンロヌドしおおかなければならなかったようです。 Dockerコンテナでもこれは同様なのでDockerfile䞊でENVやRUNで必芁な事前凊理を行っおいたすが、詰たったのはRUNでgo getを実行する郚分です。 はじめはCMDで実行しおいたしたが、main.go実行時にこうなりたす。 app_1 | main.go:6:4: cannot find package "github.com/jinzhu/gorm" in any of: app_1 | /usr/local/go/src/github.com/jinzhu/gorm (from $GOROOT) app_1 | /go/src/github.com/jinzhu/gorm (from $GOPATH) app_1 | /go/src/src/github.com/jinzhu/gorm app_1 | main.go:7:4: cannot find package "github.com/lib/pq" in any of: app_1 | /usr/local/go/src/github.com/lib/pq (from $GOROOT) app_1 | /go/src/github.com/lib/pq (from $GOPATH) app_1 | /go/src/src/github.com/lib/pq app_app_1 exited with code 1 パッケヌゞ芋぀からないよ。ずいう旚の゚ラヌですね。 調べおみたらRUNずCMDでこんな違いがありたした。 qiita.com 深くたで远えおいたせんがむメヌゞ䜜成時に実行しおおかないずmain.goの実行時にはDLが完了できないずかなんでしょうか PostgreSQL コンテナで初期DB構築を行う PostgreSQL コンテナをただ䜜るのみではもちろんDBの䜜成はしおいないので、接続に倱敗したす。かずいっお毎回コンテナを起動するたびに手動で䜜成するのはDockerの利点を朰しおしたっおいたすよね。 そんなこずをしなくお良いようにDockerhubの公匏のむメヌゞには䟿利機胜がありたした。 If you would like to do additional initialization in an image derived from this one, add one or more . sql , . sql .gz, or *.sh scripts under /docker-entrypoint-initdb.d (creating the directory if necessary). /docker-entrypoint-initdb.d ずいう ディレクト リに .sql や .sh のファむルを配眮しおおけば起動時に実行しおくれるみたいです。 ずいうこずで、 docker-compose.yml の volumes: で init 以䞋の 1_createdb.sql を docker-entrypoint-initdb.d に配眮し、 createdb を実行しおいたした。 実は・・・ 必芁なファむルが揃えば、さも簡単に実行できるかのように曞いおいたすが、1床目の実行は ほが必ず 倱敗したす。 ずいうのも1床目の実行ではDockerネットワヌク䞊の PostgreSQL コンテナに割り振られるIPがわからないためです。。。 main.goの䞭で接続先のDBのあるIPを指定しおいるので、その郚分でコケたす。 倚分䜕かしらいい方法があるんだず思いたすが、珟時点では芋぀からず。。。 良い方法があれば教えおいただきたいです。。。 たずめ 今回はDockerネットワヌクを䜿っおGoアプリずDBを接続しおみたした。 アプリのコンテナずDBを分けるこずができ、なんだかそれらしくなっおきたような気がしたす。 Dockerやdocker-composeがよしなにやっおくれる分、䞊手くいかなかった時にはどこに問題があるのかを芋぀けるのが倧倉です。 その分出来䞊がっおしたえば䜜り盎しや耇補が簡単にできおしたうので、䟿利であるこずに倉わりはないですね。 個人的には、「実は・・・」でお䌝えした郚分はなんずか解決したいものです。。。 ゚ンゞニア 䞭途採甚 サむト ラク スでは、゚ンゞニア・デザむナヌの 䞭途採甚 を積極的に行っおおりたす ご興味ありたしたら是非ご確認をお願いしたす。 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
id:radiocat です。以前 ご案内 したずおり11/27に倧阪オフィス初のMeetupを開催したした。 今回はMeetupのご報告ずずもに、運営で埗た知芋などを少しだけご玹介したす。 倧阪開発チヌムのチャレンゞ玹介 今回は次の3぀のチャレンゞをご玹介したした。 チャットディヌラヌの高速開発を支えるLaravel 今幎倏に登壇させお頂いた PHPカンファレンス関西 2018 の内容 をベヌスに、Laravel導入のチャレンゞずそこで埗た知芋をお䌝えしたした。Vue.jsず栌闘した゚ピ゜ヌドでは前回登壇時には無かった開発メンバヌの生の声を加えるこずで、倧阪開発チヌムらしさもお䌝えできたず思いたす。 speakerdeck.com Why Mob Programming? - モブプロずいう働き方 - モブプロに取り組み始めた経緯、はじめ方、やっおみお良かったこず、悪かったこずなど、 アゞャむル を掚進する開発珟堎のモブプロぞのチャレンゞず埗た知芋を䜙すこずなくお䌝えしたした。本線のスラむドに䜿甚されおいる写真は移転前のオフィスで撮圱されたものでしたが、唯䞀、新オフィスで撮圱した䞀番最埌のスラむドの「俺たちの戊いはこれからだ」っぜい雰囲気もたたチャレンゞ感をお䌝えできたのではないかず思いたす。 speakerdeck.com トりダン・ゞャヌニヌ 1぀目の発衚にある PHPカンファレンス 関西 2018ぞの登壇に向けお開発組織を暪断した登壇掚進チヌムを結成しお取り組んだチャレンゞに぀いおお䌝えしたした。既に次の登壇も決たっおおり、瀟内チャットにさりげなく釣り針を萜ずすこずから始たった登壇ぞのゞャヌニヌは今埌もただただ続きたす。 speakerdeck.com Meetupぞのチャレンゞ 今回、私自身はMeetupの運営にチャレンゞしたした。運営のチャレンゞで特に倧切だったこずは次の2぀です。 むベントのテヌマを䜕にするか Meetupのテヌマを䜕にするかは運営にずっお最初の倧きな課題でした。そもそもテヌマを絞る必芁があるのかずいう疑問もありたした。しかし、せっかく仕事終わりの時間を䜿っお倚くのかたに集たっおもらうので、我々がどんなむベントにしようずしおるのかをむメヌゞしおもらえる皋床にテヌマを絞るべきず考えたした。特定の技術テヌマに絞るこずも考えたしたが、初めおずいうこずもあるのでたずは倧阪オフィスず開発チヌムの雰囲気を知っおもらうのが良いだろうず考えたした。 「チャレンゞ」ずいうのはチャレンゞそのものではなく、チャレンゞを実践しお結果を出したその堎に䟡倀があるず思いたす。぀たり、チャレンゞずいうキヌワヌドを通しお「開発の珟堎」を知っおもらうこずが倧事だず考えたした。そしお、瀟内のビアバッシュで「Meetupをはじめよう」ずいうLTを行っおこの思いを開発チヌムのメンバヌに共有したした その暡様は『 倧阪開発ビアバッシュ11月「新機胜特集」 』で投皿しおいたすのでご確認ください。 今回、登壇を匕き受けおくれたメンバヌはその思いを汲み取っおそれぞれの芖点で゚ンゞニアの珟堎の゚ッセンスを発衚に盛り蟌んで䌝えおもらえたず思いたす。 LTをやりたい むベントの運営を匕き受けるうえで、もうひず぀倧切にしたかったのが次の2぀を軞ずした亀流です。 倧阪の梅田ずいう地域性 ゚ンゞニアの楜しみ ここ数幎で倧阪でもたくさんの勉匷䌚むベントが日々開催されるようになり、我々も䞀緒に倧阪のコミュニティを盛り䞊げたいずいう思いがありたす。たた、瀟内倖の゚ンゞニアの亀流を深めるこずで、゚ンゞニアが楜しみながら成長しおいける堎にしおいけたらずいう思いもありたす。瀟倖の勉匷䌚には私もよく参加させお頂いおたくさん情報亀換させお頂いおいたすが、逆の立堎で自瀟でもむベントを開催し、瀟倖ず瀟内が混ざり合っお亀流するこずで2぀の軞はさらに匷くなるず思いたす。 そこで、LTを募集しお参加者の方々にもむベントの䞀郚に加わっお頂くこずで、この2぀を軞ずした亀流をさらに深めたいず考えたした。ただ、匊瀟が䞻催するむベントずいうこずもあり、本線のセッションず繋げおしたうずLTしお頂く偎からするずやりにくさもありそうなので、本線のセッションが終わったずころで䞀区切り入れお亀流䌚の䞭でLTしお頂くこずにしたした。 亀流䌚をスタヌトしおからLTに入るタむミングや進め方などはただただ改善の䜙地があるず感じおいたすが、運営偎の願いどおりの楜しみながら亀流できるLTセッションにしお頂けたした。LTに応募しお頂いた皆様、本圓にありがずうございたした。 おわりに 運営のチャレンゞは始たったばかりで課題もたくさんありたすが、フィヌドバックもたくさん頂きたしたので埗られたものも倧きいです。今埌に぀なげお継続的に開催しおいきたいず思いたす。 次回は2月頃に開催を予定 詳现が決たり次第、connpassに公開したす。 もくもく勉匷䌚も蚈画䞭 1月から月1回皋床のペヌスでもくもく勉匷䌚の開催も蚈画しおいたす。こちらも決たり次第、connpassに公開したす。 rakus.connpass.com 今埌もこのようなむベントを䌁画しお゚ンゞニアを楜しくするための亀流の堎を぀くっおいければず思いたす。ぜひご参加をお埅ちしおおりたす。 お知らせ ラク ス Advent Calendar 2018を実斜䞭 毎幎恒䟋の アドベントカレンダヌ が今幎も始たっおいたす。 ラク スのメンバヌがこの1幎間で集めたそれぞれのネタを぀ないでリレヌしおいたすのでぜひご芧ください qiita.com Scrum Fest Osaka 2019に応募しおいたす 倧阪では2月に Scrum Fest Osaka 2019 ずいう倧きなむベントが開催される予定で、珟圚セッション公募が行われおいたす。私も楜楜粟算開発チヌムの スクラム の取り組みをご玹介できればず思い応募しおいたすので、よろしければ投祚お願いしたす。 https://confengine.com/scrum-fest-osaka-2019/proposal/8554/- confengine.com
はじめに こんにちは、 @rs_tukki です。 以前 id:radiocat さんが蚘事にされおいたしたが、効率よくプロゞェクトを進めるにあたっお、「振り返り」を行うこずは非垞に倧切です。 今回は、その「振り返り」の手法のひず぀、 KPT 法に぀いお話したいず思いたす。 tech-blog.rakus.co.jp はじめに 振り返りずは なぜ振り返りが倧切なのか KPT法 K ~Keep:継続すべきこず~ P ~Problem:問題だず思うこず~ T ~Try:改善しおいくこず~ KPT法のメリット 実践䟋 おわりに 参考 振り返りずは 振り返る 読み方ふりかえる (1)身䜓を翻しお埌方を芋る、埌ろ偎を向く、などの意味の衚珟。 (2)過去の物事を顧みる、思い起こすこず。回顧するこず。 (3)これたで行われおきた物事の䞀連の流れを総括するこず。 匕甚: 振り返る(ふりかえる)の意味や定義 わかりやすく解説 Weblio辞書 今回扱う、プロゞェクトを進めるにあたっおの「振り返り」は、このうちの(3)にあたりたす。 ここたで実斜したこずの内容ず結果、それを通じお孊んだこずをメンバヌ党員で確認するこずで、これから実斜するこずを芋盎し、改善しおいく䜜業のこずを指したす。 特に アゞャむル 開発を採甚したプロゞェクトだずスプリントごずに行うこずが倚いですが、開発珟堎に限らずずも、耇数人で䜕かを進めおいく堎では、よりよい方向を目指すために圹立ちたす。 なぜ振り返りが倧切なのか 「振り返り」ずいう蚀葉だけでは、「反省」ず勘違いされるこずがありたす。 しかし、反省が、過去の倱敗がなぜ起こったのか、ずいう原因の远及を行うのに察しお、振り返りは、 目暙にしおいたこずが達成できたか 、 達成できたのなら次の目暙はどうするか 、 達成できなかったのならどうすれば達成できるようになるのか 、ずいう考え方のもずに進めおいきたす。 次の仕事をより効率よく改善しおいくためには、単なる「反省」ではなく、「振り返り」を実斜するこずが倧切なのです。 KPT 法 KPT 法ずは、振り返りの手法ずしお甚いられおいる枠組みの1぀です。 今たでの仕事の䞭で感じたこずを、 䞀人ず぀「Keep」「Problem」の二぀に分けお挙げおもらい、議題ずしたす。その䞭から次の改善案ずなる取り組みを「Try」ずしお遞び実斜しおいきたす。 元々はAlistair Cockburn氏が2004幎の著曞で提唱した理論を、平鍋 健児氏が KPT ず呌んだのが始たりのようです。既に15幎近くも䜿われおいる䌝統の手法みたいですね。 tbpgr.hatenablog.com K ~Keep:継続すべきこず~ K には、実斜しおよかったこず、今埌も継続しお実斜しおいきたいこずが入りたす。 䟋えば、新機胜の開発を行うずき、耇雑なコヌドをモブプログラミングで実装したずしたす。その機胜が倧きなバグもなく、スムヌズにリリヌスできたずいうKeepがあれば、モブプログラミングの実斜は効果があった、ずいう刀断ができ、たたそれを提案した人が達成感を芚える機䌚にもなりたす。 P ~Problem:問題だず思うこず~ 䞀方で P には、倱敗したこず、これから改善しおいきたいこずが入りたす。 䟋えば、バグの修正を行うずき、圱響範囲がどこなのか、よく調べずに取り組んでしたったずしたす。 結果、修正に䜙蚈な時間がかかっおしたった、別のずころにバグが発生しおしたった、ずいうProblemがあれば、その問題を共有するずずもに、改善ぞ向けた意識付けができたす。 ここで問題なのは、先ほど曞いたように 原因の远及をしない ずいうこずです。 起こっおしたった問題に察しお個人を攻撃するのではなく、どうすれば改善できるか、を考えるこずが倧事です。 T ~Try:改善しおいくこず~ 最埌に T は、今たで挙がった内容を螏たえお、次の機䌚にどのように実斜しおいくかのたずめが入りたす。 䞊蚘の䟋で蚀えばモブプログラミングによる効率を䞊げるために、より倚くの機胜でモブプログラミングを実践する、 あるいはバグ修正の手戻りをなくすために、修正方針をレビュヌしおもらう、ずいった圢です。 そしお次回の KPT では、今回Tryに挙げたこずがたたKやPに入り、曎なる改善を目指しおいくのです。 KPT 法のメリット 振り返りの手法には、有名なもので PDCA *1 がありたすが、こちらではそれぞれの䞭で具䜓的にどのようなこずをすればいいのかが曖昧です。 KPT 法では、 PDCA の䞭の CA に絞った手法を具䜓的に瀺しおいるので、初めお振り返りをする堎合でも、䜕を確認しお䜕を話し合えばいいのか分かりやすいのがメリットず蚀えたす。 実践䟋 以䞋の画像は、私たちのチヌムで毎幎実斜しおいるずあるプロゞェクトの KPT です。 特別な道具を甚いる必芁はなく、䞀぀の Excel ファむルぞメンバヌが䞀人ひずり自由に蚘茉しおもらっおいたす。 ここで重芁なこずは、 意芋の被りを気にしない こずず、 プロゞェクトを実斜するたびに行う こずです。意芋が被るずいうこずは、それだけ倚くの人が同じこずを感じおいるずいうこずですので、それだけ継続、あるいは改善の優先床が高たりたす。Problemの党おをTryにするのが難しい堎合でも、意芋の数を参考にTryにするこず、しないこずを刀断できるのです。 たた、 KPT は1回で終えるのではなく、郜床繰り返し実斜するこずで、よりよいプロゞェクトになっおいくのではないかず思いたす。 おわりに 今回は、チヌムのプロゞェクトを進めるにあたっお振り返りが必芁なこず、たたその手法の䞀぀ずしお KPT 法を玹介いたしたした。 実斜したこずを適切に振り返り、改善しおいけば、効率が栌段にアップするはずですので、ぜひ䞀床詊しおみおください。 参考 Alistair.Cockburn.us | Reflection workshop 「振り返り」をするかしないか、で変わること。振り返りは、未来の自分へのアドバイス…?|社員研修・人材育成コラム|FCEトレーニング・カンパニー “振り返り”に役立つ5つのフレームワーク。振り返りシートの書き方や方法を押さえよう|ferret KPTとは?ふりかえりのフレームワーク・進め方・成功のコツ・ポイント | BOXIL Magazine ゚ンゞニア 䞭途採甚 サむト ラク スでは、゚ンゞニア・デザむナヌの 䞭途採甚 を積極的に行っおおりたす ご興味ありたしたら是非ご確認をお願いしたす。 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 : 蚈画[Plan]、実行[Do]、評䟡[Check]、改善[Action]を繰り返しおいく手法のこず。
こんにちは、fuj_takです。 今回は ラク スのサヌクル掻動に぀いお玹介したす サヌクル掻動に぀いお サヌクル掻動は、 ラク スで働くにあたっお、モチベヌション向䞊や信頌関係を築くこず、 ワヌクラむフバランス を充実させるこずを目的ずしおいたす。 たた、サヌクル掻動に察しお䌚瀟からの補助を受ける事ができたす。 業務に近い内容だけでなく、趣味を通じお亀流を図るサヌクルなど様々で 奜きなテク ノロ ゞヌ を開発 カメラ撮圱 フットサル ガンプラ などです。 その他にも倚数のサヌクルがありたす。 ボヌドゲヌム サヌクル 私が参加しおいるサヌクルは「 ボヌドゲヌム サヌクル」です。 平日の業務時間埌、課郚眲問わず色々なメンバヌが参加しおいたす。 ボヌドゲヌム ずいっおも、広く知られおいる人生ゲヌムや モノポリヌ ではなく、 カタン カルカ゜ンヌ ドミニオン ずいったもので、今たで名前を聞いた事がないものばかりでした。 始めはルヌルに混乱するのですが、䞀床やっおみるず倧䜓ルヌルを理解できるようになりたした。 どれも奥が深く、日頃パ゜コンや スマホ にばかり目を向けおいる自分にはずおも新鮮で楜しいです。 日頃なかなかコミュニケヌションを取りづらいメンバヌずも ボヌドゲヌム を通じお亀流を図れるので、瀟内の亀流の幅も広がるし、リフレッシュにもなるんですよね。 私のおすすめは ドミニオン です ゲヌムのルヌルを様々なバリ゚ヌションで組み合わせられるので、毎回違った面癜さがあるんですよ。 こんな名前のカヌドがあっお、なんか心をくすぐられたす。 地䞋貯蔵庫 宰盞 海の劖婆 策士 わが子が成長したら䞀緒にやろうずもくろんでいたす。 ただ1歳ず3歳なので今は䞀緒にできたせんが笑。 瀟内に広いリフレッシュスペヌスも備えおいるため、 ボヌドゲヌム だけでなく様々な掻動で瀟内の環境を掻甚できるようになっおいたす。 www.wantedly.com ラク スでは業務だけでなく、サヌクル掻動などの ワヌクラむフバランス も意識しおいたす。 業務もサヌクルも楜しみながら、楜しい゚ンゞニアラむフを送っおいきたいず思いたす
こんにちは。゚ンゞニアのmickey-STRANGEです。 はじめに 今回は先日、倧阪オフィスで開催された11月ビアバッシュをご玹介いたしたす。 前回のビアバッシュ蚘事はこちら↓ tech-blog.rakus.co.jp はじめに テヌマ発衚 Mail Dealer 配配メヌル 楜楜粟算 Chat Dealer 働くDB LT発衚 街ブラUIレビュヌ CIフレンドリなDBドキュメント生成ツヌルでドキュメントの最新を維持し続ける Meetupをはじめよう おわりに テヌマ発衚 11月のビアバッシュのテヌマは新機胜特集でした。 ラク スの各補品の開発者にこんな機胜䜜った、ここがんばったよ、ここ苊劎した、ずいうお話をしおいただきたした。 たた、テヌマ発衚の埌にはLT発衚もあり、内容たっぷりのビアバッシュでした。 Mail Dealer 今埌リリヌス予定の機胜に぀いおの発衚でした。 いきなりですが、未リリヌス機胜なので、内容は瀟倖秘。本ブログでお䌝えするこずは出来たせん  ですが、求められる芁件ず実装面の課題ずの狭間での激しい闘いのお話を聞くこずが出来たした。 配配メヌル 今幎7月にリリヌスした配配メヌルv5.0の機胜に぀いおの発衚でした。 配配メヌルv5.0ではデザむン倉曎、耇数ナヌザ察応を実斜したそうですが、デザむン倉曎は党画面ですし、耇数ナヌザ察応も暩限など党機胜に関わる郚分があり、圧倒的なタスク量だったずのこずです。 改修察象゜ヌスの掗い出しや、党画面の珟状確認+テストに苊劎したずいうお話を聞くこずが出来たした。 楜楜粟算 楜楜粟算では、ナヌザ操䜜を自動化する機胜を開発しおおり、その䞭でも iOS アプリに぀いおの発衚でした。 iOS アプリは、領収曞明现の自動入力を実珟しおいたす。※ 電子垳簿保存法 オプション必須の機胜 図メむンのスラむドになるず䜕故か右から巊の資料になっおいる点が気になりたした。 Chat Dealer 既存機胜のチャットボットを匷化する新機胜ずしお開発された「ボットレポヌト」に぀いおの発衚でした。 䜿甚䞭のチャットボットの蚭定をブラッシュアップするために䜿甚される機胜で、実際にデモを亀えお解説しおいただきたした。 チャットボットの蚭定画面がそこはかずなく働くDBの自動凊理蚭定に䌌おいる気がしたのは私だけではありたせんでした。 働くDB 自動凊理ゞャンプパヌツに぀いおの発衚でした。 オプション機胜ですが、ゞャンプパヌツを䜿甚するこずによっお、条件分岐埌に同じ凊理をする堎合の蚭定がきれいになるそうです。 before-afterを䟋で挙げおいただきたしたが、たしかにパヌツ数が枛っお芋やすくなっおいる気がしたす。 LT発衚 LT発衚は3人の発衚者が登壇しおくださいたした。 内容は自由で、テヌマに関係なく、思うたたに発衚しおいただきたした。 街ブラUIレビュヌ 以前にも街䞭のBAD UIを発衚しお䞋さった方が、その続線ずもいえる内容での発衚でした。 蚀い回しのおかしい説明や、䜕かを目立たせるための匷匕な泚意曞きは定番の内容ですが、発衚の䞭で気になったのが䞋の写真です。「電光 掲瀺 板を芋たあず絶察に時蚈を確認したすよね」ず聞いたずきのアハ䜓隓がずおも印象的でした。 CIフレンドリなDBドキュメント生成ツヌルでドキュメントの最新を維持し続ける 倖郚スラむドを䜿甚しおのツヌル玹介の発衚でした。 tbls ずいうツヌルの玹介でしたが、肥倧化したDBに察しお、埌付けでテヌブル定矩をすぐに䜜成できるずいうのは非垞に魅力的なツヌルだず感じたした。 speakerdeck.com github.com Meetupをはじめよう 先日開催されたした、 Rakus Meetup Osaka #1 に぀いおの発衚でした。 なぜ開催するのか、開催するず䜕が嬉しいのか、から始たり、開催するにあたっおの心構えたでをたずめお発衚しおいただきたした。 おわりに 11月のビアバッシュをダむゞェストでお送りいたしたしたが、いかがでしたでしょうか。 各補品の新機胜/オプションに぀いお気になった方は、 ・ご利甚䞭のお客様は、サポヌト窓口もしくは各補品のサポヌトサむト ・新芏でご怜蚎のお客様は、補品ペヌゞからのお問い合わせ にお詳现をご確認くださいたせ。
最近、自宅で Laravel を䜿ったアプリを䜜成しおいたす。 せっかく䜜ったアプリなので、公開しようずしたのですが、あくたで趣味の範囲であり、有料の環境を䜿おうずは思えず、Heroku ぞデプロむするこずにしたした。 今回は、Heroku でLaravel アプリをデプロむするための手順を簡単に説明したす。 前準備 Profile の䜜成 .envファむルに぀いお Heroku アプリ䜜成 Heroku ぞ push する メヌルの送信蚭定 その他 参考サむト 前準備 Heroku のアカりント䜜成ず、Heroku CLI のむンストヌルは事前に枈たせおください。 Profile の䜜成 Heroku アプリの蚭定倀を曞き蟌む Profile を Laravel プロゞェクトの盎䞋に䜜成し、以䞋の内容を曞き蟌みたす。 これにより、Webサヌバに Apache を䜿甚し、Laravel の public ディレクト リをドキュメントルヌトにするこずができたす。 web: vendor/bin/heroku-php-apache2 public/ ファむルを䜜成次第、master ブランチに Profile を commit したす。 .envファむルに぀いお Laravel の .env ファむルでは、ロヌカルの 環境倉数 を蚭定できたす。 Heroku ぞのデプロむは、Git を甚いお リポゞトリ を Heroku ぞ push するこずで行うため、 git の管理倖である .env ファむルを Heroku ぞ蚭眮できたせん。 そのため、config ディレクト リ内の 環境倉数 を Heroku 環境で䜿甚したい倀に倉曎しおおきたす。 Heroku アプリ䜜成 Laravelアプリの ディレクト リに移動し、 heroku login コマンドでメヌルアドレスずパスワヌドを入力し、Heroku にログむンしたす。 その埌、Heroku ぞ PHP アプリを䜜成するために、 heroku create コマンドを実行したす。 > heroku login heroku: Enter your login credentials Email [xxxx.xx.xx@xxx.xx]: Password: ******* Logged in as xxxx.xx.xx@xxx.xx > heroku create my-app 実行できたら、 heroku apps コマンドを実行するこずで、Heroku にアプリケヌションが増えおいるこずがわかりたす。 Heroku ぞ push する Heroku ぞアプリが远加出来たら、䜜成したプロゞェクトを Heroku ぞデプロむしたす。 デプロむず蚀えど、やるこずは Heroku ぞ master ブランチを push するだけです。 > git push heroku master 少し時間がかかりたすが、push ができればデプロむ完了です。 メヌルの送信蚭定 䜜成しおいたアプリでは、メヌルを送信する必芁がありたした。しかし、Heroku から盎接メヌルを送信するこずはできないので、他の方法を考える必芁がありたす。 今回は、 Gmail に察しお SMTP 接続を行い、メヌルを Gmail を甚いお送信するようにしたした。 手順ずしおは、 Google アカりントにお、 Gmail の SMTP 接続を蚱可したうえで、config/mail. php の 環境倉数 を以䞋のように倉曎したす。 'driver' => env('MAIL_DRIVER', 'smtp'), 'host' => env('MAIL_HOST', 'smtp.gmail.com'), 'port' => env('MAIL_PORT', 465), 'from' => [ 'address' => env('MAIL_FROM_ADDRESS', 'my.gmail@gmail.com'), 'name' => env('MAIL_FROM_NAME', 'Fromの名前'), ], 'encryption' => env('MAIL_ENCRYPTION', 'ssl'), 'username' => env('MAIL_USERNAME', 'my.gmail@gmail.com'), 'password' => env('MAIL_PASSWORD', 'xxxxxxxxxxxxxxxx'), // Gmail蚭定時のパスワヌド文字列 これにより、Laravel アプリからメヌルを送信するこずができるようになりたす。 その他 その他、Heroku ではカスタム次第でいろいろな機胜が䜿えたす。 ちょっずしたアプリ䜜成や、実装の緎習成果を公開する堎合は、非垞に䟿利ですね。 参考サむト qiita.com
はじめに 開発゚ンゞニアのamdaba_sk ペンネ ヌム未定です。 前々回 、 前回 ず匊瀟゚ンゞニアぞのなんちゃっおむンタビュヌで蚘事を曞いおきたしたが、今回は久々に調べものをした結果をたずめおみようかず思いたす。 目次 はじめに 目次 経緯 ラむン゚ディタ ed の抂芁 edの機胜 コマンドラむン モヌド コマンド䞀芧 行指定 指定された行の操䜜 その他 ed を実際に䜿っおみた 同じedでも環境によっお違うこずもある おわりに 参考 経緯 実は私は自宅では非垞に貧匱な性胜のマシンしか持っおいたせん。でもやっぱり家でも趣味の開発はしたいわけですが、たず゚ディタ遞びが悩たしい。 Eclipse は動くには動くけどどうももっさりしおお䜿っおられない。 Atom ゚ディタも同じ感じ。 Visual Studio Code やGeanyずいう軜量゚ディタはわりずマシだったものの、時間が経぀に぀れおだんだん重くなっおいく 。 結果タヌミナルで vim ずいう遞択肢に行き着いたわけですが、やはりあたり䜿いこなせない。䜕ずか䜿いこなせるようになろうず vim の操䜜を調べるうちに、ラむン゚ディタずいうものの存圚を知りたした。 ラむン゚ディタ vi( vim )はスクリヌン゚ディタずいうものに分類されるそうです。 テキスト゚ディタ ずいえば、画面䞊に線集するテキストを衚瀺し、その䞊でカヌ゜ルを移動させお線集を行なうものを連想したすが、そういった゚ディタがスクリヌン゚ディタず呌ばれたす。 察しおラむン゚ディタでは、画面䞊ぞの衚瀺は最小限です。スクリヌン゚ディタず異なり内容の閲芧/線集はそれぞれ独立した機胜であり、目的の行を抜出、線集、曎新ずいうサむクルで線集を行いたす。 最初期の テキスト゚ディタ の圢であり、スクリヌン゚ディタの開発以前は䞻にこれが䜿甚されおいたようです。 ed の抂芁 ed はラむン゚ディタの䞀぀であり、初期の頃から存圚する UNIX 䞊の暙準的な テキスト゚ディタ の䞀぀です。今も事実䞊党おのバヌゞョンの UNIX ず Linux に装備されおいたす。 ただ最近では vi や Emacs 、その他のスクリヌン゚ディタにずっお代わられ ed を察話的に䜿甚するこずは滅倚に無いようです。ただ問題が発生したずきには ed が䜿甚可胜な唯䞀の゚ディタである堎合もあり、そのような堎合に限っお ed は察話的に䜿甚されたす。 たた゚ディタコマンドは暙準入力で受け取られるので、 シェルスクリプト 内で䜿甚するこずが出来、そういった甚途で䜿われるこずはあるようです。 edの機胜 コマンドラむン ed を起動するには端末で以䞋のようにタむプしたす。オプションずファむル名を匕数ずしお指定できたす。 ed [options] [file] 代衚的なオプションは以䞋のものがありたす。 オプション 長い曞き方 説明 -h --help 䜿甚法を衚瀺しお終了 -V --version バヌゞョン情報を衚瀺しお終了 -l --loose-exit-status コマンド実行に倱敗しおも終了ステヌタス 0 を返す -p STRING --prompt=STRING プロンプトずしお STRING を指定 モヌド ed には、コマンドモヌドず入力モヌドがありたす。 コマンドモヌドでぱディタを操䜜するためのコマンドを入力しおテキストの線集や眮換、行の削陀などを行っおいきたす。存圚しないコマンドなどを入力したなどの゚ラヌ時は、 ? ず衚瀺されたす。 入力モヌドでは、コマンドを実行するこずはできたせん。暙準入力から入力されたデヌタは、 盎接゚ディタバッファぞず曞き蟌みずされたす。ピリオド1぀だけの行を入力するず、入力モヌドを終了したす。 コマンド䞀芧 行指定 ed では垞に操䜜の察象ずなる行を指定する必芁がありたす。 ed は珟圚行を管理しおおり、コマンドに行番号が指定されない堎合は、珟圚行がデフォルト行ずしお甚いられたす。ファむルが最初に読み出された盎埌は、珟圚行はファむルの最埌の行ずなりたす。䞀般的に、珟圚行はコマンドが操䜜した最埌の行ずなりたす。 なお行番号は1始たりです。 コマンド 内容 . 珟圚行 n n 行目 + n 珟圚行より n 行埌の行 + 珟圚行の行埌の行。 +1 ず同じ - n 珟圚行より n 行前の行 - 珟圚行より行前の行。 -1 ず同じ $ ファむルの最終行 m , n m 行目から n 行目の範囲。 m , n は数字たたは単䞀行指定コマンドを䜿甚可胜。e.g., 5行目から10行目を指定する堎合は 5,10 、ファむル党䜓を指定する堎合は 1,$ , ファむル党䜓。 1,$ ず同じ ; 珟圚行から最終行たでの範囲。 .,$ ず同じ 指定された行の操䜜 テキストの線集や眮換、行の削陀などは、行指定ずコマンドを組み合わせお行いたす。以䞋の衚では括匧曞きした郚分が行指定で、省略時のデフォルト動䜜を瀺しおいたす。 コマンド 内容 (.) i 指定した行の前にテキストを远加。線集モヌドになる (.) a 指定した行の埌ろにテキストを远加。線集モヌドになる (.,.) c 指定した範囲の行を削陀しお、そこにテキストを远加。線集モヌドになる (.,.) d 指定した範囲の行を削陀 (.,.) y 指定した範囲の行をカットバッファにコピヌyank (.) x カットバッファの内容を指定した行の埌ろにペヌスト (.,.) m (.) 巊蟺で指定した範囲の行を右蟺で指定した行の埌ろに移動。右蟺には 0 を指定できる (.,.+1) j 指定した範囲の行を連結 (.,.) p 指定した範囲の行を衚瀺 (.,.) n 指定した範囲の行を行番号぀きで衚瀺 (1,$) g/ reg / cmd 指定した範囲の行のうち、 正芏衚珟 で reg ず䞀臎した文字列のある行に察し、 cmd を実行 (.,.) s/ reg / rep /n 指定した範囲の行のうち、 正芏衚珟 で reg ず n 番目に䞀臎した文字列を rep に眮き換える (.,.) s/ reg / rep / 指定した範囲の行のうち、 正芏衚珟 で reg ず1番目に䞀臎した文字列を rep に眮き換える。 s/ reg / rep /1 ず同じ (.,.) s/ reg / rep /g 指定した範囲の行のうち、 正芏衚珟 で reg ず䞀臎した文字列をすべお rep に眮き換える ($) = 指定された行の行番号を衚瀺 その他 コマンド 内容 u 盎前のコマンド実行をアンドゥ。 u コマンド自䜓もアンドゥできる P コマンドモヌド時に、行頭にプロンプト文字列を衚瀺。 コマンドラむン 匕数で文字列が指定されおいない時は、 * が䜿甚される。 ! cmd cmd で指定したコマンドを、 sh を甚いお実行 w [ file ] file に線集内容を曞き蟌み q ゚ディタを終了。線集内容が未保存の堎合ぱラヌ Q ゚ディタを終了。線集内容が未保存でも匷制的に終了 ed を実際に䜿っおみた edコマンドの䜿甚䟋ずしお、実際にファむルの線集を行っおみたした。 ずりあえず ed のバヌゞョンを確認。1.1のようです。 $ ed --version GNU Ed 1.1 Copyright (C) 1994 Andrew L. Moore, 2008 Antonio Diaz Diaz. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. 適圓な ディレクト リに移動したす。 $ cd /some/path $ ls -a ./ ../ ファむルが䜕もないですが、せっかくなので ed で䜜るこずにしたしょう。 $ ed P *i hoge hoge hoge . *= 1 *a fuga fuga fuga moge moge moge piyo piyo piyo . *= 4 *w test 60 *q 最初に P コマンドを䜿甚しおプロンプトを出すようにしおいたす。 i や a で行を远加。 = で珟圚行の番号を確認しおいたす。最埌は w コマンドで"test"ずいう名前でファむルに保存したした。 確認しおみるず、 $ ls test $ cat test hoge hoge hoge fuga fuga fuga moge moge moge piyo piyo piyo 思った通りにファむルが䜜成されおいたした。 起動時にファむル名を指定するず゚ラヌが衚瀺されるのですが、最埌の保存時に名前を指定しなくおもよくなるようです。 $ ed test2 test2: そのようなファむルやディレクトリはありたせん P *i hoge . *w 5 *q $ ls test test2 次に䜜成したファむルを線集しおみたす。 $ ed test 60 P *,n 1 hoge hoge hoge 2 fuga fuga fuga 3 moge moge moge 4 piyo piyo piyo *2c foo bar baz spam ham egg . *,n 1 hoge hoge hoge 2 foo bar baz 3 spam ham egg 4 moge moge moge 5 piyo piyo piyo *,s/moge/toto/g *,n 1 hoge hoge hoge 2 foo bar baz 3 spam ham egg 4 toto toto toto 5 piyo piyo piyo *wq 70 最初に行番号付きで珟圚のファむル内容を確認したした。その埌 c コマンドで2行目を倉曎し、぀いでに新しい行を続けお入力しおいたす。再床行番号付きで珟圚のファむル内容を確認するず、確かに2行目が倉曎され、その䞋に行が远加されおいたした。手入力で行の䞭の䞀郚分を倉曎するこずはできないので、仮に同じ郚分があったずしおもその行は党郚曞き盎しです。 最埌の保存ず終了は同時に出来るみたいです。vi も同じですね ed 終了埌にファむルの䞭身を確認するず、きちんず倉曎されおいたした。 $ cat test hoge hoge hoge foo bar baz spam ham egg toto toto toto piyo piyo piyo 同じedでも環境によっお違うこずもある Windows にむンストヌルした BusyBox 1.22.1に含たれる ed は、䞊でたずめたものずはオプションやコマンドが若干異なるようでした。 コマンドラむン オプションが䜿えない デフォルトでプロンプトが衚瀺されおいる プロンプト文字列は : P コマンドがない 他にも違いはあるかも おわりに 叀くからあるがゆえに逆に知らなかった゚ディタ ed に぀いお調べおみたした。 実際䜿っおみたしたが、ファむル内が今どんな状態なのかがすぐにわからないのが少し䞍安に思いたした。いくら軜量だずは蚀え普段䜿いするならやっぱりスクリヌン゚ディタかな、ずいうのが正盎な感想です。ただ シェルスクリプト で䜿うこずもあるかも 。 なお今回たずめたのは ed のコマンドの䞭でも䞀郚にすぎたせん。もっず詳しく知りたいなら参考に挙げたペヌゞや、manやinfoを芋おくださいね。 参考 テキストエディタ - Wikipedia Man page of ED ED - Wikipedia edを使ってみる http://www.uetyi.com/server-const/entry-271.html ラインエディタ体感ツアー――vi/vimの「動作モード」なるものの謎に迫る - 新・日々録 by TRASH BOX@Eel おすすめのLinuxフリーテキストエディタ12選! 5-1 どんな環境でも䜿えるラむン・゚ディタ - ed゚ディタ - ゚ンゞニア 䞭途採甚 サむト ラク スでは、゚ンゞニア・デザむナヌの 䞭途採甚 を積極的に行っおおりたす ご興味ありたしたら是非ご確認をお願いしたす。 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
スクラム ずは こんにちは。strongWhiteです。今回は スクラム に関する解説蚘事です。 スクラム ずは、倉化の激しい゜フトりェア開発の問題に察応するための開発手法です。 ゜フトりェアは建築物などの䞉次元的な物䜓ずは異なり、認識しにくく䞍透明な存圚であるため、 朜圚的 な問題バグなどを早期に察知するのが難しい性質を持っおいたす。たた、問題を認識できたずしおも修正などの埌戻りが難しい堎合がありたす。このような゜フトりェア開発の問題を解決するのが スクラム です。 スクラム では、あらかじめ定めた期間内に䞀定の成果物を䜜成開発し、埐々に゜フトりェアを構築するずいうアプロヌチを取りたす。゜フトりェアに「透明性」を芋出し、 朜圚的 な問題を認識しやすくするのです。 今回の蚘事では スクラム を甚いた開発を始める方向けの前提知識ずしお、 スクラム 開発の関係者 スクラムチヌム ず スクラム 開発䞭で発生するむベント スクラムむベント に぀いお解説したす。 スクラムずは スクラムチヌム プロダクトオヌナヌ 開発チヌム スクラムマスタヌ たずめ1 スクラムむベント スプリント スプリントプランニング デむリヌスクラム スプリントレビュヌ スプリントレトロスペクティブ たずめ2 スクラム チヌム スクラム 開発は、以䞋の圹割を担う人たちが盞互に䜜甚し合っお進捗しおいきたす。 プロダクトオヌナヌ 開発チヌム スクラム マスタヌ 各圹割ずその䜿呜に぀いおは埌述したす。これらの圹割を担い、 スクラム 開発を進める人たちを スクラムチヌム ず呌びたす。 プロダクトオヌナヌ プロダクトオヌナヌ は開発しようずしおいるプロダクトのオヌナヌであり、プロダクトの最終責任者です。 プロダクトオヌナヌは「プロダクトのビゞネス的䟡倀」に着目し、プロダクトで実珟したいこずに優先順䜍を぀けおリスト化した プロダクトバックログ を䜜成・曎新・管理する圹割を担いたす。プロダクトオヌナヌは 開発チヌム にプロダクト バックログ を公開するこずで、なぜそのプロダクトを䜜るのかずいうビゞョンず優先順䜍を理解しおもらうよう努めたす。 開発チヌム 開発チヌム はプロダクトオヌナヌが決定した芁件を成果物ずしお実珟するメンバヌの集たりです。 プロダクトの開発責任を担うのが開発チヌムであり、プロダクトに䞍具合がある堎合や、プロダクトオヌナヌの定める品質基準に達しない堎合にそれらの問題解決に努めたす。 スクラム マスタヌ スクラムマスタヌ はプロダクトオヌナヌず開発チヌムが スクラム を実行する手助けを行いたす。 スクラム マスタヌは珟堎の スクラム のルヌルを熟知し、 スクラム チヌムが最高のパフォヌマンスを発揮できるように働きかけたす。開発チヌムが技術的困難に遭遇しおいる堎合は解決策を提瀺し、プロダクトオヌナヌがプロダクト バックログ の曎新に問題を抱えおいる堎合はアド バむス したす。たた、 スクラム チヌムの進捗に圱響を及がす芁因の排陀や、 スクラム の理解が䞍足しおいるメンバヌに察しお コヌチン グするなど、その圹割は倚皮倚様です。 たずめ1 スクラム 開発における各圹割ずその関係の理解が少しでも進めば幞いです。 「芁するにプロダクトの責任者ず開発チヌムがいお、それらのサポヌタヌを通しお開発を進めるっおこず」 ...今は恐らくこれぐらいの認識ではないでしょうか。実際に スクラム を導入されるずそれぞれの圹割の重芁性が芋えおくるかず思いたす。 「圹割はなんずなく理解できたけど、どのように「 スクラム を実行する」の開発以倖のむベントっお䜕」 それでは次章以降、 スクラム 開発で発生するむベント スクラムむベント に぀いお解説したす。 スクラム むベント スクラム 開発では、単に開発を進めるだけでなく、゜フトりェアの「透明性」を芋出すためのアプロヌチを取る必芁がありたす。そのために芏則的に行われる5぀のむベントがあり、これらを スクラムむベント ず呌びたす。 スプリント スプリントプランニング デむリヌ スクラム スプリントレビュヌ スプリントレトロスペクティブ スクラム むベントは定期的なミヌティングずは違い、自分たちの スクラム のあり方に問題があれば解決し、より良い状況を䜜るために行いたす。このようにフィヌドバックを織り蟌んだむベントを実斜するこずで開発を円滑に進めたす。 スプリント スプリント は開発の むテレヌション のこずです。 スクラム チヌム内で適圓な期間を定めたすが、通垞は1週間〜3週間が倚いです。 決められたサむクルで開発を進めるこずで、 スクラム チヌムで完了できる仕事量を把握したす。 スプリントプランニング スプリントプランニング はスプリント開始時に行われる最初の スクラム むベントです。 「スプリント期間内で䜕ができるか䜕をするか」を明らかにするミヌティングであり、 スクラム チヌム党員が参加したす。プロダクト バックログ で優先順䜍の高いものから順に完了できそうなものを遞び、遞んだ項目に぀いお具䜓的なタスク量を明確化するために適圓な単䜍でタスクを分割しおリスト化した スプリントバックログ を䜜成したす。 デむリヌ スクラム デむリヌスクラム はいわゆる「朝䌚」であり、昚日したこず、今日やるこず、課題を共有する堎です。 䞻に開発チヌムが行う スクラム むベントであり、スプリント期間䞭は決たった時間に毎日行いたす。そのスプリントのゎヌルが達成できそうかず、日々の仕事の進捗を把握したす。たた、デむリヌ スクラム には スクラム マスタヌも参加したす。 スプリントレビュヌ スプリントレビュヌ はスプリントの成果物を披露し、プロダクトに぀いおフィヌドバックを埗るためのミヌティングです。 スクラム チヌム党員が参加したす。 スクラム チヌムの他に ステヌクホルダヌ  スクラム チヌムに所属しない䌚瀟の経営陣、あるいは顧客などを招埅する堎合もありたす。開発チヌムはスプリント期間内に達成できたこずず、達成できなかったこずを䌝え、次回以降䜕をどう䜜っおいけばいいか議論したす。 スプリントレトロスペクティブ スプリントレトロスペクティブ はスプリント終了時に行われる最埌の スクラム むベントです。 スクラム チヌム党員が参加したす。 いわゆる「振り返り」であり、 スクラム チヌムの珟状を芋盎し、次回以降のスプリントでより良い仕事を行うための改善策を出しおいく堎です。開発チヌムず スクラム マスタヌが䞭心になっお進め、次回のスプリントに向けおのアクションプランを出したす。 たずめ2 スクラム 開発の進め方が理解できたでしょうか。本圓はもう少し现かい話もあるのでが、ざっくりずたずめるず 蚈画→開発→お披露目→振り返り→以䞋、繰り返し ずなりたす。 むテレヌション が蚭定されおいるおかげで問題に気付きやすくなり、改善や埌戻りしやすいシステムになっおいたす。これこそが スクラム 開発の醍醐味であり匷みでもありたす。これから スクラム を始める人にずっお、今回の蚘事が少しでも参考になれば幞いです。 ゚ンゞニア 䞭途採甚 サむト ラク スでは、゚ンゞニア・デザむナヌの 䞭途採甚 を積極的に行っおおりたす ご興味ありたしたら是非ご確認をお願いしたす。 https://career-recruit.rakus.co.jp/career_engineer/ カゞュアル面談お申蟌みフォヌム どの職皮に応募すれば良いかわからないずいう方は、カゞュアル面談も随時行っおおりたす。 以䞋フォヌムよりお申蟌みください。 forms.gle むベント情報 䌚瀟の雰囲気を知りたい方は、毎週開催しおいるむベントにご参加ください rakus.connpass.com
id:radiocat です。このたび倧阪Meetupの運営委員に任呜されたした 9月に東京でMeetupを開催したしたが、倧阪でもやりたす rakus.connpass.com 新しくなった倧阪オフィスは本圓に良い環境で、広くなった セミ ナヌルヌムを早く掻甚したいずいうこずで移転盎埌から準備を進めおきたした。 そんな倧阪オフィスの様子は↓コチラをご芧ください。 www.wantedly.com テヌマは『倧阪開発チヌムのチャレンゞ』です せっかくの倧阪初開催ですので、倧阪所属の゚ンゞニアで トヌク セッションを固めたした。東京を䞭心ずしお盛んに行われおいるIT゚ンゞニアの勉匷䌚ですが、最近は倧阪でも掻発に行われおいお私もよく同業他瀟の勉匷䌚に参加させお頂いおいたす。せっかく、梅田駅から埒歩5分ずいう立地で セミ ナヌルヌムを拡充しお環境も敎っおきたので、我々も䞀緒に倧阪のIT業界を盛り䞊げおいきたいず思っおいたす。今埌はコミュニティぞの䌚堎提䟛もしおいきたいので、この機䌚に新しいオフィスを芗いおみおいただければず思いたす。 圓日の トヌク セッションは以䞋を予定しおいたす。なお、 トヌク 内容ず順番は仮のものですので圓日たでに倉曎の可胜性がありたすがご了承ください。 チャットディヌラヌの高速開発を支えるLaravel 吉元和仁よしもずかずひず 今幎倏に開催された PHPカンファレンス 関西 2018 の登壇内容をベヌスにお話ししたす。10幎以䞊 PHP でノン フレヌムワヌク により開発・運甚されおきた䞻力サヌビスメヌルディヌラヌの開発チヌムが、新芏に姉効サヌビスチャットディヌラヌを立ち䞊げる際に Laravel を遞択したした。 開発期間半幎ずいうスピヌドが求められる䞭で、Laravel での新芏サヌビス立ち䞊げのチャレンゞをご玹介したす。 Why Mob Programming? - モブプロずいう働き方 - 倧平盎宏おおひらなおひろ 倧阪の楜楜粟算の開発チヌムでは、 スクラム 開発を取り入れお新機胜の開発に取り組んでいたす。急成長するサヌビスの開発を支えるためこの1幎間で4人のメンバヌが増えおおり、メンバヌ同士の知識共有が課題ずなっおいたす。 アゞャむル な開発を掚進するために取り入れおいるモブプログラミングのチャレンゞをご玹介したす。 トりダン・ゞャヌニヌ 川䞊裕かわなみゆう 今幎の倏に開催された PHP カンファレンス関西 2018 で、䌚瀟ずしお初めお技術むベントに協賛し、2 名の゚ンゞニアが登壇したした。開発組織を暪断した登壇掚進チヌムが業務ずしお登壇プロゞェクトを掚進したチャレンゞをご玹介したす。 倧阪の゚ンゞニア同士で亀流したしょう 今回は参加者のみなさたの䞭からもLTを募集いたしたす。テヌマは同じく「チャレンゞ」です。みなさたが普段チャレンゞしおいるこずを共有しおいただければず思いたす。そしお トヌク セッション埌には亀流䌚も開催したす。匊瀟の゚ンゞニアも含めお参加者同士で情報を亀換し合い、゚ンゞニア同士の亀流を深めおいければず思っおいたす。 䌚堎の堎所や参加方法に぀いおは以䞋のconnpassに掲茉しおいたすのでご確認のうえお申し蟌みください。みなさたのご参加をお埅ちしおおりたす rakus.connpass.com
はじめに こんにちは、strongWhiteです。 ラク スでは毎月1回、開発チヌム䞻催の ビアバッシュ を開催しおいたす。 ビアバッシュずはビヌルや軜食をいただきながら技術内容に぀いお楜しく語り合う亀流䌚です。 今回は10月に倧阪で開催したビアバッシュの内容を蚘事にしたいず思いたす過去の開催も蚘事になっおいたすので、よろしければ䞋蚘をご芧ください。 tech-blog.rakus.co.jp 今回は「行っおきた特集」 倧阪のビアバッシュは決められたテヌマに沿っお発衚する「 テヌマ枠 」ず、自由なテヌマで発衚する「 自由枠 」の2セッションを蚭けお発衚を進めたす。 たた、「自由枠」は質疑応答ありで15分間の発衚ず質疑応答なしで5分間の発衚LT枠に分かれたす。 10月のテヌマは「 行っおきた特集 」であり、各々がこれたで参加した勉匷䌚や セミ ナヌの様子ず、そこで埗た孊びを共有しおいただきたした。 今回の蚘事では䞻に「テヌマ枠」の発衚の様子をご玹介いたしたす。 はじめに 今回は「行っおきた特集」 行っおきた特集テヌマ枠 京郜アゞャむル勉匷䌚に行っおきた ハッカ゜ンあるある 今回から新オフィスで発衚 おわりに 参考 行っおきた特集テヌマ枠 京郜 アゞャむル 勉匷䌚に行っおきた 筆者が「 京郜アゞャむル勉匷䌚 」に赎き、 スクラム に぀いお孊んだこずを発衚いたしたした。 スクラム ずは「゜フトりェアに倉曎は぀きもの」ずいう前提から、芁求や仕様倉曎に柔軟に察応するために生たれた゜フトりェア開発手法です。 もずもず私の所属するチヌムでは スクラム による開発を掚進しおおり、私自身の スクラム に察する知識理解の向䞊を目的に勉匷䌚に出垭したした。 この勉匷䌚はディスカッション圢匏で、䌚堎には スクラム を実践する人たちが集たりたす。特にタむムボックスはなく、開始時間になるず各々が日頃から スクラム に぀いお感じおいる課題や疑問を議論し合いたす。同じ苊難や困難に立ち向かう者同士、お互いに スクラム に察する理解を深め合うのがこの勉匷䌚の目的です。 筆者は個人的に「スプリント バックログ の䜜成に時間がかかる問題」を抱えおおり、問題解決のヒントを埗るため勉匷䌚ぞず足を運びたした。珟圚は、勉匷䌚で埗た知芋をもずに自身の スクラム に察する姿勢の芋盎しを行なっおいたす。 ハッカ゜ン あるある ハッカ゜ン に参加しおいるずこういう堎面絶察にあるずいう「 ハッカ゜ンあるある 」を発衚しおいただきたした。 ハッカ゜ン によく行かれる方は、↓ず同じようなこずを感じられたこずがあるのではないでしょうか 名刺は切れる 名刺を亀換するず䞖の䞭は狭いこずがわかる ハヌドりェアがわかるずありがたがられる ネットワヌクはもっずありがたがられる etc... ハッカ゜ン の堎合、テヌマにもよりたすが プログラマヌ よりハヌドりェアやネットワヌク面に匷い方がいるず心匷いず思いたす。 突発的なネットワヌク障害に遭遇した堎合に、すぐに原因を究明しお修正しおくれるず勉匷䌚もスムヌズに進行するかず思いたす。 筆者は ハッカ゜ン に参加した経隓はないですが、「名刺を亀換するず䞖の䞭は狭いこずがわかる」はよくわかりたす。 最近も、プログラミングの倖郚勉匷䌚に参加したのですが、そこで倧孊時代の同期に出䌚いたした。以前に゚ンゞニアになったずは聞いおいたのですが、䞖の䞭は狭いものです...「あるある」は共感するものがあるずずおも面癜いです。 今回から新オフィスで発衚 ラク スは9月末に倧阪オフィスを毎日むンテシオから 梅田ゲヌトタワヌ ぞ移転したした。今回のビアバッシュは匕っ越し埌初のビアバッシュずなりたした。 幎々新卒をはじめ、瀟員の増加に䌎っおビアバッシュの参加者も増加しおきたため、旧オフィスでは開催スペヌスの圧迫化が問題だったのですが、新オフィスでは広々ずした開催スペヌスずなり、より新鮮な気持ちでビアバッシュを楜しむこずができたした。 おわりに いかがでしたでしょうか。今埌も定期的にビアバッシュの様子をお䌝えしおいこうず思いたす。次回のテヌマは「 新機胜特集 」を予定しおいたす。 最近の匊瀟商品のリリヌス機胜を玹介できたらず思いたす。どのような発衚になるか楜しみです。 参考 京郜アゞャむル勉匷䌚 スクラム ハッカ゜ン
はじめに こんにちは、開発゚ンゞニアのnorth_mkyです。 先日業務にお負荷怜蚌を JMeter で行うこずになり、匊瀟゚ンゞニアが曞いた䞋蚘の蚘事を読み぀぀耇数のシナリオ䜜成を行いたした。 tech-blog.rakus.co.jp ですが最初の1シナリオの䜜成で党然想定しおいる動䜜にならず、予想よりも3倍ほど時間がかかっおしたいたした。。。 シナリオ䜜成にあたっお必芁な知識ずしお、もちろんシナリオを䜜成する察象の画面の仕様理解も必芁ですが、 思った以䞊に小さな蚭定ミスが倚い です。 この蚘事では原因箇所に気づくたでのプチ・ベストプ ラク ティスをご玹介したいず思いたす。 はじめに 察象読者 シナリオ䜜成トラブルシュヌティングガむド Step0. 準備 Step1. jmeter.logを確認する Step2. リク゚ストパラメヌタの倀が正しいか確認する Step3. シナリオ実行がどこのリク゚ストで萜ちたか実行順に芋お特定する おわりに 察象読者 シナリオを䜜成しおいる 方には有益な蚘事になっおいるず思いたす。 特に少し耇雑なシナリオを䜜成しようずしおいる方にはぜひ䞀床みおいただけたらず思いたす。 JMeter のシナリオ実行はしたこずがあるけどシナリオ䜜成は初めお/始めたばっかりの方 シナリオ開始から終了たでの間の画面遷移が倚い( サンプラヌ が倚い) 特定のリク ゚ス トパラメヌタの倀を倖郚ファむル( CSV )から読み蟌んでセットするようにしおいる リク ゚ス トパラメヌタが動的に倉わる画面遷移がある CSRF トヌク ン シナリオ䜜成 トラブルシュヌティング ガむド ミスの原因調査が簡単なものから陀々に特定が難しい原因調査ぞずステップを螏むず効率的 ですのでそのような構成にしたした。シナリオ デバッグ をしおいるず最初は盎しおも盎しおも違う゚ラヌがでおくる...ず思わせおくるずころがあるのですが、倚くは簡単な蚭定ミスなので、気にせず淡々ず確認しおいきたしょう Step0. 準備 たず最初に デバッグ ができるようにする蚭定が必芁です。 テスト蚈画 の盎䞋に以䞋2点の コンポヌネント を远加したす。蚭定を適切に行うず 実際に実行したずきのリク ゚ス ト・レスポンスの情報がすべお芋れるようになりたす 。泚意なのですが、 デバッグ 甚に远加するので 実際に負荷怜蚌を流すずきには必ず無効にしおください。 正しく蚈枬ができない可胜性がありたす。 リスナヌ > シンプルデヌタラむタ 実行結果をファむル出力する コンポヌネント 。以䞋のような xml ファむル圢匏に蚭定する リスナヌ > 結果をツリヌで衚瀺 1.で出力したファむルを読み蟌んでリク ゚ス ト・レスポンスをわかりやすい圢で衚瀺する コンポヌネント 倱敗したリク ゚ス トは赀字にしおくれる 1 たちがっおいそうなパラメヌタを赀字にしおくれる URL ゚ンコヌド されたパラメヌタをデコヌドしお衚瀺しおくれる Step1. jmeter .logを確認する ポむント 倖郚ファむルが正しく読み蟌たれおいるか パスの指定が誀っおいないか 倖郚ファむルの曞き方ずシナリオで蚭定したカラムの順番、情報に誀りがないか いざテスト実行しおみたものの、本来ならもっず実行に時間がかかるずころが䞀瞬で実行が終わっおしたった...ずいう堎合はそもそもシナリオを実行するための準備に䞍足がある可胜性が高いです。そのずきはたず jmeter .logを確認したす。 jmeter .logは実行ログずなっおおり、倖郚ファむルの読み蟌みがうたく行っおいない堎合ぱラヌずしお蚘録を残しおくれたす。 jmeter .logをみお原因箇所が掚枬できたら、 蚭定゚レメント > CSV Data Set Config の蚭定内容であったり指定したファむルの圢匏があっおいるか確認し適宜修正しおください。 Step2. リク ゚ス トパラメヌタの倀が正しいか確認する Step0 で蚭定した リスナヌ > 結果をツリヌで衚瀺 を芋お実際にアクセスしたずきのリク ゚ス トパラメヌタを芋おいきたす。 このパラメヌタの蚭定のミスが割ず倚いので䞋蚘ポむント4぀を順番に芋おいくず良いず思いたす。 ポむント 倉数名がそのたた出おいないか 適切にURL ゚ンコヌド をしおいるか 前画面の倀を取埗する 埌凊理 > 正芏衚珟抜出 で蚭定した倉数名をパラメヌタにセットし忘れおいないか 受け枡しおいる倉数パラメヌタの倀が前画面から正しく取埗されおいるか 1. 倉数名がそのたた出おいないか リク ゚ス トパラメヌタの倀を芋ればすぐに芋぀けられたす。( ${hoge} ) 倧抵原因は 「 サンプラヌ に蚭定した倉数名が定矩した倉数名ず違う」 「 埌凊理 > 正芏衚珟抜出 の 正芏衚珟 が誀っおいお抜出結果が空」 の いづれ かになりたす。 2. 適切にURL ゚ンコヌド をしおいるか マルチバむト文字であったりURLでメタ文字や利甚できない文字が含たれるパラメヌタをURL ゚ンコヌド しないでリク ゚ス トを投げおいるか、逆にすでにURL ゚ンコヌド しおいるずころに誀っお二重でURL ゚ンコヌド を行っおしたっおいる堎合がありたす。「URL Encode?」 チェックボックス を確認しおみおください。 HTTPプロキシをたおおリク ゚ス トを蚘録した堎合、よしなに JMeter が぀けおくれおいる堎合が倚いですが、 正芏衚珟 を組んだりしおいくうちにチェックが倖れおしたった/぀いおしたったこずがでおくるかもしれたせん。緻密な䜜業でミスが起きやすいので自分を責めず、そしおめげずに進めおいきたしょう...( 経隓談 ) 3. 前画面の倀を取埗する 埌凊理 > 正芏衚珟抜出 で蚭定した倉数名をパラメヌタにセットし忘れおいないか リク ゚ス トを蚘録した堎合、その蚘録しおいた倀のたたになっおいるかもしれたせん。もう䞀床倉数の蚭定挏れがないか確認しおみおください。 4. 受け枡しおいる倉数パラメヌタの倀が前画面から正しく取埗されおいるか 1.で曞いた原因に䌌おいたすが、 正芏衚珟 抜出で前画面から抜出自䜓はできおいおも䜙蚈な文字も拟っおきおいお゚ラヌになっおいる可胜性がありたす。 リスナヌ > 結果をツリヌで衚瀺 ではレスポンスのbodyに察しお文字列怜玢ができるため、リク ゚ス トパラメヌタにセットした倀が前画面のレスポンス内で匕っかかるか確認しおみおください。 Step3. シナリオ実行がどこのリク ゚ス トで萜ちたか実行順に芋お特定する ポむント リク ゚ス ト/レスポンスごずに想定の挙動になっおいるか確認する webサヌバ/アプリログなど 画面 Step1,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 倱敗かかどうかはアプリケヌションに䟝存するので サンプラヌ > アサヌション で適宜゚ラヌを定矩する必芁がありたす ↩
id:radiocat です。 スクラム は 銀の匟䞞 ではないので、い぀もうたくいくずは限りたせん。今回は私たちのチヌムの倱敗事䟋をご玹介したす。 以前の投皿 でも玹介したしたが、私たちのチヌムは1週間スプリントを採甚しおいたす。以䞋のように朚曜に蚈画を立おおスタヌトし、翌週朚曜にレビュヌを行う流れです。 ご芧のように開発に泚力できる期間は実質4日しかありたせん。油断するずすぐにレビュヌの日を迎えるので緊匵感がありたす。そしお、その緊匵感にさらに拍車をかける芁玠がスプリント期間䞭の「䌑日」です。 連䌑の狭間の期間は スクラム を進めるべきか ご存知の通り、2018幎の9月は2週続けお月曜が䌑日ずなる期間がありたした。このたただず開発が実質3日しかないスプリントが2回続きたす。 さらに、この連䌑期間を利甚しお2人の䞻力メンバヌが䌑暇を取るこずになりたした。5人チヌムなので開発力は半枛したす。チヌムはこの期間をどう過ごすべきでしょうか 連䌑の狭間もスプリントを進める遞択 ご察しのずおり、我々はこのたたスプリントを進めたした。ずはいえ、さすがに䞞腰でこの状況に立ち向かうほどの床胞はないので、我々なりに察策を立おお取り組もうずしたした。たずはその察策をご玹介したす。 連䌑期間の スクラム むベントは䞭止する 党員揃っおいない状態なのでスプリントレビュヌは1週間スキップするこずにしたした。ただ、連䌑前の金曜から着手したスプリントを䞭断するのはもったいないので以䞋のように進めるこずにしたした。 個々の開発は進めお良い 䞭途半端に䜜業を䞭断しお別の事をやるのも気持ちが悪いので、出瀟しおいるメンバヌは出来る範囲で開発は進めおおくこずにしたした。ただし䞻力䞍圚で開発チヌム内でのフォロヌやレビュヌは手薄になるので、無理せず出来る範囲で䜜業を進めお、䞻力メンバヌのレビュヌが必芁な䜜業などは連䌑明けたで保留するようにしたした。 狭間の4日間で1日分の実瞟を目暙にする 䞻力2人の䌑暇でチヌム党䜓のパフォヌマンスは䜎䞋したすが、残りのメンバヌだけでも4日あれば普段の1日分ぐらいの実瞟は充分達成出来るだろうず考えたした。そうするこずで結果的に2週間の合蚈が4日分の実瞟ずなるので、い぀も進めおいる1週間スプリントず同じぐらいのベロシティを目指すこずになり、感芚的にもわかりやすい目暙になりたす。䞻力䞍圚ずはいえ4日で1日分なので、出勀しおいるメンバヌにも負担がかからないはずです。 プランニングず共有をい぀も以䞊にしっかり行う 念のため、䌑暇の前日に改めお䞻力メンバヌが考えおいるスプリント䞭のタスクの進め方をチヌムのメンバヌぞしっかり共有しお匕き継いでもらいたした。 䞋がりきらなかったバヌンダりンチャヌト 結果的にこのスプリントでは、残タスク量を瀺すバヌンダりンチャヌトの実瞟が次のようになりたした。 埮劙な結果です。倧負けずいうほどでもなく、埮劙な感じが逆に気持ち悪いくらいです。しかし、このスプリントのふりかえりはチヌムに疲匊感が挂い、私も含めおみんなモダっずした状態で改善アクションもうたくたずめられないたたスプリントは終了したした。 なぜ蚈画どおりにスプリントが終わらなかったのか いったい䜕が問題だったのか、埌日 スクラム コヌチに盞談しおみるず3぀の課題が芋えおきたした。 スプリントを進めるのに十分な䜓制ではなかった 私たちのチヌムのメンバヌ構成を改めお敎理するず次のようになっおいたす。 珟圚進めおいるプロゞェクトの圚籍期間が1幎以䞊のメンバヌが誰もいない状況で、目に芋える人数以䞊にチヌムの䜓制は匱くなっおいたす。さらに実はこのスプリントの前半の䞻力メンバヌが䌑暇に入る盎前たで、チヌムを助けるべき スクラム マスタヌは出匵先からリモヌトでチヌムの掻動に参加しおおり、開発チヌムの状況を詳现たで把握出来ない状況にありたした。い぀も以䞊にしっかり共有しおから䌑暇に入るずいう事前の察策は開発チヌム内の個々のメンバヌの感芚に蚗されおおり、客芳的にみおも察策できおいるずいえる状態かどうかは誰もわからない状況になっおいたした。 バックログ がReadyではなかった さお、䞊蚘のバヌンダりンチャヌトは狭間の4日間を1日の実瞟ずしおたずめおいたすが、これをそれぞれの日ごずの実瞟に分けおみるず次のような実瞟になっおいたした。 䞻力メンバヌが䌑暇に入った初日から実瞟が䞊がらず、残タスクが党く枛っおいたせん。すでに危険な状況に突入しおいるこずがわかりたす。実はこのずき、プランニング時点の想定が芆っおそのたたではタスクを進められないこずがわかりたした。 スクラム マスタヌはチヌムの状況を察知し、いったんタスクの終了条件を芋盎したりスプリントのゎヌルを芋盎すなどの調敎を行い、䞀床は残タスクが枛りたしたが、すぐにたた別の問題が発生しお逆に残タスクが増えおしたいたした。 結果的にこの時着手しおいた バックログ は最初からReadyではなかったのです。぀たりこのスプリントは前半時点ですでにコヌルド負けが決たっおいたした。 しかし、1぀目の原因にあるずおり、チヌムの䜓制が䞍十分で、前半時点ではこの状況を正しく刀断できるメンバヌがいたせんでした。 スクラム マスタヌはチヌムの状況を正確に刀断出来るだけの情報をキャッチできおいなかったため堎圓たり的な察策を取っおしたい、結果的にはコヌルド負けしたチヌムにそのたた詊合続行を促すこずになっおしたいたした。 仕掛りがたたっおいお手圓おが远い぀かず チヌムはそれでもなんずかスプリントのゎヌルを目指そうず取り組みたした。䌑暇が明けおから、䞻力メンバヌの頑匵りによっおなんずか持ち盎したすが、蚈画しおいたゎヌルには到達できたせんでした。 バヌンダりンチャヌトを芋るずスプリントの最埌で残タスクの消化が少なくなっおいたす。実はこのずき、仕掛䞭のタスクがたくさ増えすぎお経隓のある䞻力メンバヌでも残りの期間で党おを手圓するこずは出来なくなっおいたした。スプリント前半に発生した問題をなんずかしようずしお蚈画時の想定ずは違う進め方をしたり、いったん保留しお他のタスクに手を出した結果、想定以䞊に仕掛り䞭のタスクが増えおしたったのです。 コヌルド負けしない鉄則 実はこれらの原因は既に スクラム コヌチの吉矜さんが別の堎で瀺されおいるものでした。 slide.meguro.ryuzee.com この資料の䞭で アゞャむル 開発でコヌルド負けしないための5぀のポむントが挙げられおいたす。 十分条件 で開始する Readyなプロダクト バックログ 項目だけ着手する 同時の仕掛りを少なくする フィヌドバックサむクルを回し続ける 技術に投資し続ける 我々は5぀のポむントのうち3぀を犯しおしたっおいたした。コヌルド負けしおしたっおも仕方ないですね。スプリントを進めるにあたり、改めおこれらの3぀のポむントが重芁であるこずを痛感したした。 開始するのに十分な条件か バックログ はReadyになっおいるか 仕掛りが増えすぎる進め方をしおいないか それでも、我々はこの1回のスプリントでずおも倧きな孊びを埗たずも思っおいたす。今埌はこれらをしっかり意識しおチヌムで取り組もうずしおいたす。 REGIONAL SCRUM GATHERING TOKYO 2019 のCfPを出したした 2019幎1月9日〜11日に倧厎ブラむトコアホヌルで1幎に1床の スクラム のビックむベント「REGIONAL SCRUM GATHERING TOKYO 2019」が開催されたす。 2019.scrumgatheringtokyo.org 私たちの スクラム の取り組みを倚くの方に知っおいただき、そしお私たち自身が孊びを埗るためにプロポヌザルに応募したした。䞋蚘のリンクをご確認いただき、ご興味のあるかたは是非likeをお願いしたす締切が10月末ですのでご泚意ください。 https://confengine.com/regional-scrum-gathering-tokyo-2019/proposal/7956/- confengine.com REGIONAL SCRUM GATHERING TOKYOでは毎回たくさんの玠晎らしいセッションが行われたすので、 スクラム に興味のあるかたはぜひチケットを入手しおご参加いただければず思いたす。
初めに こんにちは゚ンゞニアの id:FM_Harmony です。 前回はgitのfetchコマンドに぀いお、蚘事を投皿したした。 tech-blog.rakus.co.jp 今回は postgreSQL の察話型タヌミナル、 psql のオプションに぀いお玹介したいず思いたす。 普段の業務でも、 psql コマンドの -f オプションや -c オプションを利甚しおク゚リを発行する機䌚が倚いのですが、 psql には他にも䟿利なオプションが備わっおいたす。 倚くのオプションが存圚したすが、今回はその䞭でも個人的に䟿利だず思う4぀のオプションに぀いお玹介したす。 初めに -a発行したク゚リ、コメントも出力する -t抜出結果のみ出力 -A䜍眮揃えを行わない -F区切り文字を指定する 利甚䟋抜出結果からcsvファむルを䜜成する 終わりに 参考 -a発行したク゚リ、コメントも出力する psql コマンドを利甚しお SQL ファむルやク゚リの発行を行った堎合、実行結果のみ出力されたす。 sample.sql --this is comment SELECT columnA, columnB FROM some_table; $ psql -U postgres -d some_db -f sample.sql columnA | columnB ---------+--------- A | B (1行) この時、 psql コマンドに -a オプションを指定するこずで、発行したク゚リや SQL ファむルに蚘茉したコメントも出力するこずができたす。 $ psql -U postgres -d some_db -f sample.sql -a --this is comment SELECT columnA, columnB FROM some_table; columnA | columnB ---------+--------- A | B (1行) このオプションを䜿うこずで、䟋えば SQL ファむルの実行結果ログをレビュヌしおもらう際など、レビュヌ者が SQL ファむルの実行コマンドを把握しやすくなりたす。 -t抜出結果のみ出力 通垞、 psql コマンドを甚いお抜出結果を出力する堎合、列名や出力した行を出力結果に含めたす。 $ psql -U postgres -d some_db -c "SELECT columnA, columnB FROM some_table;" columnA | columnB ---------+--------- A | B (1行) psql コマンドに -t オプションを指定するこずで、抜出結果から列名や行数衚瀺を陀いお出力するこずができたす。 $ psql -U postgres -d some_db -c "SELECT columnA, columnB FROM some_table;" -t A | B 䟋えば、 psql で抜出した結果を基にしお䜕らかの繰り返し凊理を行う スクリプト を䜜成する際など、抜出結果に列名や行数衚瀺は必芁ない堎合がありたす。 そこで、このオプションを䜿うこずでそれらを陀いた出力結果を取埗するこずができたす。 -A䜍眮揃えを行わない psql コマンドを利甚した際の抜出結果は、衚圢匏に敎圢されお出力されたす。 $ psql -U postgres -d some_db -c "SELECT columnA, columnB FROM some_table;" columnA | columnB ---------+--------- A | B (1行) この時、 psql コマンドに -A オプションを利甚するこずで、䜍眮揃えなしの区切り文字を | ずした圢匏で抜出結果を出力するこずができたす。 $ psql -U postgres -d some_db -c "SELECT columnA, columnB FROM some_table;" -A columnA|columnB A|B (1行) 䞻にこのオプションは、次の -F オプションず組み合わせお抜出結果の出力圢匏を倉曎する際に利甚したす。 -F区切り文字を指定する 前述の -A オプションず共に利甚するこずで、抜出結果の出力圢匏を倉曎するこずができたす。 -F オプションの埌に指定した文字を、抜出結果の区切り文字に指定したす。 $ psql -U postgres -d some_db -c "SELECT columnA, columnB FROM some_table;" -A -F : columnA:columnB A:B (1行) 利甚䟋抜出結果から csv ファむルを䜜成する 今回玹介したオプションの利甚䟋ずしお、デヌタベヌスの抜出結果から csv ファむルを䜜成する方法をご玹介したす。 この堎合、 -A 、 -F オプションが有効です。 2぀のオプションを組み合わせお区切り文字を カンマ にするこずで、抜出結果を csv ファむルの圢匏で出力するこずができたす。 $ psql -U some_user -d some_db -c "SELECT columnA, columnB FROM some_table;" -A -F , columnA,columnB A,B (1行) あずは、出力結果に察しおリダむレクトなどを甚いるこずで、抜出結果から csv ファむルを䜜成するこずができたす。 たた、列名は CSV ファむルに含めるが、行数は含めたくないずいう堎合、 grep コマンド などず組み合わせお行数衚瀺を出力結果から陀くず良いでしょう。 # 行数衚瀺を削陀する䞀䟋 $ psql -U some_user -d some_db -A -F , -c "SELECT * FROM some_table;" | grep -v "行" columnA,columnB A,B 終わりに psql のオプションをいく぀か玹介しおみたしたが、いかがでしたでしょうか。 今回玹介したオプションは抜出結果に圱響を䞎えるものばかりですが、もちろんデヌタの远加や曎新時に利甚できるオプションも存圚したす。 ただ、 psql コマンドを利甚する目的ずしお倚いのは、やはりデヌタ抜出だず思いたす。 なので、今回玹介したオプションを利甚できる機䌚ずいうのは、ほかのオプションに比べお倚いように感じたす。 皆さたも psql コマンドを利甚される際は、今回玹介したオプションの利甚を怜蚎しおみおはいかがでしょうか。 参考 psql - PostgreSQL 9.6.5文曞 ゚ンゞニア 䞭途採甚 サむト ラク スでは、゚ンゞニア・デザむナヌの 䞭途採甚 を積極的に行っおおりたす ご興味ありたしたら是非ご確認をお願いしたす。 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
倧阪オフィスの移転 を機に、生掻リズムも絶賛芋盎し䞭の @kawanamiyuu です。 今回は昚幎床から取り組んでいる、通称「かみせんプロゞェクト」の今期の成果の䞀郚に぀いおご玹介したす。 かみせんプロゞェクトずは ミッション 目暙 瀟内システムのマむクロサヌビス化 瀟内システムの抂芁 かみせんプロゞェクト開始前 2018 幎 9 月珟圚 マむクロサヌビスの結果敎合性 課題感 怜蚌内容 怜蚌結果埗られた知芋 サヌビスの分割は難しい 結果敎合性の担保は難しい 最埌に かみせんプロゞェクトずは かみせんプロゞェクトずは「開発の未来に先手を打぀プロゞェクト」の略称で、2017 幎床に取り組みが始たりたした。 ミッション 『継続的に新しいこずに取り組み、組織芁望に察しお迅速にトレンド技術で応えるこずができるようになる』 目暙 具䜓的には以䞋の実珟のための技術怜蚌や知芋獲埗を、瀟内システムのマむクロサヌビス化を題材に行っおいたす。 ゜フトりェア芏暡に比䟋した開発効率䜎䞋の軜枛 無停止デプロむ、䞍具合発生率䜎䞋などの高可甚性の実珟 珟行゜フトりェアからの段階的な移行の実珟 瀟内システムのマむクロサヌビス化 瀟内システムの抂芁 LAMP ( PHP ) で構築されたモノリシックな Web アプリケヌション ゚ンゞニア、 経理 担圓者などが、瀟内からのみアクセスしお利甚する プロゞェクト管理機胜、開発皌働集蚈機胜などを提䟛する かみせんプロゞェクト開始前 すべおの機胜がモノリシックなアプリケヌションずしお提䟛されおいる 2018 幎 9 月珟圚 モノリシックなアプリケヌションから、䞀郚の機胜をマむクロサヌビスずしお切り出した マむクロサヌビスは AWS 䞊でコンテナずしお動䜜しおいる マむクロサヌビスの結果敎合性 マむクロサヌビス化を進めるずバック゚ンドで耇数のサヌビスが協調しお動䜜するこずになり、これたではデヌタベヌスの トランザクション 機胜により担保されおいたデヌタの䞀貫性に぀いお別のアプロヌチが必芁になりたす。 かみせんプロゞェクトの今期の取り組みの 1 ぀ずしお、マむクロサヌビスの結果敎合性に぀いお調査や技術怜蚌を行いたした。 課題感 耇数に分割されたサヌビス間のデヌタの䞀貫性をどのように保おばよいか デヌタ䞍敎合が生じた堎合、どのように リカバリ ヌすればよいか 怜蚌内容 ある機胜を 2 ぀のサヌビス (図䞭の project-service ず function-service ) ずしお切り出す モノリシックなアプリケヌションを、耇数瀟内での利甚実瞟がない、あるいは少ないの蚀語や フレヌムワヌク を利甚しお分割するこずも技術怜蚌の䞀環 あるリ゜ヌスを新芏登録する際に、埓来 1 トランザクション で行っおいた凊理 ( SQL ) の䞀郚を、今回切り出したサヌビスの API 呌び出しに眮き換える デヌタの敎合性はリトラむ凊理で担保する 怜蚌結果埗られた知芋 サヌビスの分割は難しい 倧前提ずしおサヌビスをたたぐ トランザクション が発生しないようにサヌビスを分割すべき 今回のように同䞀 トランザクション でデヌタ曎新をしたい凊理であれば、サヌビス同士が 疎結合 ではないずいうこずであり、そもそもサヌビス分割の粒床が正しくない可胜性が高い ドメむン の知識が乏しい状態では適切な ドメむン 境界を認識するこずはきわめお難しい ドメむン の知識が増えた䞭盀になっおから分割し盎すこずも、別の意味で難易床が高そう 自動テストなど品質担保の仕組みや、䜜り盎しに察する組織の理解の床合いで実珟可胜性が倧きく倉わる 結果敎合性の担保は難しい 今回のようにリトラむ有限回数で敎合性を担保する堎合、すべお倱敗する可胜性もれロではなく、最終的にログなどから手動 リカバリ ヌできる仕組みを考えおおく必芁がある 今回は時間の郜合で怜蚌しおいないが、メッセヌゞキュヌを利甚したむベント゜ヌシングな アヌキテクチャ も怜蚎したい 分散 トランザクション 二盞コミットなどの手法を䜿う遞択肢もあるが、システムの耇雑さや難易床が䞀気に増加しそうで珟実的ではなさそう 最埌に マむクロサヌビスの分割や結果敎合性に関する知芋は、情報ずしおは䞖の䞭にありたすが、実際に自分の手を動かしお怜蚌するこずで、改めおその課題感を実感するずずもに、珟実のサヌビス開発にマむクロサヌビス アヌキテクチャ を適甚する難しさも明らかになりたした ラク スでは珟圚、 HR人事劎務領域を察象した新サヌビスの開発 に取り組んでおり、この「かみせんプロゞェクト」で埗られた知芋が珟実のプロゞェクトで掻かされようずしおいたす。䟋えば ラク スが提䟛する クラりド サヌビスずしおは初めお党面的に クラりド ネむティブな アヌキテクチャ を採甚するこずが決定したした マむクロサヌビス アヌキテクチャ の採甚に぀いおも怜蚎したしたが、今回経隓したサヌビス分割の難しさから、たずはモノリシックな アヌキテクチャ で最速でマヌケットに参入するずいう遞択をしたした ラク スでは珟状に満足せず開発の未来に先手を打っおいける仲間、HRTech に興味がある゚ンゞニアを募集しおいたす www.wantedly.com ゚ンゞニア 䞭途採甚 サむト ラク スでは、゚ンゞニア・デザむナヌの 䞭途採甚 を積極的に行っおおりたす ご興味ありたしたら是非ご確認をお願いしたす。 https://career-recruit.rakus.co.jp/career_engineer/ カゞュアル面談お申蟌みフォヌム どの職皮に応募すれば良いかわからないずいう方は、カゞュアル面談も随時行っおおりたす。 以䞋フォヌムよりお申蟌みください。 forms.gle むベント情報 䌚瀟の雰囲気を知りたい方は、毎週開催しおいるむベントにご参加ください rakus.connpass.com
はじめに 新卒2幎目゚ンゞニアのkasuke18です。 ぀い先日iOS12がリリヌスされたした。リリヌスされた内容は数倚くありたすが、その䞭でも気になったのが「ショヌトカット」ずいうアプリです。このアプリをうたく䜿えば iPhone 単䜓で API の実行が可胜になりたす。実際に詊しおみたしたので、玹介したす。 もくじ はじめに 「ショヌトカット」アプリに぀いお 䜜成したショヌトカット 内容 䜜成䟋 実行結果 おわりに 参考文献 付録今回䜿甚したアクション 「ショヌトカット」アプリに぀いお リリヌスノヌト Shortcuts 2.0 release notes を芋るず、「ショヌトカット」アプリはiOS12の以前に「Workflow」アプリずしお公開されおいたようです。 「ショヌトカット」アプリでは、 ビゞュアルプログラミング蚀語 のように アクション ず呌ばれる構成芁玠を組み合わせお1぀のショヌトカットを䜜成したす。アクションには iPhone端末の蚭定倉曎 や 他アプリの操䜜・デヌタの受け枡し ずいったものが甚意されおいるほか、倉数・条件分岐・繰り返しfor, foreachずいった制埡を行うものも甚意されおいたす。 䜜成したショヌトカット 内容 クリップボヌド に保存されおいる画像のリンクに察しお OCR の API を実行し、画像内の文字をテキストに倉換しお出力する、ずいうこずをやっおみたした。今回䜿甚した OCR の API は Free OCR API | OCR.space です。POSTパラメヌタやレスポンスの JSON 構成はリンク先でご確認ください。 䜜成䟋 たずはPOSTリク ゚ス トを送信する郚分です。 図1. POSTリク ゚ス トの送信 今回POSTパラメヌタずしお必芁な情報は APIキヌ ・ 画像内の文字の蚀語 ・ base64゚ンコヌドされた画像 の぀です。このうち 画像内の文字の蚀語 は日本語で固定ずしおいるので、残り぀を取埗する凊理はサブルヌチンずしお別ショヌトカットに切り出し、それらを呌び出す方匏をずっおいたす。ではそれぞれのショヌトカットを芋おいきたす。   APIキヌ の取埗凊理です。 API キヌは 環境倉数 に持っおおきたいのですが、さすがにそこたではできないようなので、今回は リマむンダヌ アプリに保持・読み出すようにしおいたす。 図2. API キヌの取埗 内容は API キヌを保持しおいる リマむンダヌ を怜玢し、その䞭から今回䜿甚する OCR.space ずいうタむトルの項目から API キヌを取埗しおいたす。 ショヌトカットの最埌では、メむンのショヌトカットに倀を枡すため、倉数から倀を取り出しお終了しおいたす。   次に base64゚ンコヌドされた画像 の取埗凊理です。このパラメヌタに蚭定する倀は data:image/[フォヌマット],[base64゚ンコヌドされた画像] ですので、実際は 拡匵子 ず 画像をbase64゚ンコヌドしたテキスト の぀が必芁になりたす。 たずは拡匵子の取埗凊理です。 図3. 拡匵子の取埗 倧きな流れずしおは、たず クリップボヌド の内容がURL圢匏どうか確認し、URL圢匏ならその内容を取埗したす。さらにその内容がむメヌゞであれば拡匵子を、そうでなければ none ずいうテキストを返华する、ずいう凊理を行っおいたす。この none ずいうテキストは、ショヌトカットを実行する偎の凊理で none を受け取り、゚ラヌずしお凊理を終了するために利甚したす。 次が 画像をbase64゚ンコヌドしたテキスト の取埗凊理です。 図3. 画像を base64 ゚ンコヌド したテキストの取埗 これは 拡匵子 の時ずほが同じ凊理の流れをしおいお、 拡匵子 を取埗しおいたずころを 画像をbase64゚ンコヌドしたテキスト を取埗するように倉曎しただけです。   最埌にメむンのショヌトカットで 他のショヌトカットを実行するその結果を受け取る 凊理ず、 レスポンスJSONをパヌスする 凊理を行いたす。 たずは 他のショヌトカットを実行その結果受け取る 凊理です。 図4. 別ショヌトカットの実行 凊理の流れは画像の通りです。ショヌトカットを実行し、その結果が拡匵子ではないずきは䞭断されたこずを通知しショヌトカットを終了したす。 続いお レスポンスJSONをパヌスする 凊理です。 図5. レスポンス JSON のパヌス 「ショヌトカット」アプリ内では JSON は 蟞曞 ずいう単語で扱われおいたす。アクションずしおは 蟞曞の倀を取埗 ずいうもので、これは組み合わせればネストされた JSON のパヌスも可胜です。たた今回は結果出力のため、最埌にメモに曞きだすようにしおいたす。 実行結果 以䞊のサンプルを、前回私が曞いた蚘事の画像に察しお実行した結果が以䞋ずなりたす。 図6. OCR で認識する画像 図7. 実行結果 おわりに 今たではちょっず API を詊しおみたいだけでもPCを甚意する必芁がありたしたが、この「ショヌトカット」アプリを䜿甚すれば iPhone 単䜓で簡単にできたす。たた今回は玹介しおいたせんが、テキストに察しお 正芏衚珟 を甚いたマッチングもできるので、 スクレむピング も可胜です。 iPhone ナヌザの方は詊しおみおはいかがでしょうか。 最埌たでご芧いただきありがずうございたす。 参考文献 Shortcuts 2.0 release notes https://support.apple.com/en-us/HT209087 Free OCR API | OCR .space https://ocr.space/ocrapi 付録今回䜿甚したアクション アクション名ずその䜿い方を以䞋にたずめたした。 API 実行 URL URLを次のアクションに枡す URLの内容を取埗 受け取ったURLをリス ゚ス トし、レスポンスを次のアクションに枡す クリップボヌド をリク ゚ス ト甚に加工 クリップボヌド を取埗 クリップボヌド の内容を次のアクションに枡す 皮類を取埗 受け取った倀のデヌタ皮類むメヌゞ・URLなどのテキストを次のアクションに枡す Base64 ゚ンコヌド 受け取った倀を Base64 圢匏で ゚ンコヌド ・デコヌドした倀を次のアクションに枡す ファむルの詳现を取埗 受け取った倀ファむルの詳现拡匵子・サむズなどを次のアクションに枡す JSON のパヌス 蟞曞の倀を取埗 受け取った JSON から指定したキヌの倀を次のアクションに枡す 制埡 倉数を蚭定 受け取った倀を倉数に代入する 受け取った倀をそのたた次のアクションに枡す 倉数に远加 受け取った倀を倉数に远加するListにappendするようなむメヌゞ 受け取った倀をそのたた次のアクションに枡す 倉数を取埗 倉数から倀を取り出し、次のアクションに枡す 次の堎合if~else文 受け取った倀ず指定した倀を比范する次ず等しい・次を含む・より倧きい・より小さい それぞれで繰り返すforeach文 受け取ったリスト圢匏の倀に察しお぀ず぀凊理を行う ショヌトカットを実行 受け取った倀を特定のショヌトカットに枡し、その実行結果を次のアクションに枡すメ゜ッドのようなむメヌゞ API キヌを取埗する リマむンダヌを怜玢 条件に合臎するリマむンダヌを怜玢し、その結果を次のアクションに枡す リマむンダヌの詳现を取埗 受け取った倀リマむンダヌの詳现メモ・タむトルなどを次のアクションに枡す その他 テキスト 指定したテキストを次のアクションに枡す 通知を衚瀺 タむトル・メッセヌゞを指定し、その内容を通知ずしお衚瀺する メモを䜜成 受け取った倀をメモに新芏登録する "ショヌトカット"を終了 珟圚のショヌトカットを終了する 珟圚のショヌトカットに含たれる埌続のアクションは実行しない ゚ンゞニア 䞭途採甚 サむト ラク スでは、゚ンゞニア・デザむナヌの 䞭途採甚 を積極的に行っおおりたす ご興味ありたしたら是非ご確認をお願いしたす。 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