Upgrade to Pro — share decks privately, control downloads, hide ads and more …

プログラミング活動の中の情報源としてのStack Overflow

Avatar for Tajima Itsuro Tajima Itsuro
November 07, 2020

プログラミング活動の中の情報源としてのStack Overflow

2020年度三田図書館・情報学会研究大会

Avatar for Tajima Itsuro

Tajima Itsuro

November 07, 2020
Tweet

More Decks by Tajima Itsuro

Other Decks in Research

Transcript

  1. 背景:プログラミングにおける知識 • コンピュータ・ソフトウェアのプログラミングは知識集約 的で,単にコードを書く以上の作業である • Naur, Peter. Programming as theory

    building, Microprocess and Microprogrmming. 1985, vol.15, no.5, p.253-261. • 「ソーシャルプログラマー」の興隆:様々なコミュニケー ションチャネルを利用しながら情報を共有 • Storey, Margaret-Anne; Zagalsky, Alexey; Filho, Fermando Figueira; Singer, Leif; German, Daniel M.. How Social and Communication Channels Shape and Challenge a Participatory Culture in Software Development. IEEE TRANSAC- TIONS ON SOFTWARE ENGINEERING. 2017, vol.43, no.2, p.185-204. • その1つとして,2008年にStack Overflow(SO)が登場 • プログラマー同士の質問回答の形で公開されたアクセス可 能な知識を増やすことを目指しているサイト
  2. 目的と方法 • アクセス可能な情報源としてのSOの性質は,それを仕事の 中で利用するプログラマーの観点からは研究されていない • 目的:プログラマーがSOを含む様々な情報源を用いながら, いかにして作業を行っているのかを記述する • エスノメソドロジーの方針:人々が物事を,人に説明できる ような方法で行っている。それによって例えばプログラミ

    ング場面などは,ひとまとまりに組織されている • プログラミングという作業における知識や推論が,いかに して特有のスキルを具現化した形で組織されているのか • 発表者自身(A)がソフトウェア開発プロジェクトに従事し, プログラミングにおいてSOを利用した経験をメモ,分析
  3. “良い”方法に従う:Ruby on Rails • Ruby on Rails(RoR)を採用した • Webアプリケーションに関する”良い“プログラムの経 験則”デザインパターン”に影響を受けた部品を提供

    • 意図された使い方”Rails Way”に従わないと活かせない RoR プログラム データベース 管理システム 一連のWebアプリケーションの流れそれぞれに対し部品を提供
  4. 直面した課題: ActiveStorageの問題 • 直面した問題:今までは1つのファイルを扱っていたの に対し,3つのファイルをひとまとまりで扱う必要が あった • 複数のファイルはActiveStorageでどのように表現され るのかがわからなかった •

    プログラムやデータベースの設計に影響する • 一対一対応ができない可能性 • 場合によっては,効率的かつ変更が容易なようなプ ログラムやデータベースを保つことが困難になる • ActiveStorageがどのように複数のファイルを取り扱う かに関する知識が必要
  5. 直面した課題: ActiveStorageの問題 プログラム1 ファイル1 ファイル2 ファイル3 ActiveStorage プログラム1 ファイル1 ActiveStorage

    ファイル2 ActiveStorage ファイル3 ActiveStorage プログラム2 プログラム2 方向性1 方向性2 方向性2→プログラムの書き方を変更した方が良い
  6. 解決に向けたWeb検索の試み • タイトル"When you upload multiple files using ActiveStorage, is

    it possible to determine what was just uploaded?" • 質問の冒頭からhas_many_attachedという機能を使 えばよいということがわかった 質問文
  7. 解決に向けたWeb検索の試み • "ActiveStorage has_many_attached"でWeb検索 • 解説記事を参照→SOの記事以上の情報は得られず • RoRの公式ドキュメントを参照 • ActiveStorage自体の構造について概要を理解

    • has_many_attachedがアプリケーションでは明示さ れていない,背後で行っていることをある程度理解 • SOにおいてはhas_many_attachedによる方針1が実 際のプログラミングでよく使われていることを理解し • 公式ドキュメントではActiveStorageを部品として使う 際に必要な詳細を理解していた
  8. まとめ • 効率的に,柔軟にプログラムやデータベースを設計す るというプロジェクト特有の問題のために • Ruby on Railsの機能をうまく利用する必要があり • ある機能を実装する際にうまく利用するには

    ActiveStorageについてより深く知る必要があった • SO:他のプログラマーはどのようにActiveStorageを 用いているのか→複数の方向性の判断材料 • 公式ドキュメント:内部構造など実装に必要な詳細 • 「ActiveStorageで複数のファイルを探す方法」,およ びそれを探し求めることは,あくまでも特定の仕事の 中で行われた
  9. 結論 • 「ActiveStorageで複数のファイルを探す方法」,およ びそれを探し求めることは,あくまでも特定の仕事の 中で行われた • プログラマーは一連の活動を組織する中で,スキルの1 つとしてSOなどの情報源を用いていた • エスノメソドロジーの方針により情報源へのアクセス

    や利用を活動の組織の中で記述できた • SOにおいて質問者や編集者がおこなった活動の成果1)が 今回のようなSOの利用を可能にしたと示唆される →時間と空間を隔てた協働の観点からの研究が必要 1)田島逸郎."専門的Q&Aサイトにおける質問行為の分析".三田図書館・情報学会研究大会発表論文集2015年度.2015, p.1-4. 田島逸郎."Stack Overflowにおける編集活動:知識の公開という観点から".三田図書館・情報学会研究大会発表論文集2019年度.2019, p.45-48.