SlideShare uma empresa Scribd logo
1 de 19
Undocumented...
  2012/07/23 #ssmjp
      th0x0472
お約束


Twitter @th0x0472
フォローするときはよく考えて。
アンフォローはお気軽に。

Blog http://th0x0472.at.webry.info/
ところで


 みなさん、コード書いてますか?

Shell script, C/C++, Python, Perl, Ruby,
   C#, Java, Assembler, Java Script,
       Visual Basic, VBScript, etc...
                (並び順に深い意味はありませんよ・・・?)
文章は書いてますよね


メール、ツイッター、ブログ

各種連絡、報告書、議事録

仕様書、設計書、手順書

                etc...
今日のお題

リーダブルコード
より良いコードを書くための
シンプルで実践的なテクニック

Dustin Boswel, Trevor Foucher著
角 征典訳

オライリー 2012年6月
(ISBN:978-87311-565-8)
www.oreilly.co.jp/books/9784873115658/
目次

1章 理解しやすいコード           9章 変数と読みやすさ

2章 名前に情報を詰め込む          10章 無関係の下位問題を抽出する

3章 誤解されない名前            11章 一度に1つのことを

4章 美しさ                 12章 コードに思いを込める

5章 コメントすべきことを知る        13章 短いコードを書く

6章 コメントは正確で簡潔に         14章 テストと読みやすさ

7章 制御フローを読みやすくする       15章 「分/時間カウンタ」を設
                       計・実装する
8章 巨大な式を分割する
「優れた」コードって何?

return exponent >= 0 ? mantissa * (1 << exponent) : mantissa / (1 << -exponent);

                                                        (本書 2ページより)

アイツは行っちまったのさ・・・
それこそ均一なるマトリクスの裂け目の向こうへ・・・
あいつは確かに活きてる。
広大なネットのどこか、あるいはそのすべての領域に融合して。
「優れた」コードって何?

if (exponent >= 0) {

     return mantissa * (1 << exponent);

} else {

     return mantissa / (1 << -exponent);

}

                                           (本書3ページより)

シーザーを理解するためにシーザーである必要は無い。
読みやすさの基本定理


 となる考え
コードは他の人が最短時間で理解できる
ように書かなければいけない。

         (本書 3ページより)
「他の人」?


どうせ誰も読まないし

他の人なんか知ったこっちゃないし

俺はマテバが好きなの!
「他の人」?


金曜日の自分と次の月曜日の自分。

夏休み前の自分と夏休み明けの自分。

半年後の自分。5年後の自分。
僕の場合

先週書いたコードの理屈をぱっと思い出せな
かったことがあります。よくあります。
(そもそも休みの日まで仕事のコトを覚えていたくない)

あるプロジェクトを離れてから4,5年後に
自分が書いたスクリプトが使い続けられてる
という話を聞いたことがあります。
コードの話でしょ?


根幹のメッセージは普遍的。

むしろコード以外の各種文書の方が
改善する余地が大いにあると思う。

エンジニアの共通言語=コードなだけ。
簡単に紹介すると

明確で正確な表現 vs 気取った言い回し

具体的な表現 vs 名状しがたい・・・

重要な情報を欠落させない

誤解を招かない表現

  当たり前? ちゃんと出来てますか?
簡単に紹介すると

全体像を説明する

自分の考えを記録する

読み手の期待を理解する

読み手に書き手の意図を伝える

 こんな普遍的なお話が詰め込まれてます
そんなわけで

コードを書くのが大好きな方はもちろん

コードに限らず、何らかの文書を書く方

あまり書きたくない方、読みたくない方

      みんなにお勧めです。
 (どちらかと言えばむしろ後にあげた方に強くお勧め)
でも・・・


お高いんでしょう?
紙の書籍で ¥2,400− (税別)
電子書籍で ¥2,016− (税込み?)

分厚いんでしょう?
本文、解説、索引で237ページ。
ところで

そもそも、ドキュメントが存在しない、
更新されていない・・・

そんなときは、Sphinxですよ。

       http://sphinx-users.jp/
おしまい
ご清聴ありがとうございました。

Mais conteúdo relacionado

Destaque

sitikiyut KKPI-cafetaria
sitikiyut KKPI-cafetariasitikiyut KKPI-cafetaria
sitikiyut KKPI-cafetariasitimoet
 
Презентация проекта "Парк ярославского периода"
Презентация проекта "Парк ярославского периода"Презентация проекта "Парк ярославского периода"
Презентация проекта "Парк ярославского периода"gaidar_fund
 
презентація вишняки
презентація вишнякипрезентація вишняки
презентація вишнякиvishnyaki-school
 
Jardim tropical gonçalo, rúben
Jardim tropical   gonçalo, rúbenJardim tropical   gonçalo, rúben
Jardim tropical gonçalo, rúbenJosé Palma
 
Ziinga Discount: Ziinga Meme
Ziinga Discount: Ziinga MemeZiinga Discount: Ziinga Meme
Ziinga Discount: Ziinga MemeZiinga Discount
 
Programação dia 31 de julho
Programação dia 31 de julhoProgramação dia 31 de julho
Programação dia 31 de julhoFabiano Drevek
 
Resistencia a nuevos fármacos en cáncer renal
Resistencia a nuevos fármacos en cáncer renalResistencia a nuevos fármacos en cáncer renal
Resistencia a nuevos fármacos en cáncer renalMartín Lázaro
 
3Dパズル カタログ rev2
3Dパズル カタログ rev23Dパズル カタログ rev2
3Dパズル カタログ rev2reacjapan
 
美白一定要知道的基本觀念
美白一定要知道的基本觀念美白一定要知道的基本觀念
美白一定要知道的基本觀念loseweightfitness
 
Manual de Naturaleza y Vidad Social (Selva)
Manual de Naturaleza y Vidad Social (Selva)Manual de Naturaleza y Vidad Social (Selva)
Manual de Naturaleza y Vidad Social (Selva)Rosita Piscoya
 
Скамейка запасных
Скамейка запасных Скамейка запасных
Скамейка запасных scaleproject
 
guru-sebagai-satu-profesion
guru-sebagai-satu-profesionguru-sebagai-satu-profesion
guru-sebagai-satu-profesioncidapink89
 
Faberlic katalogs 11 2012
Faberlic katalogs 11 2012Faberlic katalogs 11 2012
Faberlic katalogs 11 2012Dace Āboliņa
 

Destaque (18)

sitikiyut KKPI-cafetaria
sitikiyut KKPI-cafetariasitikiyut KKPI-cafetaria
sitikiyut KKPI-cafetaria
 
Презентация проекта "Парк ярославского периода"
Презентация проекта "Парк ярославского периода"Презентация проекта "Парк ярославского периода"
Презентация проекта "Парк ярославского периода"
 
презентація вишняки
презентація вишнякипрезентація вишняки
презентація вишняки
 
Jardim tropical gonçalo, rúben
Jardim tropical   gonçalo, rúbenJardim tropical   gonçalo, rúben
Jardim tropical gonçalo, rúben
 
Ziinga Discount: Ziinga Meme
Ziinga Discount: Ziinga MemeZiinga Discount: Ziinga Meme
Ziinga Discount: Ziinga Meme
 
Programação dia 31 de julho
Programação dia 31 de julhoProgramação dia 31 de julho
Programação dia 31 de julho
 
Let the Games Begin!
Let the Games Begin!Let the Games Begin!
Let the Games Begin!
 
Resistencia a nuevos fármacos en cáncer renal
Resistencia a nuevos fármacos en cáncer renalResistencia a nuevos fármacos en cáncer renal
Resistencia a nuevos fármacos en cáncer renal
 
3Dパズル カタログ rev2
3Dパズル カタログ rev23Dパズル カタログ rev2
3Dパズル カタログ rev2
 
美白一定要知道的基本觀念
美白一定要知道的基本觀念美白一定要知道的基本觀念
美白一定要知道的基本觀念
 
Sunu4
Sunu4Sunu4
Sunu4
 
Nhan mac 18 apsara
Nhan mac 18 apsaraNhan mac 18 apsara
Nhan mac 18 apsara
 
Manual de Naturaleza y Vidad Social (Selva)
Manual de Naturaleza y Vidad Social (Selva)Manual de Naturaleza y Vidad Social (Selva)
Manual de Naturaleza y Vidad Social (Selva)
 
Скамейка запасных
Скамейка запасных Скамейка запасных
Скамейка запасных
 
guru-sebagai-satu-profesion
guru-sebagai-satu-profesionguru-sebagai-satu-profesion
guru-sebagai-satu-profesion
 
Faberlic katalogs 11 2012
Faberlic katalogs 11 2012Faberlic katalogs 11 2012
Faberlic katalogs 11 2012
 
7
77
7
 
Unikcom webproduction
Unikcom webproductionUnikcom webproduction
Unikcom webproduction
 

Semelhante a 201207 ssmjp

良い?悪い?コードコメントの書き方
良い?悪い?コードコメントの書き方良い?悪い?コードコメントの書き方
良い?悪い?コードコメントの書き方Shigenori Sagawa
 
20120706-readablecode
20120706-readablecode20120706-readablecode
20120706-readablecodeMasanori Kado
 
Start!! Ruby
Start!! RubyStart!! Ruby
Start!! Rubymitim
 
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくばHirotaka Kawata
 
人工知能の技術で有名なニューラルネットワークのフレームワークである #Chainer を用いた対話botを使った俺の屍を越えてゆけ slide share
人工知能の技術で有名なニューラルネットワークのフレームワークである #Chainer を用いた対話botを使った俺の屍を越えてゆけ  slide share人工知能の技術で有名なニューラルネットワークのフレームワークである #Chainer を用いた対話botを使った俺の屍を越えてゆけ  slide share
人工知能の技術で有名なニューラルネットワークのフレームワークである #Chainer を用いた対話botを使った俺の屍を越えてゆけ slide shareOgushi Masaya
 
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発慎一 古賀
 
ソースコードの品質向上のための効果的で効率的なコードレビュー
ソースコードの品質向上のための効果的で効率的なコードレビューソースコードの品質向上のための効果的で効率的なコードレビュー
ソースコードの品質向上のための効果的で効率的なコードレビューMoriharu Ohzu
 
Proof summit2014mizar
Proof summit2014mizarProof summit2014mizar
Proof summit2014mizarAlcor80UMa
 
Sourcecode Reading Workshop2010
Sourcecode Reading Workshop2010Sourcecode Reading Workshop2010
Sourcecode Reading Workshop2010Hiro Yoshioka
 
chatGPTの驚くべき対話能力.pdf
chatGPTの驚くべき対話能力.pdfchatGPTの驚くべき対話能力.pdf
chatGPTの驚くべき対話能力.pdfYamashitaKatsushi
 
C#言語機能の作り方
C#言語機能の作り方C#言語機能の作り方
C#言語機能の作り方信之 岩永
 
どたばたかいぎ成果発表
どたばたかいぎ成果発表どたばたかいぎ成果発表
どたばたかいぎ成果発表Eric Sartre
 
Lispmeetup48 cl-online-learningによる文書分類
Lispmeetup48 cl-online-learningによる文書分類Lispmeetup48 cl-online-learningによる文書分類
Lispmeetup48 cl-online-learningによる文書分類Satoshi imai
 
PHPでセキュリティを真面目に考える
PHPでセキュリティを真面目に考えるPHPでセキュリティを真面目に考える
PHPでセキュリティを真面目に考えるTakuya Sato
 
Unimaginable code & commentary
Unimaginable code & commentaryUnimaginable code & commentary
Unimaginable code & commentaryKazuki Kachi
 
トランザクションスクリプトのすすめ
トランザクションスクリプトのすすめトランザクションスクリプトのすすめ
トランザクションスクリプトのすすめpospome
 
2021 10-07 kdd2021読み会 uc phrase
2021 10-07 kdd2021読み会 uc phrase2021 10-07 kdd2021読み会 uc phrase
2021 10-07 kdd2021読み会 uc phraseTatsuya Shirakawa
 
3 18 どこでもスイッチ
3 18 どこでもスイッチ3 18 どこでもスイッチ
3 18 どこでもスイッチsohatach
 

Semelhante a 201207 ssmjp (20)

良い?悪い?コードコメントの書き方
良い?悪い?コードコメントの書き方良い?悪い?コードコメントの書き方
良い?悪い?コードコメントの書き方
 
20120706-readablecode
20120706-readablecode20120706-readablecode
20120706-readablecode
 
Our docsys-pyfes-2012-11
Our docsys-pyfes-2012-11Our docsys-pyfes-2012-11
Our docsys-pyfes-2012-11
 
Start!! Ruby
Start!! RubyStart!! Ruby
Start!! Ruby
 
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
 
人工知能の技術で有名なニューラルネットワークのフレームワークである #Chainer を用いた対話botを使った俺の屍を越えてゆけ slide share
人工知能の技術で有名なニューラルネットワークのフレームワークである #Chainer を用いた対話botを使った俺の屍を越えてゆけ  slide share人工知能の技術で有名なニューラルネットワークのフレームワークである #Chainer を用いた対話botを使った俺の屍を越えてゆけ  slide share
人工知能の技術で有名なニューラルネットワークのフレームワークである #Chainer を用いた対話botを使った俺の屍を越えてゆけ slide share
 
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
 
Scrum alliance regional gathering tokyo 2013 pub
Scrum alliance regional gathering tokyo 2013 pubScrum alliance regional gathering tokyo 2013 pub
Scrum alliance regional gathering tokyo 2013 pub
 
ソースコードの品質向上のための効果的で効率的なコードレビュー
ソースコードの品質向上のための効果的で効率的なコードレビューソースコードの品質向上のための効果的で効率的なコードレビュー
ソースコードの品質向上のための効果的で効率的なコードレビュー
 
Proof summit2014mizar
Proof summit2014mizarProof summit2014mizar
Proof summit2014mizar
 
Sourcecode Reading Workshop2010
Sourcecode Reading Workshop2010Sourcecode Reading Workshop2010
Sourcecode Reading Workshop2010
 
chatGPTの驚くべき対話能力.pdf
chatGPTの驚くべき対話能力.pdfchatGPTの驚くべき対話能力.pdf
chatGPTの驚くべき対話能力.pdf
 
C#言語機能の作り方
C#言語機能の作り方C#言語機能の作り方
C#言語機能の作り方
 
どたばたかいぎ成果発表
どたばたかいぎ成果発表どたばたかいぎ成果発表
どたばたかいぎ成果発表
 
Lispmeetup48 cl-online-learningによる文書分類
Lispmeetup48 cl-online-learningによる文書分類Lispmeetup48 cl-online-learningによる文書分類
Lispmeetup48 cl-online-learningによる文書分類
 
PHPでセキュリティを真面目に考える
PHPでセキュリティを真面目に考えるPHPでセキュリティを真面目に考える
PHPでセキュリティを真面目に考える
 
Unimaginable code & commentary
Unimaginable code & commentaryUnimaginable code & commentary
Unimaginable code & commentary
 
トランザクションスクリプトのすすめ
トランザクションスクリプトのすすめトランザクションスクリプトのすすめ
トランザクションスクリプトのすすめ
 
2021 10-07 kdd2021読み会 uc phrase
2021 10-07 kdd2021読み会 uc phrase2021 10-07 kdd2021読み会 uc phrase
2021 10-07 kdd2021読み会 uc phrase
 
3 18 どこでもスイッチ
3 18 どこでもスイッチ3 18 どこでもスイッチ
3 18 どこでもスイッチ
 

Mais de th0x0472

とある監視ではまった話 #ssmjp 2014/12
とある監視ではまった話 #ssmjp 2014/12とある監視ではまった話 #ssmjp 2014/12
とある監視ではまった話 #ssmjp 2014/12th0x0472
 
#ssmjp 2014/09 bashのちょっとした便利機能の紹介
#ssmjp 2014/09 bashのちょっとした便利機能の紹介#ssmjp 2014/09 bashのちょっとした便利機能の紹介
#ssmjp 2014/09 bashのちょっとした便利機能の紹介th0x0472
 
import dpkt したよ #ssmjp 2014/02/28
import dpkt したよ #ssmjp 2014/02/28import dpkt したよ #ssmjp 2014/02/28
import dpkt したよ #ssmjp 2014/02/28th0x0472
 
MAN OF BASH #ssmjp 2013.09.25
MAN OF BASH #ssmjp 2013.09.25MAN OF BASH #ssmjp 2013.09.25
MAN OF BASH #ssmjp 2013.09.25th0x0472
 
2012/09/27 #ssmjp おうちOpenStack
2012/09/27 #ssmjp おうちOpenStack2012/09/27 #ssmjp おうちOpenStack
2012/09/27 #ssmjp おうちOpenStackth0x0472
 
2012/06/28 #ssmjp
2012/06/28 #ssmjp2012/06/28 #ssmjp
2012/06/28 #ssmjpth0x0472
 

Mais de th0x0472 (6)

とある監視ではまった話 #ssmjp 2014/12
とある監視ではまった話 #ssmjp 2014/12とある監視ではまった話 #ssmjp 2014/12
とある監視ではまった話 #ssmjp 2014/12
 
#ssmjp 2014/09 bashのちょっとした便利機能の紹介
#ssmjp 2014/09 bashのちょっとした便利機能の紹介#ssmjp 2014/09 bashのちょっとした便利機能の紹介
#ssmjp 2014/09 bashのちょっとした便利機能の紹介
 
import dpkt したよ #ssmjp 2014/02/28
import dpkt したよ #ssmjp 2014/02/28import dpkt したよ #ssmjp 2014/02/28
import dpkt したよ #ssmjp 2014/02/28
 
MAN OF BASH #ssmjp 2013.09.25
MAN OF BASH #ssmjp 2013.09.25MAN OF BASH #ssmjp 2013.09.25
MAN OF BASH #ssmjp 2013.09.25
 
2012/09/27 #ssmjp おうちOpenStack
2012/09/27 #ssmjp おうちOpenStack2012/09/27 #ssmjp おうちOpenStack
2012/09/27 #ssmjp おうちOpenStack
 
2012/06/28 #ssmjp
2012/06/28 #ssmjp2012/06/28 #ssmjp
2012/06/28 #ssmjp
 

Último

次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~Kochi Eng Camp
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationYukiTerazawa
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料Takayuki Itoh
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ssusere0a682
 
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料Tokyo Institute of Technology
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024koheioishi1
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2Tokyo Institute of Technology
 

Último (7)

次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
 
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
 

201207 ssmjp

Notas do Editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n