Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

「レガシーコード」とはいったい?

30,398 views

Published on

オープニング+「実践レガシーコード」

Published in: Technology, Economy & Finance
  • accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes.........ACCESS WEBSITE Over for All Ebooks ..... (Unlimited) ......................................................................................................................... Download FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes.........ACCESS WEBSITE Over for All Ebooks ..... (Unlimited) ......................................................................................................................... Download FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THI5 BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THI5 BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THI5 BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

「レガシーコード」とはいったい?

  1. 1. 「レガシーコード」とはいったい!? レガシーコード」 ~あなたも書いてるレガシーコード~ あなたも書いてるレガシーコード~ レガシーコード 高橋邦彦 大中浩行 13-E-4 中谷秀洋 川西俊之
  2. 2. 自己紹介 高橋邦彦(たかはし くにひこ) 本日進行役 id:kunit 新しいフレームワークを作ろうとしていろい ろ調べているうちに REST と TDD の魅力 に取り付かれて今に至る 2008年5月より株式会社ディノで Web アプ リケーション開発を行っている
  3. 3. 自己紹介 大中浩行(おおなかひろゆき) (株)エルテックス 商品開発室 azusa@fieldnotes.jp / @setoazusa Working Effectively With Legacy Code 読 書会幹事 Seasarプロジェクトコミッタ
  4. 4. 自己紹介 中谷 秀洋(なかたに しゅうよう) サイボウズ・ラボ株式会社 Web 間アプリフレームワーク flowr 英単語タイピングゲーム iVoca コンピュータと無縁の就職をするも、社長の鶴の 一声で、一人情シス(兼業)として内製&外注 (中略) 現在に至る
  5. 5. 自己紹介 川西 俊之(かわにしとしゆき) 仕事ではC/C++で開発からテストまで テスト管理システムTestLink C言語用BDDフレームワークCSpec
  6. 6. それでは
  7. 7. 「レガシーコード」とはいっ たい!? ~あなたも書いてるレガシーコード~
  8. 8. あらため
  9. 9. 現場で闘う あなたに贈る レガシーコード迎撃 座談会
  10. 10. 副題: 副題: クラウドもSaaSも iPhoneも レガシーやろ!
  11. 11. スタート!
  12. 12. まず、皆さんに 問題
  13. 13. Q:レガシーコード とはいったい何?
  14. 14. COBOLで書 A: かれたコード
  15. 15. Win NT 4.0 A: 用のコード
  16. 16. あの先輩か A: ら引き継いだ コード
  17. 17. その答えを求めて 教科書を ひもといてみましょう
  18. 18. 現場で闘う あなたのための バイブル ※翔泳社から 日本語訳出版決定!
  19. 19. レガシーコード とは
  20. 20. 一般には 「理解しづらい・変更しにく いコードのこと」 を指すかもしれない
  21. 21. ただ、この本に よれば
  22. 22. レガシーコード とは
  23. 23. ずばり テストのないコード を指す Working Effectively with Legacy Code p.xvi
  24. 24. そう
  25. 25. 明日あなたが 書くコードも
  26. 26. レガシーコード かもしれない
  27. 27. では、私たちは いったいどうしていけば 良いのだろう
  28. 28. それを共々に 考えていきましょう
  29. 29. 本日の 本日の目標 レガシーから 逃げない レガシーを 作らない レガシーを 作り込ませない
  30. 30. 本日の 本日の目標 そのために 各人がすべきことを 探すきっかけを作る
  31. 31. それが レガシーコード 迎撃 座談会
  32. 32. それでは、 ここで、 本題に入る前に
  33. 33. レガシーを語る上での 基本用語を押さえましょう Edit & Pray Cover & Modify
  34. 34. Edit & Play 編集し、そして祈る 不安を抱きながらコードを変更 うまくいったと一息つくのも束の間 たまに、納品後にその不安が的中 現在のソフトウェア開発の主流 (by Working Effectively with Legacy Code)
  35. 35. Cover & Modify カバーして、変更する 変更の正しさ確めるテストを用意 作成したテストをセーフティネットと してコードを変更 変更の影響がわかるので安心 このセッションでこれを目指したい
  36. 36. ということで ここからが本題
  37. 37. 今日のお題 今日のお題 のお 実践レガシーコード レガシー座談会 コミュニケーションとしての レガシーコード まとめ
  38. 38. 実践レガシーコード ※フィクションです。たぶん
  39. 39. その1 その //コンストラクタ //コンストラクタ public TooLong (String path,Map map1,Map map2,String id, IIF intf) ….
  40. 40. どうやって生成 すりゃいいんだ ?
  41. 41. その1・ その ・テストケース public void testTooLong() { TooLong tooLong = new TooLong(null,null,null,nul l,null); …. }
  42. 42. →Pass Null
  43. 43. その2 その2 private DataSource dataSource; public void doLogic() throws Exception { Connection con = dataSource.getConnection(); ….. }
  44. 44. その2 その2 InitialContext ictx = new InitialContext(); DataSource ds = (DataSource) ictx.lookup(quot;java:comp/env/jdbc/SampleDSquot;) ; Field[] fields = Demo2.class .getDeclaredFields(); for (Field field : fields) { if (field.equals(quot;dataSourcequot;)) { field.setAccessible(true true); true field.set(instance, ds); } }
  45. 45. テストのためなら リフレクションも 厭わず
  46. 46. その3 その3(Before) Properties prop = new Properties(); ServletContext servletContext = ContextFactory.getContext(); prop.put(quot;PROP_PATHquot;, servletContext.getRealPath (quot;WEB-INF/prop.propertiesquot;));
  47. 47. その3 その3(After) Properties prop = new Properties(); if (ContextFactory.hasContext()) { // 本番 ServletContext servletContext = ContextFactory.getContext(); prop.put(quot;LIB_PATHquot;, servletContext .getRealPath(quot;WEB-INF/prop.propertiesquot;)); } else { // テスト prop.put(quot;LIB_PATHquot;, quot;WEB- INF/prop.propertiesquot;); }
  48. 48. やりすぎ? そこで…
  49. 49. その3 その3(ContextFactory内) 内 public static void setContext(ServletContext fakeServletContext) { servletContext = fakeServletContext; }
  50. 50. →静的setter
  51. 51. その4 その MysteriousObject obj = new MysteriousObject(); Result result = obj.mysteriousLogic(); //どうassertするの? …
  52. 52. その4 その4 Result result = obj.mysteriousLogic(); assertEquals(quot;ありえない リターンquot;, result.getString());
  53. 53. →Characterization Tests
  54. 54. いろいろ データベースのテストには Seasar2(S2Unit)が有効 DBの操作とトランザクション管理が分離 されていることが前提ですが… どこにテストを書くのか? 何をテストしたいのか →どこにバグがありそうか →プログラマーとしての直感を信じよう
  55. 55. まとめ 依存性を解決するために、本番 コード側に手をいれることがあり ます テストを通すことよりも、今ある コードの振る舞いを明らかにす ることを優先しましょう

×