水面下の夢

競プロやイラストに興味があります.メインブログがここ.ソシャゲの話はこっち(http://ameblo.jp/0n0-yumechi/).ブログアイコンはYaQ(@8_9_00)さんから.

底から学ぶswiftに参加してきました

初心者向けとは何だったのか。。 というくらい、参加者の質問が深く、興味津々なのだなあと感じました。

私もswiftは少しかじったことがある程度なので、多くのことに気が付きました。

勉強会URL

supporterzcolab.com

講師

edura様。言語系のラジオもやってるみたい。すごい。

https://twitter.com/eduraaa

スライド

さっき見たら公開されてましたので、リンク。

https://twitter.com/eduraaa/status/887640221273030656

底から学ぶ Swift by Yuka Ezura on Prezi

概要

先に結論

オブジェクト指向でありながらprotocol-oriented Programmingであるのが最大の特徴っぽい。 様々な機能が実現されているswiftですが、その拡張性の高さはprotocol-orientedであることに起因するのかもしれません。

これらを念頭に入れて、swift tourとかもう一回サラッと見てみようかなあ…。swift 4になってからチェックできていないので。あとはiOSチュートリアルもだなあああ。

はじめに的なやつ

  1. 言語を効率よく取得するにはどうすればいいか?
  2. (50点)チュートリアルとか細々とした機能を抑える。。。 <- これは忘れる。 (100点)その言語のコンセプト、文化を捉えながら実際に使う。文化、コンセプトはその言語の提供している機能にも繋がっていくので、理解が促進される。

要は、根本的なところを理解しないまま、表面の文法を理解してもダメって話ですね。

swiftのコンセプト、文化、特徴

まとめると、Safety, Freedomの2つ。

自分の中では、

  • Safetyはnil安全(Optional等)であったり、型推論がありながらも堅牢な型チェックが働くところ。
  • Freedomは自分で既存の機能に影響を与えず、拡張ができるところ(extention, protocol等)。

と捉えた。

実際のコード例で示してもらったけど、いきなりprotocolとかSequenceのプロトコルを継承していたりと、びっくり、コード例がわかりやすくて理解できたけど、オブジェクト指向をまず理解していないと難しいのかも?と感じた(幸い、私はJavaをしっかりやってきたので良かったけど…)

Genericsの話はあまり頭に入らなかったので、もっかいスライド見てこよ。。。

興味深い質問がここであり、protocolとは継承とどう使い方を分けるべきなのか、またinterfaceとの違いは何なのか。等、どう考えても初心者向けじゃないような質問が出ていて、初心者とは一体… という気持ちになった。

その質問と応答を聞きながら、protocolが継承よりもいいのは、親クラスからの影響を最小限に抑えられるところかな、と私は考えた。 あとは拡張性の強さ、である。継承を下手にしていると結局無限overrideなど、同じメソッドなのに違う機能が提供されかねないのではないか、と思うがprotocolで切り出すことにより、overrideと言うよりはその場で毎回実装しているような形を取ることでスッキリするような気がした。。。

実際にswiftほとんど書いたことがないので、よくわからないですけどね。。。

swift tourを読んで見る

ここでもCustomStringConvertibleで出力する文字列を変えたり、 &+ 演算子を使って、オーバーフローを起こしても動作するようにしたり、typealias を貼ってみたりと実践的だった。

特にCustomStringConvertibleとか、基本的なクラスでもprotocolで拡張をあっさり出来てしまうのは全く知らなかったので、ちょっとびっくり。 もっとprotocolを生かして実装していかなければいけないなと思いました。

まとめ

Swiftはオブジェクト指向で、関数型も若干取り入れていて、protocol orientedで、と抑えるべき概念が非常に広く、なかなか1日2日で取得できるような言語ではないので、少しづつ取り組んでいかないとなあと意識を新たにしました。。。。

これを早くやらないとなあと思いながら、XCodeに振り回されております。。。

developer.apple.com

時間を作って頑張ろう。。。

【特別講演】今、エンジニアが摂取すべき完全栄養食とは(サンプル配布あり)に参加してきました

【特別講演】今、エンジニアが摂取すべき完全栄養食とは(サンプル配布あり)に参加してきました。

完全栄養食をなぜ開発したのか、そしてなぜ広めていかないといけないのか、という熱い気持ちを聞くことができる貴重な機会でした。

COMPとBASE PASTAの試供品をいただいたので、それぞれ使ってみた感想を述べます。

勉強会URL

supporterzcolab.com

ゲスト*1

  • COMP
  • 株式会社コンプ 代表取締役CEO/開発者 鈴木優太 氏

www.comp.jp

  • BASE PASTA
  • ベースフード株式会社 取締役COO 高橋 アツヤ 氏

https://basefood.co.jp/basefood.co.jp

資料の公開はないです。

概要

COMP

好きなことに没頭する時間を作り出すために作った。最初は一般に販売することや起業することも考えていなかったらしい。(普通に売り出すために味の調整に苦労したとか)

厚生労働省の日本人の食事摂取基準に準拠することで、完全食としているんだとか。

参考記事:完全食「COMP」は現代人の福音となるか? 開発者 鈴木優太×メディアアーティスト 落合陽一対談 (1) 研究者にとっての食とは? | マイナビニュース http://news.mynavi.jp/kikaku/2016/07/29/007/

水を入れて混ぜて飲むだけ。味を変えたいときは果物系のジュースで割るとかも良いみたいで(そのためにプレーン味に必死に調整したんだとか)

BASE PASTA

栄養のバランスも取りつつ、違和感がないよう普通に食べられるものを考えた所、主食を栄養のあるものに置き換えるのが良さそうということで、パスタを作った。(分量、味の調整に苦労したとか)

パスタなので普通に調理することもできるし、ソースをかけてアレンジを自由に楽しむことができる。 こちらも厚生労働省で定められた基準を満たすようにしているとか。(ホームページにも書いてある)

2分茹でて、ソースをかけたり、めんつゆでざるそばスタイルしたり(おすすめされていた)、オリーブオイルと塩だけでいただいたりする。

話を聞いてみて

まず完全食と一言に言っても、この2つは明確に使用シーンが異なる。COMPは時間効率を最大限に重視するときに使うのが良さそう。BASE PASTAは家にいるときにのんびり料理をするときに使うのが良さそう。

自分の生活スタイルに合わせるのであれば、朝の忙しい時間や昼休憩にCOMP、夜ご飯をBASE PASTAでソースを毎日変える… みたいな形になりそうです。

併用がベストかなーという気持ちはあるのですが、コストを考えるとやや厳しいものがあります。 そこでまずは夜ご飯をBASE PASTAに変えてみようかなと思います。私は料理それなりにするのと、パスタが大好きなんですよね。(ここ1週間、ほぼパスタしか食べてない)

COMPはもう少し安定してから置き換えようかなと思います。時間が短縮できるのはいいのですが、それなりに食事は楽しみたいタイプなので、その楽しみが奪われる可能性があるのは惜しいからです。使っても週3とか?ですかね…。

完全栄養食をバリバリ摂取しても大丈夫なだけの給料を稼げるよう頑張ろう…。

実際に使ってみた

COMP

お昼ごはんのときにトムヤンクンスープ少しと水で溶かして飲む。かなりの量があったけれども、カロリーを考えると試供品1袋分だけでは足りないというのが恐ろしい。(こんなに粉入れて飲むのとか初めてだし…)

実際に飲んでみて思ったこととしては少し水が少なかったこともあって、濃い粉ミルクを飲んでいる気分になりました。 ちょっと甘すぎるかなとは思うけれども、結構美味しかったです。

ただ一気に飲みすぎたためか、お昼終わってからお腹下しました…。つら。

COMP、もしかすると食事時に1回で取るより、1Lペットボトルとかに溶かしておいて1日かけて飲むのが良いのかもしれないですね。

BASE PASTA

夕飯をBASE PASTAにしてみました。オリーブオイルと塩コショウで食べました。

味はパスタ自体の味が非常に強い印象を受けました。これだけでも味が濃いような…。

味が濃すぎるので味が強いパスタソースと相性が良いかもしれませんね。もう少し試してみないと…

そんな感じでした。私はサラッと書きましたが、すごい熱意を持って開発なされているんだなあということが伝わってきました。

世界の人達の健康寿命を伸ばしたい、という気持ちはCOMPもBASE PASTAも同じ方向を向いているように感じていて、今後切磋琢磨したり、お互い手を取り合ったり、更なる刺客との競争だったりと、どんなことが起こるかわかりませんが目が離せない分野だなと感じました。

自分自身も栄養に関してはあまり知識がないため、これらの食品を取ることで何も意識をせず健康に生きていければいいかなと思います。 半信半疑だった部分もあるのですが、世界に広める一助として買ってみて試してみて広めてみようかな、という気持ちにはなりました。

*1: 気づいてしまったけど、ゲストの部分、勉強会のページからぱぱっと貼ったほうが早いですね…

Vue.js からはじめる JS フレームワーク(ハンズオン形式)に参加してきました

Vue.jsのハンズオンに参加してきました。(参加したの先週火曜日なんだけど)

講師

okashoi 様

資料

githubにあがっています。これを実際に書いて、動かしてみました。

github.com

概要

vue.js ってなに?

公式ページ
https://jp.vuejs.org/

公式ページの言葉:親しみやすい、融通が効く、高性能

・メリット

  • 環境によらず採用できる
  • 簡単に始められる(まず使う分にはビルド不要、urlでlink貼るだけ)
  • ドキュメントが充実してる(日本語もある!)

・特徴

  • MVVM(Model-View-ViewModel)
  • データと表示が結びついているので、データを変えたら表示も動的に変更される

あと既存システムに組み込みやすいのです。jQueryと一緒に使ったりできる。(これは後で)

ハンズオン

資料見ていただければわかるかとおもいますが、すごい使いやすいです。直感的と言いますか…。講師の説明も非常にわかり易く、JavaScriptフレームワークとか絶対難しいでしょ!とか思っていましたが、あっさり使えてびっくりしました。

あと演習としてやったテーブルの操作、アレもっと早く知りたかった…(過去に似たようなものをjQueryだけで作ろうとして、挫折した経験がある)。そんなに難しくない操作ですが、過去の自分から成長できたのかな?と少し感動しました。

動くのは楽しい。


特にfor文とかで繰り返し要素サクッと書いたり、クリック時の動作ぱぱっと書けるのはすごい楽だなあとか。

こんなのとか

```html
{{ user.name }}
````

for文で一気にクリック時のイベント張って、しかもindexもすぐ取れるので指定要素の取り出しも楽と。。。

VM?周りだけ少し特殊な感じがしたので、このあたりはドキュメントを読み進めてみようかなと思います。

その後

せっかくだから学んだことを活かして、なんか作ろうかなと思って、適当にcsvからSQLのinsert文作るだけのページを作ってみました。vueというかほぼjQueryとbootstrapのチカラのような気がしますが、それは…。

しかもVM2つ立てるようなやり方してるし、よくわからないしで、アレ。そのうちアップデートするかもしれません。

https://yumechi.github.io/javascript_practice/vue_practice/SQL_Creator.html


とりあえず学ぶだけじゃなくて、実際に作ってみることが大切だなあと再認識しました。
templateとかcomponentとかもっと活かして楽に実現したいゾ…(上記は右も左も分からないので、ダラダラとソースコードを書き続けることになっており、非常に良くないけどまあ…)


フロントエンドは技術的に難しいことが大量に組み合わさっており、とても理解が追いつきませんでしたが、まずはvueを少しづつ初めてマスターできたらいいなと思えました。(複数同時に追っても理解が追いつかないしね)