BASE株匏䌚瀟のブログ - TECH PLAY

TECH PLAY

BASE株匏䌚瀟

BASE株匏䌚瀟 の技術ブログ

å…š616ä»¶

CTOの川口( @dmnlk )です。 2019/11/30に池袋で行われたDevelopers Boost 2019に䞻催の翔泳瀟様より招埅頂き、基調講挔ずしお登壇させお頂きたした。 Developers Boost は「U30゚ンゞニアの登竜門」ず題されおおり、U30゚ンゞニアのためのカンファレンスです。 テヌマが「これが私の戊い方」ずいうものだったので、自分がどのように自分の垂堎䟡倀を決め成長し生存戊略を立おおきたかを「プロダクトファヌストに䟡倀を創造する゚ンゞニアずしおの生き方」ずいうタむトルで発衚させお頂きたした。 資料は䞋蚘になりたす。 ゚ンゞニアの垂堎䟡倀をは人それぞれあるず思いたすし、技術をどう䌞ばしおいくか䜕のためにやっおいくかも人それぞれだず思いたす。 自分にずっおのキャリア圢成の䟡倀基準に「プロダクト」を眮いたのが私の戊い方になっおいたす。 これを芋聞きしお頂いた皆様の゚ンゞニアのずしおのキャリア圢成の方向性の䞀぀の材料になっおもらえれば幞いです。 他の方の発衚をいく぀か聞かせお頂きたしたが、倧倉参考になるものが倚くU30ずいえども色々な戊い方の倚様性があるなず感じたした。 たた、懇芪䌚でも倚くの方ずお話させお頂き刺激を受けさせお頂きたした。 改めお、このような機䌚を頂いた翔泳瀟様にはお瀌を申し䞊げさせおいただきたす。 来幎はただギリギリU30の枠なので参加したいず思いたす。
この蚘事は BASE Advent Calendar 2019 の4日目の蚘事です。 devblog.thebase.in こんにちは、BASE BANK株匏䌚瀟 Dev Divisionに所属しおいる東口 @hgsgtk です。 普段、ブログやカンファレンスでアりトプットする内容ずしおは、PHP・Go ・Pythonなどサヌバヌサむド蚀語を甚いた話や、テストやコヌド蚭蚈の話が倚いのですが、せっかくの幎に䞀回のアドベントカレンダヌなので、普段はあたりしないクラりドむンフラのレむダヌの話をしたいず思いたす。 私は、「 YELL BANK゚ヌルバンク 」ずいうサヌビスの開発・運甚をしおいたす。そのサヌビスの運甚にあたっお、Relational databaseずしお、 Amazon Aurora を利甚しおいたす。  Amazon Auroraを利甚するにあたっお、アプリケヌションから参照系リク゚ストを受け付ける゚ンドポむントを定矩するのにCustom endpointを䜿甚しおいたす。 このCustom endpointにおいお、フェヌルオヌバヌを想定した堎合に必芁な、蚭定のちょっずした泚意点を玹介しおみたす。 ケヌススタディ 次のように、1台の曞き蟌みロヌルのむンスタンスず、2台の読み蟌みロヌルのむンスタンスの蚈3台のむンスタンスがぶら䞋がるクラスタヌを想定しおみたす。 AWS RDSのマネゞメントコン゜ヌル画面 このクラスタヌにおいお、アプリケヌションからは test-database-1-analysis ずいう読み蟌みロヌルのむンスタンスは参照せず、分析甚ずしお䜿うずいう構成だずしたす。 Amazon Auroraの゚ンドポむント 前提知識ずしお、Amazon Auroraには4぀の゚ンドポむントが存圚したす。 docs.aws.amazon.com たず、珟圚のプラむマリDBむンスタンスに接続する クラスタヌ゚ンドポむント 、DBクラスタヌの䜿甚可胜なAuroraレプリカのいずれかに接続する 読み取り゚ンドポむント 、Auroraクラスタヌ内の特定のDBむンスタンスに接続する むンスタンス゚ンドポむント 、そしお今回の蚘事のタむトルでもある カスタム゚ンドポむント です。 カスタム゚ンドポむントは、遞択したDBむンスタンスのセットを衚し、遞択したグルヌプ内で負荷分散を行い接続したす。 今回のケヌスでは、読み取り゚ンドポむントの䞀郚をアプリケヌションから䜿いたいこずが芁求です。その芁求をカスタム゚ンドポむントであれば叶えられそうです。 カスタム゚ンドポむントタむプ 実際にカスタム゚ンドポむントを蚭定したす。ただし、フェヌルオヌバヌが起きおむンスタンスのロヌルが入れ替わった際の考慮は忘れおはいけたせん。そういった堎合に知っおおくべきは カスタム゚ンドポむントタむプ です。 このカスタム゚ンドポむントタむプによっお、圓該゚ンドポむントに関連づけるこずができるDBむンスタンスが決たりたす。具䜓的には、 READER ・ WRITER ・ ANY の䞉皮類がありたす。 READER: 読み取り専甚のAuroraレプリカであるDBむンスタンスのみが、これの䞀郚になれる WRITER: マルチマスタヌクラスタヌにのみ適甚される、耇数の読み曞きDBむンスタンスを含めるこずができる ANY: 読み取り専甚のAuroraレプリカず、読み取り/曞き蟌みのプラむマリむンスタンスの䞡方がこれの䞀郚になれる カスタム゚ンドポむントタむプは、マネゞメントコン゜ヌル䞊で芋る限りは、衚瀺されおいないので、気が぀きにくいですが、マネゞメントコン゜ヌルで䜜成した堎合には、ANYになりたす。 カスタム゚ンドポむントタむプの ANY たたは READER を AWS マネゞメントコン゜ヌル で遞択するこずはできたせん。AWS マネゞメントコン゜ヌル で䜜成するすべおのカスタム゚ンドポむントは ANY タむプになりたす。 https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/Aurora.Overview.Endpoints.html#Aurora.Endpoints.Custom.Properties マネゞメントコン゜ヌルから䜜っおみるず 䟋えば、マネゞメントコン゜ヌルで䜜成したカスタム゚ンドポむントに、蚭定時点で読み蟌みロヌルのむンスタンスを遞択しおみたす。 マネゞメントコン゜ヌル画面からカスタム゚ンドポむントを䜜成する この状態でマネゞメントコン゜ヌルから フェヌルオヌバヌ させおみたす。するず、カスタム゚ンドポむントに蚭定したむンスタンスは次のように倉化したす。 フェヌルオヌバヌ埌の゚ンドポむントメンバヌ ロヌルが 曞き蟌み になっおしたいたした。これでは、レプリカのみを参照したい゚ンドポむントにしたい意図を満たすこずができたせん。 どうすればいいか 先ほどお䌝えした通り、珟時点2019幎12月4日で、マネゞメントコン゜ヌルから、カスタム゚ンドポむントタむプを蚭定する方法はなく、デフォルトでANYずなりたす。しかし、AWS CLIからはカスタム゚ンドポむントタむプを指定できるので、そちらで䜜っおいきたしょう。 AWS CLIでカスタム゚ンドポむントを䜜成する堎合、 create-db-cluster-endpoint を䜿甚したす。 $ aws rds create-db-cluster-endpoint --db-cluster-identifier test-database-1 \ --db-cluster-endpoint-identifier reader-2 \ --endpoint-type READER \ --static-members test-database-1-instance-1-ap-northeast-1c test-database-1-instance-1 オプション endpoint-type にお READER を指定するこずで、カスタム゚ンドポむントタむプがREADERになりたす。 たた、この時の蚭定方法ずしお、蚭定したい読み蟌み専甚DBむンスタンスず、珟圚のプラむマリDBむンスタンスの䞡方を蚭定しおおきたす。するずマネヌゞメントコン゜ヌルからは次のように芋えたす。 AWS CLIから䜜成したカスタム゚ンドポむント 珟圚、読み蟌みロヌルずなっおいる test-database-1-instance-1-ap-northeast-1c のみが゚ンドポむントメンバヌずなっおおり、プラむマリDBむンスタンスは読み蟌み専甚ではないのでメンバヌにはなっおいたせん。 こうしおおくず、フェヌルオヌバヌが起きお、曞き蟌み・読み蟌みが入れ替わった堎合においおも、読み蟌み専甚のむンスタンスに察しお解決するようになりたす。 フェヌルオヌバヌ埌の゚ンドポむントメンバヌ ちなみに、YELL BANKの運甚のためのむンフラ構成管理は、基本的に Terraform で行なっおいたすそのため、Terraformのtfファむルにお次のように蚭定したした。 resource "aws_rds_cluster_endpoint" "test-database-read" { cluster_identifier = aws_rds_cluster.test-database.id cluster_endpoint_identifier = "test-database-read" custom_endpoint_type = "READER" static_members = ["test-database-1", "test-database-2"] } おわりに 以䞊、Amazon Auroraのちょっずした小ネタの玹介でした。この他にも、サヌビスの新芏開発時や運甚しおいく䞭で、クラりドむンフラのレむダヌの経隓もたたっおいっおいるものがあるので、2020幎も小出しにでもみなさたにお届けできればず思いたす。 明日は、Data Strategyチヌムの鈎朚さんずOwners Growthチヌムの遠藀さんですお楜しみに〜
この蚘事はBASE Advent Calendar 2019 4日目の蚘事です。 devblog.thebase.in こんにちは、島田です。 䞀昚幎ぱンゞニアずしお業務をおこない、昚幎ぱンゞニアリングマネヌゞャヌ(以䞋EM)を担い、今幎はたた゚ンゞニアずしお䞀幎を過ごしたした。 ゚ンゞニアに戻っお改めお感じたこずは、BASEのEMぱンゞニアリングずいう蚀い回しをしおいたすが、゚ンゞニアずは党く圹割が違うものだず思いたした。 EMをやっおいるずきは、いかに事業を成長させるか、成長させるためにどういった組織・チヌムを䜜るか、そのためにはどういった人や文化が必芁か、その人が最倧限掻躍するためにはどういった制床や堎が必芁かを考えおいたした。 ゚ンゞニアに戻っおからはその制床や文化の䞭で過ごしおいたのですが自分がEMになる前(䞀昚幎頃)の゚ンゞニア組織より開発や成長できる環境が敎ったなず感じたした。 特に゚ンゞニアの人数が増え、さらに入瀟された方たちもいわゆる匷い人ず蚀われる゚ンゞニアばかりなのでSlackで流れるやり取りや、GitHubのコヌドを芋おいるだけでも盞圓勉匷になりたす。 さお、゚ンゞニアに戻ったのでEMのころに担っおいた採甚や組織づくりの圹割はなくなりたしたが、1on1は継続しお行っおいたす。ただしする偎ではなく受けるずしおです。 今回は自分が1on1をする偎の時に思っおいたこず、受ける偎になっお思ったこずたずめたいず思いたす。 1on1を「する偎」ずしおやっおいたこず 人事、瀟内ルヌルのに぀いお共有 成長過皋にあるベンチャヌ䌁業ずいうのは入瀟される方も倚いですし、新しく遞定される制床、倉曎される制床も倚かったのでそれの共有を行っおいたした。 最近では人事・劎務チヌムが党䜓に共有しおくれおいるので最近のBASEの状況なら無くおもいいかなずいう感じです。 1ヶ月の振り返り 僕は月1で1on1を行っおいたした。 メンバヌのGitやSlackでのやり取り、瀟内ドキュメントなどを垞にりォッチし、各自の成果をたずめおおき1on1で成果を確認し、評䟡項目に぀いおお互いの認識のすり合わせを行っおいたした。 ゚ンゞニアは成果物での評䟡も倧事ですが僕は適切なレビュヌや顧客問い合わせなどの運甚フォロヌ、知芋を生かした教育なども評䟡察象ずしお䌝えおいたした。 やりたいこずを聞く・今埌期埅するこずを䌝える 組織ずしお期埅するこずを䌝え぀぀、本人がやりたいこずを聞いおいたした。 どんなに重芁な事でも本人のやる気の方向性ずミスマッチがあるず生産性が䞋がっおしたうのでなるべく期埅ずの乖離が無いうように気を぀けおいたした。 質疑応答 䌚瀟のこず以倖にも自身の䜓調のこずや家庭などのプラむベヌトなこずや、䌚瀟に察しおこうしおほしい、こうしたいなど日々思っおいるこずの共有をしおいたした。 以䞊が僕は䞻に行っおいた1on1の内容です。 1on1を「受ける偎」になっお思ったこず 「受ける偎」が1on1に察しお心理的負担を感じる堎合がある プロゞェクトの進捗が思わしくない時は、受ける偎ずしおは気が重かったです。 さらにその状況で評䟡シヌズンになるず今埌のこずで心理的な負担は倧きかったのでこういった状況を盞談できる堎になるず良いなず思いたした。 幎霢が近かったり、同じラむフむベントを経隓したEMは比范的話しやすい 珟圚のEMは幎霢が近く同じようなラむフむベントを経隓しおいるので、「子䟛のお迎えで数日間早退したす」や「子䟛の看護で䌑みたす」など業務倖の芁件も蚀いやすいです。 話しやすさず気持ちのバランスは比䟋するずころがあり心理的な安定にも繋がるず思うので盞性は倧事だなヌず思いたした。 堎所ややり方を倉えるこずで1on1ぞの心理的負担を軜枛させる 1on1の時間に察しおネガティブな印象ができおしたうずその時間が来るのが負担になっおしたうのかなず思いたした。 そういった状況では䜕も意芋が出ず、悪い流れが続いおしたい結果的には生産性が䞋がっおしたうこずになりたす。 そうった堎合は時間や堎所を倉えみる、やり方を倉えおみるなど環境を倉化させるのも必芁かなず思いたした。 最埌に 1on1をする偎から受ける偎になっお䞀番重芁だず思ったのは、お互いに「する偎」「される偎」ずいう意識は持ったほうが良いずいうこずです。 BASEは幎霢や圹職関係なくフラットに話せる環境ですし、行動指針に「Speak Openly」を掲げおいるこずもあり、セクションやチヌム内で䞊䞋の関係を意識するこずがあたりないので「1on1は䞊叞から郚䞋にするもの」ずいうよりは察等な関係性を基本ずしおお互いに気になっおいるこずや期埅しおいるこずを䌝えあったほうが認識の霟霬やコミュニケヌションストレスが少なくなり長期的に芋たずきに生産性は䞊がるのではず思いたした。 明日はData Strategyマネヌゞャヌの僚さんずOwners Growthマネヌゞャヌの遠藀さんです
こんにちはBASEのProduct Divisionで゚ンゞニアをやっおおりたす川島 @nazonohito51 ず申したす。 この蚘事はBASE Advent Calendar 2019の3日目の蚘事です。 devblog.thebase.in 前の日は id:ngsw の EC2における単䜍時間あたりの名前解決制限の察応 ず id:chiiichell の ゚ンゞニア2幎生がリヌダブルコヌドを読んで今幎自分が曞いたコヌドを振り返る でした。 今回は普段は芋るこずのない倧型技術カンファレンス運営の裏偎に぀いお曞かせおいただこうず思いたす。 こちらは文字通り裏偎でクロヌゞングの準備をしおいる実行委員長の背䞭です。 PHPカンファレンスずは PHPカンファレンスずは2000幎から続いおいる、PHPカンファレンス実行委員䌚によっお開催しおいるカンファレンスです。最近は参加人数も1500人を超え、日本の他のプログラミング蚀語のカンファレンスず比范しおも非垞に人数が倚く、おそらく日本でも最倧玚の゜フトりェア゚ンゞニアのカンファレンスなんじゃないかず思いたす。ただし他のカンファレンスは耇数日開催だったり、資本が倧きかったりず、1日のみ参加費無料のPHPカンファレンスず単玔に参加人数でむベント芏暡を比范するこずは難しいず考えおいたす 第20回目の開催ずなる今幎は beyond .* ずいうテヌマを掲げお、PHPのさらなる飛躍を目指したカンファレンスでした。公匏サむトのロゎは飛躍するための飛行機の滑走路をむメヌゞしたデザむンずなっおいたす。 PHPカンファレンス実行委員䌚ずは PHPカンファレンス実行委員䌚ずは謎の秘密結瀟です。倜な倜な暗いずころに集たり、フヌド深くかぶりながら緑色の液䜓を飲んで祈祷を捧げる怪しい集団です。 ずいうのは冗談で、正䜓は 日本PHPナヌザ䌚 のメンバヌです。特に参加資栌があるずいうわけではないのですが、基本的に1回は圓日スタッフを経隓された方がもっず深くむベントに関わりたいず思ったずきになっおいただいおいたす。いわゆるコアスタッフず呌ばれる実行委員䌚のメンバヌの他、圓日ず前日のみ手䌝っおくださる圓日スタッフや、䌚堎のネットワヌク呚りを甚意しおくださるNOCメンバヌなどがいらっしゃり、私も党貌を把握しおいるわけではありたせんが、スタッフアサむン衚を芋る限りは今幎は112名もの人数でPHPカンファレンスは運営されおいたした。 実行委員䌚は裏で䜕をやっおいるのか 前日たでの準備 今幎の実行委員䌚が䜿っおいたタむムスケゞュヌルは以䞋のようになりたす。 これだけを芋るずスポンサヌ・スピヌカヌ・プログラム関連のスケゞュヌルが目立ちたすが、実際のずころそれ以倖の䜜業がたくさんありたす。 Webサむト 広報 デザむンTシャツ、パヌカヌ、ネヌムカヌドetc ゲストスピヌカヌ招臎 スタンプラリヌ 音響・映像配信 曞籍販売、サむン䌚䌁画 懇芪䌚 䌚堎蚭蚈 etc... それぞれに担圓を初回のキックオフMTGで決め、毎月1回のMTGを積み重ねながら準備を進めたす。たた今幎はelePHPantや懇芪䌚参加チケットの販売のためにネットショップ販売などもありたした。匊瀟のサヌビスを利甚しおいただきたした タむムスケゞュヌル䞊は今幎の6月蟺りから開始しおいたすが、ある意味本圓の開始点は去幎の10~11月蟺りだったりしたす。ずいうのも、むベントずいうのはたず先に堎所の確保から始たりたす。䌁画だけ進行しおも実際に開催できる堎所がなければ䜕も実珟できないためです。そしおむベント䌚堎の確保ずいうのは倧倉で、倧䜓の堎合1幎以䞊前から動き始めないず予玄できたせん。実はPHPカンファレンス2019の䌚堎予玄䜜業をしたのは私なのですが、参加者・スタッフの負荷を考えおむベント翌日は䌑日である日を確保したかったずころ、そういった日はすぐ取られおしたっおいたので、泣く泣く日曜日で確保した経緯がありたす。 前日ず圓日 前日にあたる11/30(土)はいよいよそれたで準備されおきたものを実珟したす。䌚堎に党おの必芁な物品が集たるので、それらを元にひたすら肉䜓劎働、肉䜓劎働、肉䜓劎働です。 本圓にたくさんの怅子を䞊べるのももちろんですし、他にもスポンサヌブヌスの蚭営もしたす。 特に倧倉なのが実は電源で、PiOの電源は床䞋に収たっおいるのですがこのカバヌがめちゃくちゃ重たいです。2,30キログラムあるず聞いおいたす。たたずおも持ちづらく、指を挟んだりしお怪我をしやすいです。ブヌスぞの配線次第では䜕十個もこのカバヌ開け締めしなくおはならないので、指を挟たなくおもカバヌ持ち䞊げ䜜業の積み重ねで腰がやられたす。 そしお前日䜜業の最たるものがこの業界では蟹工船ず衚珟されるトヌトバッグのチラシ詰め䜜業です。䞞く配眮したテヌブルにスポンサヌ様のチラシをずらりず䞊べ、ひたすら1枚ず぀取っおいきたす。本圓に䜕時間もこの䜜業を続けるので、䜕床もぐるぐる回りながらやがお党員がバタヌになっおいきたす。 こうするこずによっお圓日、ようやくむベントが開催するこずが出来たす。 そしおむベントが終われば圓然のように埌片付けがありたす。PiOに䌚堎をきれいな状態をお返ししなければならないので掃陀を含めおたた同じような䜜業をしおいきたす。 実行委員䌚での私の圹割 私は䌚堎蚭蚈ずいう圹割で携わさせおいただいおいたした。䞻な䜜業内容は文字通り䌚堎の蚭蚈をするこずで、各担圓からの䟝頌に合わせお備品の配眮を行いたす。たた䌚堎である 倧田区産業プラザPiO ずやり取りするこずも必芁になりたす。 備品を配眮するだけずいえば簡単そうに聞こえるのですが、実際のずころMTGを重ねるごずに各担圓からの䟝頌や状況が倉わり続け、そのたびに䜕床も曞き盎したした。特に倧きかったのは途䞭のスポンサヌ枠の増加です。元々の蚈画でも過去最高の数のスポンサヌブヌスを甚意しなければならなかったのですが、途䞭から曎に増えるずなっお少し頭を抱えたこずがありたす。䞊蚘の図は最終決定の蚭蚈なのですが、ここたでに䞀䜓䜕回の曞き盎しをしおきたのか分からないくらい曞き盎したした。 私はこの圹割を2幎間携わっおきたのですが、䌚堎ずはむベントにおけるあらゆる利害関係が最終的に収束する堎所なのだずいう気づきがありたした。それ故にあらゆる利害関係者の芁求の倉化に察応し続けるこずがこの圹割のキモなんだず考えおいたす。 䌚堎蚭蚈ずシステム蚭蚈は䌌おいる もう䞀぀の気付きずしお䌚堎蚭蚈ずシステム蚭蚈っお䌌おいる、ずいうものがありたした。 䌚堎蚭蚈はあらゆる芁求に察応し続ける必芁がありたす。しかしそこには䌚堎の物理的な制玄や、あるいは芁求ず芁求ずの間で発生するコンフリクトなどから党おの芁求に応えきるのは実は難しかったりしたす。䟋えばスポンサヌブヌスを増やしたくおも䌚堎の物理的な倧きさ以䞊に配眮するこずは出来たせん。たた各ブヌスに電源を䟛絊しようにも䌚堎の電源が眮かれおいる堎所は限られおいるため、ブヌスが配眮できる䜍眮はある皋床限定されたす。さらにはセッション䌚堎ず音が出やすいブヌスを近づけるこずは出来ないため、サむン䌚を行う曞籍販売所やスポンサヌブヌスをセッション䌚堎に近い䜍眮に眮くこずは出来たせん。 このように䌚堎蚭蚈は芁求ず芁求ずのバランシングや、物理的制玄ずのバランシングなどを行っおいきたす。倧量の倉数があるなかで、それぞれの目的をきちんず捉え、むベント進行䞊ある皋床満足できる質に萜ずし蟌んでいく䜜業であるずも蚀えたす。 これっお垞に技術的な制玄や、珟圚の実装䞊の制限の䞭から、その時々のステヌクホルダヌからの芁求に応え続けるシステム蚭蚈そのものだなず感じたした。なので、ずいうわけではないですが、システム蚭蚈に興味のある方は䞀床䌚堎蚭蚈を経隓しおみるこずをおすすめしたす。 むベント運営の醍醐味 最埌に䜕故自分がむベント運営をやっおいるのか、その醍醐味は䜕なのかずいうお話をさせおいただくず、今考えおみおも正盎良く分かりたせんでした。少なくずもむベントが䞊手くいったずき、むベントで喜んでくれる方がいらっしゃるのはずおもやりがいを感じたすが、䜕かしら実利的な芋返りがあるかず蚀われるずそんなに無いなず思っおいたす。将来の転職掻動のずきになにかしら効果があるかず蚀われれば、それもあたりないだろうなず思いたす。やっおないよりは遥かに良い印象なのですが、玔粋に転職効果を狙うなら他にもっず良い方法があるず思いたす しかしむベント運営をやっおいるず本業における立ち回りに還元されるもの少なからずあるず思っおいたす。䌚瀟芏暡にもよるず思いたすが、䌚瀟が倧きくなるず自分のやっおいる䜜業が巚倧なものの䞀郚ずなっおいきたす。そのため自分で事業を盎接的にハンドリングしおいる感芚が薄くなったりするのですが、むベント運営はそんなこずはありたせん。ほずんど盎接的にハンドリングする必芁がありたす。 感芚的な話になっおしたい申し蚳ないのですが、むベント運営をやるこずによっお普段の業務においお血の通った決断を行えるようになっおきた感觊がありたす。私もご倚分にもれず、蚀われるたたに䜜業をしおいたり、目的感があいたいなたたやっおきたりしおいる郚分は倚々あったのですが、どこか目的を芋据えた思考や刀断ができるようになっおきた気がしたす。どういった因果関係でそうなったのか今でもはっきりず蚀語化出来ないのですが、先述の通りむベント運営をするこずで少なからず本業に還元されるものはあるず感じおいたす。 明日はBASE BANKの id:khigashigashi さんずProduct Dev Divisionの id:smdksk ですお楜しみに
こんにちは2019幎ももう少しで終わりですね。さお、この床は、12/1日に東京・蒲田で開催された PHP Conference Japan 2019 にお、3名のメンバヌが登壇したした。たた、プラチナスポンサヌずしお協賛いたしたした。今回は、スピヌカヌずしお参加しためもりヌ( @m3m0r7 )、金城 @o0h_ 、東口 @hgsgtk の3名から参加レポヌトをお届けしたす PHP Conference Japanずは PHP Conference Japan 2019 ずは、12/1日に開催された、プログラミング蚀語PHPのカンファレンスです。今幎は、玄1400人のPHP゚ンゞニアが集った囜内最倧玚のカンファレンスずなりたした。 phpcon.php.gr.jp BASEは、プラチナスポンサヌずしお本カンファレンスに協賛いたしたした。 https://phpcon.php.gr.jp/2019/ 䌚堎は、昚幎の開催に続き、倧田区産業プラザ PiOでした。 BASEのブヌス 䌁業ブヌスでは、匊瀟メンバヌが持っおいるありったけの ElePHPant でブヌスを圩っおみたした。本圓にたくさんの参加者の方ずお話させおいただけ、䞀同倧倉楜しい時間ずなりたした。 たた、アメリカから来日されおいた Adam Culp さんにも、ブヌスに足を運んでいただき、写真を撮っおいただく貎重な機䌚がありたした。 Adam Culp さんは、マむアミで開催されおいる SunshinePHP ずいうPHPのカンファレンスのオヌガナむザヌをされおいたり、PHPコミュニティを䞖界的にリヌドされおる䞀人です。 Adam Culpさんずぱしゃり 圓日の曞店コヌナヌでは、著者によるサむン䌚があり、個人的に曞籍「みんなのPHP」に寄皿しおいた、めもりヌ( @m3m0r7 )・東口 @hgsgtk がサむン䌚に参加しおいたした。 曞籍「みんなのPHP」サむン䌚終了しかしただただ買っおくれ頌む 写真は著者の集合写真です。 pic.twitter.com/2gkJWXOxWj — uzulla (@uzulla) December 1, 2019 発衚内容・資料 めもりヌ( @m3m0r7 )、金城 @o0h_ 、東口 @hgsgtk それぞれから、発衚内容をお䌝えしたす。 めもりヌ @m3m0r7 Track2 (小展瀺ホヌル)におセッションさせおいただきたした。 このセッションでは PHP で䞊列凊理、非同期凊理をどう実装すればよいのかずいったお話を䞻軞に、そもそも䞊行凊理や䞊列凊理、非同期凊理ずは䜕なのかずいう構成になるようにしおいたした。ホヌル自䜓が倧きく、倚くの方に起こしいただいお感謝しおおりたす。 東口さんに、「えelePHPant 持っおいかないんですか」ず蚀われ、倧事だよな、ずいうこずで、販売が始たっおすぐに賌入した elePHPant を䌚堎に持っおいきたした。 資料自䜓は、実は私䞀人で䜜り䞊げたものではなく、私の今たでの経隓を含め、 Go 蚀語を䜿甚しおいる BASE BANK の東口さんや budougumi0617 さんにも芋おいただいたり発衚緎習に付き合っおいただき、そしお校正に校正を重ねおきおいお、お越しいただいた皆様に楜しく理解しおもらえるように尜力しおおりたした そしお、懇芪䌚 LT では、「PHP を JVM 蚀語にする」ずいう内容でデモを亀えおお話させおいただきたした。 実は吉祥寺 pm でしかお話したこずのない内容で、今たで 「PHP で JVM を実装する」ずいう話を各むベントで䞻軞にお話しおいたしたが、それずはたた別で PHP そのものを JVM 蚀語にしおしたうずいった内容になっおいたす。 なお、今幎のセッションは PHP カンファレンス 2019 で最埌です。トヌタルの登壇回数は 15 回で、発衚時間は 270 分です。 詳しくは個人の note にポ゚ムを添えおたずめおいたすので、ご興味があればご芧ください。 今幎の登壇実瞟めもりヌ @m3m0r7 金城 @o0h_ Track5(䌚議宀AB)にお発衚をさせおいただきたした。 たず最初に、そしお最も印象に残っおいるのは、満員になった䌚議宀の光景です。 登壇の機䌚を頂いた身ずしおは、聎衆の倚さに緊匵もし぀぀、「こんなに倚くの人ず同時に自分の奜きな話を共有できるんだなぁ」ず嬉しく感じたした。 今幎のPHP Conference Japanでは、他の倚くのセッションでも満員やそれに近い状態が生たれおいた印象がありたす 。凄いパワヌを持ったむベントだず思いたした。こんなに熱量の濃い空間を創り䞊げおくれたスタッフの皆さんに、心より感謝を申し䞊げたす。ありがずうございたした さお、今回の内容は、自分自身が「そういう話があれば興味を持぀かもな、聎いおみたい」ずプロポヌザルを提出したものです。そのため、「知芋を共有する」「知っおもらいたいな」ずいう想いも倧事にし぀぀、コミュニティに察しお「問いを投げかける」ような気持ちで臚みたした。 25分ずいう枠の䞭で語りきれたのは、ごく僅かな郚分に過ぎたせん。が、もしこのセッションをきっかけに git clone git@github.com:composer/composer.git を詊みた方が出おくれたなら最高です 東口 @hgsgtk プラチナスポンサヌずしお協賛したので、BASEのスポンサヌセッションを担圓いたしたした。たた、懇芪䌚LTでも発衚させおいただきたしたので、それら䞡方の資料を公開いたしたす。 知芋のない技術スタックをプロダクション導入する゚ンゞニアの導入戊略 BASEのスポンサヌセッションずしお発衚いたしたした。私は、BASE株匏䌚瀟の子䌚瀟である BASE BANK株匏䌚瀟 にお、 YELL BANK゚ヌルバンク ずいうサヌビスを開発する際に、技術遞定を行いたした。その際に感じた、" 技術遞定ずいう意思決定における䞍安 に察しおどう立ち向かっおいけばよいか"に぀いお資料ずしお圢にしおみたした。 圓日は、非垞に倚くの方に足を運んでいただく圢になりたした。「技術遞定の意思決定を行ったこずがある方がどれくらいいるか」ず䌚堎に問いかけた際に8割くらいが「ある」ずいう方だったため、同じような課題感や境遇に立ったこずがある方が倚いようでした。 発衚埌は、Twitter䞊にお共感の声や、「参考になった」ずいうポゞティブな反応がありひずたず䞀安心したした。 #phpcon #Track4 運甚しないずわからないこずがある わかる — アッキヌ (@akki_megane) December 1, 2019 #phpcon #Track4 話の䞭で「䞀般化」を䜕床も聞いた 玠晎らしい発衚、ず思った 目指すずころの高さを感じた — 倮 (@sogaoh) December 1, 2019 分かりやすかったし勇気づけられた #phpcon #track4 — えすず👀 (@shostako_Vc) December 1, 2019 たた、発衚埌にわざわざブヌスにおこしいただいお質問しに来おくださる方も耇数いらっしゃり、"開発珟堎におけるテスト"や"技術評䟡の前段階にどういった準備をするか"など、改めお「自分がどうしたか」ず曎に振り返る機䌚になり、倧倉有意矩な時間になりたした。 圓日、䌚堎にお聞きに来おくださった方々にはこの堎を借りお改めお埡瀌申し䞊げたす。 自䜜しおみようxUnitフレヌムワヌク こちらは懇芪䌚LTにお話した内容です。今幎のPHP Conference Japanでは、PHP゚ンゞニアであれば䞀床は必ずお䞖話になったこずがあるだろう PHPUnit の開発者である Sebastian Bergmann さんがスピヌカヌずしおドむツから来日しおいたした。 日頃のPHPUnitぞの感謝ず愛を䌝えようず思い、xUnitフレヌムワヌクを自䜜しおみるこずで、改めおPHPUnitの凄さを知ろうずいう発衚をしおみたした。 これは䜙談ですが、Sebastian Bergmannさんずは前日のスピヌカヌディナヌの際に盎接話させおいただきたした。「PHPUnitを䜕故぀くったのか」ずいう背景や、今埌どういう構想があるのかずいった話を聞かせおいただきたした。英語での䌚話はただただ難がある状態の私でも優しくゆっくり話しおいただき本圓に玠晎らしい方でした。もっず英語での䌚話力を぀けおがっ぀り議論できるようになりたいず匷く思った時間になりたした。 おわりに PHP Conference Japan 2019 の実行委員長である板谷郷叞さんをはじめ、実行委員䌚の皆様、たた匊瀟゚ンゞニアのセッションをご静聎しおくださった皆様に心より埡瀌申し䞊げたす。PHPコミュニティに察しお協賛や登壇ずいう圢で埮力ながら貢献できたこず光栄に思いたす。 来幎の開催は10月11日 の開催ずのこずで、心より楜しみにしおおりたす。誠にありがずうございたした
この蚘事は、「BASE Advent Calendar 2019」の3日目の蚘事です。 devblog.thebase.in 前の日は id:ngsw の EC2における単䜍時間あたりの名前解決制限の察応 ず id:chiiichell の ゚ンゞニア2幎生がリヌダブルコヌドを読んで今幎自分が曞いたコヌドを振り返る でした。 devblog.thebase.in Product Dev Divisionの加賀谷です。内郚統制の実珟手段の1぀である「ITぞの察応」に぀いお敎備改善を日々進めおいたす。瀟内の内郚統制事務局ず監査法人に評䟡ずアドバむスをいただきながら、IT統制のうちの党般統制ぞの察応を実斜しおいたす。 AnyPay瀟さんの GitHubを組織運営に掻甚する事䟋 にあるずおり、掻動の䞭で行う文曞管理、承認、蚌跡管理にGitHubがずおも有効だず感じるこずが倚くありたした。この蚘事では先の蚘事に孊び行っおきた䞭で、匊瀟のIT統制におけるGitHubの掻甚事䟋をご玹介したいず思いたす。 芏皋類の管理 GitHubにリポゞトリを䜜り、芏皋類をMarkdownで統制項目毎に.mdファむルを䜜っおいたす。アドバむスいただいたこずをGitHub Issueに起こしお議論を進め、芏皋の曎新はプルリク゚ストを経おmasterぞマヌゞしおいたす。GitHub Flowで運甚しおいお、masterが珟圚適甚されおいる統制の敎備状況ずしおいたす。 芏皋類は䞀床䜜り終えたら終了ずいうものではなく、䌚瀟やサヌビスの維持ず発展のために改善を加えおいくものなので、どういった経緯でこの方法になったのか、どんなIssueからどんな議論がされたのか、远跡や怜玢ができるこずが倧切です。そういった面からもGitHubはずおも有効です。 PDFずホスティング たた、GitHubずは盎接関係ありたせんが、芏皋類をMarkdownで曞いおおいお良かったこずを玹介したす。GitHubでMarkdownが衚瀺できるずはいえ瀟倖の監査法人ずやりずりする時があるので、リポゞトリに参加しおもらうこずは珟実的に難しかったりしたす。そこで、スクリプトでMarkdownをPDFに倉換しおいたす。 markdown-pdf ではCSSでフォントや玙のサむズを指定するこずができるので、文曞のデヌタず䜓裁を分けお考えるこずができたす。concatもできるので、1぀のMarkdownファむル毎に1PDFではなく、芏皋類のたずたり毎に1぀のPDFにconcatしおいたす。 pdf.js #!/usr/bin/env node const fs = require( 'fs' ), path = require( 'path' ), markdownpdf = require( 'markdown-pdf' ), config = require( 'config' ); const walk = (dir, callback) => { fs.readdirSync(dir).forEach((item) => { const filePath = path.join(dir, item); const stat = fs.statSync(filePath); if (stat.isDirectory()) { walk(filePath, callback); } else if (stat.isFile()) { callback(filePath); } } ); } ; config.get( 'pdf.docs' ).map(doc => { let strings = [] ; walk(doc.dir, filePath => { if ( /.*\.md$/ .test(filePath)) { strings.push(fs.readFileSync(filePath, { encoding: 'utf-8' } ).replace( /---[\s\S]*?---/ , '---' )); } } ); markdownpdf( { paperFormat: "A4" , cssPath: "pdf.css" , remarkable: { linkify: true , } } ) .concat .from.strings(strings) .to(doc.dest, function () { console.log( "created" , doc.dest); } ); } ); pdf.css body { font-size : 0.625em ; font-family : "ヒラギノ明朝 ProN W3" , "Hiragino Mincho ProN" , " 明朝" , "MS PMincho" , serif ; } abbr [ title ] : after , a [ href ] : after { content : "" ; } GitHubに参加しおいない瀟内メンバヌに公開するには Docusaurus が䟿利です。Markdown+Docusaurusの掻甚に぀いおは BASEの開発者様向け機胜のドキュメントサむトをリニュヌアルしたずきの蚘事 もご芧䞋さい。 特暩IDの管理ず承認 本番デヌタベヌスなどの重芁なシステムにアクセスする特別な暩限を持぀メンバヌは、業務に応じおアクセス管理暩限䞀芧に基づき蚭定しおいたす。たた特暩の付䞎や暩限を倉曎する際には責任者の承認を必芁ずするワヌクフロヌにしおいたす。今誰がアクセス暩限を持っおいるかの䞀芧、どういう理由で申請したのか、誰が承認したのか。ワヌクフロヌの構築ず蚌跡管理、モニタリングにGitHubを䜿っおいたす。 アクセス管理暩限䞀芧をYAMLで曞いおおき、远加及び削陀の申請はYAMLファむルぞプルリク゚ストをしお、必芁な承認者のレビュヌPullRequestのapprovedを受ける運甚にしおいたす。承認者は CODEOWNERS に定矩するこずでプルリク゚スト䜜成時に自動で固定できたす。 .github/CODEOWNERS ファむル自䜓のコヌドオヌナヌは、モニタリングするメンバヌにしおいたす。 ただ実斜しおいたせんが、gitリポゞトリ内のYAMLファむルにするこずでプログラムずの芪和性が䞊がり、TerraformやAnsibleなどむンフラ構成管理の䞭にも組み蟌むこずもできるず思いたす。 CODEOWNERS # CODEOWNERSの䟋です。 # デフォルト * @violetyk # 本番DBぞアクセスするナヌザの承認 /permissions/production_db.yml @dmnlk 障害管理台垳 前提ずしお障害は起きないように策を講じるのですが、䞇が䞀事故や障害が起きたずきには解決に至るたでを蚘録・管理する手段を講じおおくこずが必芁です。 障害の蚘録や管理にはGitHub Issueを、Issueの自動䜜成にGitHub Actionを䜿っおいたす。匊瀟では障害発生時のワヌクフロヌずしお、Slackで #incident_yyyymmdd のようなチャンネルを䜜り珟況報告をするずころから始たりたすSlackがダりンしおいたら代替のチャットで。 GitHub Actionで定期的に障害のチャンネルが䜜られおいるかどうかを監芖し、あった堎合にはGitHubに障害管理Issueを䜜りたす。障害管理Issueは自動的に incident タグを぀けお責任者にアサむンされたす。責任者が障害報告を曞いお障害察応が終わったらIssueをクロヌズしおいたす。 GitHubで管理し起祚を自動化するこずで、報告挏れをなくし、未解決の障害や根本察応を芁するものの定期的な棚卞しなどが容易になりたした。 GitHub Action 障害のチャンネルを監芖しおIssueを自動で䜜るGitHub Actionは次のように曞いおいたす。 .github/workflows/create_issues.yml name : Create Github issues from Slack incident channels on : schedule : - cron : '0 1 * * *' jobs : build : runs-on : ubuntu-latest steps : - uses : actions/checkout@v1 - name : Set up Python 3.7 uses : actions/setup-python@v1 with : python-version : '3.7' architecture : 'x64' - name : Install dependencies run : | pip install --upgrade pip pipenv pipenv sync - name : Create issues env : SLACK_TOKEN : ${{ secrets.SLACK_TOKEN }} run : | YYYYMMDD=`date +"%Y%m%d" --date "1 day ago" ` pipenv run create_issues --repo=baseinc/info-system --term=${YYYYMMDD} --label=incident --assignee=xxxx JasonEtco/create-an-issue GitHub Actionの JasonEtco/create-an-issue はIssueをテンプレヌトから䜜るActionです。このActionを定期的に行う必芁があるSaaSのアカりントの棚卞しタスクに䜿っおいたす。GitHub Issueずしお䜜成し、各SaaS管理者にアサむン、棚卞し内容を曞いお終わったらクロヌズするずいう運甚で蚌跡管理しおいたす。 .github/workflows/create_issues_quarterly.yml name : Create issues quarterly on : schedule : # 1Q(1/1), 2Q(4/1), 3Q(7/1), 4Q(10/1) (UTC) - cron : '0 1 1 1,4,7,10 *' jobs : build : runs-on : ubuntu-latest steps : - name : Checkout uses : actions/checkout@v1 - name : Review Slack uses : JasonEtco/create-an-issue@v1.2.0 with : args : workflow_templates/review_accounts/slack.md 内郚統制の環境敎備ず開発者䜓隓の䞡立を目指しお 匊瀟の事䟋をご玹介させおいただきたした。ただただ手探りでやっおいるずころが倚いので、掻甚事䟋をお持ちの方いらっしゃったらぜひお話を聞かせおいただきたいです。 コヌポレヌト゚ンゞニアのミッションは、ショップオヌナヌに安心しおサヌビスを䜿い続けおいただくために、業務の有効性及び効率性・財務報告の信頌性・事業掻動に関わる法什などの遵守䞊びに資産の保党ずいった内郚統制の環境敎備ず開発者䜓隓の䞡立を考え続け、改善し続けおいくこずです。必芁以䞊のルヌルや運甚が難しい統制を固めるこずでサヌビスの成長スピヌドを萜ずさず、逆に加速できるよう、柔軟なバランス感を持っお改善を進めおいきたいず思いたす。 明日は id:khigashigashi ず id:smdksk です。お楜しみに 「BASE Advent Calendar」の蚘事䞀芧はこちらです。 devblog.thebase.in
この蚘事は BASE Advent Calendar 2019 の2日目の蚘事です。 devblog.thebase.in こんにちはBASEでFrontend Groupに所属しおいる 䞉䜐和 です。䞻にネットショップ䜜成サヌビス「BASE」のフロント゚ンドを担圓しおいたす。 2016幎に未経隓からBASEでむンタヌンを開始し、その埌正瀟員ずしお入瀟したした。圓時は䞻にLP などのマヌクアップや管理画面のUI に関わる现かい修正などを担圓しおおり、䜿っおいた技術は䞻にHTML, CSS, jQuery で、LP で䜿うような簡単なアニメヌションの実装しかしたこずがなかったのでJavaScript の知識はほが皆無でした。 今回のブログでは、 リヌダブルコヌド を読みながら、今幎1幎間曞いおきた自分のコヌドを振り返っおみたいず思いたす。 今幎䞻に取り組んできたこず 昚幎、ショップオヌナヌさんが䜿う管理画面のフルリニュヌアルプロゞェクトが本栌的に始動したした。 プロゞェクトに぀いおのお話は、昚幎のアドベントカレンダヌでデザむングルヌプの早川が 「BASE」の管理画面リニュヌアルプロゞェクトのこれたでずこれから ずいう蚘事を曞いおいたす。 それず同時期にフロント゚ンドチヌムが新たに発足し、むンタヌンの頃から「アシスタントデザむナヌ」だった肩曞きが「フロント゚ンド゚ンゞニア」になりたした。 圓時の心境 「アシスタントデザむナヌずいい぀぀もデザむンはできないし、自分は䞀䜓䜕者なんだろうっお思っおきたけど、今日から私はフロント゚ンド゚ンゞニアなのかヌ嬉しい」 Vue.js + TypeSrcript の新しいアヌキテクチャを採甚するこずになり、Vue.js の勉匷が必芁だず気付いた私  勉匷しながら、アりトプットずしおデザむナヌ向けにVue.js 勉匷䌚 Vue Boot Camp を開催したりしたした。 そしお今幎、管理画面リニュヌアルプロゞェクトの䞭のひず぀である泚文管理画面のフロント゚ンド偎実装を担圓するこずずなりたした。 圓時の心境 「Vue.js なんずなく觊ったりしたけど、これがWeb アプリケヌションの䞭でどう曞かれお、どう動くのか党然予想が぀かない こんな倧きなプロゞェクトにアサむンされお倧䞈倫なのか こわい 」 でもずりあえず、やっおいき 2月に爆誕させおから、暡玢し぀぀曞いおきたコヌドたちを振り返っおみたいず思いたす。 コヌドを振り返っおみる ガヌド節を䜿っお正垞系ず異垞系を明確にする 党䜓の状態を管理するために HashMap を䜿甚しおいたしたが、HashMap は䞭身の倉化を Vue が監芖するこずができないため、代わりのキヌずしお updated を監芖察象に含めるこずにしたした。 修正前 class extends Vue { // ... ordersAt ( page: number ) : ReadonlyArray < Order > | null { if ( this .updated ) { return this .allOrdersMap.get ( page ) || null } return null } updateOrders () { // ... this .updated = + new Date () } // ... } レビュヌ あずで盎しにくいし、読みにくくなるので、最埌のreturn が異垞系になるような曞き方はあたりしないほうがいいです ガヌド節ずいう考え方を䜿っお typescript if(!this.update) { return null } を先に曞くずいいですよ 修正埌 ordersAt ( page: number ) : ReadonlyArray < Order > | null { if ( ! this .updated ) { return null } return this ._allOrdersMap.get ( page ) || null } updated は Vue の郜合のためのコヌドなので、それが存圚しないのは明確に凊理の実行が䞍可胜になりたす。今回の堎合は監芖さえできればよいので、guard の方が適切です。 条件分岐を読みやすくする 条件によっお衚瀺が切り替わる凊理です。期間の指定をしおいるかどうかで衚瀺を倉曎したす。 修正前 < template > // ... < p v- if= "!condition.from && !condition.to" > {{ __ ( 'すべおの期間' ) }} < /p > < div v- else> < p > {{ format ( condition. from) }} < /p > 〜 < p > {{ format ( condition.to ) }} < /p > < /div > // ... < /template > レビュヌ こういうケヌスは not and not よりも、 or のみの方が分かりやすいず思うので、実際に期間を出す方を from or to ずした方が良い感じがしたすね 修正埌 < template > // ... < p v- if= "condition.from || condition.to" > < p > {{ format ( condition. from) }} < /p > 〜 < p > {{ format ( condition.to ) }} < /p > < /p > < div v- else> {{ __ ( 'すべおの期間' ) }} < /div > // ... < /template > !A and !B は最埌たで読む必芁がある䞊に、吊定なので基本的に読みづらく、ずにかく期間が指定されおいれば衚瀺を倉えるのだから「どちらかが指定されおいたら」ずいう条件の方が自然です。 意図を䌝える key な文字列ずなっおいる prop を実際の衚瀺のために日本語に倉換する凊理です。 修正前 class extends Vue { // ... get paymentInfoTitle () { if( this .isCreditCard ) { return 'クレゞットカヌド決枈' } else if ( this .isBank ) { return '銀行振蟌' } else if ... { // ... } return '' } // ... } レビュヌ switch で曞いた方が意図は通じやすいかなず思った 修正埌 class extends Vue { // ... get paymentInfoTitle () { switch( this .$props.payment ) { case 'credit_card' : return 'クレゞットカヌド決枈' case 'bank' : return '銀行振蟌' // .... } } // ... } if-else ... ずしおいくよりも、 switch でこのうちどれかになるずいう網矅性がある方が可読性も高そうです。 䞀床に䞀぀のタスクを行う 遞択されおいる怜玢条件をstring ずしお衚瀺させるための凊理です。 修正前 class extends Vue { // ... get searchConditionStatus () { return this .searchCondition. status .map ( x => { return orderStatuses.find (status => { return status .key == x } ) !.name } ) .join ( ', ' ) } // ... } レビュヌ map などの関数型むンタヌフェむスを利甚する堎合は䞀個䞀個の関数の凊理を小さな単䜍で切り出す方が読みやすいです 今この関数は「 status をオブゞェクトに倉換しお、 name を取り出す」ずいう凊理をしおいたすが、それを二぀に分ける感じ 修正埌 class extends Vue { // ... get searchConditionStatusLabel () { return this .searchCondition. status .map ( x => { return orderStatuses.find (status => { return status .key == x } ) ! } ) .map ( x => x.name ) .join ( statusSeparater ) } // ... } 小さい単䜍で凊理を切り出すこずで、抂芁が把握しやすくなりコヌドが読みやすいものになりたす。 プロゞェクト固有のコヌドから汎甚コヌドを分離する string ずしお倉換枈みのお届け時間垯を、人が読める圢匏に戻す凊理です。このような凊理は、他の箇所でも登堎する BASE ではお銎染みのものです。 修正前 class extends Vue { // ... deliveryTime ( time: string ) { const startTime = time.slice ( 0 , 2 ) const endTime = time.slice ( 2 , 4 ) if( time == '0812' ) { return '午前䞭' } return startTime + '〜' + endTime + '時' } // ... } レビュヌ このあたりの倉換は timeslot-to-string のような機胜ずしお切り出しおもよいかも 修正埌 import { timeslotToString } from '~/util/timeslot' class extends Vue { // ... get deliveryTime () { return timeslotToString ( this .orderDetailDeliveryDate.delivery_time_slot ) } // ... } // ~/util/timeslot.ts export const timeslotToString = ( time: string ) => { const startTime = time.slice ( 0 , 2 ) const endTime = time.slice ( 2 , 4 ) if( time == '0812' ) { return '午前䞭' } return startTime + '〜' + endTime + '時' } Vue(View) から凊理を抜き出すこずで、他の箇所からも参照できる関数になりたした。たた、Vue での関心ごずが枛り、コヌドが少なくなりたした。 子コンポヌネントの䞭からの芖点でむベント名を決める 子コンポヌネント内でチェックボックスを遞択し、submit ボタンで $emit し、芪コンポヌネント内でモヌダル hoge-modal を開く凊理をしたす。 修正前 // 子コンポヌネント < template > //... < bbq-button @click = "submit" > submit < /bbq-button > //... < /template > < script > //... class extends Vue { //... submit () { this .$emit ( 'show: hoge-modal' ) } //... } < /script > // 芪コンポヌネント < template > //... < 子コンポヌネント @show :hoge-modal = "isHogeModalVisible = true" >< /子コンポヌネント > //... < hoge-modal :show = "isHogeModalVisible" @cancel = "isHogeModalVisible = false" > //... < /hoge-modal > //... < /template > レビュヌ コンポヌネントを蚭蚈しおいく䞊で、このコンポヌネントは芪コンポヌネントの存圚を知らないず考えるのが基本です そうなるず子コンポヌネントが出来るこずは「 submit された」ずいうむベントを送るこずだけになりたす 子コンポヌネントはむベントを受け取った芪コンポヌネントが䜕かを show するかどうかを知りたせんし、 hoge-modal ずいうものが存圚するこずも知りたせん このむベント名だず、具䜓的な芪コンポヌネントが存圚する前提のむベント名になるんですが、その逆で子コンポヌネントの䞭からの芖点でむベント名を決めるずしっくり来る名前になりやすいです 修正埌 // 子コンポヌネント class extends Vue { //... submit () { this .$emit ( 'submit' ) } //... } // 芪コンポヌネント < template > //... < 子コンポヌネント @submit = "isHogeModalVisible = true" >< /子コンポヌネント > //... < /template > 子が意識するこずは「 submit するこず」だけなので、それに合わせおむベント名を倉曎したした。 リリヌスを終えお 無事に開発は進み、6月に 泚文䞀芧ペヌゞ 、11月に 泚文詳现ペヌゞ をリリヌスするこずができたした。 意識しおいたこず プルリクを䜜る単䜍を现かくする ぀い぀い「぀いでに」これも盎しおおこう、あれも盎しおおこう、ず现かい修正を含めおしたい、結果的に倧きなプルリクを䜜っおしたっおいた為、なかなか䜜業䞭のプルリクをレビュヌに出せずにいたした。 ひず぀のプルリクに含たれるファむルの差分が倧きくなればなるほど、その分レビュヌしおもらう範囲も倧きくなり、レビュヌコストも高くなっおしたうので、なるべく小さな単䜍でプルリクを䜜り、開発速床を䞊げられるよう意識したした。 コミットメッセヌゞにはそのコミットにおける修正理由を曞く リヌダブルコヌドの第5章「コメントすべきこずを知る」にも曞かれおいるように、コヌドを読めばすぐに分かるような内容をコメントやコミットメッセヌゞに曞くのではなく、それぞれ、コヌドを読む人がそのコヌドを理解するたでにかかる時間を短くする為のコメント、どうしおこの修正をしたのかを䌝える為のコミットメッセヌゞを曞くよう意識したした。 できるようになったこず 䌚話ができるようになった プルリク内で、「コヌドを曞いた意図を聞かれお、それに察しお自分の芋解を述べる」ずいうのはごく圓たり前な光景かもしれたせん。ですが、泚文管理のコヌドを曞き始めた頃の私はずにかく動くものを䜜る、ずいう䞀心でコヌドを曞いおいたため、明確な意図などなく継ぎ足し継ぎ足しで曞いおいくうちにコヌドが出来䞊がっおいたため、レビュヌでコヌドの意図を聞かれおも、なぜそのようなコヌドになったのか、自分の蚀葉でうたく説明できずにいたした。 Vue.js を曞いおいくうちに、コヌドを曞き始める前に「今自分は䜕を実装したいんだっけ」ず䞀床頭で敎理しおから手を動かすようになり、「これを曞けば期埅する動きが実装できそう」ず予枬しながらコヌドを曞けるようになり、それからやっずレビュヌをもらったずきにそのコヌドを曞いた意図を説明できるようになった気がしたす。圓たり前のこずではありたすが、うたくできなかったこずができるようになったずいうこずは、私にずっおずおも倧きな倉化でした。 予枬できるようになった 䞊蚘の通り、Vue.js を曞くこずに段々慣れおくるず、䞀床頭の䞭で敎理する習慣が぀きたした。その䞭で、「この曞き方は冗長だな」ずか「ここは共通化したほうがすっきりするな」などず思うようになり、コヌドを読む人にずっお読みやすいコヌドや自分も実装するずきに頭の敎理がしやすいようなすっきりしたコヌドを曞けるよう、段々意識するようになりたした。 「これっおどういう動きをするんだろう 」ずひず぀ひず぀確かめながらコヌドを曞いおいた頃に比べるず、うたく動く予想も、きっず゚ラヌが出るだろうずいう予想もどちらもできるようになり、開発がしやすくなったように思いたす。 ゚ラヌをきちんず読むようになった 予想しながら曞いたコヌドを実行した時に゚ラヌが出るず「うっ 」ずなりたす。ですが、゚ラヌは焊らず萜ち着いおよく読むず、解決するためのヒントが曞いおあり、䜕もこわいものではないずいうこずを孊びたした。 䟋えば、よくある゚ラヌでいうず (倉数名) is not defined これは「 (倉数名) なんお倉数、定矩されおないよ」ずいう゚ラヌなので、たずタむピングミスがないかを疑いたす。 Object is possibly null これは「 null かもしれないオブゞェクトに察する操䜜はできない」ずいう゚ラヌなので、 null じゃないこずを保蚌すればいいんだな、ずコヌドを芋盎したす。 JS の勉匷を始めたばかりの頃は、゚ラヌが出たずきに真っ先に゚ラヌ文をコピペしお怜玢し、同じような事象やそれに察する解決策がないかを探しおいたしたが、どこの行で起きおいる゚ラヌなのか、゚ラヌ文をよく読み、 debugger や console.log() などを䜿甚しお、凊理の流れを远いながら゚ラヌの原因を探しおいくこずが解決するための䞀番の近道だず気付いたこずで゚ラヌ文を芋おも冷静に察凊できるようになったず思いたす。 たずめ 泚文管理画面リニュヌアルプロゞェクトが始動しおから玄9ヶ月間、ひたすらにコヌドを曞き続けおきたしたが、肩曞きがフロント゚ンド゚ンゞニアになったばかりの頃に比べお自分は䜕か少しでも成長できおいるのだろうか、フロント゚ンド゚ンゞニアずしおの仕事がしっかりできおいるのだろうか、ず䞍安になるこずも倚々ありたした。 しかし、フロント゚ンドチヌムが発足しおから埐々に人も増え、チヌムのメンバヌが私の拙いコヌドを䞁寧にレビュヌしおくれたり、質問や悩んでいるこずがあればい぀でも聞いおくれるおかげで自分の匱点や改善点に気付き、時間はかかっおいるかもしれたせんが、埐々にできるこずも倚くなったず実感しおいたす。 たた、プロゞェクトメンバヌであるバック゚ンド゚ンゞニアやデザむナヌなど、プロゞェクトに関わる人ず同じ目線で盞談事や提案ができるようになったこずも自分の䞭では倧きな成長でした。 プロゞェクトメンバヌの䞀員ずしお、フロント゚ンド担圓ずしお、実装パタヌンが倚岐にわたる泚文管理画面の実装を完遂するこずができ、フロント゚ンド゚ンゞニアずしおの自信が぀きたした。次回携わるプロゞェクトでも今回の反省や孊んだこずを生かしお、開発を楜しみたいず思いたす 明日はCorporate Engineeringをやっおいる加賀谷さんず基盀Groupの川島さんですお楜しみに〜
この蚘事は BASE Advent Calendar 2019 の2日目の蚘事です devblog.thebase.in SREの ngsw です。 BASEはAWSを採甚しおおり、その䞭でもEC2に倧きく䟝存する郚分がありたす。EC2においおは以䞋の制玄がありたす。 DNS の制限 VPC での DNS の䜿甚 - Amazon Virtual Private Cloud DNS の制限 各 Amazon EC2 むンスタンスは Amazon が提䟛する DNS サヌバヌぞ送信できるパケット数を ネットワヌクむンタヌフェむスあたり最倧 1024 パケット/秒に制限しおいたす。 この制限を増やすこずはできたせん。 AWSのマネヌゞドサヌビスぱンドポむントの提䟛になり、その゚ンドポむントぞのアクセスに名前解決は必芁ずなりたす。BASE党䜓ぞのアクセス数は増加傟向にありたすので、名前解決詊行回数も同じく増加傟向にあるず考えお良いでしょう。 「考えお良いでしょう」ずいうのは平垞時にはこの制玄は顕圚化せず問題芖されないからです。 敎理するずここでの課題は 突発的なアクセス増にも耐えうる名前解決方法を持ちたしょう アクセス増時のスルヌプットが名前解決制玄で頭打ちにならないようにしたしょう ずいうこずになりたす。 AWS における名前解決制玄回避のベストプラクティス EC2 Linux での DNS 解決の倱敗を回避する 実際の察応方法は䞊蚘の蚘事がすべおずいっおも過蚀ではありたせん。しかしそれらがそのたた適甚できたわけでもありたせん。その差分や行間をあわせおお䌝えできたら幞いです。 そもdnsmasqっおなに dnsmasq - ArchWiki 具䜓的にはEC2むンスタンス内郚にDNSキャッシュサヌバを持぀こずができたす。簡朔に申し䞊げれば dnsmasqを起動させ 127.0.0.1:53 で応答させるこずにより圓該の名前解決制玄が回避できるずいうこずです。 念の為回避できないかもしれない状況を(掚枬ではありたすが)䞊げおおきたす。 個別のFQDN 1024個超の秒間名前解決 IPv6名前解決 も 有効な状態で個別のFQDN 512個超の秒間名前解決(郜床AレコヌドずAAAAレコヌドを解決しようずする) 今回お䌝えした手順では dnsmasq はIPv6に関しお問い合わせしないこずを確認したした。 䞻題は「dnsmasq がAWSリゟルバ問い合わせを秒間1024回超行っおしたう事自䜓は䟝然ずしお制玄されおいる」になりたす。ですからCNAMEレコヌドの郜床問い合わせやTXTレコヌドの include 蚘述なども関わっおくる問題ず考えたす。 dnsmasq 蚭定内容 以䞋にどのように蚭定したかを曞きたした。 起動プロセス名 dnsmasq 実行User dnsmasq dnsmasq UID 5353 dnsmasq GID 5353 dnsmasq蚭定ファむル /etc/dnsmasq.conf 最倧キャッシュTTL 2 最小キャッシュTTL 1 キャッシュレコヌド数 500 ネガティブキャッシュTTL 60 dnsmasq甹resolvファむル /etc/resolv.dnsmasq リゟルバIP 169.254.169.253 VPC での DNS の䜿甚 - Amazon Virtual Private Cloud dhclient蚭定ファむル /etc/dhcp/dhclient.conf timeout 300 retry 60 dhclientが蚭定するリゟルバIP 127.0.0.1, 169.254.169.253 supersede domain-name-servers 以䞋の芳点を持っおいたす。 UID / GID はわかりやすいものを dnsmasq自身のキャッシュ時間をいたずらに長くしない dnsmasqプロセスが死んだ堎合であっおもAWS倖郚リゟルバをバックアップずしお利甚しない UID / GIDに぀いお 僕自身、UID / GID は明瀺しおおきたいず考えるので明瀺した次第です。が、ここで珟行環境適甚時に問題が眮きたした。 サヌバ構成は chef で管理されおいるのですが、dnsmasq導入以前に蚭定された既存ナヌザにおいおは UID / GID が明瀺されおいない状況でした。 dnsmasq はサヌバ蚭定の早い段階で入れおおくのがよいだろうず考えたため、いの䞀番にむンストヌルしお蚭定するようレシピを曞き換えたのですが、珟圚䜿甚しおいるOSの仕様からか「UID / GIDを明瀺指定するず、それ以埌に䜜成したナヌザやグルヌプは明瀺指定IDからのむンクリメントになる」ずいうこずが起きおしたいたした。぀たり hoge 5354:5354 fuga 5355:5355 のような圢です。 これでは既存のEC2ず新芏のEC2で差分がでおしたいたす。構築時期によっおサヌバの状況が違うこずになっおしたうのはあたりいい気持ちではありたせんので、レシピ自䜓を芋盎しおすべおのナヌザにUID / GIDを明蚘するよう倉曎したした。 dnsmasq自身のキャッシュ時間に぀いお 「キャッシュ時間をいたずらに長くしない」ずいうこずに぀いおです。今回のdnsmasq導入目的は「名前解決制限ずいう制玄の解決」でした。ですので「1秒間だけキャッシュできればよく、それ以倖の副䜜甚を極力排陀する」ずいうスタンスでいたした。キャッシュ時間を長くしたずしおもおそらくはTTLなりをみおdnsmasqはよしなに動䜜しおくれるず信じおはいるのですが、怜蚌工数を最小にするために短い倀を蚭定しおいたす。 懞念を具䜓的に申し䞊げるず「dnsmasqのキャッシュ時間を長くするこずで、AWSマネヌゞド・サヌビスがオヌトスケヌルした堎合のALIASレコヌドを無芖する時間が長くなるのではないか」でした。 dnsmasqプロセスが死んだ堎合に぀いお 本来であればバックアップのDNSを倖郚に甚意したいものですが、今回はその察応を行っおいたせん。理由は「VPCオプションによるプラむベヌトホストゟヌンに䟝存しおいるから」ずなりたす。倖郚のDNSはこの情報を知り埗たせんので、問い合わせができたずころで期埅した名前解決は行われず正垞に動䜜したせん。 先にも曞きたしたが今回の目的は「名前解決制限ずいう制玄の解決」に絞っおいたすので、完璧を目指すのではなく「よりよいものをなるだけ少ない工数で」ずいう割り切りをしおいたす。 「うたく機胜しおいるのか」確かめよう 少なくずもAWSリゟルバぞの問い合わせ回数が激枛しおいるか確かめられればいいかず思いたす。僕は tcpdump で確認したした。 #!/bin/bash while : do dig +short 01endpoint.example.com > /dev/null 2 >& 1 & dig +short 02endpoint.example.com > /dev/null 2 >& 1 & dig +short 03endpoint.example.com > /dev/null 2 >& 1 & dig +short 04endpoint.example.com > /dev/null 2 >& 1 & done 䞊蚘スクリプト dig.sh 皋床でも効果はみおずれたした。 chmod +x dig.sh # dnsmasq導入前 ./dig.sh tcpdump -s 0 -i any port 53 -w dnsmasq_before.pcap # dnsmasq導入埌 ./dig.sh tcpdump -s 0 -i any port 53 -w dnsmasq_after.pcap ここで取埗できた *.pcap を wireshark や Cocoa Packet Analyzer で比范しおみたしょう。 dnsmasq before 172.31.0.2 がAWSリゟルバ 郜床問い合わせが発生しおいるこずがわかる dnsmasq after 169.254.169.253 がAWSリゟルバ 127.0.0.1 DOMAIN が dnsmasq この画像ではAWSリゟルバが存圚しない皋床にdnsmasqで完結しおいるこずがわかる 察応を終えお 前職もAWSを利甚しおいたのですが、dnsmasqではなく倖郚DNSをリゟルバ指定する察応でした。今思えば「dnsmasqの恩恵でもあるレむテンシ軜枛」を手攟しおいたのだなずすら感じたす。今回は採甚䟋(AWSベストプラクティスだから圓然なのですが)でしたがSREずいう立堎を考えるずもっずたくさんの䞍採甚䟋を持たなくおはならないなず考えたす。 「手段ず目的を取り違えるな」ずいう蚀葉がありたす。その反察偎には「手段の数ずその質こそが、䜕を目的にできるかを制玄しおいる」ずも個人的には考えおいたすので、技術職ずしおいろいろなツヌル/゜フトりェアを觊っお手数そのものを増やしおいきたい、その経隓でもっおプロダクトに貢献しおいきたいずもあわせお考えた次第です。
この蚘事は BASE Advent Calendar 2019 の1日目の蚘事です。 devblog.thebase.in こんにちはえふしんです。 11/27日に、Fukuoka Growth Nextで開催されたFGN Campに登壇しおきたした。僕ずCAMPFIREのCTOである䞭川さんが登壇し、FGNに入居するスタヌトアップである株匏䌚瀟クアンド の䞭野さんず、株匏䌚瀟トむポの小神さんのお悩みを聞くずいう圢匏のパネルディスカッションでした。 growth-next.com その䞭の質問で、「゚ンゞニアの採甚は人物重芖スキル重芖」ずいう質問がありたしたので、この蚘事で觊れおみたいず思いたす。 そもそも人間はモチベヌションで動く生き物だず思いたす。ずりわけ頭脳劎働であるプログラミングに぀いおは創造性ずセットで動くこずが必芁です。 むンタヌネット以前、プログラミングを仕事にする人の仕事が「情報凊理」が䞻流だった時代におけるプログラミングの䜜業は、補造業のメタファで蚀うブルヌカラヌ的な職皮だったのではないかず思うずころがありたす。ただコンピュヌタの凊理速床も遅く、メモリの量も少ないため安定皌働のためにスキルが芁る時代。曎にHTMLのような゚レガントな情報䌝達技術はなく、コンピュヌタフレンドリヌな゚レガントなロゞックずViewをプログラマが䜜らないずいけなかったわけですが、この頃は仕様を考えるず蚀う行為よりも、圧倒的にプログラミングの負荷が高い時代だったので、コヌドを曞く人たちは、ちゃんず動くプログラムを䜜るこずに集䞭せざるを埗ない。それが補造業的なメタファで、蚭蚈工皋ずプログラム工皋の分離が求めらおいたのだず考えられたす。 その埌、WindowsプログラミングでRADツヌルが出おきおGUIプログラミングが簡単になり、その埌、さらにHTML、CSSなどのWeb技術が出おきお、フロント゚ンドのViewずサヌバサむドのロゞックは、その専門職毎の職胜ずしお分離されるこずになりたした。Webの技術は少々、コヌドをミスっおもブラりザが萜ちるなんおこずはありたせん。トラむアンド゚ラヌのしやすさず衚珟力が増えたこずで競争原理が働き、ナヌザヌにずっおは衚珟力豊かで䜿いやすい機胜を享受するきっかけになりたす。 そうなるずむンタヌネット時代のプロダクトは、コヌドを通じお䜜り手の創造性を衚珟する舞台ずしおの芁玠が高たりたす。結果、競争力の源泉ずしお䜜り手のビゞョンが重芁、いわゆる詳现蚭蚈ずコヌドが同時に曞かれるこずも増え、ある皮の即興劇ずしおのプログラミングが重芁な時代になりたした。特にスタヌトアップの初期であればあるほど、プロダクトオヌナヌである経営者が最初にコヌドを曞くこずが求められるなど、プロダクトマヌケットフィットを実珟しナヌザに刺さるプロダクトが䜜れるこずの方が倧切になりたす。 これはいわゆるナヌザ䜓隓 = ナヌザ゚クスペリ゚ンスが重芁であるずいうこずを瀺しおいたす。 そういう時代においおは、ナヌザのこずを意識しお、ナヌザさんに喜んでいただけるプロダクトづくりをポゞティブに進めなくおはいけたせん。 さお、ここたで技術力ずいう蚀葉が䞀蚀もでおいないこずに気が付きたしたか Webを支えるバック゚ンドの技術やフロント゚ンドの技術はずおも重芁です。技術の移り倉わりも激しく、継続するWebサヌビスにずっおはむンタヌネットトレンドの倉化に察しお垞に最前線でいるためには技術力が必芁です。 ずころが、その技術力で支えられるWebのプロダクトは、よりよいナヌザ䜓隓を実珟しおなんがです。どんなに安定したシステムもナヌザさんが䜿っおくださらないず存圚する意味がありたせん。そしお、そのプロダクトのナヌザ䜓隓は、その䌚瀟の文化や思想によっお生み出されたす。その䌚瀟のカルチャヌやプロダクト思想に共感し、賛同した䞊で、高床な技術を䜿っおプロダクトを支えるわけです。 ぀たり、人物重芖か、スキル重芖か、ずいうず生産性は掛け算になりたす。 アりトプットの生産性 = その人がポゞティブに動けるこず x スキル アりトプットを実珟するためのスキルレベルは専門領域によっお倉わるので、スキルは圹割を叞るパラメヌタだず思っおもらうのが良いず思いたす。それに察しお、その人の脳内物質がポゞティブになっおいなければ、その人がどんなに高いスキルを持っおいおも、よいアりトプットには恵たれたせん。 たた゜ヌスコヌドを生み出すための劎働生産性ずいう芖点では、知識劎働者ずいう人間のスペックに察しお100%たでが限界です。぀たり、最速の開発を実珟するためには、脳内の集䞭力ず皌働率を100%に近づけるこずが理想です。そのためにも、䜜るものに察しおネガティブ物質が脳内に分泌されおしたい䜙蚈な思考に邪魔されないこずが倧前提になるず思いたす。 それ故に、゚ンゞニアリングマネヌゞャしかり、プロダクトマネヌゞャやディレクタヌは、各メンバヌが楜しくポゞティブに働けるような環境぀くりや、プロダクトの方向性を瀺しおいく必芁がありたすし、そこに共感可胜な人材だけが、よいアりトプットを生み出すずいうこずになりたす。 厳栌で真面目な人は「仕事」においお「モチベヌション」などずいうパラメヌタを持ち出すのはけしからんずいう人もいらっしゃるのですが、我々のプロダクトがナヌザ䜓隓を志向する限り、ナヌザさんに寄り添っおプロダクトを䜜れなければ゚ラヌ凊理䞀぀取っおもむケおない実装になるず思いたすし、やはりポゞティブなモチベヌションは無芖できないかなず思いたす。 もし、そこに期埅できない堎合は、゚ラヌ凊理䞀぀たで蚭蚈でガチガチに固めるしかなく、いわゆるりォヌタヌフォヌル圢匏で開発せざるを埗なくなるわけですが、Webの゚ンゞニアがそれを嫌うのは皆様、埡存知の通り。アゞャむルずか様々な開発手法は提案されおいるず思いたすが、その䞋地に、メンバヌの高いモチベヌションを生み出すこずが倧前提であるずいうこずは、あたり語られおいたせん。 なので、冒頭の質問の回答をするず、 「もちろんスキルは必芁だが、それよりも圧倒的に人物の方が重芖、䜕が重芖かずいうず䜜るものや我々のプロダクトの考え方に察するカルチャヌフィットこそが重芁」 ずいう回答になるず思いたす。我々の䞭では、「むンタヌネットが奜き」ずいうのは぀の採甚基準になっおいたす。むンタヌネットに぀ながるプロダクトに察する造詣が深いからこそ、ナヌザに察しおもコンピュヌタに察しおもホスピタリティの高いプロダクトを䜜るこずができ、結果ずしおの工数最適化、手戻りの少なさに぀ながるわけです。
この蚘事は BASE Advent Calendar 2019 の1日目の蚘事です。 devblog.thebase.in こんにちは。BASE BANK株匏䌚瀟でプロダクトマネヌゞャヌをしおいる柳川 @gimupop です。 盎近では、即時に資金調達ができる金融サヌビス「 YELL BANK゚ヌルバンク 」ずいうプロダクトのグロヌス斜策に取り組んでいたす。 今回はアドベントカレンダヌずいうこずで、今幎僕個人にずっお䞀番倧きな倉化であった、サヌバヌサむド゚ンゞニアからプロダクトマネヌゞャヌにゞョブチェンゞしたこずを題材に蚘事を曞きたす。 プロダクトマネヌゞャヌになった顛末 僕はもずもず新卒時から、サヌバヌサむド゚ンゞニアずしお働いおいたした。䌚瀟の雰囲気はそれぞれ違っおいお、どちらかずいうず゚ンゞニアの圹割が限定的な䌚瀟で働いおいたした。BASE入瀟埌もサヌバヌサむド゚ンゞニアずしお入瀟し働いおいたしたが、BASEは今たでの䌚瀟ずは違いたした。 䞀人の゚ンゞニアが芋る範囲が比范的広いこず プロダクトの成長にかける情熱が匷いこず 䞊蚘2点が特に感じた違いです。この違いは僕の狙い通りのこずで、ずおも気持ちよく働けたした。そのように働くうちに、より匷くプロダクトの成長にコミットしたいず考えるようになりたした。今も携わっおいるプロダクトである「YELL BANK」の新芏開発では、プロダクトのビゞョンの郚分を持぀䌁画担圓者ずずもにそれを具䜓化する圹割をもっお動いおいたした。仕様䜜成、蚭蚈、実装、QAたで特定の圹割に固執せず、メンバヌず協力しながら開発を進めおいきたした。そしおリリヌス埌、いろいろな線が繋がり、2019幎7月から、正匏にプロダクトマネヌゞャヌに就任したした。 プロダクトマネヌゞャヌずしお詊行錯誀する䞭での気付き プロダクトマネヌゞャヌは、プロダクトの責任者ずしおたわりから芋られる 圹職名が明らかになったので、僕がプロダクトに責任を持぀こずが明確になり、他のチヌムから情報が集たりやすくなりたした。たた他のチヌムに協力をお願いする際も違和感がなくなり、スムヌズに話が進むようになりたした。肩曞でたわりからの芋られ方が倉わるずいう経隓でした。 プロダクトマネヌゞャヌは、チヌムを䜜る 僕が゚ンゞニアからプロダクトマネヌゞャヌになるこずで、圓然ながら゚ンゞニアの数が枛りたした。実質2足のわらじ状態になっおしたい、開発にかけられる工数は萜ち、新たに期埅される圹割に埓事するのにも時間がかかりたした。 その状況を改善する手段の䞀぀しお、人の採甚がありたす。採甚掻動の䞭で良い瞁があり、珟圚でぱンゞニアのメンバヌが1名増えたした。䞀時的に苊しい状況にはなりたしたが、結果ずしお以前よりも曎に匷いチヌムになっおいる実感がありたす。プロダクトの未来を描く䞊で、チヌムの未来を描くこずも必芁であるず気が付きたした。 プロダクトマネヌゞャヌは、プロダクトの成長段階の最先端にいる プロダクトの成長段階の倉化に気が぀くのに遅れお、開発に停滞感をあたえおしたいたした。自分の圹割が倉わるのず近い時期で、プロダクトの段階にも倉化がありたした。新芏の機胜開発のフェヌズから、プロダクトグロヌスのフェヌズぞの倉化です。 そのフェヌズでは、闇雲に機胜開発をするのではなく、状況を捉えるずいうこずが必芁でした。゚ンゞニアずしお関わるのであれば、プロダクト段階がどうであれ、実珟したい機胜が目の前に珟れお、それをどのように実珟するかずいう郚分に集䞭すれば問題ありたせんでした。しかしプロダクトマネヌゞャヌは、プロダクト状況の倉化を真っ先に捉え、やり方を倉化させながら斜策を考えお、プロダクトの成長を匕っ匵っおいかなくおはなりたせん。 自分の決断が、プロダクトの成長スピヌドに深く結び぀いおいるこずに気が付きたした。 プロダクトマネヌゞャは、Howにより過ぎない ゚ンゞニアずしお働いおいたキャリアは、゚ンゞニアメンバヌずのコミュニケヌションの取りやすさや、機胜の取捚遞択の刀断や、SQLが曞ける等あり、ストロングポむントです。しかし具䜓的にどう䜜るかずいうこずを考えすぎるず、決断が遅れるこずにもなるし、実装の容易さ等を考えすぎ、機胜の内容自䜓にも圱響しおきたす。䜕がしたいかずいう芁求を明確にしお、その他は考えすぎず他のメンバヌず盞談しながら進めるべきずいうこずに気が付きたした。 プロダクトマネヌゞャヌは、リズムを䜜る プロダクト開発は、ずきにマンネリ化したす。特にプロゞェクトが長期化するほど、それこそグロヌスフェヌズにおいおはマンネリ化しがちです。そういう堎合にリズムを䜜り出すこずも、プロダクトマネヌゞャヌの重芁な仕事だず思いたした。 未来の蚈画を立おお、珟圚やっおいるこずず未来ずの぀ながりを定期的に明確にするこず 日々の目暙を立おお、それを目に芋える圢にしお小さな達成感を出しおいくこず 䞊蚘のようなこずを気にしながらプロダクト開発を䞻導しおいくず、比范的フレッシュな気持ちでチヌムが課題に取り組めるこずに気が付きたした。 プロダクトマネヌゞャヌは、プロダクトのこずを考え続け未来を芋る 来幎床の事業蚈画を䜜る䞭で、プロダクトマネヌゞャヌは、より未来を芋なければならないずいうこずを意識したした。その際の思考の流れの䞭で、未来のビゞョンを䜜るには、過去のデヌタず珟状をより深く知らなればいけないずいうこずに気が付きたした。より深く誰よりもプロダクトのこずを考えるのが、未来を䜜るプロダクトマネヌゞャヌの仕事であるずいうこずに気が付きたした。 今埌 半幎間詊行錯誀する䞭でも、これだけの気付きがありたした。ただ気付きを埗るこずが仕事なのではなく、適切なアりトプットを出し続けるこずが必芁です。これらの気付きを掻かし぀぀、垞にれロベヌスで匕き続きプロダクトマネヌゞャヌずしお、チヌムでプロダクトを成長させおいきたす。
この蚘事は BASE Advent Calendar 2019 の1日目の蚘事です。 devblog.thebase.in こんにちは。はじめたしお。 Product Dev Divisionで゚ンゞニアリングマネヌゞャヌをしおいる山厎ず申したす。 BASEに入瀟しお1幎半ほどになりたす。入瀟埌はWebアプリケヌション゚ンゞニアずしおEコマヌスプラットフォヌム「BASEベむス」のバック゚ンド開発をする傍ら、PJの開発ディレクションやチヌム䜜り・組織䜜りに取り組んできたした。 私ごずですが、今幎の6月に第䞀子が生たれたした。そしお子の誕生に合わせお2ヶ月半の育䌑を取埗したした。短い期間でしたが、父芪ずしおも、゚ンゞニアマネヌゞャヌずしおも、孊びが倚い期間でした。このずきの䜓隓が誰かの圹に立おばず思い、育䌑取埗に぀いお曞くこずにしたした。 私の育䌑取埗蚘 BASEにおける男性の育䌑取埗に぀いお BASEにおいお、男性瀟員で初めお育䌑を取埗したのは珟圚の私の䞊叞である菊地でした。 菊地が育䌑を取埗したずきの䜓隓はこちらにたずたっおいたす。 「日本のパパに、育䌑のススメ私の育䌑䜓隓蚘」 圓時菊地はいち゚ンゞニアであったため、今回、私は男性か぀管理職ずしおは初めお育䌑を取埗したした。 なぜ育䌑を取ろうず思ったか 厚生劎働省の調査 によるず、男性の正瀟員が育䌑を取埗しなかった理由のTOP3は以䞋です。 職堎が育児䌑業制床を取埗しづらい雰囲気だったから 䌚瀟で育児䌑業制床が敎備されおいなかったから 残業が倚い等、業務が繁忙であったため  平成29幎版 少子化瀟䌚察策癜曞 第2ç«  第4節 より 芋おいただくずわかる通り、職堎環境に関する理由が倚く挙げられおいたす。 私自身も育䌑取埗を決意する前は 育䌑取埗を蚀い出したらどういう反応が返っおくるだろう 忙しいのに数ヶ月単䜍で育䌑を取埗するのは気が匕ける 自分がいない間に問題が起きたらどうしよう 数ヶ月も䌑んだら珟堎感を倱っおしたう チヌムにJOINしたばかりのメンバヌにずっお䞊叞がすぐにいなくなるような環境っおどうなんだろう ずいったこずを悩んでいたした。 取埗を決意したきっかけは䞊述した 菊地の蚘事 でした。 育䌑期間䞭の1.5ヶ月は嚘の成長を間近で芋るこずができ、私の人生においお生涯忘れないであろうかけがえのない日々ずなりたした。 生たれたばかりの子の成長を間近で芋るこずができるのはこのタむミングしかありたせん。たた、育児に぀いお劻任せにするのではなく、自分もフルタむムで参加したいず思いたした。 䞊叞に盞談 育䌑取埗を決意し䞊叞に盞談したのが2019幎初頭でした。圓時の䞊叞であった 藀川 圓時CTO珟EVP of Developmentに盞談したずころ「おめでずう匕き継ぎを進めおいこう」ず気持ちよく蚀っおもらえたした。䞍安が吹き飛び、背䞭を抌されたような気持ちになったこずを芚えおいたす。 育䌑前の匕き継ぎ 圓時の私の仕事は以䞋のようなものでした。 「BASE」のバック゚ンド開発ず開発ディレクション マネヌゞャヌ業務 (採甚掻動1on1評䟡メンバヌの成長支揎ミヌティング運甚etc) 準備期間を半幎ほど取るこずができたしたので、結果的に、どのタスクもきちんず匕き継いでいただくこずができたした。匕き継ぎ期間を長めに取るこずができたので、匕き継ぎ内容の資料䜜成ず共有に時間をかけるこずができたのが倧きかったず思いたす。たた、匕き継ぎに関わった方々が育䌑取埗に理解を瀺しおくれお、か぀協力的だったのが非垞にありがたかったです。 マネヌゞャヌ業務に぀いおは少し悩みたした。 たずえば、採甚掻動はチヌムを䜜る䞊で非垞に重芁な業務です。私は採甚フロヌに関わっおいたため、この郚分を誰かに匕き継ぐこずなどできるのだろうか、匕き継いだずしお䞍圚の間の採甚掻動はうたく進むのだろうか、ず頭を抱えたした。しかし、採甚基準に぀いおは普段からマネヌゞャヌ同士で認識を合わせるようにしおいたので、問題なく匕き継ぎできたした。 結果、たわりのメンバヌの協力を埗ながら、すべおの業務を育䌑前たでに匕き継ぎするこずができたした。 ※ 少し脱線したすが、゚ンゞニアリングマネヌゞャヌに぀いおは匊瀟Tech Blogのこちらの蚘事も合わせお読んでいただければず思いたす 【EOF2019資料公開】瀟員100人芏暡のWebサヌビスにおける゚ンゞニアリングマネゞメント ゚ンゞニアずしおワクワクし続けるための゚ンゞニアリングマネヌゞャずいう圹割分担 育䌑䞭 感じたこずをいく぀か曞きたす。 たず育児の忙しさに぀いおです。よく「育児しおいるより仕事の方が楜」「育児以倖の時間はずれない」などず蚀われるこずがありたす。 育䌑前は、息抜きの時間が少しくらいあるかな、ずいう軜い気持ちがありたした。しかし、育䌑に入るずそのような時間はたったくありたせんでした。昌倜問わず3時間毎の授乳・ミルク、オムツ替え、お颚呂、寝かし぀け。これ以倖にも家事党般など。自分のペヌスで生掻リズムを䜜れないのが䞀番倧倉でした。出産盎埌の劻がこれらすべおを1人でこなすずなるず、粟神的にも䜓力的にも盞圓な困難であったず思いたす。 たた、子を怜蚺に぀れおいったずきの゚ピ゜ヌドです。 お医者さん・助産垫さん・保健垫さんに、私が育䌑を2ヶ月半取埗しおいるこずをお話しするず「先進的な䌚瀟ですね」「珍しいですね」「ITの䌚瀟だから家でお仕事されおいるんですか」ずいった反応をされるこずがありたした。 厚生劎働省の調査によるず、男性の育䌑取埗率が6.16%です。そのうち1ヶ月以䞊の期間をずっおいる割合が18.9%です。このこずを考慮するず圓然の反応かもしれたせん。  平成30幎床雇甚均等基本調査 より 平日にショッピングモヌルのベビヌ甚品店に行く機䌚が䜕床もあったのですが、赀ちゃんが父芪ず䞀緒にいる姿を芋かけたのは、本圓に数えるくらいしかありたせんでした。 男性で長期間育䌑を取埗する人が少ないこずを実感したした。 埩垰 明日埩垰する旚を䌚瀟のメンバヌにSlackで䌝えたずきの様子です。 Slack以倖でも、埩垰初日にオフィスを歩いおいるずきにたくさんの方々から「おかえりなさい」ず声をかけおいただきたした。 2ヶ月半ずはいえ、䌚瀟ずのコンタクトもたったくなく、業務も䞀切しおいなかったため、埩垰初日は緊匵しお出瀟したした。䌚瀟のみなさんから声をかけおもらえるこずが本圓にうれしかったです。 埩垰盎埌は、仕事を匕き継いでいた方ずの1on1を䞭心にキャッチアップを進めたした。結果、1ヶ月皋床でもずの業務に埩垰するこずができたした。 たた、私がいない間に仕事の䞀郚を肩代わりしおくれおいたメンバヌがこの短期間でものすごく成長しおいお、非垞に頌もしかったです。仕事を思い切っお割り振った結果、メンバヌが責任をもっお仕事を進めおくれ、たたそのメンバヌの成長も芋るこずができお、嬉しい限りでした逆に私がいないこずによっお、このような成長をするこずもあるのだな、ず気づくこずができたした。 育䌑取埗に必芁なものっお 「配偶者の出産盎埌の䌑暇取埗を促進するために必芁なこずはなにか」ずいう問いに、倚くの男性が「䌑暇を取りやすい職堎であるこず」ず回答したそうです。たた、他にも職堎に関する回答が続いおいたす。  平成29幎版 少子化瀟䌚察策癜曞 第2ç«  第4節 より たしかに、私が育䌑を取埗できたのは、育䌑を取埗しやすい環境が敎っおいたからかなず思いたす。ずくに、圓時の䞊叞取締圹の藀川が育䌑取埗に぀いお理解を瀺しおくれたり、瀟内に男性の育䌑取埗者がいたりしたこずが倧きかったです。 䜙談ですが私が育䌑を取埗したあず、管理職を含め耇数名の男性瀟員が数ヶ月単䜍で育䌑を取埗しおいたす。私の育䌑取埗の䜓隓が、少しでも他の男性瀟員の育䌑取埗の埌抌しになっおいたのであれば嬉しいです。 最埌に 2ヶ月半の間、父ずしおかけがえのない時間を過ごすこずができたした。生たれたばかりの子の成長を間近で芋れたこずは、人生の宝物です。 この䜓隓をもずに、今埌はマネヌゞャヌずしお、メンバヌのみなさんが育䌑を取埗しやすい環境䜜りに取り組んでいきたいず思いたす。 以䞊、私の育䌑取埗に぀いおお話ししおみたした。これから育䌑取埗を考えおいる方の参考に少しでもなれば幞いです。
前曞き フロント゚ンド゚ンゞニアの束原( @simezi9 )です。 先日10月30日にクラりドワヌクスさんをお借りしお実斜したVue.jsの蚭蚈勉匷䌚である、 Vue.jsアヌキテクチャリング勉匷䌚 にお、 BASEの珟圚のVueコンポヌネントの蚭蚈に関しお登壇しおお話しおきたした。 党䜓の資料はこちら です もずもずBASEではVue.js+TSを採甚した倧芏暡なシステムのリニュヌアルプロゞェクトが2018幎からスタヌトしおいたした。それにあたっおの倧たかなフロント゚ンドの構築方針は以前もblogや倖郚登壇で発衚しおいたした。 次䞖代の管理画面を䜜るフロント゚ンドの取り組み - BASE開発チヌムブログ 次の5幎を支えるVue.js補UIコンポヌネントラむブラリを育おる これたでの発衚では倧枠の技術スタックやワヌクフロヌの話が倚かったですが、 今回はVueコンポヌネントの蚭蚈が勉匷䌚の䞻県にあったこずもあり、もう少しミクロな芳点からVueコンポヌネントを䜜る䞊で積み䞊げおきた知芋を発衚するこずになりたした。 BASEのコンポヌネント蚭蚈 スラむド内でも時間を割いお玹介しおいたすが、BASEのVueコンポヌネントは倧きく4皮類に分かれおいたす。 もずもずはAtomicDesignの考え方を䞭心にしたコンポヌネント蚭蚈からスタヌトしたしたが、 Atomic Designの考え方はWebアプリのデザむンを䜜る䞊で有効ではあるものの、実装ずいう芳点でいけばそれだけではうたくいかないのではずいう疑問にぶ぀かり、 最終的にPresentational Component / Container Componentの考えを基準ずしお、そこからそれぞれのコンポヌネントのレむダをAtomic Designの語圙を取り入れながら分解したこずで珟圚のような圢になっおいたす。 今回登壇するにあたっおの個人的な裏テヌマずしお、 「Atomic Designを採甚しおいる話はよく聞くけれど、玔粋にそれだけでうたく回しおいる珟堎はどれだけあるんだろうか」 ずいうのを聞いおみたいずいうものがありたした。 実際の発衚でもそのような内容に觊れおその埌の懇芪䌚で話を聞いたずころ、玔粋なAtomic Designではなく䜕らかの手を加えた開発をしおいるプロゞェクトのほうが倚そうな印象を受けたした。 Atomic DesignはモダンWebアプリデザむンの蚭蚈手法ずしお倧きく普及したむメヌゞはありたすが、 実際の実装ずの間を぀なぐプラクティスはただ䞍足しおいお、実際にはただ手探りな郚分も倚いのかな、ずいうような郚分を実感したした。 Storybookの敎備 玔粋な蚭蚈の話ずは少しずれおしたう郚分はあるのですが、珟代のフロント゚ンド開発の暙準装備になり぀぀あるStorybookの実装に぀いおもお話させおいただきたした。 Storybookの導入話は芋かけるこずはあっおも、各プロゞェクトで思い思いの䜿い方をされおいお、プラクティスや運甚を実際に蚀語化しおいる話はそれほど倚く芋かけないような気がしおいたので、自分が開発しおいる䞭での思いをスラむドにしたした。 Storybookをデザむナヌず゚ンゞニアがコミュニケヌションを取るための土台にしおいきたい、ずいう思いはプロゞェクト開始圓初から持っおいたものの、 実際に開発しおいっおもなかなかそれがうたくいかず、その原因はなんだろうずいうのを考えたものになっおいたす。 スラむドでは「サンドボックス」性ず「カタログ」性ずいう蚀葉を䜿っお自分の考えを衚珟しおみたした。 Storybookぞの実装には、実際にそれを利甚するナヌザヌデザむナヌだったりコンポヌネントを組み蟌む゚ンゞニアだったりにむけた 「おもおなしの気持ち」 をプロダクトやサヌビスに向けるものず同様に持っおいかないずいけないな、ずいうのが個人的には結論になっおいたりしたす。 各瀟のstorybookチラ芋せナむトずかやっおみおほしい — 〆 (@simezi9) August 5, 2019 StorybookもAtomic Design同様にもっず珟堎でのプラクティスの話が増えおくるずいいなず思っおいたす。 実装のtips 最埌に実装のtipsずしおあたりWebでは芋かけないけど個人的にベタヌプラクティスだず思っおいるVue.jsの実装のトピックをいく぀か小ネタずしお玹介させおいただきたした。 䞀番蚀いたかったこずは、 コンポヌネントの良さは共通化ではなくお責務の分離 ずいうポ゚ム性が高い郚分なのですが、 それだけだず抜象的すぎお面癜くないかなず思ったので、Eventの名前の付け方や、payloadの枡し方、aria属性を䜿ったスタむリングなど実甚頻床が高いけど案倖解説蚘事が芋る機䌚の少ないず思っおいるものを遞んで取り䞊げおみたした。 特にVue.jsのスコヌプ付きスロットは解説が少なくずっ぀きにくい抂念ではあるものの、䞀床扱えるようになるず非垞に匷力な蚭蚈の歊噚ずなるのでぜひ取り䞊げたかったものになりたす。 このスラむドでずりあげおいる実装テクニック自䜓は Vuex や Vuetify などのOSSラむブラリの実装をかなり参考にさせおもらっおいるものもあり、 こうした実装tipsに興味のある方はGithubを芗いおみるのがずおもオススメです。 特にVuetifyは実装がよく緎られおいお質が高いのではないかず思っおいたす。 さいごに 今回スラむドずしおたずめお登壇する機䌚をくださった勉匷䌚運営スタッフの皆様に改めお感謝するずずもに、 ただただ手探りを続けながら発展しおいくであろうBASEのフロント゚ンド開発に 䞀緒に携わっおいきたいずいう方も募集しおいる ので 興味のある方はぜひお声がけいただければず思っおいたす
こんにちは、Design Groupに所属しおいる森 @ mrkzk です 少し前に BASEでブランドプロゞェクト始めたした ずいう蚘事を公開したのですが、今回はその䞀環で行われた 名刺リニュヌアル にフォヌカスしおお話ししたいず思いたす。 なぜ名刺リニュヌアルを行ったのか 勉匷䌚やミヌトアップでたびたび「可愛い」ずお耒めいただくBASEのこの名刺 実はこの名刺、代衚の鶎岡がデザむンしたものなんです、BASEのマルチカラヌ党開で可愛いですよね。 可愛い。可愛いのですがよくよく芋るず、、珟圚のブランドガむドラむン䞊だずブランドを毀損しおいるこずになりたす。そしおちょっず情報が倚い。 今回のリニュヌアルではブランドプロゞェクトの䞀環でこの背景に溶け蟌んでしたったティピを救いBASEのブランドを守るこずをメむンに、プラスでBASEのそれぞれの個性や、ニュヌトラルな印象を萜ずし蟌んだデザむンに倉曎するこずにしたした たずはプラむオリティ高めのブランド保持ずデザむンの方向性 今回のメむンであるブランド保持のための倉曎ず、理想をリストアップ 珟状 ブランドが守られおいない溶け蟌みティピ、BASEずいう文字単䜓での䜿甚 名刺の情報に制限がなく人それぞれで情報量が倚すぎるこずがある トレンドからやや倖れおきおいる 圓初遞んだ玙や印刷からどんどん倖れおいき、クオリティにムラがある SNSアカりントの蚘入が任意なので、人それぞれバラバラ 理想 ブランドガむドラむンに沿ったもの フォント、ロゎを正しく䜿う BASEのフレンドリヌさはそのたたに今っぜく マルチカラヌを生かしたフレンドリヌな雰囲気はそのたたに、個性ずニュヌトラル感のあるもの 広い䞖界に向けお グロヌバルを意識し、英語衚蚘も䜜成 玙質ず色の再珟 名刺亀換をした盞手の方が思わず觊りたくなる玙質か぀、マルチカラヌの淡い色をしっかり再珟できる印刷 リニュヌアルにあたっお行ったこず 名刺を配る機䌚が倚いカスタマヌサクセス、゚ンゞニアのメンバヌにヒアリング 過去に名刺で困った゚ピ゜ヌドやあったらいいな、ずいう芁望を聞いたり 他瀟さんの名刺を研究 玠敵なずころをリストアップしたり 業者遞び 仕䞊がりや玍期、初回150名分のデヌタ入皿に適しおいるかなど 玙遞び 手觊り重芖そしおロゎの発色が綺麗に衚珟できるかを芋極めるのが難しい・・・ 個性の衚珟 特殊な印刷方法を採甚するなど、BASEらしさの衚珟 運甚方法 非デザむナヌでも情報を修正したり远加したりできるような、誰が運甚しおも䞀定のクオリティを維持できる運甚方法 など、様々な過皋がありたしたが。蚘事の䞭ではいく぀かピックアップし぀぀お話したす 名刺デヌタ運甚の懞念ず解決策 懞念 デザむンだけでなく名刺デヌタを運甚しおいく際の懞念もありたした。 BASEの名刺はAiデヌタでテンプレヌト化されおおり、新入瀟員分の発泚や既存の名刺の肩曞き倉曎を行う際にもデザむナヌデヌタを倉曎するこずがなくずおもありがたいこずにHRのメンバヌが情報を流し蟌み、入皿しおくれおいたす。 ですが、ここ数幎で郚眲名が倉曎されたり、肩曞きなども现分化されおいったこずでリニュヌアル前のテンプレヌトデザむンでは既存の運甚が担保できなくなっおいる箇所がいく぀かあったりず、改善が必芁でした。 たた、SNSアカりントの数や皮類にルヌルがなく、人によっお情報がマチマチなので運甚が倧倉、なのでSNSは廃止しようずメモを公開したずころ、、 このように゚ンゞニアさんから匷い芁望があったのでこちらも残し぀぀ルヌルを蚭けおスッキリさせるこずにしたした 解決策 ずいう経緯を元に、今回テンプレヌトを、 テンプレヌト兌入皿デヌタ にするこずに。 【必須】郚眲名や肩曞き行or行、名前 【任意】電話番号、メヌルアドレス、SNSアカりントFacebook,Twitter,GitHub,Instagram で構成し、電話番号、メヌルアドレス、SNSそれぞれ任意であり、SNSを茉せる堎合には䞀぀だけ遞ぶずいうルヌルを蚭けたした。 たた、人によっお情報が぀だったり぀だったり、SNSの指定もそれぞれですが、 ぀だったテンプレヌトを - 肩曞き行 - 肩曞き行 の぀に増やしたした。 そしお項目Maxの぀を電話番号から順にテキストで甚意し、䞍芁なものは消す、ずいう少しアナログな圢匏ではありたすが非デザむナヌでも扱いやすいテンプレヌトにしたした。 たた、むンプット、削陀をしやすいよう、すべおをテキスト情報に倉換するため、電話番号やSNSアカりントなどのアむコンは FontAwesome でテキストずしお出力しおいたす。 さわる必芁のないロゎや䌚瀟情報はズレおしたうず困るのでレむダヌでロックしおいたす 詊䜜に詊䜜を重ね完成 色味や角䞞の綺麗さを芋るため小ロットでいく぀かの業者にお願いし詊䜜を繰り返し、 その䞭でもっずも玙の手觊りがよく、しっかり色が出た業者さんを遞びたしたそれがこちらです (諞事情により独特な配眮ずなっおおりたすがご愛嬌) 色展開 BASEのロゎであるマルチカラヌから遞べる色でメンバヌの個性を衚珟 玙質 しっずりず手に銎染み思わず撫でたくなるようなラミネヌト加工 デザむン 暪向きでトレンドか぀BASEのニュヌトラルな印象を衚珟 日英察応 衚は日本語衚蚘、裏面カラヌは英語衚蚘 最埌に ざっくりずした流れではありたすが以䞊がリニュヌアル内容です。 5月䞋旬から始動しお手元に届いたのが8月䞭旬だったので時間にしお2ヶ月半匱かかりたしたが、発色も良く可愛くできおいるし、䜕より䞀番懞念しおいた運甚も、人事からは「テンプレ分かりやすい」ずのリアクションをもらい、今のずころ問題なくたわっおいそうなのでやっおよかったヌず達成感に溢れおおりたす BASEのメンバヌず名刺亀換のお盞手の間に今たで以䞊に玠敵なコミュニケヌションが生たれたすように
こんにちは、はじめたしお、お久しぶりです BASE BANK株匏䌚瀟 にお゜フトりェア゚ンゞニアをしおいる東口 @hgsgtk です。2019幎11月7日朚〜11月10日日にCakePHPの囜際カンファレンス CakeFest 2019 が、日本で開催されたした。私は、スピヌカヌずしお参加したのですが、初めお30分匷、囜際カンファレンスで話す機䌚ずなったので、発衚のために準備したこずや反省点も螏たえお、参加レポヌトをお届けしたす。 CakeFest 2019 CakeFest 2019 ずは、PHP補りェブフレヌムワヌクの䞀぀である CakePHP の囜際カンファレンスです。幎に1回開催されおおり、今回は初めお日本での開催ずなりたした。 cakefest.org CakeFest 2019は、Workshop dayが2日、Conference dayが2日の合蚈4日間でした。WorkshopはDMM.comさんのオフィスが䌚堎で、Conference dayはSmartNewsさんのオフィスが䌚堎になりたした。 私は、Conference dayからCakeFest 2019に参加したした。 ノベルティが豪華で、CakeFestの ElePHPant 緑色の象ず、CakePHPのノヌトなどをもらえたした。 たた、私はスピヌカヌ参加だったのですが、スピヌカヌは、あたり䞖に出回っおいないず噂のCakeDCのElePHPant青色の象も貰えたした たた、ネックストラップ・名札もおしゃれです。今回、BASEは、シルバヌスポンサヌ・ランダヌドスポンサヌずしお協賛しおいたので、ネックストラップには BASE のサヌビスロゎを入れおいただいおいたす。CakePHPのFounderの Larry Masters さんなど、普段お䞖話になっおいるOSSのコアメンバヌの方が、自瀟のロゎの入ったネックストラップを぀けおいる光景は倧倉感慚深い光景でした。 basebook.binc.jp たた、今回、参加したBASEの゚ンゞニア4名で、 Larry Masters さんず蚘念撮圱しおいただきたした 最終日には、CakePHPのケヌキが参加者党員に振る舞われたした。 Presentation Kazuki Higashiguchi is speaking now about how to avoid the pain of test code. #CakeFest2019 #cakePHP #japan pic.twitter.com/Umo9unL7gg — CakePHP (@cakephp) November 9, 2019 私は、Conference day初日の11月9日の倕方に35分ほど、 Test-Driven Development to avoid test painful ずいう話をしたした。 「テストが぀らい」ずいう状況に察しお、TDDTest-Driven Developmentがどのように䜿えるのかを説明する内容です。TDD自䜓の説明には、珟圚beta4がリリヌスされおいる CakePHP4.0 のサンプルコヌドを甚いお、ラむブコヌディングを行いたした。 資料 資料には、ラむブコヌディングでその堎で話した郚分も入れおいたす。TDDのアプロヌチを行うこずで、テストからコヌド蚭蚈に察するフィヌドバックを受けるこずができたす。蚭蚈道具ずしおテストを䜿える点が䌝われば幞いです。 ラむブコヌディング䞭に䜿甚したサンプルコヌドは、GitHubの䞋蚘のレポゞトリに公開しおいたす。基瀎ずなる内容は、CakePHPのチュヌトリアルずなっおいる Content Management Tutorial で、これにデモするための機胜を远加したコヌドになっおいたす。 github.com CakePHPは、開発䞭最新の 4.x-dev のbranchを利甚したした。もずもずは、バヌゞョン3.5を利甚しおいたコヌドだったので、4.0ぞのバヌゞョンアップもこの発衚機䌚を機に実斜したした。バヌゞョンアップしおみお気が぀いた点などは、別途12月の CakePHP Advent Calendar 2019 でブログを曞きたす。 発衚埌の反応 発衚埌、「良かった」ずいうフィヌドバックをいただくこずができたした。たた、Twitterを゚ゎサするず、「ラむブコヌディングが参考になった」・「TDDやっおいくぞ」ずいった反応があったので、䜕かしら参考になっおポゞティブな圱響を䞎えられたような発衚になった気がしたす、、、 ラむブコヌディング、すごく参考になった #cakefest2019 — morgan (@idubmorgan) November 9, 2019 Your speech had a positive impact on me!! Thank! — 神谷 暉士 / Gunji Kamiya (@GunjiKamiya) November 10, 2019 うちの䌚瀟でもドンドン、TDD実践しおいきたい #CakeFest2019 — カンボ🏝沖瞄@Web゚ンゞニア (@kanbo0605) November 9, 2019 準備 CakeFest 2019は、初めお英語で30分匷話す機䌚でした。「カンファレンスで英語でトヌクしたい」ず思っおいる方は朜圚的に倚いず思うので、今回どのように準備したか玹介したいず思いたす。 瀟内で゚ンゞニア英語勉匷䌚を開催した ずにもかくにも、先人たちのカンファレンスでのトヌクを芋お、英語でのフレヌズずか雰囲気に慣れおいきたいずころがあったので、継続的か぀定期的に孊ぶために、瀟内で゚ンゞニア英語勉匷䌚を始めたした。6月から半幎間毎週、TEDのトヌクやテックカンファレンスのトヌクを聞きたした。 半幎継続したおかげで、6月圓初は「ほずんどわからん...!」ずなっおいた状態だったのが、「なんずなくこういうこず蚀っおるよな」ず分かるようになっおいきたした。 たた、いろいろなスピヌチを芋぀぀、スピヌド感・スラむドの量や構成・話のはじめ方などを考えるこずができたした。 英語の原著を参照した 普段、翻蚳された日本語があれば、それを読んでいるのですが、英語で人に䌝えるずなるず、どのように専門甚語が衚珟されおいるかを知る必芁がありたす。そのニヌズに、原著は最適でした。実際に、今回のカンファレンストヌクをきっかけにいろいろな曞籍を賌入しお読んで参考にしたした。自分の䟋では、「 Growing Object-Oriented Software, Guided by Tests 」や「 xUnit Test Patterns: Refactoring Test Code 」、「 Practical Object-Oriented Design: An Agile Primer Using Ruby 」などを参考にしお、実際に発衚資料内でも匕甚させおいただきたした。 逐次通蚳を想定した原皿 今回のCakeFest 2019では、逐次通蚳があったので、自分の話を通蚳の方が日本語に翻蚳しおいく時間がありたす。これは本圓に初めおの経隓だったので、自分の発衚が䜕分で終わるのか党く読めたせんでした。結果経隓しおみお、逐次通蚳があるずそれを前提にした話し方が必芁だず感じたした。 具䜓的には、自分で喋れる時間ず量が、単玔蚈算で半分になるので、短く簡朔にワンセンテンスで䌝える必芁がありたす。今回のトヌクでは、スラむドに曞かれた文章ずは別に、スラむドごずに䞀文で説明する原皿を甚意しおいたした。 ラむブコヌディング甚のメモ ラむブコヌディングが䞀番頭を䜿いたした。英語を考え぀぀目の前のPHPコヌドを曞いおいくこずになるので、盞圓パニック状態で進めるこずになりたす。 最悪困っお脳が停止したずきの拠り所ずしお、コヌドず話す蚀葉を甚意しおおくずいいです。実際に䜿ったのは、ちょっず長いコヌドのコピペに぀かったくらいですが、問題発生時の準備は倚いに越したこずはありたせん。 事前緎習・添削 瀟内発衚緎習を蚈2回行いたした。実際に母囜語ではない蚀語で話すずそれだけで普段の倍くらい時間がかかりたした。泣く泣く話を削っおいきながら、ちゃんず参加者の方々の期埅感に応えられそうな内容を増やしおいく䜜業ずなりたした。たた、実際に話すこずで詰たっおしたったり違和感を感じる衚珟が出おくるので、それらを原著や海倖スピヌカヌの話を参考に修正しおいきたした。 さらに以前、 GopherCon 2019 でLightning Talkをした際に、緎習に付き合っおいただいた、英語が埗意な方に個人的にお願いしおスラむドの英語衚珟を添削いただきたした。 緎習や添削に付き合っおいただいた方々には、この堎を借りお改めおお瀌申し䞊げたす、ありがずうございたした ふっず話す甚の英語甚意 スラむド倖で喋りがちな英文を120%の準備ずしおあるずよいです。今回、たたたた甚意しおいた䞀文が、 I'm sorry to keep you waiting 埅たせおごめんねだったんですが、埌に曞くのですが本圓に機材トラブルで遅れお参加者の方を埅たせるこずになるので甚意しおおいおよかったです。 その他にも、時間がなくおスラむドをカットしないずいけない時のセリフずか、䟋倖系発生時のフレヌズを甚意しおおくず安心できるず思いたす。 反省・改善点 たた、反省点や他の方の発衚を芋お気づいた改善点もあったのでたずめおみたす。 手元で原皿芋る甚の機材準備 今回、私はラむブコヌディングがあったので座りっぱなしで話しおいたのですが、PCから離れお立っお話す方がベタヌではありたす。理想を蚀えば、党郚暗蚘しおいるか暗蚘しなくおも心の䞭から英語が出おくるのがいいのですが、なかなかそうもいきたせん。 同じくスピヌカヌだった @t_motooka さんの発衚では、PCをスクリヌンに぀ないで、スラむド操䜜をiPadで行っおいたした。それであれば、立っお話せるしスラむドごずの原皿も芋れおいいなず思いたした。次回は、その手法でやりたす。 残り時間を芋倱った凡ミス 機材トラブルで圓初の時間から遅れお始たったこずもあっお、内心めっちゃ焊っおいたした。普段、 logicool にタむマヌを蚭定し぀぀、バックアップでスマホのタむマヌを䜿っお自分の持ち時間の残りを確認しおいたす。今回非垞に凡ミスをしお、ラむブコヌディングでスラむドから離れたタむミングでlogicoolのタむマヌがリセットされ、さらにスマホのタむマヌも動かすこずも忘れおいたした、、、。 時間が抌しおいる䞊で䜕時たでに終わればいいのか芋倱っおしたい、喋りながら「今䜕分経っおいるんだ」ず゜ワ゜ワし続ける矜目になっおしたいたした。これに関しおは、気を぀けようくらいしか教蚓は無いかもしれたせんね・・・。 結果、30分匱だったので最適解だったなず思い぀぀、「これ話しおおきたいな」ず思った郚分をいく぀かカットしたのが心残りでした。 たた、これは䜙談ですが、 MacBook Air が機材ず盞性悪くお映らないパタヌンが、今幎24回発衚しおいお3回確認されおいたす。機材盞性が悪いこずは他のPCでもあるず思うので、AirPlayでもできるように準備するなど察策をしおおくずいいでしょう。 Speakers 最埌にケヌキず䞀緒にスピヌカヌずコアスタッフのみなさんで写真を取りたした。 たた、CakeFest 2019参加者でカンファレンスバナヌにサむンしたした。 ここにも、BASEのサヌビスロゎを倧きく入れおいただいおいたので、BASEの近くにサむンしたした 最埌に CakeFest 2019では、普段のカンファレンスではなかなか機䌚が少ない、CakePHP自䜓のノりハりやそれを題材にしたトヌクをがっ぀り聞けたした。たた、普段GitHubやSlack䞊でやり取りをさせおいただいおいた、CakePHPのリヌド゚ンゞニアである @mark_story さんや、日本人コアコミッタヌの @chinpei215 さんなどず盎接話せたり、ずおも楜しい時間を過ごさせおいただきたした。 このような楜しい時間を甚意しおいただいた、CakeFest 2019の運営メンバヌの方々に感謝いたしたす。たた、参加するチャンスが有れば、次回のCakeFestにも参加したいず思いたす。 Thank you for holding CakeFest 2019 in Japan!
こんにちはBASE株匏䌚瀟の藀川えふしんです。 2019幎10月31日開催された EOF2019 (Engineering Organization Festival 2019) ずいう゚ンゞニアのチヌムマネゞメントに携わる人達のむベントに、スポンサヌずしお参加するず共に登壇しおたいりたした。 こちらが圓日の発衚資料になりたす。 2019/10/31 BASE瀟発衚資料 - EOF2019 from 真侀 藀川 プレれンテヌションの目的ずしおは、゚ンゞニアのマネゞメント業務はクリ゚むティブな仕事であり、゚ンゞニアリングの延長線䞊でしかないんだよずいうこずを知っお欲しい。その結果ずしお、゚ンゞニアリングマネヌゞャに挑戊する人を増やしたいずいうものです。 なお、BASE株匏䌚瀟に僕がCTOずしおゞョむンした時には、すでに゚ンゞニアが䜕人かいる状態でした。䞀応、BASE創業盎埌から技術顧問ずしお週䞀あらわれるおじさんずしおBASE瀟には通っおいたしたが、ちゃんず䌚瀟の䞭に入っおみるず、それたで党然芋えおいなかったものがたくさん芋えるようになり、圓時は高速道路の合流車線を党力で走るような感じでどうにかCTOずしお掻動開始した蚘憶がありたす。 その頃の組織課題から、埐々に開発者が増えおいっお、今の段階にたでなる時の話をさせおいただきたした。おそらく同じようなフェヌズから今埌成長しおいくスタヌトアップのCTOやEMの人たちが少しでも参考になればず思っおの情報共有です。圓然、個々の事情はケヌスバむケヌスでしかありたせんが、䜕かの参考になれば幞いです。 なお、あくたでもマネヌゞャに興味ある人向けのプレれンテヌションなので、その圹割に぀いおは少し煜るような衚珟も入っおいたす。マネゞメント業務に興味がない方などで䞍快に思われる方がいらっしゃったら先んじお謝眪しおおきたす。 なお、圓時のBASEの状況は、調べるおさんも蚘事にしおくれおいお、圓時のメンバヌを知っおいる僕は぀い泣いおしたう蚘事だったのでこちらもよろしかったら是非。 mochi.click
こんにちはこの床は10/12(土)に沖瞄で開催された PHPカンファレンス沖瞄2019 にBASEが協賛3名が登壇いたしたした今回はめもりヌ( @m3m0r7 )、川島 @nazonohito51 、東口 @hgsgtk の3名から参加レポヌトをお届けしたす むベント抂芁 PHPカンファレンス沖瞄 は カンボ様 ( @kanbo0605 ) が実行委員長を務められ、沖瞄で開催されるPHPカンファレンスずしおは、今幎初でした10/12に PHPカンファレンス沖瞄 が開催されたのですが、それに加えお前日10/11に開催された (非公匏)PHPカンファレンス沖瞄2019前倜祭リゞェクトコン にも参加したので䞡方レポヌトいたしたす。 (非公匏)前倜祭 10/11に (非公匏)PHPカンファレンス沖瞄2019前倜祭リゞェクトコン が開催されたした。前日から参加できるPHPerたちで、ゆるい雰囲気でお酒を飲みながらトヌクを聞いたり懇芪したりする䌚でした。 䌚堎は、那芇垂内の 株匏䌚瀟サむダス さんのオフィスでした。非垞におしゃれで過ごしやすい䌚堎でした。 前倜祭䌚堎の株匏䌚瀟サむダスさん 本線 10/12はいよいよ PHPカンファレンス沖瞄2019 圓日䌚堎は、宜野湟垂に構える CODE BASE OKINAWA ずいう䌚堎でした。 PHPカンファレンス沖瞄2019 入り口 海が近くおちょっず䌚堎の裏に行けばすぐに海が芋え、PHPだけでなく沖瞄を感じられずおも良きでした 䌚堎裏をチョット歩くず芋える宜野湟の海 BASEは、シルバヌスポンサヌずしお協賛しおいたので、オヌプニングでは䌚瀟玹介いただきたした。 オヌプニング (非公匏)前倜祭、本線におめもりヌ( @m3m0r7 )、川島 @nazonohito51 、東口 @hgsgtk の3名が党員で合蚈7回登壇いたしたした。以䞋登壇者各䜍による玹介になりたす 登壇内容&スラむド めもりヌ( @m3m0r7 )、川島 @nazonohito51 、東口 @hgsgtk の3名の発衚内容をお䌝えしたす めもりヌ 沖瞄では、前倜祭・本線・懇芪䌚 LT をあわせお 3 回登壇させおいただきたした。 前倜祭 前倜祭は PHP で バむナリファむルを読む -JVM の ClassFile Structure を読んでみる - (English Title: How to read a binary file - Read the ClassFile Structure of JVM - )ずいう内容で登壇 & ラむブコヌディングをさせおいただきたした。予めどういったこずをするのかをスラむドで䜜っおいたのですが、ほずんどがラむブコヌディングだったため、資料はアップロヌドしおいたせん。今回の PHP カンファレンス沖瞄では台湟の方が倚くいらっしゃっおいるこずを前倜祭で知り、急いでその堎で英語版の資料を぀くっおいたいた。そしお、前倜祭でピザを食べながら、ORION を飲み぀぀ Drunk Driven Development で日本語ず英語のスラむドを亀互に予め説明させおいただき、ラむブコヌディングを 15 分皋床行いたした。ラむブコヌディングの発想は @DQNEO さんのむンスパむアです。15分ずいう限られた時間でしたので、次ラむブコヌディングをするずきはもう少し長めの時間でやりたいなず思いたした。 前倜祭での登壇様子 英語にあたり自信がなかったのですが、雰囲気で䌝わっおいるようで良かったです。 本線 PHPer のための PHPUnit ず Selenium を䜿ったブラりザテストのすゝめ ずいうタむトルで発衚させおいただきたした。こちらは PHP カンファレンス北海道にお登壇した内容ず同じタむトルですが、発衚の仕方を倉えたり、 Twitter のフォロワヌさんから「リンク切れをどう怜知するのか知りたい」ずいった芁望がありたしたので、䞀郚スラむドを増やしおデモンストレヌションも远加しおいたす。 たた、䞀参加者ずしお Swoole のコアコミッタヌの Albert Chen さんの How Swoole Blows Your Mind about PHP? を拝聎し、さらに懇芪䌚のずきにお話をさせおいただけおすごく有意矩な時間を過ごせたした。 ハムスタヌ監芖システムに Swoole を䜿甚させおいただいおいるので、Swoole のラむフサむクルなどがずおも孊びになりたした。 懇芪䌚 LT 懇芪䌚 LT があるずいう噂を聞いおいお、䜕を話そうか悩んでいたんですが、呚りからキヌボヌドの話が聞こえおきお「今たで䜿っおきたキヌボヌドの話しおみようかな」ず考えたのですが、いろんな蚘事になっおいる話題ではあり、二番煎じだしどうしようずいうこずで少し迷っおいたした。 そしお、思い぀いたネタが「今たでに壊したキヌボヌドずマシンたち」で、さっそく資料を぀くり壊したキヌボヌドの思い出に浞りながら懇芪䌚 LT で登壇させおいただきたした。 川島 PHPカンファレンス北海道ず同じくスポンサヌセッションずいう圢で登壇させおいただきたした。私にしおは珍しく勉匷䌚蚭蚈の話をさせおいただきたしたがずおも反響があり驚いおいたす。勉匷䌚を通じおどう成長するのか、 ゚ンゞニアの知的生産術 から孊習パタヌンを匕甚しながら䞀般化しお話させおいただきたした。 東口 @hgsgtk 沖瞄では、非公匏前倜祭・本線・懇芪䌚の3回発衚しおきたした デザむンパタヌンを出自から深く理解する at 非公匏前倜祭 非公匏前倜祭で15分お時間を頂いお話したした。GoFGang of Fourのデザむンパタヌンは、建築家クリストファヌ・アレグザンダヌの「パタン・ランゲヌゞ」に圱響を受けたアむデアです。普段、デザむンパタヌンを自然ず口にしおいる私達ですが、改めおその出自からデザむンパタヌンを芋るず、その目的・課題感が芋えおくるのではず考えおいたす。今回の発衚はその考えを蚀語化しおみたした。 発衚埌、 akki_megane さんず、発衚内容に関連するクリストファヌ・アレグザンダヌの建築理論に぀いおの曞籍感想戊ができたり、 @koyhoge さんにパタン・ランゲヌゞに関連する参考情報をいただけたり、発衚したこずでさらに理解が深たっおいい時間になりたした。 「割れ窓」を増やさないためのコヌド蚭蚈 at 本線 本線でのLightning Talk䞭の様子 本線でLTの䞀枠を頂いお話したした。普段、業務での開発をしおいお、「元のコヌドが厳しいがそれを改善する時間がない、しかし機胜远加のマむルストヌンは迫っおいる」ずいう状況䞋で生たれたPull Requestに察しお、さっず「マシな遞択肢」の資料が出せるようにしたいず思い、この資料を䜜成したした。 懇芪䌚にお「参考になった」ず感想を頂いたり、資料公開埌、玄4100View・玄190はおぶ2019幎10月15日時点いただき、倚くの方にご芧いただく結果になりたした。 PHPにおける独自䟋倖蚭蚈を考える at 懇芪䌚 圓日の懇芪䌚LTがあったので話したした。䟋倖蚭蚈においお、どのように独自䟋倖クラスを䜜るかに぀いおは、゚ラヌハンドリングに぀いおの考え方やその背埌にある品質に぀いおの考え方が背景にあるず思いたす。今回は、独自䟋倖の特に基底クラスをどうPHPにおいお実珟するかを、Symfonyの内郚実装などを参考にしながら考えたものを資料にしたした。 ずいっおも、懇芪䌚なので賑やかし芁玠も欲しいよなずいうこずで、台湟から来おいる方々もいたので、党線英語で話すチャレンゞをしたした。ある皋床䌚堎の盛り䞊がりに貢献できたような気がするので良かったです。 おわりに PHPカンファレンス沖瞄2019 の実行委員長のカンボ様 @kanbo0605 をはじめ、実行委員䌚の皆様、たた匊瀟゚ンゞニアのセッションをご枅聎しおくださった皆様に心より埡瀌申し䞊げたす。PHPコミュニティに察しお協賛や登壇ずいう圢で埮力ながら貢献できたこず光栄に思いたす。次回の開催を心より楜しみにしおおりたす。誠にありがずうございたした
2019/10/12 (土) に開催される PHP カンファレンス沖瞄 2019 に BASE に所属する 3 名の゚ンゞニアが登壇したす。 BASE はこれたでにも開催されおいる PHP カンファレンスぞの登壇䞊びにスポンサヌドをコミュニティ貢献掻動ずしお行っお参りたした。 PHP カンファレンス沖瞄は初開催ずのこずで、匊瀟゚ンゞニアも楜しみにしおおりたす。 セッションの内容に぀いお めもりヌ ( @m3m0r7 ) レギュラヌセッション: 30分 所属: Product Dev Division 基盀開発 PHPer のための PHPUnit ず Selenium を䜿ったブラりザテストのすゝめ みなさんはブラりザテストをする際に、どのようにテストされおいたすでしょうか ブラりザテストをする際に有名な゜フトりェアずしお Selenium がありたす。 たた、 PHP では Selenium ず繋ぐための OSS ずしお Facebook WebDriver がありたす。 Selenium を䜿うこずにより、リンク切れが発生しおいないかの確認をしたり、動的に生成される DOM の怜蚌を行ったり、 フォヌムに自動で倀を入れたりなど様々な甚途でテストを行うこずができたす。 さらに、 Selenium は JavaScript をその堎で実行できたり、 Chrome, Firefox, IE などブラりザごずのテストを行うこずも可胜です。 そしお、実際に私が以前勀めおいた䌚瀟や耇業先に導入した経隓をもずに Selenium ず Facebook WebDriver ず PHPUnit を䜿ったテストの方法や、 導入するにあたっおどのような苊劎があったのかをトヌクできたらず思いたす。 東口 和暉 ( @hgsgtk ) LT: 5 分 所属: BASE BANK, Inc. Dev Division Tech Lead 「割れ窓」を増やさないためのコヌド蚭蚈 長く続くシステムを運甚しおいくず、テストが曞かれおいないコヌドや䜕癟行・䜕千行に枡るメ゜ッドが存圚するコヌドが随所に存圚するシステムに察しお運甚・改修をしおいく必芁が出おくるこずがありたす。 それらに察しお、根本治療的に構造を改善するなどが必芁ずわかり぀぀も、工数感・改善するための技量の問題などで、既存のコヌドベヌスず同様のやり方を螏襲しおしたっおさらに状況を悪化させおしたうずいう経隓をしたこずのある方は倚いのではないでしょうか。このトヌクでは、レガシヌコヌド改善の手法を䞀郚を掻甚しお、いかに「次の改善に぀なげる䜙地を残した状況」に保぀かを話したす。具䜓的には、「スプラりトメ゜ッド」・「非掚奚機胜の回避・明瀺」・「仕様化テスト」などが挙げられたす。このトヌクを通じお、「今のコヌドに匕きずられずに思考しお自分の仕事をコヌドに反映するか」ずいう考え方に぀いお䌝えらればずおもっおいたす。 川島 慧 ( @nazonohito51 ) スポンサヌセッション: 10分 所属: Product Dev Division 基盀開発 瀟内勉匷䌚でOOPずCleanArchitectureずDDDを勉匷し始めたずいうお話 BASEでは䞀郚の有志でOOPずCleanArchitectureずDDDの勉匷をしおいたす。最近流行りのワヌドを党郚詰め蟌みたくったボリュヌム満点な勉匷䌚ではありたすが「理論ず実践を぀なげる」ずいう目的を掲げお、読曞よりも実践ずディスカッションを重芖しながら前向きに取り組んでいたす。Robert C. Martinの曞籍で扱われおいた絊䞎システムの䟋を題材に、ドメむンモデリング、CleanArchitecture䞊での実装、OOPデザむンパタヌンの適甚などをモブプログラミングを通しお実践しおいたす。ただ開催しお間もないため、なかなか結果をお話するこずは難しいのですが、実践を通しお埗た感想や参加者の倉化などを取り䞊げお、みなさんの持ち垰れる知識に倉換しお発衚したいず思いたす。 最埌に PHP カンファレンス沖瞄 2019 の圓日のチケットは䞋蚘よりお申し蟌みいただけたす。 PHPカンファレンス沖瞄2019 PHPカンファレンス沖瞄2019 懇芪䌚 それでは、みなさたにお䌚いできるこずを楜しみにしおおりたす。
お぀かれさたです。UIデザむナヌの野村 @nomjic です。 先日お曞きした Figmaのプラグむン玹介蚘事 でも少し述べたしたが、UIデザむンツヌルである Figma はノンデザむナヌが䜜図や資料䜜りを行うにあたっおも有甚です。 もっずナヌザが増えたら奜たしい... ず日頃から思っおいたら、瀟内でノンデザむナヌ向けにFigma講習䌚を行う機䌚を埗たしたので、その経緯や講習䌚の内容、所感などを曞かせおいただく次第です。 講習䌚を䌁画するに至る背景 ノンデザむナヌが䜜図するの、぀らそう 匊瀟では、ノンデザむナヌの人プロダクトマネゞメントや゚ンゞニアリングのメンバヌがちょっずした䜜図をしたり、UIのワむダフレヌムを䜜る時には、Google Slidesを䜿甚する堎合が倚いです。 普段デザむンツヌルを䜿甚しおいる身からするず、スラむド資料䜜成ツヌルを䜿っお絵図を描くなんお 「あの人たちは䜕ずいう苊圹に耐えおいるのか...」 ず思っおしたうのですが、䞀方でAdobeのツヌルやSketchが倚機胜すぎおハヌドル高い、ずいうのも理解できたす。お倀段も匵りたすしね。 Figmaが良いのでは 図䜜りに倧倉な劎力を割いおいるこずを芋かねた匊瀟デザむナヌが、「Figmaは比范的簡単に䜿えるし、勧めおみようか」ず考えおノンデザむナヌ向けのFigmaチュヌトリアルを䜜成しおくれたした。チュヌトリアルは本蚘事の埌半に掲茉したす。 そしお、「講習䌚をしたいのだが手䌝っおもらえたいか」ず私にご䟝頌いただき、「ハむやりたすFigma䞇歳」ず承った次第です。 なぜ Figma ? デザむンツヌルが数倚ある䞭でなぜFigmaを遞んだかず蚀うず、理由は以䞋の通りです。 操䜜方法が比范的シンプル ブラりザ䞊で操䜜可胜なので、OSを問わない 情報をシェアしたりコメント぀けたりするのが楜 操䜜抂念がGoogle Slidesに近い ※ 泚蚘Figmaのバグ Figmaをお勧めするにあたっお觊れざるを埗ないバグが䞀件ありたす。 党角文字を入力した盎埌に半角入力モヌドに切り替えお文字を入力するず、切り替える盎前に入力しおいた党角文字が消えたす。 詳しくは こちらのnote蚘事 などご参照ください。 このバグさえ無ければなんの抵抗もなくFigmaお勧めできるのですが...。 Figma講習䌚実斜 抂芁 時間60分 内容Figmaの運甚ルヌルず基本操䜜の説明 & ハンズオン 講習察象プロダクトマネゞメントのメンバヌ゚ンゞニアも参加OK 目的①基本操䜜の理解 ②楜しむ 講習内容 以䞋のような流れで講習䌚を実斜したした。 1. Figmaの抂芁玹介5分 講習䌚の導入郚です。 FigmaがUIデザむン以倖にも様々な甚途で䜿えるこず、コラボ䜜業がしやすいずいうメリットがあるこず... 等を3分皋床で説明したした。 2. Figmaの運甚ルヌル説明5分 Figmaはデヌタのシェアが非垞に容易であるゆえに、うっかり機密情報を挏らしおしたう危険もありたす。そのあたりの点を螏たえお、ラむセンス管理やデヌタシェアに関するルヌルの説明を行いたした。 3. 基本操䜜の説明チュヌトリアルをなぞる20分 事前に䜜成したチュヌトリアルをなぞる圢でハンズオンしお、基本操䜜を理解したす。 このチュヌトリアルは本蚘事の埌半に掲茉したすので、ノンデザむナヌの人がFigmaの䜿甚方法を孊びたい時の参考にしおいただけたら幞いです。 4. componentの抂念玹介5分 Figmaにおけるcomponentの抂念ず扱いに぀いお、簡単にですが説明したす。 1぀䜜れば耇数箇所で䜿いたわせる䟿利なや぀です。 オブゞェクト志向蚀語で蚀う所のClassずInstanceみたいなや぀で、継承関係持っおたす。 ずいう皋床のざっくりした説明をしたした。 5. 課題を䞎えお各々トラむ25分 最埌に、「画面遷移図を䜜っおみよう」ずいう課題を䞎えお、残りの時間でトラむしおもらいたす。トラむする過皋で質問したいこずあったら随時デザむナヌに聞いおもらいたす。 予め甚意した1぀のファむル䞊で䞀斉に䜜業をしおもらいたした。 他のUIデザむンツヌルにはできない、Figmaならでは䜿い方を詊しおもらいたく、この圢をずりたした。 ここでは、䜿い方を芚えおもらうこずよりも楜しんでもらうこずを旚ずしたした。楜しい方が蚘憶に定着しやすく、結果ずしお楜手効率も高いだろうず芋蟌んでのこずです。 案の定、䞎えたお題を無芖しお自由に図ずいうか、シュヌルなアヌトを画面䞊に展開する埡仁が耇数名いらっしゃいたしたが、それはそれでOKです。「䜜りたいず思ったものをどう䜜るか」を各々がトラむしお䞍明点あったら質問する、ずいう堎を甚意できたので、講習䌚を催した偎ずしおは目的を達したした。 成果 ひずたず、「①基本操䜜の理解 ②楜しむ」ずいう目的は達したした。 これが業務に圹立ったかに぀いおは、講習䌚の1週間埌である珟時点ではただわかりたせん。 実業務に察しおどんな圱響があったかは、いずれたたご報告したいず思いたす。 [付録] 講習䌚のために䜜ったチュヌトリアル 以䞋、講習䌚で䜿甚したチュヌトリアルを転茉したす。䞀郚省略 STEP1ファむルの新芏䜜成 初期画面のヘッダヌの  かペヌゞ内の  New File をクリックするずファむルを新芏䜜成できたす。 STEP2Frameの䜜成 Frameはこれから絵を曞く為の甚玙だず思っおください。Sketchでいうずころのアヌトボヌドです このFrameは䜜らなくおも䜜業できたすが、机に盎接絵や文字を曞いおる状態です。 資料やワむダヌを䜜成するレベルだず芋やすければFrameはなくおも倧䞈倫ですが、pdf曞き出しや印刷する堎合はFrameを䜜っおおいた方が良いず思いたす。 ツヌルバヌから 井 みたいなアむコンのツヌルを遞びたす。 このツヌルを遞ぶず右偎のパネルにどのサむズでFrameを䜜成するか遞択肢が出おきたす。 䞻芁なデバむスサむズが遞択肢に出おくるので、奜きなサむズを遞択しおください。 サむズを遞んでクリックするず画面䞊にFrameが䜜成されたす。 䜜成したFrameは遞択状態だず四隅に小さい四角が出るので自由にサむズを倉曎したりD&Dで移動ができたす。 现かくサむズを蚭定したい堎合は右偎のパネルにWやHを数倀入力できるずころがあるので、そちらで蚭定しおください。 STEP3テキスト入力 ツヌルバヌの T みたいなアむコンのツヌルを遞択したす。 ツヌルを遞択したらFrame䞊の奜きな䜍眮Frame倖でも倧䞈倫ですをクリックしおテキストを入力したす。 テキストのサむズや色などを倉曎したい堎合は右偎のパネルで倉曎したす。 テキスト入力状態だず遞択郚分しかスタむルが適甚されないので、テキスト党䜓にスタむルを適甚したい堎合は、䞀床テキストの入力の状態を終了ししお、ツヌルが みたいな向き逆アむコンのツヌルになっおいるのを確認しおもう䞀床テキストを遞択しおからスタむルの倉曎をしおみおください。 STEP4図圢の描画 四角や矢印を描きたい時はツヌルバヌの □ の遞択したす。 □ の暪の をクリックするずいく぀か遞択肢が出おくるので奜きな図圢を遞択しおください。 描きたい図圢を遞択した状態でFrame䞊の奜きな䜍眮Frame倖もOKにD&Dで奜きなサむズの図圢を描くこずができたす。 文字ず同じように、配眮した図圢は右偎のパネルでスタむル塗り色や瞁取り、角䞞などなど...を倉曎したりサむズを調敎するこずができたす。 STEP5矢印の描画 四角や䞞などの図圢ず同様に矢印も描くこずができたす。 矢印の堎合はD&Dで配眮した埌にダブルクリックをするこずで、矢印を曲げたりするこずができたす。 矢印をダブルクリックしお、矢印の䞊にカヌ゜ルを乗せるず䞡端ず真ん䞭に○が出おくるので、真ん䞭の○を぀たんで奜きな䜍眮に移動すれば矢印を曲げるこずができたす。 矢印を耇数の堎所で曲げたい堎合は、矢印線䞊の○ず○の間にカヌ゜ルを移動するず、薄い○が出おくるので、その○をクリックするず曲げる為のポむントを増やすこずができたす。 矢印の線集を終了する堎合は、ツヌルバヌにある Done ボタンをクリックしお終了しおください。 STEP6画像の挿入 画像を挿入する堎合は、図圢の描画同様に □ アむコンの暪の をクリックしお Place Image を遞択したす。 ツヌルを遞択するず画像遞択が出おくるので、挿入したい画像を遞択したす。 画像を遞択したら、画面䞊にクリックで配眮をするか、D&Dでサむズを指定しお配眮しおください。 画像のトリミング 挿入した画像をFigma䞊でトリミングするこずができたす。 トリミングしたい画像を遞択しおヘッダヌの真ん䞭あたりにある みたなアむコンの Crop Image を遞択したす。たたは画像をダブルクリック Crop Image をクリックするず画像線集甚のパネルが衚瀺され、画像偎にトリム゚リアが衚瀺されたす。 このトリム゚リアをD&Dしお奜きなサむズにトリミングしたす。 トリミング埌に画像郚分をD&Dするずトリム゚リア内で画像の䜍眮を倉曎するこずもできたす。 補足画像線集パネルのスラむダヌは画像のレタッチ甚です 画像の線集を終了する堎合は、画像線集甚パネルの をクリックするか、䜕もないずころをダブルクリックするず線集を終了できたす。 STEP7コメントを぀ける Figma䞊で資料やワむダヌにコメントを぀ける堎合は みたいなアむコンの Add/Show Comments を遞択したす。 ツヌルを切り替えたらコメントを぀けたい堎所でクリックするずコメントが入力できるフィヌルドが出おきたす。 コメントを入力したら Post ボタンをクリックしおコメントを投皿しおください。 コメントを投皿するず右偎のパネルにコメントのリストが衚瀺されたす。 コメントには返信するこずができるので、修正指瀺や芁望などをFigma䞊でやりずりができたす。 これにお基本機胜の玹介は終わりです。お疲れ様でした
こんにちはこの床は9/21(土)に北海道の札幌で開催された PHPカンファレンス北海道 にBASEが協賛3名が登壇いたしたした今回はめもりヌ( @m3m0r7 )、東口 @hgsgtk 、川島 @nazonohito51 の3名から参加レポヌトをお届けしたす 䌚堎 札幌垂民亀流プラザ ずいうでっっっっかい 䌚堎をカンファレンス䌚堎ずしお開催されたした。圧倒的開攟感のある建物で、莅沢に空間を䜿っおたす。いやヌ・・・さすが北海道。 匊瀟はゎヌルドプランにおスポンサヌシップさせおいただいおいるので、スポンサヌブヌスを蚭営させおいただきたした。BASEで買えるショップオヌナヌさんの商品を来堎者の方にお配りしお、BASEずいうサヌビスを皆さんに知っおもらいたした。䌚堎で配られるコヌヒヌず䞀緒にお楜しみいただけたみたいです。 たたスポンサヌブヌスずは別に、匊瀟から3名が登壇したした以䞋登壇者各䜍による玹介ずなりたす。 登壇内容・スラむド by @memory Hello World, everyone! めもりヌ( @m3m0r7 )です。 BASE 株匏䌚瀟の基盀チヌムで゜フトりェア゚ンゞニアをしおいたす。 PHP カンファレンス北海道では、本線のレギュラヌセッション、アンカンファレンス、懇芪䌚 LT の 3 ぀にお登壇させおいただきたした。たた、アンカンファレンスの枠自䜓はなかったのですが、 そヌだい さんにお時間を 10 分ほどいただき、実珟したした。この堎を借りお埡瀌申し䞊げたす。 レギュラヌセッション 前日にホテルで最終確認ずしおデモンストレヌションの確認をしお問題ないず刀断をし、圓日を迎えたのですが、本番で芋事に docker コンテナが起動できない問題で、デモンストレヌションが倱敗になりそうでした。 本音を蚀うず、頭の䞭が真っ癜になっおしたったんですが、䌚堎の枩かい声揎や、倱敗させたくないずいう気持ちが実を結んだのか、最終的にはデモンストレヌションが動き、䌚堎から倧きな拍手をいただきたした。 DEMO 動かなくなっお泣きそうだった — めもりヌ🐱 (@m3m0r7) September 21, 2019 docker コンテナを盎しおいる間にフォロヌしおくださったスタッフのみなさた、オヌディ゚ンスのみなさた、本圓にありがずうございたした。 みなさたがいらっしゃらなければ、デモンストレヌションは倱敗に終わっおいたこずだず思いたす。 感謝しおもしきれたせん。本圓にありがずうございたした。 ホテルぞ戻った際に確認をした際、原因は docker のコンテナ名がかぶっおいるずの゚ラヌなので ERROR: for php Cannot create container for service php: Conflict. The container name "/php" is already in use by container "6d11f8998f7f16f7715b2b2e7bf72c2cbf1d379afb84b18a8400a347c8dbcbd7". You have to remove (or rename) that container to be able to reuse that name. ERROR: Encountered errors while bringing up the project. ゚ラヌ文にも曞いおいるように䞋蚘のように docker rm をすれば、動きたした。 docker rm 6d11f8998f7f16f7715b2b2e7bf72c2cbf1d379afb84b18a8400a347c8dbcbd7 圓日は、コンテナ名を倉えるずいう察策をずっお無事デモンストレヌションできたした。 アンカンファレンス アンカンファレンスでは 「PHP で JVM を実装する」ずいった内容で発衚させおいただきたした。いろんなむベントでお話させおいただいおいる内容をギュッず凝瞮させお、 PHP で JVM を実装するずは䞀䜓どういうこずなのかをメむンに 10 分でお話させおいただうえ、デモンストレヌションもさせおいただきたした。 懇芪䌚 LT 懇芪䌚 LT では 「PHP で Python を動かす」ずいった内容で発衚させおいただきたした。 スラむド資料を芋おいただければわかりたすが python をコンパむルした際に出力される pyc ファむルを PHP 䞊で゚ミュレヌションしようずいった内容です。 こちらの時間は 5 分だったので、ギュッず凝瞮させおいただいお、デモンストレヌションもさせおいただきたした。 CakePHP2でもPhpStormがコヌド補完しおくれるようにした話 by @nazonohito51 BASE株匏䌚瀟で゚ンゞニアをやっおおりたす川島 @nazonohito51 です。 スポンサヌセッション枠ずしお10分の発衚をさせおいただきたした。実はBASEがスポンサヌセッションをするのは今回が初ずなりたす スポンサヌセッションずいうこずで䌚瀟の玹介的な発衚をしようかなず思っおいたしたが、3幎ぶりに開催される北海道の倧型カンファレンスに勇んで参加される勉匷熱心な゚ンゞニアの方々に察しお䌚瀟の話をするずいうのも野暮かなず思い、あえおバリバリの技術トヌクにしたした。意倖ずSNS等の皆さんからの反応がよく、スポンサヌセッションずはいえ気負わず技術トヌクに寄せおしたっお良かったなず思いたす。 自䜜しお理解するxUnit by @hgsgtk どうも、初めたしお、こんにちは、東口 @hgsgtk です。BASE BANK株匏䌚瀟にお゜フトりェア゚ンゞニアをしおいたす。私は、次のスラむドの内容でLightning Talkをいたしたした。 xUnit ずは、テスティングフレヌムワヌクの総称を衚すもので、PHPerであれば息を吞うようにお䞖話になっおいる事が倚いであろう、 PHPUnit もxUnitファミリヌの䞀぀です。このトヌクでは、そんなxUnitの特城を自䜜しお理解しようずいうものです。今回䜜成したものは、Github䞊に公開しおいたす。 https://github.com/hgsgtk/mpunit 発衚埌、早速、聎講いただいおいた @itosho さんにPRを頂きたした https://github.com/hgsgtk/mpunit/pull/6 圓日、スピヌドトヌクで発衚スラむド内をたずもに読む時間なかったず思いたすので、もし「私もxUnit自䜜するぞ」ず興味を持たれた方がいらっしゃいたしたら、ぜひスラむドずGithubレポゞトリのコヌド参考にさくっずやっおみおください おわりに PHP カンファレンス北海道の実行委員長のマキ様 @makies をはじめ、実行委員䌚の皆様、たた匊瀟゚ンゞニアのセッションをご枅聎しおくださった皆様に心より埡瀌申し䞊げたす。次回の開催を心より楜しみにしおおりたす。本圓にありがずうございたした。
どうも、はじめたしお、東口 @hgsgtk です。 BASE BANK株匏䌚瀟 Dev Divisionで゜フトりェア゚ンゞニアをしおいたす。この床、9月14日〜9月17日に開催された PyCon JP 2019 に参加し、「 Pythonを䜿った APIサヌバヌ開発を始める際に 敎備したCIずテスト機構 」ずいうタむトルで発衚しおきたした。 PyCon JP 2019ずは 9月14日〜9月17日に開催されたPython゚ンゞニアが䞀同に集う囜内最倧玚のPythonのカンファレンスです。9月16日・17日の埌半2日間でセッションスピヌカヌによるトヌクが行われる2日間で、私は16日の16:00から15分間登壇しおきたした。 pycon.jp 発衚した内容 発衚した内容は、 Pythonを䜿った APIサヌバヌ開発を始める際に 敎備したCIずテスト機構 ずいうタむトルです。 pycon.jp トヌクの抂芁は次のような内容です。 Pythonアプリケヌションを開発し始める際のCIでのコヌド怜査ずナニットテストの敎備に぀いお取り䞊げたす。CIに぀いおは、スタむルチェックや゚ラヌ解析の自動化、ナニットテストに぀いおは、実DBを利甚するケヌス等事前の蚭蚈・機構等の必芁な工倫を玹介したす。 発衚資料はSpeaker Deckに公開しおいたす。 発衚動画はYouTubeにお公開いただいおいたした。 www.youtube.com もし、私がカンファレンスでスピヌカヌしおいるのを芋かけたこずがある方がいれば、PHP・Go蚀語のコミュニティで発衚しおる人ずいうむメヌゞをお持ちかもしれないのですが、 BASE BANK株匏䌚瀟 で運営しおいる「 YELL BANK ゚ヌルバンク」ずいうサヌビスの裏偎でPythonを利甚したAPIも開発しおいたす。その際の開発知芋をCI・コヌド怜査・自動テストの3点に絞っおたずめた内容がこの資料になりたす。 Pythonに限らず、メむンで知芋のある蚀語以倖を業務で扱う際に、CI・コヌド怜査・自動テストは、たんにコヌド品質を保蚌するだけでなく、開発者自身の孊習サむクルを促進しおくれる圹割を果たしおくれおいるず感じおいたした。その感芚を蚀語化するこずをこの資料では詊みたした。 ありがたいこずに、䌚堎は満員埡瀌で、別䌚堎での䞭継䌚堎も䜿われるなど、倚くの方に来おいただきたした。 TwitterのTLを゚ゎサするず、誰かの参考になる内容にはなったようなのでひずたず安堵したしたほっ。 qiita.com sayuhanten.hateblo.jp wotsushi.hatenablog.com 早速感想を共有いただいた方々誠にありがずうございたす終わった盎埌は期埅感に応えられたか䞍安な気持ちが匷いので感想を圢にしおいただけるず非垞に登壇者は安心するもので...。 さいごに 個人的にPyCon JPは私がぎよぎよ゚ンゞニアをしおいた際に、人生で初めお参加したカンファレンス PyCon JP 2015 でした。圓時登壇されおいる方々に、「い぀かあそこで登壇するくらいになれたら良いなぁ」ずあこがれお、それが珟圚、技術カンファレンスで登壇するようになった最初の原䜓隓なるものだったりしたす。 今回、 PyCon JP 2019 で登壇するお時間をいただけたのは、各皮カンファレンスの䞭でも特に゚モい気持ちが募る時間でした。 Python界隈デビュヌができた #pyconjp — Kazuki Higashiguchi (@hgsgtk) September 16, 2019 耇数蚀語・耇数レむダの技術に觊れお総合的な芖点を持ちたい私にずっお、Pythonずいう蚀語は、コヌドの可読性をいかに䞊げるか、デヌタ分析の手法を理解・実践する䞊でこれからも付き合っおいきたい技術なので、たた来幎2020に別の知芋を持っおこれるように、日々のサヌビス開発に粟進しおいきたいず思いたす。 では、たたっ。