SlideShare a Scribd company logo
1 of 27
Download to read offline
!"#$%&'()
Takuya Otani


@takkyun
!"#$*+#,-.
BASIC 小学生の頃、ファミコンで
Pascal 大学の授業で
C 大学の授業で。社会人になってからも
lisp 大学時代は emacs 使ってた
FORTRAN 大学の研究室で
Perl 大学時代、独学で CGI スクリプト作成に利用
JavaScript 以前は html とセットで利用していたけど、近頃利用範囲が増えてきた
C++ 社会人になってから。今でも主力
Objective-C iOS 登場前から勉強だけは。本格的に使い始めたのは iOS アプリ開発で
PHP ウェブアプリ系。wordpress の影響で、今でもときどき利用
bash / csh / zsh なんだかんだで結構使う
C# 業務でほんの少しだけ
Ruby 業務でほんの少しだけ
Java あんまり好きじゃないけど、業務で少しだけ
AppleScript macOS の Automator でまれに利用
Python 最近触れる機会が増えてきた。勉強中
Sunaba 初学者向けプログラミング言語。これをサポートする iOS アプリ作りました
Swift ここ最近メインで利用している言語
TypeScript 扱いやすそうなので勉強中
Kotlin 扱いやすそうなので、Android アプリ開発とともに勉強中
/0123&,-45
!"#$*+#,-.
6 7089:;!"#$*+#,-


6 <=>?@!,-AB=CDE,-&FGHI


6 JK&LMNO


6 PQRS:TUQRS:VWPS:81XYZ[2:]^


6 _``:;!"#$*+#,-


6 aCbcd=e


6 JK&fghi


6 jTTS:PTR:]^


6 k`[2:;!"#$*+#,-


6 B=CDE,-


6 hilmbc]^nB=CopqDErs,-


6 tT/uS:vwQRS:jTxS:yX[zWX0{R3`0:]^
|}
!"#$*+#a~c
•=€q


'•‚ƒ„„„„K…‚ƒ
>
•=€q'•†q‡ˆHO‰Š‹
!"#$*+#a~c
•=€q'•†qHOsŒ•&)Ž


•=€qL••]‘’'•
=
!"#$*+#a~c
•=€q'•†q“”‰…•–rs—˜ˆ™™


6 šB›Cqœ•


6 !"#$*+#&ožŸ q¡¢rs


6 •=€q'£¤(sA¥¦I
šB›Cqœ§Š
!"#$*+#¨©


šB›CqªŠ¨©
≈
«¬šB›CqªŠG¨©“”‘•–rs
šB›Cqœ§Š
6 d+C@>a-®=e


6 ¯$=°+#±²³´µ]^


6 ¯aC<b¶


6 <c·!$@el¸=%
šB›Cqœ§Š
Atom VSCode
https://atom.io/ https://code.visualstudio.com/
U30¹º»¼½:¾:l°=¿À?


Á9W_0X[2lÂ=%Ã=>&ÄÅ


Æ]Ç—b+ClÀ=a


ÈÉ]Ê@Ë=Ì
šB›Cqœ§Š
Atom VSCode
https://atom.io/ https://code.visualstudio.com/
Q3_X[`[Í0¼½:¾:l°=¿À?


Îw0[8GÏÐÑÒ:Ó¬


b+Ô°Õ+aˆ‰s•=€¢Ö


×=Ø=Ù‘ÚÛˆÜÝѬs
šB›Cqœ§Š
6 x38:¾:Á81_`


6 Þß’àáâ&㬚B›C


6 Tº»938W:VWä0


6 åæ+àášB›C&çè


6 j[0ÁZ30[X:¾:83:などなど
6 81_/T:á


6 u[0Wz1Zéé:などなど
6 ê32Z[`:á
šB›Cqœ§Š:ë:ìíÁ
6 tW0/X132`:½:ìíÁ


6 ö÷]’ønùúûü~ý@·?@!‘þ¥


6 ðñÿ!‘"#$è•Ñ¬sÆG‘%¬


6 ª&'s(]¬)*‘+s&¤n,ÇÑ-…
ˆ.•—ÆG"]¬
šB›Cqœ§Š:ë:ìíÁ
6 tW0/X132`:½:ìíÁ


6 -b¶‘Ä$¬


6 1¨‘2¬)ï‘+s


6 òóqœ•)ï‘+s
šB›Cqœ§Š:ë:ìíÁ
6 tW0/X132`:½:ìíÁ


6 ì20W993t:ìíÁwS:w2ZX[3Z:T0ºZ3[S:
êW»T0[X8S:™™


6 x3`º19:T0ºZ3[


6 P_[ZW
6 w2ZX[3Z:T0ºZ3[:":w2ZX[3Z:ðñö÷:ìíÁ


6 3†]°lm>C°+#´µ


6 <c·!$@el¸=%±45â&+s!$#b+


6 î•6Ç—ª¬78±á9ˆ:;ÑœÐs
šB›Cqœ§Š:ë:ìíÁ
6 tW0/X132`:½:ìíÁ


6 ì20W993t:ìíÁwS:w2ZX[3Z:T0ºZ3[S:
êW»T0[X8S:™™


6 x3`º19:T0ºZ3[


6 P_[ZW
6 Q3_X[`[Í0:¼½


6 b+Ô°Õ+aA•=€<=±²³‘3†I
šB›Cqœ§Š:ë:ìíÁ
6 tW0/X132`:½:ìíÁ


6 ì20W993t:ìíÁwS:w2ZX[3Z:T0ºZ3[S:
êW»T0[X8S:™™


6 x3`º19:T0ºZ3[


6 P_[ZW
6 wzz9W:¼½


6 3/T:?!°ðñˆ">?
šB›Cqœ§Š:ë:/0123&)ï
VSCode メインエディタ。常駐。日報・開発メモなども
CotEditor 比較的軽量なので、一時的なメモ置き場に
Xcode iOS / macOS アプリ開発
IntelliJ IDEA node.js / web アプリ開発
Android Studio Android アプリ開発
Visual Studio 業務で時折利用
秀丸エディタ サイズの大きいファイルでも爆速で開ける
mi マルチファイル検索が便利で時折利用
Atom PropertyListなど特定のファイルを開く時に利用
%
@
!"#$*+#,-&ABõ
6 CDoJ±EFGH


6 CDoJ±c=!


6 IÙ
FGH,-qJKsGn


L&,-qMN¤JKs&‘


ÏOP$>ˆ]s¡Q
!"#$*+#,-&ABõ
6 CDoJ±EFGH


6 CDoJ±c=!


6 IÙ if 条件 {


// 条件を満たした時に実行されるコード


}
switch, unless, など
!"#$*+#,-&ABõ
6 CDoJ±EFGH


6 CDoJ±c=!


6 IÙ while 条件 {


// 条件を満たす限り実行される


}
for, goto, など
!"#$*+#,-&ABõ
6 CDoJ±EFGH


6 CDoJ±c=!


6 IÙ
配列に対しての foreach, map, reduce など特殊
な形のループもある
関数の再帰呼び出しも一種のループと言える
!"#$*+#,-&ABõ
6 CDoJ±EFGH


6 CDoJ±c=!


6 IÙ // プログラムで利用する数字や文字に名前をつける


let const = “test”


var variable = 0
IÙ&a•=!qL•


^&Cb*+#¤¨’ÇÑnRS6Çs&ß
let, const, my, など
言語によっては必要ないものも
•=€q'TŠ
func generatePasswords() {


var passwords = [String]()


let charset = configuration.charset


while passwordArray.count < numberOfPassword {


var password = ""


while password.count < configuration.numberOfChar {


let offset = Int(arc4random_uniform(UInt32(charset.count - 1)))


let string = String(charset[charset.index(charset.startIndex, offsetBy: offset)])


if configuration.allowsDuplication || !password.contains(string) {


password += string


}


}


passwords.append(password)


}


userDefault.set(passwords, forKey: "passwordArray")


}
•=€q'TŠ
func generatePasswords() {


var passwords = [String]()


let charset = configuration.charset


while passwordArray.count < numberOfPassword {


var password = ""


while password.count < configuration.numberOfChar {


let offset = Int(arc4random_uniform(UInt32(charset.count - 1)))


let string = String(charset[charset.index(charset.startIndex, offsetBy: offset)])


if configuration.allowsDuplication || !password.contains(string) {


password += string


}


}


passwords.append(password)


}


userDefault.set(passwords, forKey: "passwordArray")


}
U¤Ô~ae&VW‘XY¤$s
>$a&Z+[=IÙ
!"ÊÔ›+s¬"Z@€
]Ù
^_-]^
J`a
Ù`
•=€q'TŠ
func generatePasswords() {


var passwords = [String]()


let charset = configuration.charset


while passwords.count < numberOfPassword {


var password = ""


while password.count < configuration.numberOfChar {


let offset = Int(arc4random_uniform(UInt32(charset.count - 1)))


let string = String(charset[charset.index(charset.startIndex, offsetBy: offset)])


if configuration.allowsDuplication || !password.contains(string) {


password += string


}


}


passwords.append(password)


}


userDefault.set(passwords, forKey: "passwordArray")


}
bcd(•=€
•=€q'TŠ
func generatePasswords() {


var passwords = [String]()


let charset = configuration.charset


while passwords.count < numberOfPassword {


var password = ""


while password.count < configuration.numberOfChar {


let offset = Int(arc4random_uniform(UInt32(charset.count - 1)))


let string = String(charset[charset.index(charset.startIndex, offsetBy: offset)])


if configuration.allowsDuplication || !password.contains(string) {


password += string


}


}


passwords.append(password)


}


userDefault.set(passwords, forKey: "passwordArray")


}
Thank you!
@takkyun

More Related Content

Similar to プログラムの読み方

2008.10.18 L4u Tech Talk
2008.10.18 L4u Tech Talk2008.10.18 L4u Tech Talk
2008.10.18 L4u Tech Talkmitamex4u
 
Start!! Ruby
Start!! RubyStart!! Ruby
Start!! Rubymitim
 
Favtile ~never write JS again~
Favtile ~never write JS again~Favtile ~never write JS again~
Favtile ~never write JS again~hanachin
 
traceur-compilerで未来のJavaScriptを体験
traceur-compilerで未来のJavaScriptを体験traceur-compilerで未来のJavaScriptを体験
traceur-compilerで未来のJavaScriptを体験Toshio Ehara
 
インデントを減らそう
インデントを減らそうインデントを減らそう
インデントを減らそう知之 朝枝
 
Ecmascript2015とその周辺について
Ecmascript2015とその周辺についてEcmascript2015とその周辺について
Ecmascript2015とその周辺について豊明 尾古
 
TypeScript と Visual Studio Code
TypeScript と Visual Studio CodeTypeScript と Visual Studio Code
TypeScript と Visual Studio CodeAkira Inoue
 
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011Hiroh Satoh
 
IdrisでWebアプリを書く
IdrisでWebアプリを書くIdrisでWebアプリを書く
IdrisでWebアプリを書くHideyuki Tanaka
 
メタメタプログラミングRuby
メタメタプログラミングRubyメタメタプログラミングRuby
メタメタプログラミングRubyemasaka
 
今からでも遅くないC#開発
今からでも遅くないC#開発今からでも遅くないC#開発
今からでも遅くないC#開発Kazunori Hamamoto
 
SlackのIncomingWebhooksとOutgoingWebhooksを使って電子工作と連携させてみよう
SlackのIncomingWebhooksとOutgoingWebhooksを使って電子工作と連携させてみようSlackのIncomingWebhooksとOutgoingWebhooksを使って電子工作と連携させてみよう
SlackのIncomingWebhooksとOutgoingWebhooksを使って電子工作と連携させてみようShigeo Ueda
 
Functional JavaScript with Lo-Dash.js
Functional JavaScript with Lo-Dash.jsFunctional JavaScript with Lo-Dash.js
Functional JavaScript with Lo-Dash.jsShogo Sensui
 
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~decode2016
 
Php in ruby
Php in rubyPhp in ruby
Php in rubydo_aki
 
オープンソースで作るスマホ文字認識アプリ
オープンソースで作るスマホ文字認識アプリオープンソースで作るスマホ文字認識アプリ
オープンソースで作るスマホ文字認識アプリ陽平 山口
 

Similar to プログラムの読み方 (20)

2008.10.18 L4u Tech Talk
2008.10.18 L4u Tech Talk2008.10.18 L4u Tech Talk
2008.10.18 L4u Tech Talk
 
Start!! Ruby
Start!! RubyStart!! Ruby
Start!! Ruby
 
Favtile ~never write JS again~
Favtile ~never write JS again~Favtile ~never write JS again~
Favtile ~never write JS again~
 
traceur-compilerで未来のJavaScriptを体験
traceur-compilerで未来のJavaScriptを体験traceur-compilerで未来のJavaScriptを体験
traceur-compilerで未来のJavaScriptを体験
 
インデントを減らそう
インデントを減らそうインデントを減らそう
インデントを減らそう
 
Ecmascript2015とその周辺について
Ecmascript2015とその周辺についてEcmascript2015とその周辺について
Ecmascript2015とその周辺について
 
Okinawapm #1
Okinawapm #1Okinawapm #1
Okinawapm #1
 
TypeScript と Visual Studio Code
TypeScript と Visual Studio CodeTypeScript と Visual Studio Code
TypeScript と Visual Studio Code
 
Haikara
HaikaraHaikara
Haikara
 
CoffeeScript
CoffeeScriptCoffeeScript
CoffeeScript
 
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
 
IdrisでWebアプリを書く
IdrisでWebアプリを書くIdrisでWebアプリを書く
IdrisでWebアプリを書く
 
メタメタプログラミングRuby
メタメタプログラミングRubyメタメタプログラミングRuby
メタメタプログラミングRuby
 
今からでも遅くないC#開発
今からでも遅くないC#開発今からでも遅くないC#開発
今からでも遅くないC#開発
 
SlackのIncomingWebhooksとOutgoingWebhooksを使って電子工作と連携させてみよう
SlackのIncomingWebhooksとOutgoingWebhooksを使って電子工作と連携させてみようSlackのIncomingWebhooksとOutgoingWebhooksを使って電子工作と連携させてみよう
SlackのIncomingWebhooksとOutgoingWebhooksを使って電子工作と連携させてみよう
 
Functional JavaScript with Lo-Dash.js
Functional JavaScript with Lo-Dash.jsFunctional JavaScript with Lo-Dash.js
Functional JavaScript with Lo-Dash.js
 
dwangocpp1-lt
dwangocpp1-ltdwangocpp1-lt
dwangocpp1-lt
 
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
 
Php in ruby
Php in rubyPhp in ruby
Php in ruby
 
オープンソースで作るスマホ文字認識アプリ
オープンソースで作るスマホ文字認識アプリオープンソースで作るスマホ文字認識アプリ
オープンソースで作るスマホ文字認識アプリ
 

プログラムの読み方