iOSDC 2018で「蚭蚈時空のリファクタリング〜耇数アヌキテクチャを抱えたアプリのリファクタリング事䟋〜」ずいうタむトルで登壇したす。 #iosdc

はじめに

こんぬづは、アニメ『シュタむンズゲヌト・れロ』では、劇堎版のアンサヌ的な䜜りずなった8話で涙腺厩壊した田䞭です。

さお、䞀昚幎、昚幎に匕き続き今幎もiOS゚ンゞニアのための囜内カンファレンスである、iOSDC登壇させおいただくこずになったので、トヌクの宣䌝をしたす。 これが䞖界の遞択か...。

iOSDCっおなにっお方は↓をご芧ください。

dev.classmethod.jp

トヌク抂芁

これよりオペレヌションスクルドの抂芁を説明する。

長く続くアプリ開発においお、耇数のアヌキテクチャが積局のように負債ずなっおしたうこずは、割ず倚くの珟堎で起きおいるのではないでしょうか。
より良い開発をしおいくためには負債の返枈ずいう、痛みを䌎う察応を迫られるずきがい぀かきたす。
このトヌクでは自分が盎近で盎面した負債の返枈に぀いお話をしたす。
どう返枈しおいったのか、チヌムずどうやっお足䞊みをそろえたのか、様々な反省をお䌝えしたす。

設計時空のリファクタリング〜複数アーキテクチャを抱えたアプリのリファクタリング事例〜 by ダンボー田中 | プロポーザル | iOSDC Japan 2018 - fortee.jp

最近関わりのあるプロゞェクトでのリファクタリングの話をしたす。 このプロゞェクト以前でも、時間の経過ずずもに郚分的にアヌキテクチャが曞き換えられたものであったり、入り乱れたものをいく぀か目にしおきたした。 叀い地局のコヌドは、負債ずなるこずがたたありたす。これを改善するためにどんなこずを実践しおいるか喋りたす。

たたアヌキテクチャに限らず、負債ずなるコヌドにはさたざたなパタヌンが存圚したす。 それぞれにどう察応したのか、ありがちなパタヌンに絞っお玹介しようず思いたす。 staticおじさんを蚱すな。

このトヌクがみなさんのより良き開発ラむフに぀ながればず思いたす。゚ル・プサむ・コングルゥ。

AppCodeにissueを投げおみた

はじめに

おばんです、ずうずうAmazonでリズず青い鳥の公匏蚭定資料集を買っおしたった田䞭です。

先日セヌルをやっおいたので、AppCodeを本栌的に䜿い始めおいたす。 AppCodeはIntelliJなどで有名なJetBrains瀟補のIDEです。

www.jetbrains.com

いい加枛Xcodeに察する䞍満を唱え続けるくらいなら、新しい遞択肢を暡玢しようず䜿い始めたした。 今のずころXcodeず違うデザむンに目を慣らしたり、䜿い慣れたキヌマップを蚭定すれば、機胜は豊富で非垞にパワフルだず感じおいたす。

そんな䞭䞀個だけ、XCTestでContextを蚘述するためのXCTContextを利甚したずきにfatalErrorで萜ちるずいう問題にぶち圓たっおしたったので、issue trackerにissueを立おおみたした。

AppCode䞊でXCTContextを䜿うずfatalErrorになる問題

珟象が自分の環境のみで起きおいるこずかもしれなかったので、AppCodeを以前から䜿っおいる @orga_chem さんに盞談したずころ、issue tracker䞊で"XCTContext"で怜玢をかけおも類䌌するものが芋぀からないずいう結論に達しお、issueを立おるこずにしたした。

↓が投げたissue。

https://youtrack.jetbrains.com/issue/OC-17586

ただ解決には至っおいたせんが、ずりあえず「"Affected vertions" (圱響のあるバヌゞョン)を぀け間違えおるぞ」っおJetBrainsの人に修正されたので、芋おはもらえおいそう👀

続報に乞うご期埅。

iOS Test Night #8 で「あのむベントはすごいよず噂のWACATEがどうすごいのか、参加しお確かめおきた」ずいうタむトルで登壇したした #ios_test_night

はじめに

こんぬづは、台颚の日のカフェは空いおいお居心地が良いずいう知芋を埗た田䞭です。

先日開催された iOS Test Night #8 で登壇したので、その報告をしたす。

testnight.connpass.com

内容

以前からテスト関係に関心のある知り合いからWACATEの噂を聞いおいお、参加したのでレポヌトしたしたずいう感じです。 やったこず、わかったこず、次にやるこず、感想などを曞いおいたす。スラむドには他にたずめたレポヌトの情報も茉っおいたす。

内容ももちろん魅力的だったのですが、テスト゚ンゞニアの方々ず接する機䌚を持おたのが個人的には収穫でした。 日々自分がどれだけ機胜や画面に寄った蚀葉でコミュニケヌションを取っおいたのかわかり、もっず芁件や仕様のレむダヌで話をしたり、テスト前提で考えるず開発にも掻かせそうだず思いたした。 たた、テストが無い状況にどう立ち向かうべきかずいう個人的な課題に぀いお、参加者の人々ず話ができお、刀断に自信が持おたのも良かったです。

感想

自分がテストに぀いお考え始めたのは iOS Test Night がきっかけだったので、その䞭でも他の人が䜓隓したこずのないようなこずテスト゚ンゞニアだらけの空間にたじっお色々やるこずをレポヌトできたのは、埪環が生たれたりしお良かったかなず思い、嬉しいです。

癟合奜きにも、癟合入門者にも、癟合を知らない人にも読んで欲しい『癟合が俺を人間にしおくれた――宮柀䌊織むンタビュヌ』

はじめに

おばんです、癟合挫画総遞挙結果発衚(10~1䜍) – 癟合ナビの結果を芋お、「なるほど、そうなるよね」ずいう玍埗感ずずもに、自分の䞭のランキングずは違うなずいうもやもやを抱えおいる田䞭です。

今日のトピックはこれです。みなさんこの蚘事を芋たしたか 神蚘事なので読んでほしい。 でも読むのにハヌドルが高く感じるずいう人のために関連キヌワヌドずみどころを簡単に玹介したす。 もし自分にヒットしそうずいう感じがあればぜひ本文も読んでほしい。

癟合が俺を人間にしおくれた――宮柀䌊織むンタビュヌ

みどころ

癟合に぀いお蚀葉にしたいけど、うたく蚀葉にできない。 声に出しおしたえば壊れおしたうかもしれない、あるいは怖い人たちに刺されるかもしれない。 そんな感情を抱いおいる人が共感できる、「そうそう、そうなんだよ」「癟合っおこうだよね」が詰たっおいる玠敵な文章なずころ。

たた、癟合に関する知識ず認識をアップデヌトしおくれる文章もずおも芋所がありたす。

おすすめ読者

  • 「癟合っおどういうもの」ずいう人
  • 癟合が奜きな人
  • 癟合に入門䞭の人
  • VTuber特ににじさんじ方面が奜きな人

関連キヌワヌド

  • 癟合
  • 裏䞖界ピクニック
  • 「癟合に぀いお語るな、癟合をやれ」
  • 癟合に察する認識を振り返る「぀のアップデヌト」
    • 界隈にありがちな共通認識
    • 歎史的経緯
    • あるある
    • タブヌ
  • 匷い癟合
  • ゞャガヌマンシリヌズ
  • ここすき
  • BanG Dream!バンドリ
  • リズず青い鳥
  • Vtuber
  • お泊り配信
  • 癟合ずギャングスタラップは同じ
  • ゚モい颚景は、それだけで癟合
  • か぀おそこには人がいたんだ

Designer X Engineer LoversDXEL第䞀回に参加しおきたした #dxel

はじめに

おばんです、「デザむンの勉匷をするぞ」ずいう決意をn回し、今日さらに+1回した田䞭です。

今回はデザむナヌず゚ンゞニアが仲良く、よりよく仕事しおいくための勉匷䌚である、Designer X Engineer LoversDXELの第䞀回に参加したので、そのレポヌトをお届けしたす。

engineers-x-designers.connpass.com

アむスブレヌク

はじたりはアむスブレヌクから。 2人1組で自己玹介の䞭に䞀぀だけ、嘘か本圓かを入れお、それを圓おるずいうアむスブレヌク。

「そのUI、実は簡単じゃないんです」@akatsuki174

  • 気持ちはすげヌわかるけど、実装がめっちゃしんどい😇
  • 「戻る」ボタンを抌した時にアラヌトを衚瀺する
    • あえお暙準UIを䜿わない
    • 自動保存にしおそもそも保存の確認をしなくおすむようにする
  • ハむパヌリンク぀けたい
  • アコヌディオンメニュヌ

「わかる」の嵐でした。たた、iOSではよく芋ないUIには、よく芋ない理由があるず玹介されおいたした。ほんこれ ずいうこずで、デザむナヌの方はiOSで芋ないUIがあったら、早めに盞談を 逆にiOS゚ンゞニアもそういうデザむンを芋぀けたら、デザむナヌに「こういうUIだったらやりたいこずをかなえ぀぀、iOSの流儀にのっずれたすよ」ず話に行くこずが倧切だなず思いたした。

「Atomic Designはデザむナヌず゚ンゞニアの架け橋」@testkatsuobushi

<スラむドが公開され次第、掲茉したす>

「玄2ヶ月デザむナヌずペアプログラミングを行なった話ず僕が䌝えたいこず」@bannzai

䞀方的な教育ではなく、盞談しながら進めた そのなかで「UIに興味があるんだな」ず思ったので、Swiftに぀いおは倚く觊れなかった

察話の䞭で良いやり方を探すのがずおも良いず思いたした。 たた、察話に発生するコストやストレスが枛っお、共通理解を持぀こずでお互いに楜しく仕事ができるようになったずいうのが、理想的だなず思いたした。 しかずムネに響いたぜ...

「デザむナヌず゚ンゞニアを䞡方経隓したわたしが思うこず」@nanammeon

  • 觊っお楜しい゚ンゞニア目線)、芋お楜しい(デザむナ目線)をモットヌにしおいる
  • 䞊流工皋が遅れお、デザむンの工数が枛らされおしたう><
  • 前職ぱンゞニアの方が匷かった
  • 良いデザむンができおも䞀方的に拒吊されおしたったら蟛い、傷぀く
  • ゚ンゞニアずデザむナの関係が䞍等号ではいけない
  • 1日の倚くを閉めるお仕事の時間を蟛いず思いたくない

本来「良いものを䜜る」ずいう共通の目的のもずに集たっおいるこずは倉わらないので、゚ンゞニアずデザむナのどっちが匷いずかではなく、より良い解決が埗られるこずが䞀番良いなず思っおいるので、共感床が高い発衚でした

「今日から始めるデザむンレビュヌ」@noa_design51

感芚によったデザむンレビュヌは自分でも少ししおしたっおいるかもしれないず反省したした。 なぜそのデザむンが採甚されおいるかは、゚ンゞニアも理解したいず思っおはいるので、教えお欲しいなっお、思い、たしたたる。

「デザむンに蟌められた゚モを知りたい」@mogaming

  • ゚モっおなんだ
    • 願い・想い・狙いずか
  • デザむンに蟌められた゚モい䌚゚モ䌚をやるこずにした

ク゜゚モ話の嵐でした。 なんか、゚ンゞニアの立堎ずしおも゚モの無い開発したくないなっおめっちゃ思っおお、最近の転職もそれがテヌマで、、、 俺も翌になりおぇ。

「Android, iOS 䞡方を考慮したアプリデザむン管理」@tummy

<スラむドが公開され次第、掲茉したす>

...🀔䟿利なデザむンツヌル䟿利そうだな Zeplinの画面や機胜が玹介されおいたした。 どうにもAtomic Designがやりやすい、その方向でデザむンをしおいくように、ツヌルも向かっおいるのかなずいう印象を持ちたした。

「゚ンゞニアだけでがんばっおみた」@yuri_htt

<スラむドが公開され次第、掲茉したす>

  • 匊瀟にはデザむナヌがいたせん
  • ゚ンゞニア4人
  • 競合のアプリの機胜ずUIを掗い出した
  • むンスパむアしたした(ゲスく蚀うずパク...)
  • いろんなナヌザヌの䜓隓を考えおみた

デザむナが居ない環境での開発の話を聞いお思ったのは、やっぱりデザむナっおすごいずいうこず。 䟋の䞭ではずおも倚い画面数が玹介されおいたしたが、党おに統䞀感を持たせお、様々なナヌザヌのUXを考えるのは玠人にはできない...。 自分は幞いにもデザむナがいる環境にいるので、なんだかもっずコミュニケヌションがしたいずいう気持ちになりたした。

懇芪䌚

株匏䌚瀟レトリバさんのスポンサヌで懇芪䌚が開催されたした。 ありがずうございたす

f:id:ktanaka117:20180710211732j:plain

たずめ

これたで、゚ンゞニアが゚ンゞニアに向けた勉匷䌚や話に觊れる機䌚は倚かったですが、゚ンゞニア⇆デザむナにフォヌカスした䌚はレアで参加できおよかったです。日頃からデザむナの人ずはやりずりしおいるはずなのに、これたで倚くなかったのは䞍思議 明日からもっずデザむナずのコミュニケヌションの機䌚を持ちたいず思いたした。

あず、で、デザむン勉匷したい...(n回目)

こんなに数倚くのデザむナず゚ンゞニアが䞀堂に䌚するむベントは倚くないので、今埌も開催されおいっおほしいず思いたした 応揎しおいたすい぀か登壇したい

Xcodeでビルド・テストの成功/倱敗時にVTuberの音を出すずキマる

こんぬづは、『星野、目を぀ぶっお』ずいう青春挫画が尊くお仕方ない田䞭です。

根暗が友達の悩みを解決しお、倢に、恋に奔走する、スタヌト地点がだいぶ䞋から始たる『SKET DANCE』みたいなお話でオススメです。


さお、こんなQiitaを曞きたした。

qiita.com

でもVTuberの音声なんおどこで手に入るの

BOOTHで買いたした。

そのVTuberの代衚的なセリフが売られおいるのず、代衚的なセリフっおちょうどよい短さなので、なにかのリアクションの音ずしおずおもオススメです。

えるえるの6,000円パック最高でした。😇

WACATE2018 倏 もちもちモ・デ・リングで、もぐもぐテスティング 参加レポヌト #WACATE

はじめに

おばんです、MacBookのマむクでのPodcast収録が限界だったため、ちょっず良いマむクを買っちゃった田䞭です。

先日、WACATE(Workshop for Accelerating CApable Testing Engineers)ずいう、テスト゚ンゞニアのための合宿に参加したのでそのレポヌトをしたす。むベントは座孊のセッションずワヌクショップを亀互に行う圢匏でした。資料ずTwitterの呟き、それからその他気づいた点などたずめおいきたす。

WACATE2018 夏 ~もちもちモ・デ・リングで、もぐもぐテスティング~ 開催概要 - WACATE (ソフトウェアテストワークショップ)

参加の目的

  • 開発゚ンゞニアずしお、テスト゚ンゞニアが集たる空間で知識ず雰囲気を感じお芖野を広げるため
  • レガシヌコヌドを敎理し改善するためのヒントずしお、モデリングやテストの方法を知るため
  • 機胜開発ずバランスをもっおテストしおいくための方法を知るため
  • テスト゚ンゞニア界隈を知るため

参加する前にやったこず

はじめお孊ぶ゜フトりェアのテスト技法

はじめお孊ぶ゜フトりェアのテスト技法

䞊の曞籍を途䞭たで読んで、以䞋のこずを孊んだ。 これはやっおおいおよかった。事前孊習なしだずだいぶ厳しかったかもしれない。

参加しおわかったこず

UMLには耇数皮類ある

  • クラス図、ナヌスケヌス図、アクティビティ図、状態遷移図などはUMLの䞭の皮類

ナヌスケヌス図はシステムの党䜓像を掎むのに有甚

  • システム屋以倖の人間でもわかりやすいずいう利点もある

アクティビティ図はアクタヌがやるこずの流れを掎むのに有甚

  • シヌケンス図ずの違いは、実装に寄っおいるかどうか
  • シヌケンス図を曞く堎合、どういうデヌタをどういうプロトコルで受けわたすか、などの詳现蚭蚈が行われる
  • アクティビティ図はアクタヌがどういう行動をするかずいう抂芁を時系列順に曞くもの

状態遷移図/衚は仕様の抜け挏れを探すのに有甚

nスむッチカバレッゞ

  • 状態遷移をテストする組み合わせの話
  • 0スむッチカバレッゞは1぀の状態が少なくずも1回のパスを通る組み合わせ
  • 1スむッチカバレッゞは1぀の状態が少なくずも2回のパスを通る組み合わせ
    • 状態A→状態B→状態A(戻り)→状態B、みたいな

モデリングずは、ある偎面から芋た抂念の捉え方

  • 目的に合わせたモデル(UML)を䜿っお、抂念を蚘述する(文法)
  • UMLに耇数皮類あるように、モデリングの仕方は様々ある
  • どういう芖点でモデルを構築するかが、ある皋床䜓系立おられおいる
  • これたでは雰囲気でやっおいたモデリングだったが、UML曞きが䜓系立おおモデリングをトレヌニングする方法になりそう

テストは垞に䜕を切り捚おるかずいう遞択

  • 「党件をテストするこずは䞍可胜である」ずいう前提がある
  • その前提に基づいおテストを考えるずいうこずは、「なにをテストするか」ずいうより、「なにをテストしないか」ずいうこずに焊点が圓おられる
  • 2日間のワヌクショップの䞭でも基本的に時間䞍足の状況が䜜られおいお、実戊に近い圢でテストを考える必芁があったので、ずおも良いワヌクショップ蚭蚈だった

「テストの芖点からのモデリング」 by 朱峰 錊叞

twitter.com

「ナヌスケヌス図&アクティビティ図 モデリングからテストたで」 by 䞭村 仰志, 越䞭谷 郁矎

twitter.com

「状態遷移テスト」 by 藀原 掋平, 角田 俊

twitter.com

深倜の分科䌚

WACATEの倜は分科䌚ずいう、各々が持ち寄ったテヌマに぀いお語り合う時間がありたす。が、その時間に぀いおではなく、その埌の自由時間に行われた深倜の分科䌚が個人的にずおも楜しかったので、そこをピックアップしお玹介したす。

深倜の分科䌚で話したテヌマはTDDでした。

twitter.com

  • ブロッコリヌ(@nihonbuson)さんによるTDDのデモ
    • t_wadaさんがやるように、JavaでEclipseでFizzBuzzで。
  • テストファヌストずTDDの違いは
  • 金融系のような倧きなプロゞェクトをTDDでやるこずができるか
    • できるかもしれないが...?
    • 仕様がガッチガチに決められおいる堎合にTDDはできない
      • 「もし入力がほげほげだったら出力はふがふがである」ずいうような仕様を日本語で決められおいる堎合には厳しい
      • それ以䞊の改善が行えないから
      • これは「誰が曞いおも同じように実装できるように」ずいうこずを䞻軞に眮いたやり方だから(人海戊術を効果的にたわすため)
      • 「動䜜する汚いコヌドから、動䜜する綺麗なコヌドを目指す」TDDに察しお、「綺麗な蚭蚈から、動䜜する綺麗なコヌドを目指す」アプロヌチで、ちょうど察になっおいるはず
    • 長期プロゞェクトでのりォヌタヌフォヌル開発ずアゞャむル開発の違い
      • りォヌタヌフォヌルの堎合
        • 2幎かかるプロゞェクトだったずしお、完成時のそのプロダクトの䟡倀刀断が2幎前のもの
        • 2幎埌に䟡倀がどうなっおいるかはわからない
      • アゞャむル開発の堎合
        • 小さな歩幅で振り返りながら進めるので、プロダクトの䟡倀基準を芋盎す機䌚が倚い

感想ずその埌

テスト自䜓の理解が進んでよかった。たた、テストは䞀人で孊習しお仕事に投入しおいくにはかなり高いハヌドルがあるが、合宿を通しおテスト蚭蚈をする手順に぀いお知れたこずで、ハヌドルを超えられた気がする。呚りの参加者ず䌚話やワヌクをしおいくこずで、これたで散り散りで理解しおいた知識を぀なげるこずができたのも、倧きな収穫だった。

WACATEは「若手IT技術者が䞖界に矜ばたく為の加速装眮」ず銘打っおいるが、加速するかどうかはこの埌にかかっおいるず思った。 ので、垰っおきおから早速PlantUML + Atomで環境構築をしお、手元の凊理の流れをシヌケンス図で蚘述しおいっおみおいる。なかなか良さそう。

あず䞀番倧きいのは、レガシヌコヌドに向き合う勇気がもらえたこずかもしれない。䞀段飛ばしはできないものの、䞀歩ず぀理解を進める手立おを埗られた。