SlideShare a Scribd company logo
1 of 16
Download to read offline
部内ライブラリ開発
発表者
 京都工芸繊維大学
@Hans_Robo
2
君誰
京都工芸繊維大学の4年生
来年からNAISTへ
昔
今
京都工芸繊維大学「 ForteFibre 」 ソフト班
2019 年度ソフトリーダーなど
RoboCup Soccer SSL 「 ibis 」 AI 班
3
注意
●
自分は”旧”ソフトリーダーです.
– 話す内容は最新版ではない可能性があります
●
発展途上の取り組みも多々含みます
– 既にやっていて当たり前のことかもしれません
4
ライブラリの恩恵
●
コード共有の場
– 素晴らしいものをみんなで
●
作れる
●
使える
●
大勢の人が使う
– バグが少なくなる
– 監視の目が多い
– ノウハウの蓄積
5
良いライブラリにするために
●
維持しないと ...
– 使えないライブラリに
●
発展しないと ...
– 時代遅れのライブラリに
維持 発展と が不可欠
6
ライブラリの維持
7
ライブラリの維持
●
不具合・問題点への対応
●
品質の維持
●
後継者の維持
– ユーザ
– コミッタ
維持
8
すばやい不具合対応 ForteFibre の事例 1
自分のリポジトリ
コピー
リポジトリ
ライブラリ
ライブラリ ライブラリ
大元のライブラリとリンク
※git の submodule という機能を使っています
9
すばやいフィードバック ForteFibre の事例 2
●
言い出しっぺの法則の適用
●
問題の発覚が遅れる
●
対応が雑になる
●
提案者
– gitlab に issue を立てる
– 立てるだけでもいい
– できる限り迅速に
●
実装者
– issue の対応を行う
– 実装に詳しい人が対応
提案者と実装者の分離
実装者提案者 = 問題
10
品質の維持
●
コード品質の保証
– ある程度型が決まっているので読みやすい
●
コードの良し悪しの基準
– 部員感で良い相互作用が !
– 根拠を持った煽りが可能.「君のコード,規約違反じゃない??」
●
IDE 設定ファイルの配布 (CLion)
– IDE のエラー表示など
コーディング規約
11
後継者の維持
●
後継者の育成
– 後輩へのライブラリの宣伝
– 良いライブラリは良いメンテナーから
●
「よく分からんけどなんか動いてる」の防止
– コードへのコメント強化
– ライブラリ設計思想の引き継ぎ
●
wiki の活用
12
ライブラリの発展
13
ライブラリの発展
●
ライブラリの刷新
– 設計思想が受け入れられなくなると必要
●
新生ライブラリ
– 時代とともに状況もかわる
発展
14
新生ライブラリ
●
他大ライブラリ情報の収拾
– 同業者から情報を得る
●
ライブラリの仕様策定会議
– ユーザーからの要望
– 実装者からの仕様案
15
ご清聴ありがとう
ございました
16
質問タイム
あとで直接聞いたり Twitter などでもどうぞ
(@Hans_Robo)

More Related Content

Similar to 部内ライブラリ開発

Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjpSphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
Takeshi Komiya
 
Rubyを楽しくする第一歩!ブロックを理解する!
Rubyを楽しくする第一歩!ブロックを理解する!Rubyを楽しくする第一歩!ブロックを理解する!
Rubyを楽しくする第一歩!ブロックを理解する!
Kanako Kobayashi
 
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミングDLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミング
terurou
 

Similar to 部内ライブラリ開発 (20)

LibreOffice Conference 2019 Almería参加報告(KOF版)
LibreOffice Conference 2019 Almería参加報告(KOF版)LibreOffice Conference 2019 Almería参加報告(KOF版)
LibreOffice Conference 2019 Almería参加報告(KOF版)
 
ソフトウェアエンジニアと高位合成
ソフトウェアエンジニアと高位合成ソフトウェアエンジニアと高位合成
ソフトウェアエンジニアと高位合成
 
20160218 devsumi
20160218 devsumi20160218 devsumi
20160218 devsumi
 
Aj2016 toyama feedback
Aj2016 toyama feedbackAj2016 toyama feedback
Aj2016 toyama feedback
 
はじめてのスクラム開発
はじめてのスクラム開発はじめてのスクラム開発
はじめてのスクラム開発
 
CLR/H第54回勉強会 ライトニングトーク
CLR/H第54回勉強会 ライトニングトークCLR/H第54回勉強会 ライトニングトーク
CLR/H第54回勉強会 ライトニングトーク
 
Deep Learningライブラリ 色々つかってみた感想まとめ
Deep Learningライブラリ 色々つかってみた感想まとめDeep Learningライブラリ 色々つかってみた感想まとめ
Deep Learningライブラリ 色々つかってみた感想まとめ
 
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjpSphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
Sphinx ではじめるドキュメント生活 2012 #pyconjp #sphinxconjp
 
アジャイルオフショア開発モデル
アジャイルオフショア開発モデルアジャイルオフショア開発モデル
アジャイルオフショア開発モデル
 
Apple審査を一発通過! iOS開発経験0でも出来る じげん流Swift開発のすべて
Apple審査を一発通過!iOS開発経験0でも出来るじげん流Swift開発のすべてApple審査を一発通過!iOS開発経験0でも出来るじげん流Swift開発のすべて
Apple審査を一発通過! iOS開発経験0でも出来る じげん流Swift開発のすべて
 
GarumとMeteoriteと私 3nd Edition ver0.04
GarumとMeteoriteと私 3nd Edition ver0.04GarumとMeteoriteと私 3nd Edition ver0.04
GarumとMeteoriteと私 3nd Edition ver0.04
 
ローカルストレージでの永続化キューの方式を本気で比較してみた
ローカルストレージでの永続化キューの方式を本気で比較してみたローカルストレージでの永続化キューの方式を本気で比較してみた
ローカルストレージでの永続化キューの方式を本気で比較してみた
 
Swift事情2014夏 ~ Swift入門 beta6対応
Swift事情2014夏 ~ Swift入門 beta6対応Swift事情2014夏 ~ Swift入門 beta6対応
Swift事情2014夏 ~ Swift入門 beta6対応
 
Pipenvのご紹介 v2
Pipenvのご紹介 v2Pipenvのご紹介 v2
Pipenvのご紹介 v2
 
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしようC++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
C++CLIで、ネイティブCの保守開発に.NETを使って楽をしよう
 
グラフデータベース入門
グラフデータベース入門グラフデータベース入門
グラフデータベース入門
 
Rubyを楽しくする第一歩!ブロックを理解する!
Rubyを楽しくする第一歩!ブロックを理解する!Rubyを楽しくする第一歩!ブロックを理解する!
Rubyを楽しくする第一歩!ブロックを理解する!
 
Contributing to Scala OSS from East Asia #ScalaMatsuri
 Contributing to Scala OSS from East Asia #ScalaMatsuri Contributing to Scala OSS from East Asia #ScalaMatsuri
Contributing to Scala OSS from East Asia #ScalaMatsuri
 
アジャイル開発やってみた
アジャイル開発やってみたアジャイル開発やってみた
アジャイル開発やってみた
 
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミングDLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミング
 

部内ライブラリ開発