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

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

Tajima Itsuro
November 07, 2020

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

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

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.