K2さんの雑記
2018-03-01(Thu) [長年日記]■ Pythonの関数返り値定義Pythonも並列で進めている。案の定こんがらがってきてます(笑) Pythonの関数は、返り値があるものについて、関数定義ヘッダ行には何も書かず、本体の中でreturnで値を返すかだけで決まるらしい。 これって、関数ヘッダを見ても、関数の仕様がわからないことになるので、ソースの可読性に問題はないのだろうか。 また関数本体で、分岐でreturnが複数ある場合、返す値の型がそれぞれ違った場合はどうなるのだろうか。 2点ともきっとナイスなアイデアで解決されているのだと思うが、今の時点ではちょっと疑問。 ■ Swiftの関数返り値定義Swiftの場合は、関数返り値は、関数ヘッダの後に 「->」を追加して型指定するのだが、この「->」って、なんか違和感。この文字自体に意味づけがないので、なんか言語仕様として美しさに欠ける感じがしています。 どうして他の言語ではあまり採用されていないフォーマットを使っているのか、よくわからず、ちょっといやな感じがしています。 ■ Xcodeでのオブジェクトとコードの接続例えばstoryboard(画面設計するペイン)で、キャンバスの上にテキストフィールドを置いても、どうやらその部品に名前はつかないようだ。 これを、ViewController.swiftというコードが書かれたファイルに関連づける時(クラスのプロパティとしてテキストフィールドオブジェクトをコードに追加する)、初めて名前をつけるようだ。 これで、クラスのコード中で、この部品にアクセスできるようになる。 このクラスのオブジェクトに関連づけられたプロパティのコードをOutletと呼ぶらしい。 @IBOutlet weak var nameTextField: UITextField! こんな行がViewControllerのクラスに追加される。この行中の単語ひとつひとつがまた難しい…… ■ イベントハンドラXcodeではイベントハンドラという言葉は使われていないようだ。アクションメソッドというのが正しいか。 @IBAction func setDefaultLabelText(_ sender: UIButton) { こんな行で始まる。中括弧内にコードを書く。 ボタンに対するアクションメソッドは、ボタンからControlキーを押しながらViewControllerコード内にボタンをドラッグすれば簡単に作れる。 テキストフィールドに対するアクションメソッドはそう簡単にはいかない。 まず、ViewControllerを、UITextFieldDelegateからも継承させなければならない。これは手作業で行う。 class ViewController: UIViewController, UITextFieldDelegate { その後、ViewControllerのviewDidLoad()メソッド内で、テキストフィールドのdelegateプロパティに、自分をつっこむ。 override func viewDidLoad() { super.viewDidLoad() // Handle the text field's user input through deletate callbacks. nameTextField.delegate = self } これで、テキストフィールドのアクションメソッドが、ViewControllerの中に定義できるようになったので、手書きでアクションメソッドを挿入する。 func textFieldShouldReturn(_ textField: UITextField) -> Bool { } ここまでやらないといけない。これをスパルタンと言わずしてなんと言おう(笑)。 こうやって手書きで関連づけないと、テキストフィールドのイベントがViewControllerに通知されない。こうやって解説を二度読んで、誰にも読まれないであろうこの日記を書いて、やっとなんとなく理解できてきた。 もうちょっと簡単にイベントハンドラを作成できるようにしてもよかったのではないか?>apple。 ■ 慣れないCapsキーどうしても、CapsキーをCommandキーと間違えて押してしまう。仕事で使用しているLet's NoteのControllキーがちょうどその位置にあるので、コピーペーストなどの時に小指でそのキーを押してしまう。同じようにMacBookでも小指でCapsを押しながら、Cだのアンドゥのzなどを押してしまう。 このCapsキー、標準の環境設定で、他のキーの機能に変更できるらしい。さっそくCommandキーに変更してみました。 だいぶ使いやすくなりそうな気がします。 2018-03-05(Mon) [長年日記]■ Xcodeの続き−Imageの追加今日もあまり早く帰れなかったので、30分ほど。 Work with View Controllersという章を進める。とりあえず、Image Viewをstroryboardに追加して、defaultPhotoをここに追加したところで終わる。 説明書きには、ViewのLifeの中でViewController上で呼び出されるメソッド等の説明あり。viewDidLoad()、viewWillAppear()、viewDidAppear()、viewWillDiappear()、viewDidDispappear()というアクションメソッドがあるようだ。この中で、viewDidLoad()はデフォルトでviewControllerの中に書かれていたが、それ以外はなかったので、使うなら自分で追加するということなのかな。 ここから実習がはじまって、Image Viewの追加などを行ったので、これらのメソッドが出てくるとしたら次回か。 2018-03-11(Sun) [長年日記]■ ウォーキング 20km 25000歩 神泉苑・泉涌寺久しぶりにぶらぶらと。先日、「都林泉名勝図会」(講談社学術文庫)の上巻を買ったのだが、その一つ目に神泉苑が載っていて、近かったし、Googleマップの評価でもよいのが多かったので、行ってみようと思った。 また最近空海の映画があるというのを聞き、その原作本が夢枕獏とのことで、久しぶりに読んでみようかと、Kindleで購入し読むとなかなかおもしろい。その中で、泉涌寺に楊貴妃の観音像があると紹介されていたので、それもみたくなり、この2つを結んで20kmほどのコースに仕立てた。
2018-03-12(Mon) [長年日記]■ Xcode続き(Start Developing iOS Apps - Implement a Custom Control)相変わらず続けているが、なんとなくやっているだけで、方法論を覚えているわけではないので、繰り返しやらないとたぶん身につかないだろうと思いながら。 新しいユニットを追加して、カスタムコンポーネントを作成する方法を学んでいる。ほとんどユニットファイルに記述していく形で、相変わらずスパルタンな感じはするが、慣れれば作りやすいんだろうとは思う。ただし覚えることが多いような気がしている。 privateなメソッドの作り方が出てきたり、プロパティのアクセスメソッドの作り方が出てきたり、これぞオブジェクト指向コードの書き方というのがやっと出てきた感じ。バグを出しにくいオブジェクト指向独特のコードの作成方法が、私は好きなので、この辺はやっていて楽しい。 部品の設定を変更するためのAttribute Inspectorに表示される項目をコード上でどのように追加するかなどが一応わかった(というか経験できた)。楽しくはなってきたが、自分で全部書けるようになるためには、かなり精進が必要だと感じた。 2018-03-14(Wed) [長年日記]■ Gitを使った職場でバージョン管理が必要になって、今まで手を出せていなかったGitを使ってみようと、今日一日格闘した。 Subversionのイメージが自分の中には強烈にあるので、まずはサーバーをどうするかを考えないといけないと思い込んでいて、何度かローカルにサーバーを立てる方法を調べていたのだが、そのたびに挫折していた。 本日もその切り口で情報を集めるところからはじめたのだが、結局よくわからなく、進みそうにないので、とりあえず何か入れてみようと考えた。Windowsなので、Git for Windowsを入れて、以下のチュートリアル的な記事にそって使ってみた。 ここで、やっと分散型バージョン管理システムという意味がわかった。サーバーがなくても、こいつはリポジトリを、バージョン管理をしようとしているフォルダの中に作るんだ。だからこのフォルダの中に履歴情報がすべて入ることになる(具体的には.gitというフォルダの中)。 これなら、個人での開発の場合は、サーバはリポジトリのバックアップ的な使い方になるということだと思うので、クラウドを使ってもいいかなという気分になった。 GitHubは非常に有名なリモートリポジトリを作成できるサイトであるが、Web上でリポジトリを作っておいて、そこにローカルからPUSHをすることで、リモートにアップロードできる。 GitHubは非公開リポジトリを作ろうとすると月7ドルかかるので、前に別の演習で使っていたBitbucketを使ってみた。BitbucketはGitHubよりは機能的に劣るが、非公開リポジトリも無料で作成できる。 前の演習はCloud9でRuby on Railsを少しかじった時のもので、このときはCloud9(クラウドサーバ上の開発システム)からBitbucketへのリポジトリのPUSHは、何の苦労もなくOKだった。 今回は、職場のイントラネットからの接続なので、ちょっといろいろごたごたがあったが、結局Port443・プロキシ経由で接続することができた。あまりにつながらなくて、ひどい格闘になり、ほとんどめげかけていたのだが、最後の最後になんとか成功した。 この1年、業務効率化のためのツールをいろいろ作ってきたのだが、バージョン管理はなしでやってきた。これでGitも一応使えるようになったので、気分よく仕事ができるかな? UiPathというRPAは、ソースコードがxmlなので、一応バージョン管理できそうで、Gitは主にこれに使うことになりそう。 しかしながらたくさん作ったAccessやExcelなんかはバイナリファイルなので、バージョン管理は使えない。残念ながら。 そうそう、Gitってギットと発音するようだ。つい最近までジットだとばかり思っていた。 2018-03-18(Sun) [長年日記]■ ウォーキング 24km 31000歩 船岡山・大徳寺・下鴨神社・建仁寺10時半頃からウォーキングに出発。帰宅は4時半頃。 今回のコースはこんな感じ。
建仁寺は本当によかった。またぜひ行きたい。 2018-03-20(Tue) [長年日記]■ バージョン管理システムは重要gitを使えるようにして少したったが、効果絶大。
一人で開発していても、これらの利点は何物にも代えがたい。一度バージョン管理システムを使って、この感覚が身についてしまえば、使わなくなって10年近く経っても、感覚は体の中に残っているものなんだなぁと感心する。 この仕事を誰かに引き継がなくてはならなくなったら、リポジトリごと渡すつもりだが、バージョン管理システムのマスターが必須になるので、敷居高いかな…… ■ Bitbucketは太っ腹GitのホスティングサービスにBitbucketを選んだのだが、個人使用は無料だったから。 私の場合、一応業務上での使用だし、正式に仕事に使い出したので、ちょっと使用条件が気になって調べてみた。 チームが5人までの場合、容量無制限で無料とのこと。 すごい。 本当にありがたいです。 中規模チームで5人を超えても、一人月額$2だそうですので、手軽です。よっぽどのことがない限り、自社内にサーバを立てる必要性は感じないのではないだろうか。 2018-03-24(Sat) [長年日記]■ ウォーキング 24km 31000歩 平野神社・大覚寺・鈴虫寺・桂離宮いつも東に行っているので、今回は西を回ってみた。
このまま歩き続けたいのだが、本日の天候でもかなり日照りが強く感じた。このまま季節が進むと長時間は歩けなくなるかもしれないなぁと思った。夏は休止するしかないかも。 1965|09|
|
//
自己紹介
自己紹介
広告
計るだけダイエット
つっこみリスト
TrackBacks
日記仲間
な/
す/
ひ/
最近の日記
|