Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
Sho Yoshida
PDF, PPTX
2,001 views
Source Code Management with Pharo Smalltalk - Pharo Smalltalkソースコード管理方法
Pharo Smalltalkソースコード管理方法 - Source Code Management with Pharo.
Technology
◦
Read more
4
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 34
2
/ 34
3
/ 34
4
/ 34
5
/ 34
6
/ 34
7
/ 34
8
/ 34
9
/ 34
10
/ 34
11
/ 34
12
/ 34
13
/ 34
14
/ 34
15
/ 34
16
/ 34
17
/ 34
18
/ 34
19
/ 34
20
/ 34
21
/ 34
22
/ 34
23
/ 34
24
/ 34
25
/ 34
26
/ 34
27
/ 34
28
/ 34
29
/ 34
30
/ 34
31
/ 34
32
/ 34
33
/ 34
34
/ 34
More Related Content
PDF
PHP の GC の話
by
y-uti
PDF
ダブル配列の実装方法
by
Higashiyama Masahiko
PDF
Statistical Semantic入門 ~分布仮説からword2vecまで~
by
Yuya Unno
PDF
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
by
Takuto Wada
PDF
Re永続データ構造が分からない人のためのスライド
by
Masaki Hara
PPTX
GitLab から GitLab に移行したときの思い出
by
富士通クラウドテクノロジーズ株式会社
PDF
マルチコアを用いた画像処理
by
Norishige Fukushima
PDF
会社でClojure使ってみて分かったこと
by
Recruit Technologies
PHP の GC の話
by
y-uti
ダブル配列の実装方法
by
Higashiyama Masahiko
Statistical Semantic入門 ~分布仮説からword2vecまで~
by
Yuya Unno
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
by
Takuto Wada
Re永続データ構造が分からない人のためのスライド
by
Masaki Hara
GitLab から GitLab に移行したときの思い出
by
富士通クラウドテクノロジーズ株式会社
マルチコアを用いた画像処理
by
Norishige Fukushima
会社でClojure使ってみて分かったこと
by
Recruit Technologies
What's hot
PDF
初心者向けCTFのWeb分野の強化法
by
kazkiti
PPTX
Chunked encoding を使った高速化の考察
by
Yoshiki Shibukawa
PDF
Optimistic Rollupとは何か
by
Syuhei Hiya
PDF
関数型プログラミングのデザインパターンひとめぐり
by
Kazuyuki TAKASE
PDF
C/C++プログラマのための開発ツール
by
MITSUNARI Shigeo
PDF
20分くらいでわかった気分になれるC++20コルーチン
by
yohhoy
PDF
Apache Solr 検索エンジン入門
by
Yahoo!デベロッパーネットワーク
PDF
WASM(WebAssembly)入門 ペアリング演算やってみた
by
MITSUNARI Shigeo
PDF
今からでも遅くないSmalltalk入門
by
Masashi Umezawa
PDF
Javaのログ出力: 道具と考え方
by
Taku Miyakawa
PDF
ナレッジグラフ/LOD利用技術の入門(後編)
by
KnowledgeGraph
PDF
ClassLoader Leak Patterns
by
nekop
PDF
すごい配列楽しく学ぼう
by
xenophobia__
PDF
Smalltalkだめ自慢
by
Masashi Umezawa
PDF
OCIランタイムの筆頭「runc」を俯瞰する
by
Kohei Tokunaga
PDF
"Simple Made Easy" Made Easy
by
Kent Ohashi
PDF
ゼロから始める転移学習
by
Yahoo!デベロッパーネットワーク
PPTX
グラフデータベース入門
by
Masaya Dake
PDF
Where狙いのキー、order by狙いのキー
by
yoku0825
PDF
SQLアンチパターン - 開発者を待ち受ける25の落とし穴
by
Takuto Wada
初心者向けCTFのWeb分野の強化法
by
kazkiti
Chunked encoding を使った高速化の考察
by
Yoshiki Shibukawa
Optimistic Rollupとは何か
by
Syuhei Hiya
関数型プログラミングのデザインパターンひとめぐり
by
Kazuyuki TAKASE
C/C++プログラマのための開発ツール
by
MITSUNARI Shigeo
20分くらいでわかった気分になれるC++20コルーチン
by
yohhoy
Apache Solr 検索エンジン入門
by
Yahoo!デベロッパーネットワーク
WASM(WebAssembly)入門 ペアリング演算やってみた
by
MITSUNARI Shigeo
今からでも遅くないSmalltalk入門
by
Masashi Umezawa
Javaのログ出力: 道具と考え方
by
Taku Miyakawa
ナレッジグラフ/LOD利用技術の入門(後編)
by
KnowledgeGraph
ClassLoader Leak Patterns
by
nekop
すごい配列楽しく学ぼう
by
xenophobia__
Smalltalkだめ自慢
by
Masashi Umezawa
OCIランタイムの筆頭「runc」を俯瞰する
by
Kohei Tokunaga
"Simple Made Easy" Made Easy
by
Kent Ohashi
ゼロから始める転移学習
by
Yahoo!デベロッパーネットワーク
グラフデータベース入門
by
Masaya Dake
Where狙いのキー、order by狙いのキー
by
yoku0825
SQLアンチパターン - 開発者を待ち受ける25の落とし穴
by
Takuto Wada
More from Sho Yoshida
PDF
OpenRestyを用いてイケイケなサービスを作る方法
by
Sho Yoshida
PDF
Continuous Integration for Pharo Smalltalk Part 2 (Smalltalk and Travis CI)
by
Sho Yoshida
PDF
今時なウェブ開発をSmalltalkでやってみる?
by
Sho Yoshida
PDF
Continuous Integration for Pharo Smalltalk - Smalltalkと継続的インテグレーション
by
Sho Yoshida
PDF
Elasticsearch for Pharo Smalltalk
by
Sho Yoshida
PDF
RUNNING Smalltalk - 実践Smalltalk
by
Sho Yoshida
PDF
AWS SDK for Smalltalk
by
Sho Yoshida
PDF
How Smalltalker Works
by
Sho Yoshida
PDF
Smaltalk驚異の開発(私が使い続ける2012年の話)
by
Sho Yoshida
PDF
愛せよ、さもなくば捨てよ。
by
Sho Yoshida
PDF
情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦
by
Sho Yoshida
PDF
もしイチゴ農家の園主がSmalltalkの「Seaside」(で作られたシステム)を使ってみたら
by
Sho Yoshida
PDF
エコSmalltalk
by
Sho Yoshida
PDF
今日から使おうSmalltalk
by
Sho Yoshida
PDF
Iliad or Seaside
by
Sho Yoshida
PDF
Pharo(Smalltalk)でAPI作りをはじめよう
by
Sho Yoshida
OpenRestyを用いてイケイケなサービスを作る方法
by
Sho Yoshida
Continuous Integration for Pharo Smalltalk Part 2 (Smalltalk and Travis CI)
by
Sho Yoshida
今時なウェブ開発をSmalltalkでやってみる?
by
Sho Yoshida
Continuous Integration for Pharo Smalltalk - Smalltalkと継続的インテグレーション
by
Sho Yoshida
Elasticsearch for Pharo Smalltalk
by
Sho Yoshida
RUNNING Smalltalk - 実践Smalltalk
by
Sho Yoshida
AWS SDK for Smalltalk
by
Sho Yoshida
How Smalltalker Works
by
Sho Yoshida
Smaltalk驚異の開発(私が使い続ける2012年の話)
by
Sho Yoshida
愛せよ、さもなくば捨てよ。
by
Sho Yoshida
情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦
by
Sho Yoshida
もしイチゴ農家の園主がSmalltalkの「Seaside」(で作られたシステム)を使ってみたら
by
Sho Yoshida
エコSmalltalk
by
Sho Yoshida
今日から使おうSmalltalk
by
Sho Yoshida
Iliad or Seaside
by
Sho Yoshida
Pharo(Smalltalk)でAPI作りをはじめよう
by
Sho Yoshida
Source Code Management with Pharo Smalltalk - Pharo Smalltalkソースコード管理方法
1.
Pharo Smalltalkソースコード管理方法 Source Code
Management with Pharo Sho Yoshida / @newapplesho SORABITO Co. Ltd. 2 August 2015
2.
この資料について Pharo Smalltalkのソースコード管理方法を資料にまとめました
3.
Henry Burrows https://www.flickr.com/photos/foilman/8015746124/ あのソースコード管理って どうやって作っているんですか え! ある日のSmalltalker同士の会話
4.
Smalltalkのソースコード保管方法について • 「分からないことはSmalltalkに聞け」というSmalltalk • だからコメントやドキュメントをあまり残さないSmalltalker •
ドキュメントを見つけても古い • 一体どうなっているんだ ということで知っていることをまとめてみました
5.
今回の範囲 • Smalltalkの処理系はたくさんあり管理方法もバラバラ • Pharo
Smalltalkについて説明します(下記は適当です。すみません) 20152010頃 2012頃 20142002? Metacelloによる平定 FileTreeの登場 Pharo3.0 Released FileTree標準装備 Pharo4.0 Released Monticello(MCZ)の出現 Squeak Released パッケージの導入?? 2008 MCZの普及とリポジトリの乱立 GitHubの到来 1996? Pharo Released MCZ混沌時代の到来 2013? SmalltalkHub登場? Git出現 2005? FileTree+GitHubでのパッケージ公開が増えてくるはず Git管理願望時代? GitHub Enterprise提供開始 Smalltalkと出会う
6.
むかしむかし・・・ Once upon a
time でもそんな昔でないかも paul bica https://www.flickr.com/photos/dexxus/5626316429/
7.
Pharoの前身のSqueakでは • パッケージ(ソースコード群)フォーマットとしてSAR形式があった • SqueakMapというウェブベースのパッケージ管理でも使われている •
でも作るのは手作業で大変 詳しく知りたい方は「Squeak自由自在 http://swikis.ddo.jp/squeak/13」を参考にするとよいでしょう http://map.squeak.org
8.
Monticelloの出現 • MCZ形式のパッケージファイル管理ツール • バージョン管理可能、差分確認が可能 •
ローカルディレクトリおよびFTP, HTTP経由で外部にも保管可能 手動作成のSAR形式より楽で便利。 Squeak自由自在を読むと当時の期待感がわかる
9.
MCZの普及とリポジトリの乱立 • MCZは普及しSqueak, Pharoではデフォルトのパッケージ管理となった •
MCZ形式のファイルを一般公開するためのリポジトリサーバーが登場 • SqueakSource,SqueakSource3や野良SqueakSourceが乱立した どこに何がおいてあるのか不明。 Smalltalk入門者は主要なリポジトリを知らないと 欲しいパッケージが見つけられない可能性がある。 現在もこの問題は解決されていない Smalltalkだめ自慢 http://www.slideshare.net/umejava/smalltalk-38297600
10.
MCZ混沌時代の到来 • MCZ形式は便利ではあったが欠点も多かった • パッケージ間の依存関係解決が難しい(自分のパッケージに入れる荒技が あったりヒドかった) •
処理系、処理系のバージョンを指定できない(「動けばOK!」ってノリ。 いいのか?) • 最新化は職人技(「これだ!」ってな感じでMCZファイルを手動ロード) 私は学生の頃Smalltalkイメージ作り職人になっていた mario https://www.flickr.com/photos/64738468@N00/31049645/
11.
Metacelloによる平定 • Monticelloの問題であったパッケージ依存や処理系ごとの制御を可能にする システム • Metacelloの登場によりパッケージ依存でエラーになることが少なくなった •
そしてイメージ作り職人は職を失ったはず(これが出た当初はSmalltalkとは無縁な仕事をしていたけどw) よく見かけるConfigurationOfXX がMetacelloを記述するクラス Metacelloの使い方は第23回Smalltalk勉強会の資料を参考 http://www.smalltalk-users.jp/Home/gao-zhi/dai23kaismalltalkbenkyoukai Always Shooting https://www.flickr.com/photos/alwaysshooting/15315019007/
12.
GitHubの到来 • Metacelloが登場したころにはGitHubが広まりつつあった • しかしながらSmalltalkerは独自ソースコード管理方法を続けた •
Metacello登場以降もプライベートなプロジェクト管理および多人数開発で は問題を抱えていた あの猫が怖かったのかもしれない
13.
MCZでの運用の問題 • MCZ形式はソースコードをzip形式でアーカイブしたもの • MCZファイルそのままをGitで管理しても嬉しくない •
プライベートなプロジェクトの場合SqueakSourceが必要になる • ブランチ管理ができない • Pull Requestが使えない • ソースコードを見るためのSmalltalkがいつもあるとは限らない
14.
Git使いたい あの猫のサイトに公開したい Git管理願望時代の始まり jessicahtam https://www.flickr.com/photos/jessicatam/4177468736/in/photostream/ git管理を憧れ続けたSmalltalkerの物語
15.
FileTreeの登場 参考資料: http://www.slideshare.net/esug/of-metacello-git-scripting-and-things FileTreeとは Monticello repository
for directory-based Monticello packages enabling the use of git, svn, etc. for managing Smalltalk source code. https://github.com/dalehenrich/filetree より ソースコードをgit等で管理するための ディレクトリベースのソースコード管理ツール 発見したときPharo2.0に即座にインストールした
16.
MCZだと・・・ Smalltalkがないと見えないよ
17.
package class method properties method source FileTreeだと 見えるぞ、私にも見えるぞ
18.
FileTreeとGit管理 見えるぞ、私にも見えるぞ
19.
FileTreeのメリット • ファイルベース管理なのでGit等の他言語のコード管理方法が利用可能 • プライベートSqueakSourceの導入が不要になり管理コスト減 •
ブランチが使える • Pull Requestが使える • Pharo 3.0から標準装備
20.
FileTreeの使い方(保存編) • Monticello Browserを開き、保存したいパッケージを選択 •
[+Repository]をクリック、[filetree://]を選択して保存するディレクトリを選択 • Monticelloと違いバージョン毎にソースコードが出力されないので注意 (saveしたらgit,mercurial等でバージョン管理をする) 簡単ですね
21.
FileTreeの使い方(読み込み編) • 読み込む際にはBaselineをつかって読み込む • BaselineはFileTreeで保存したパッケージ間依存を記述 •
Metacelloの知識があれば簡単に記述可能 • Metacelloのbaseline:だけを取り出しものを考えるとわかりやすい BaselineOfXX がBaselineを記述するクラス
22.
Baselineの例
23.
Baselineを使った読み込み | pathToPackageDirectory | "edit
to match the path to your chosen package directory" pathToPackageDirectory := '/YOUR-GIT-DIRECTORY-PATH/sendgrid-smalltalk/pharo-repository/'. Metacello new baseline: 'SendGrid'; repository: 'filetree://', pathToPackageDirectory; load. SendGrid Smalltalkの場合 https://github.com/newapplesho/sendgrid-smalltalk
24.
FileTree + Baseline
+ Git • BaselineのコードもFileTreeで保存すればカレントブランチのソースコードが 読み込める • バージョン管理はGitに任せればOK • ビジネスなどのプライベートプロジェクトの管理にはとても便利
25.
SORABITOの場合 ConfigurationOf BaselineOf プロジェクトに 必要な外部パッケージ読み込む 開発 base
image プロジェクトの ソースコードを読み込み image完成 公式Pharo image 定期的に更新 随時 外部パッケージを見極める必要があるため 作成には経験もしくは忍耐が必要(リポジトリ乱立問題) 各Smalltalkerに任せる サーバーにデプロイするとき作ったイメージは必ず大事に保存しておくこと + + image作成職人の復権?
26.
これで無事解決したのだろうか • プライベートプロジェクト管理はほぼ解決したと思う • 外部パッケージは依然としてMCZ管理が大半 •
SmalltalkHubという新リポジトリもできてしまった • あの猫サイトでパッケージ公開しても他と連携しないとSmalltalkerに発見さ れない可能性もある Will https://www.flickr.com/photos/bongonian/8545465929/
27.
Gitに憧れ三千里 git管理を憧れ続けたSmalltalkerの物語の最終章 flowcomm https://www.flickr.com/photos/flowcomm/4372513286/
28.
FileTreeはGitHubもサポート • FileTreeにはGitHubに公開されたソースコードをcloneする機能ある • 取得するソースコードはcommitの識別番号で指定可能 •
ConfigurationOfのversionメソッドにgithubのパスを指定する • 利用するにはBaselineにGit管理のパッケージの依存関係に記述してコミットする 必要がある • GitHubからcloneするConfigurationOfをSmalltalkHubなどに公開すれば乱立時代 も乗り切れる
29.
SendGrid Smalltalkの例 github://<user>/<project>[:SHA][/<path>] というルールになっている
30.
SendGrid Smalltalkの例 github://newapplesho/sendgrid-smalltalk:ce676f2225374264108042c4c734fe116b3c5080/pharo-repository
31.
GitHubから取得するConfigurationOfを利用 github://newapplesho/sendgrid-smalltalk:ce676f2225374264108042c4c734fe116b3c5080/pharo-repository ローカルにGitHubのソースコードを取得する
32.
SendGrid Smalltalkの例 ConfigurationOfのみSmalltalkHubに公開
33.
FileTree + Git最高ですね
34.
準備は整った さあSmalltalkを書こう paul bica https://www.flickr.com/photos/dexxus/5820866907/
Download