「Swift」を含む日記 RSS

はてなキーワード: Swiftとは

2019-04-14

しがないサラリーマンが本気でエロサイトを作る

プログラミング趣味のしがないサラリーマン事務職)が本気でエロサイトを作ってみました。

本職ではないし、出来はイマイチかもしれないが、プログラミングに興味ある人の参考になればと思って書きます

私のプログラミング歴は10年ちょいです。

プログラミングを本職にしたこともないし、しようと思ったこともなく、面白そうだなと思ったことを時間をかけて、一人でコツコツと勉強しながら作ってきました。

これまでの成果は、Webサービスで5つ(ジャンルを変えて作ったものがいくつもある)、iPhoneアプリが3つ。

それでお金になったのはiPhoneアプリのです。これは結構儲かって、○百万ぐらいは稼いだと思います収益化は広告クリックのみです。

他はサーバー代+月一回焼き肉行けるかな?ぐらいのもんです。

割に合っているか言われれば、普通に会社仕事がんばって残業代もらって、パフォーマンス上げて出世したほうがよっぽど効率がいいです。

最近プログラミング教室みたいなのが流行っていますが、プログラミングするだけではまったく稼げません。儲かるのは教室だけかなと思います

Webサービスアプリをヒットさせられる人は、プログラミングよりも営業能力が高い人なんではなかろうかと思っています

私がこれまでに使った言語PHPRubyActionScriptObjective-cこんなところです。

プロでやっていくわけでなければ、時間をかけてもいいわけですし、自分が作りたいものが作れる言語選択すればいいと思います

私はほとんどがPHPです。Rails流行ってRuby勉強しましたが、結局PHPに戻ってしまいました。

使い慣れてるのもありますが、Rubyじゃないと出来ないことを特に感じなかったためです。

私にとっては言語なんてそんな程度のものです。

ただ、新規iPhoneアプリを作ろうとされている方がいれば、絶対swiftを勧めますObjective-cは辛かったです。本当に、、、

さて本題ですが、なんでエロサイトを作ろうと思ったかというと単純に集客力が高いと思ったからです。

だってビデオデッキインターネットの普及もエロの力が大きいですよ。

最近まりWebサービスを作れていなくて、せっかく作るなら人を集めたいな〜と。作って誰も見に来ないのって寂しいじゃないですか。

今回のエロサイト定番PHP+MySQL作りました

使い慣れてるし、情報も溢れてるし、ここは特に悩みませんでした。

プログラミングを始めようとされている方は、まずはこの組み合わせでいいんではないかと思います

Ruby環境作りをがんばって挫折するぐらいなら、レンタルサーバーでサクッと始めるのがよいと個人的には思います

エロサイトを作るにあたり気をつけた点は2つ。

UIを含めて検索性の高い使い勝手がいいものにすることと、合法ものにすること。

エロサイトはいろんな種類があるが、私が作ったもの簡単に言うと無料動画へのリンク集

このリンクにいろんな情報を付加して、ユーザーが見たい動画を探せるようにすることを第一に考えた。

複数巡回ロボット作成し、性癖等のジャンルAV女優情報等を収集し、無料動画タイトルマッチングさせることで、パッと見てその動画にどの女優が出ていて、配信元はどこで、どんなジャンルで、バストサイズがいくつなのかなどがわかるようにタグ付けを行った。

人ではなくロボット情報を集めるとなると当然違法ものが入ってくる可能性がある。そのために、画像にはモザイクをかける。サイト内では再生させない。こととした。

要はサイト内ではただリンクが貼られてるだけの状態にしている。

Google検索してエロ画像エロ動画へのリンクがいっぱい出てくるのとなんら変わらない状態

エロサイトとしてはここは思いっきり弱み。

だけどリスクを犯すところでもないし、こればっかりはしょうがない。

作成にあたって競合となるであろうサイト研究したけど、大半のサイト違法ものが少なからず写り込んでいる状態でした。

ちょっとぐらい写り込んでも大丈夫なのかもしれません。。。私が心配しすぎなだけで。

そんなこんなで作ったサイトが以下の「AVスクランブル」です。

https://avscramble.com/

作成期間は約1ヶ月です。

どんなサイトにしようかと構想を練るのに2週間かけたので、実際のプログラミングは2週間ですね。

デザインCSSのみでよく言えばシンプル、悪く言えば手抜き(笑)

久々のプログラミング疲れたので、少し休憩してから、ボチボチ改良していきます

2019-04-11

C/C++/C#/Python/Swift/JavaScrip/Ruby/PHPって奴は使えないよね

よくプロフィール言語とかFWとかずらっと並べてる奴いるけど

いざ仕事やらせてみると驚くくらい使えない

Hello Worldできたら使える言語ってかんじになるのか?

逆にこういうの見るとこいつはできないやつなんだなってわかるのかもしれない

2019-03-23

anond:20190323212402

ぶら下げ先間違えたのと、よくよく見たらAndroidSwift開発してると聞いた上でPHPスクリプト組んでるのか

よくできた増田

anond:20190323114303

まず何を作りたいか思い描ける初心者ってのがあり得ない前提な気もする。

企画職の大切さがわかる。

次に適切な言語を選ぶってのも無理。

ピュア若者GoとかSwiftみたいなキワモノに引きずり込もうとする情報ばっかりな世の中。

頭が良くなった!プログラムを書けるようになった!

プログラムを書けるようになる方法を見つけた 頭も良くなった?

https://you-can-program.hatenablog.jp/

プログラムを書けるようになる方法を見つけた!

眼鏡フレームを耳の横に掛けたらなぜか書けるようになった。

このやり方をやれば誰でもプログラムが書けるようになると思います

頭も良くなった!プログラム挫折した経験がある方一度お試しあれ!

自己責任

メガネフレームを少し曲げる必要があります。破損しても自己責任

個人差があると思います。人によってできない人もいると思います

以上自己責任で試してみてください。

用意するもの

必須

メガネ (耳の横にかけれるもの フレームの横幅が広いものがいいです)

紫外線防止コーティング (眼鏡屋さんで3千円くらいでやってもらえます)

お好み

片方は非球体の方がいい (目が疲れない)

黒縁じゃないほうがいい。(縁が太いと視野が狭くなる)

やり方

目をつぶり、頭の周りに衛星が回転するイメージする

メガネをかけていない時 20回ぐらいの回転が限度 疲れてしま

メガネをかけている時 10回ぐらいの回転が限度 スムーズに回らない うまく回らない

メガネを耳の横にかけている時 スムーズに回る 無限に回ることを確認する 

メガネを耳の横にかけて無限に回ったら、プログラムが書けるようになていると思います

個人差があるため、できない人もいるかもしれません。またある程度この掛け方で生活していく必要があります普段からイメージトレーニングをやってください。

このようにフレームを広げて横に掛けてみる

プログラムが書けるようになったかを確かめてみる。

メガネのあの掛け方をしてプログラムの授業を受けてみる。

初心者JavaScriptお勧めします。

https://dotinstall.com/lessons

途中、掛け方を元に戻してみる。反応を比べてみる

プログラム書けるようになりましたか

プログラムが書けるようになった、理解できるようになっていたら、あなた今日からプログラマーです。

おめでとう!

近眼じゃない人は?メガネがないとできないの?

近眼じゃなくてもできると思います近眼になる必要はないです。

今はメガネ必須だと思いますが、近い将来メガネがなくてもできる発明品が出てくるかもしれません。

眼鏡屋さんでメガネフレームを買う。横幅の広いフレームを選ぶこと

最初についているプラスチックの度の入ってないレンズ

このレンズの上に紫外線防止コーティングを追加してもらう。

3千円くらいでやってもらえます

これでできると思いますが。個人差もあるので自己責任

眼鏡を買う前に、眼鏡屋さんで耳の横に掛けて衛星無限に回るイメージになるか試してみましょう。無限に回るイメージができたらいけると思います。(自己責任で)

まずは安いメガネでいいと思います

初心者はどのプログラム言語から始めたらいいのか?

C# .NetCore WindowsFormをお勧めします。(画像参照)

GUIなのでわかりやすい。書籍もたくさん出ています。(Visual C# 2018逆引き大全 555の極意はお勧めです)

C#動画学習サイト学習できます

https://www.udemy.com/jp/

(iOSアンドロイドをやりたい人はその言語最初に初めてもいいと思います)

そのあと

ゲーム Unity C#

Web Asp.net MVC C#

機械学習 Tensorflow for C#

Iot Windows 10 IoT Core C#

iOS SwiftObjective-C

Android KotlinJava

をやるとよいでしょう

便利ツール

https://trello.com/ja

https://slack.com/intl/ja-jp/

2019-03-12

anond:20190312212513

C言語

半世紀以上前からある言語

ほとんどの言語C言語文法を参考にして作られているくらい多大な影響を与えた凄い言語

C++

Cを滅茶苦茶拡張した言語

拡張しすぎたせいで全容を知っている開発者ほとんどいない

C#

MSJavaっぽい言語が欲しくて作ったJavaもどきだったけど

今はこっちの方が言語として洗練されている

Objective-C

C++のようにC言語拡張した言語

ただし名前が示すとおりオブジェクト指向に特化した拡張

ジョブズお気に入り言語で専らMaciOS用言語だったが最近Appleが開発した後継的存在であるSwiftに移行しつつある

誰でもプログラムを書けるようになる方法を見つけた

誰でもプログラムを書けるようになる方法を見つけた

眼鏡フレームの端を耳の横に掛けたらなぜか書けるようになった。

自己責任

メガネフレームを少し曲げる必要があります。破損しても自己責任

個人差があると思います。人によってできない人もいると思います

以上自己責任で試してみてください。

用意するもの

必須

メガネ (耳の横にかけれるもの フレームの横幅が広いものがいいです)

紫外線防止コーティング (眼鏡屋さんで3千円くらいでやってもらえます)

お好み

片方は非球体の方がいい (目が疲れない)

黒縁じゃないほうがいい。(縁が太いと視野が狭くなる)

やり方

目をつぶり、頭の周りに衛星が回転するイメージする

メガネをかけていない時 20回ぐらいの回転が限度 疲れてしま

メガネをかけている時 10回ぐらいの回転が限度 スムーズに回らない うまく回らない

メガネの端を耳の横にかけている時 スムーズに回る 無限に回ることを確認する 

メガネの端を耳の横にかけて無限に回ったら、プログラムが書けるようになていると思います

個人差があるため、できない人もいるかもしれません。またある程度この掛け方で生活していく必要があります普段からイメージトレーニングをやってください。

プログラムが書けるようになったかを確かめてみる。

メガネのあの掛け方をしてプログラムの授業を受けてみる。

初心者JavaScriptお勧めします。

https://dotinstall.com/lessons

途中、掛け方を元に戻してみる。反応を比べてみる

プログラム書けるようになりましたか

プログラムが書けるようになった、理解できるようになっていたら、あなた今日からプログラマーです。おめでとう。

近眼じゃない人は?メガネがないとできないの?

近眼じゃなくてもできると思います近眼になる必要はないです。

今はメガネ必須だと思いますが、近い将来メガネがなくてもできる発明品が出てくるかもしれません。

眼鏡屋さんでメガネフレームを買う。横幅の広いフレームを選ぶこと

最初についているプラスチックの度の入ってないレンズ

このレンズの上に紫外線防止コーティングを追加してもらう。

3千円くらいでやってもらえます

これでできると思いますが。個人差もあるので自己責任

眼鏡を買う前に、眼鏡屋さんで耳の横に掛けて衛星無限に回るイメージになるか試してみましょう。無限に回るイメージができたらいけると思います。(自己責任で)

まずは安いメガネでいいと思います

初心者はどのプログラム言語から始めたらいいのか?

C# WindowsFormをお勧めします。(画像参照)

GUIなのでわかりやすい。書籍もたくさん出ています。(Visual C# 2018逆引き大全 555の極意はお勧めです)

そのあと

ゲーム Unity C#

Web Asp.net MVC C#

機械学習 Tensorflow for C#

Iot Windows 10 IoT Core C#

iOS SwiftObjective-C

Android KotlinJava

をやるとよいでしょう

詳しくは

https://hhhdddfff.hatenablog.com/entry/2019/03/11/195332

2019-03-11

誰でもプログラムを書けるようになる方法見つけた

プログラムを書けるようになる方法見つけた

眼鏡フレームの端を耳の横に掛けたらなぜか書けるようになった。

詳しくはブログ

https://hhhdddfff.hatenablog.com

自己責任

メガネフレームを少し曲げる必要があります。破損しても自己責任個人差があると思います。人によってできない人もいると思います

以上自己責任で試してみてください。

用意するもの

必須

メガネ (耳の横にかけれるもの フレームの横幅が広いものがいいです)

紫外線防止コーティング (眼鏡屋さんで3千円くらいでやってもらえます)

お好み

片方は非球体の方がいい (目が疲れない)

黒縁じゃないほうがいい。(縁が太いと視野が狭くなる)

やり方

目をつぶり、頭の周りに衛星が回転するイメージする

メガネをかけていない時 20回ぐらいの回転が限度 疲れてしま

メガネをかけている時 10回ぐらいの回転が限度 スムーズに回らない うまく回らない

メガネの端を耳の横にかけている時 スムーズに回る 無限に回ることを確認する 

メガネの端を耳の横にかけて無限に回ったら、プログラムが書けるようになていると思います

個人差があるため、できない人もいるかもしれません。またある程度この掛け方で生活していく必要があります普段からイメージトレーニングをやってください。

プログラムが書けるようになったかを確かめてみる。

メガネのあの掛け方をしてプログラムの授業を受けてみる。

初心者JavaScriptお勧めします。

https://dotinstall.com/lessons

途中、掛け方を元に戻してみる。反応を比べてみる

プログラム書けるようになりましたか

プログラムが書けるようになった、理解できるようになっていたら、あなた今日からプログラマーです。おめでとう。

 

近眼じゃない人は?メガネがないとできないの?

近眼じゃなくてもできると思います近眼になる必要はないです。

今はメガネ必須だと思いますが、近い将来メガネがなくてもできる発明品が出てくるかもしれません。

眼鏡屋さんでメガネフレームを買う。横幅の広いフレームを選ぶこと

最初についているプラスチックの度の入ってないレンズ

このレンズの上に紫外線防止コーティングを追加してもらう。

3千円くらいでやってもらえます

これでできると思いますが。個人差もあるので自己責任

眼鏡を買う前に、眼鏡屋さんで耳の横に掛けて衛星無限に回るイメージになるか試してみましょう。無限に回るイメージができたらいけると思います。(自己責任で)

まずは安いメガネでいいと思います

 

初心者はどのプログラム言語から始めたらいいのか?

C# WindowsFormをお勧めします。(画像参照)

GUIなのでわかりやすい。書籍もたくさん出ています。(Visual C# 2018逆引き大全 555の極意はお勧めです)

そのあと

ゲーム Unity C#

Web Asp.net MVC C#

機械学習 Tensorflow for C#

Iot Windows 10 IoT Core C#

iOS SwiftObjective-C

Android KotlinJava

をやるとよいでしょう

2019-02-15

anond:20190215000601

Go は C の現代化を狙ったものじゃなかったっけ? だから基本的には原始的というか低レベル言語として設計されているわけで。

そう言えば、C言語自体がしばしば「高級アセンブラ」と言われたりしているよね。

(僕は個人的にはPascalやModula2やAdaの方が好みだったので、今でも Go よりはSwift派だけど。)

2019-02-14

PHPプログラマが思う雑な各言語イメージ

[PHP]

なんかバカにされる。

WordPressがあるからしぶとく残ってる。

[Java]

Sler大量生産されたおっさんが使ってるやつ。

見た目が汚くて2ちゃんねる好きそう。

[Python]

機械学習用のやつ。

北米だとスクリプト言語デファクトなんでしょ?

[Ruby]

プログラミングスクール大量生産された若者が使う。

日本スタートアップが使いたがる。

[Golang]

Gopherかわいい

日本だと9割がメルカリで使われてる。

[Perl]

90年代ベンチャーがよく使ってた。

はてなが見限った。

[C++]

おれには使いどころがわからない。

職質されて裁判した人が得意な言語

[C#]

WindowsとかUnityで使うやつ。

[Scala]

色んな言語上位互換というかハイブリッド

はてな採用した。アドテクが多い気がする。

[HTML]

初心者プログラミング言語だと勘違いするやつ。

簡単って言われるけどブロック要素とインライン要素の違いも知らない人が多い。

[JavaScript]

フロントエンドだと必須トレンドコロコロ変わる。

Javaと同じだと思われるネタは飽きた。

[Swift]

iOSで開発するやつ。

そういえばstoryboardしか使えない人が入ってきて役員が怒ってた。

[Kotlin]

名前の響きがかわいい

Android用かと思ったら結構サーバサイドでも使われてる。

[なでしこ]

日本語でコーディングできるネタ要員。

初心者英語からわかりづらいと文句言ったときに先輩から得意げに紹介されるやつ。

2019-02-11

anond:20190211120829

ワイの会社C/C++/C#/Objective-C/Swift/Kotlin/Java/javascript/PHP/HTMLやってるから言語によって民度が違うと言われてもピンとこないやで

2019-02-10

iOSエンジニアって将来不安じゃないの?

おれはPHP使ってwebバックエンドやってるんだけど

正直なところ人がネットやってる限り食いっぱぐれることはないと思ってる

でもiOSってApple製品のみでしょ?

ジョブズいなくなって停滞感否めない会社だし今後どうなるか微妙じゃん

しか言語Swiftでつぶしが効かないし(その点AndroidKotlin汎用性はある)

近い将来iPhoneをみんな使わなくなるのは想像つかないけど

逆にいうと昔はiPhoneがこんなに成功するとは思われてなかったし

iOSエンジニアの人はそのあたりどう考えてるんだろうか?

2019-02-07

COBOL使い → コボラー

javaScript使い → ジャバスクリプター

Swift使い → スイフター

Perl使い → パーラー

PHP使い → ぴゃー

C言語使い → しゃー

C#使い → しーしゃー

Kotlin使い → 魔法少女ことり

Java使い → ジャバンゲリオンパイロット

202X年、世界Swiftの炎に包まれた!

PHPは枯れ、Javaは裂け、全てのプログラミング言語死滅たかのように見えた。

だが、COBOL死滅していなかった!

2019-01-26

anond:20190126144845

まあ、Swiftと比べればねw

あれはObjective-Cに飽きたアップル社員が、面白いネタを求めて作ったオモチャ言語

GoIT土方でも品質維持できることが目的で開発された言語

Goケチつけてマウント取ってるやつは他の言語を使えばいいだけの話

 

2018-12-16

おーいObjective-Cィ〜!

Objective-C「みんな今頃Swiftかに移っちゃったのかなあ…。しょうがないけど、さみしいなぁ・・・

開発者「おーいObjective-Cィ〜!」

Objective-C「えっ・・・!?なに、みんなどうしたの!帰ってきてくれたの!?







Objective-C・・・ハッ!・・・夢か・・・。」

2018-11-30

の子IT開発のハードル高すぎない?

入り口スマホだったりするわけじゃない?

swift playgroundとかswiftが知ってる人フレンドリーではあるけど、初心者には分かる仕組みになってるのだろうか?

SI業界に入った子がSQL書けとか、ES6書けみたいなこと言われたってハードル高すぎないかねぇ。

AWSとかアラフォーの俺も全然からない。awscliでスナップショットとれるなんて今日初めて知ったよ。

今のプラグラミング言語って色んな言語を取り込んで高機能化してる訳じゃない?なんでそんなことしてるのか分かんないと思うのね。

伝わる人に言うと、JavaだってAutoBoxingが前提だったりするわけじゃん?42+"円"とか書いちゃう訳よ。コンパイルエラーにならないのも頑張りすぎだろと思うけど。

あとmaven使えば色んなライブラリ使えるわけじゃん?今ならGradleなのかい?よくわかんねぇけど。俺はよく分かんないけど、使いこなせてるのかね?

AWSもES2の説明はできてもS3の説明できる先輩がどれほどいるかストレージ仮想化知識が前提にない人は説明はキツいなと。AIMとか混ざると地獄よね。

プログラミングに戻ると、今どきの言語って最先端で書かれると記号や謎予約語が多かったりするんだけど諸先輩方は大丈夫かなと。

っていうか、ラムダ式とかもSI業界とかだとキツいよねと思うのだ。全然最新の技術じゃないのにね

2018-11-06

javaにも負けず

javaにも負けず

Cにも負けず

javascriptにもPythonの難しさにも負けぬ丈夫な頭を持ち

欲はあり

決していからず

いつも静かに笑っている


一日に一時間RubySwiftと少しのPHPをやり

あらゆることを

自分勘定にもちろん入れて よく見聞きし分かり

そして忘れる


実家の二階の自分の部屋の小さな一角の隅にいて

東にサイトUIあればアレ拡張機能欲しいと言い

西にプログラマー募集あれば行ってやりたいと叫び

南に酷いUIあればスタイルシート独自に変更を加え

北にアプリゲーム作りたいと思わばすぐさまとりかかり


ようやくできたプログラムに涙を流し

完成したゲームバグオロオロ潰し

みんなに「すごい」「なんやコイツ天才やんけ」「神か」と呼ばれ

褒められ

みんなから尊敬してもらえ

そういうもの


私はなりたかった…

2018-10-27

anond:20181027155327

Java代替の条件=オープンソース、可用性、並列化

 

LL4兄弟

インタープリタ言語は第2候補以下で。

 

関数型勢

ぶっちゃけ使いづらい?

 

マイクロソフト

Oracleと同じ穴の狢

 

Apple

マイクロソフト以下

 

JS

エコシステムが拡大してるけど、JVMの代役には力不足

 

Javaの天下が長く続いたため、今すぐ代役を果たせる言語/実行環境が不在?

2018-10-24

anond:20181024000744

IT企業プログラミング研修資料

はてな研修資料が公開されている。

LLPerl関数型はScala勉強してるんですね?(他には、JavaScriptGoSwiftDockerなどの練習をさせてるみたいですね。)

 

MySQLの使い方は、これを読めばOK

 

他の企業はどんな研修資料を使っているんだろうか?

2018-10-20

増田プログラマー養成講座 その8 OOPの仕組み(後半)

前回に続いて、今回もオブジェクト指向プログラミングOOP)の基本的な仕組みを見ていこう。

 

教材は、ドットインストールPHP入門です。

OOP関係してる#18から#24までのうち、後半の#22から#24までを一緒に見てみよう!

 

#22 staticキーワードを使ってみよう

動画でこんな用語が出て来た。

 

 

static

クラスベースOOPオブジェクトを使う場合普通は「クラスからインスタンスオブジェクトの具体的な実体)を作ってから使う」と説明した。

実は、newでいちいちインスタンスを作らなくても、クラスメンバープロパティーやメソッド)を直接呼び出して使える仕組みも用意されている。

それが「static」(静的)という仕組みだ。

 

「静的」(static)という言葉は、「動的」(dynamic)の対義語になっている。

newでインスタンスポンポン作っていくのが「動的」なら、new無しでコッソリとメンバーを呼び出すのが「静的」というかんじ?

 

PHPでは、インスタンスを作らなくても、直接(静的に)呼び出せるメンバーには「static」という目印を付けておく、という文法になってる。

さらに、

 

それではstaticなメンバーを入れたクラス定義してみよう。

class User {

 // プロパティー:インスタンス変数(staticなし。newした後じゃないと使えない)

 public $name;

 // プロパティー:静的変数(staticあり。newなしでいきなり使える)

 public static $count;

}

 

文法的には「static」という印を付けるか、付けないかの違いしかない。簡単だ!

次は、staticなメンバーの呼び出し方を見てみよう。

 

::演算子

ちょっと待った!「演算子」という言葉は初めて出てきたね?意味確認しておこう。

1+2は3になる等、対象(1とか2とかの数値データ)を操作(=演算)して、3という結果を得られる。

 

「::」はスコープ定義演算子とか、ダブルコロンと呼ばれている。PHPマニュアルでは以下のように説明されている。

static, 定数 およびオーバーライドされたクラスプロパティメソッドアクセスすることができます

静的メンバーを呼び出す専用の記号として「::」という演算子記号)が用意されている、というわけだ。

まり、「::」という演算子を使うことで、静的メンバー操作できる。

 

それでは、「::」を使って、静的メンバーを呼び出してみよう。

class User {

 // プロパティー:インスタンス変数(staticなし。newした後じゃないと使えない)

 public $name;

 // プロパティー:静的変数(staticあり。newなしでいきなり使える)

 public static $count;

}

 

// new無しでいきなり使える!

User::$count = 1; // 1を代入する。

echo User::$count; // 1と表示される。

 

実験で以下のコードも追加してみよう。

// staticが付いてないインスタンス変数(new無しで使えない)を呼び出す。(本来は呼び出せない)

User::$name = "yamada";

echo User::$name;

実行すると

PHP Fatal error: Uncaught Error: Access to undeclared static property: User::$name

というエラーメッセージが表示された。

「staticなプロパティーとして定義されてないから、アクセスできないよ!」と怒られた~~~(涙)

staticじゃないメンバーには、ちゃんとnewしてインスタンスを作ってからアクセスしないと、使えないんですね。(面倒)

 

キーワード「self」

オブジェクトメンバープロパティー、メソッド)に、オブジェクトの中のメンバーアクセスするとき

という使い分けになってる。単にこれはPHP文法なので、特に悩む余地はない。

 

this=インスタンスメンバー操作する場合

class User {

 // 普通プロパティー:インスタンス変数(staticなし。newした後じゃないと使えない)

 public $name; // ←この$nameをこの下にあるをhello()から使いたい

 // 普通メソッド

 public function hello() {

  echo "Hello, " . $this->name; // this->で指定する

 }

}

$taro = new User;

$taro->name = "Yamada Taro";

$taro->hello(); // Hello, Yamada Taro

「this」が自分自身オブジェクトを指し示す。

$this->nameで、オブジェクト(この場合インスタンス)内の$nameアクセスできる。

 

self=クラスの静的メンバー操作する場合

class User {

 // staticなプロパティー:静的変数(staticあり。newなしでいきなり使える)

 public static $name; // ←この$nameをこの下にあるをhello()から使いたい

 // staticなメソッド

 public static function hello() {

  echo "Hello, " . self::$name; // self::で指定する

 }

}

// new無しでいきなり使える!

User::$name = "Suzuki Hanako";

User::hello(); // Hello, Suzuki Hanako

「self」が自分自身オブジェクトを指し示す。

self::$nameで、オブジェクト(この場合クラス)内の静的な(staticな)$nameアクセスできる。

言ってる意味、分かる?(説明が分かりにくい?)

 

スコープとは?

「this」とか「self」とか、いちいち使い分けていて面倒くさいなーと思うだろう。

なんでこんなことをやってるか?というと「スコープ」という仕組みが関係してる。

ドットインストールPHP入門でも、#16でちょっとスコープについて説明してあった。

PHPスコープの種類は3種類しかありません

  1. ローカルスコープ
  2. グローバルスコープ
  3. スーパーグローバル

 

スコープ有効範囲

スコープ」(scope, 可視範囲)は、元々は潜水艦に付いてる望遠鏡(潜望鏡)のこと。

プログラミングでは、あるデータ変数とか)がどこまで見えるか、覗けるか、という範囲のことを「スコープ」と呼んでる。

変数関数がどの範囲まで有効なのか、使えるのかは、その変数関数スコープで決まっている。

Wikipediaで「スコープ」の説明を見ると、ゴチャゴチャ書いてあるけど、要するにスコープには、広い範囲や狭い範囲があるってこと。

 

thisやselfをわざわざ使い分けているのは、範囲を指し示すときに、

それとも

という場所の違いをハッキリと区別するためなんだ。

 

クラスオブジェクト設計図)を眺めたときに、

thisを使ってたら、「ああ、newしてインスタンスを作らないと使えないんだな」と分かる。(インスタンスの中の話)

staticとselfを使ってたら、「newしないで、静的に使えってことだな」と分かる。(クラスの中の話)

 

太郎の$nameとか、花子の$nameとか、インスタンス場合は、各インスタンスメンバーは、明確に分かれていて、両者が混ざることはない=別々のスコープになってる。

クラスの静的メンバーは、そのクラスに1個しかないので、そのクラスをnewしないで(インスタンス無しで直接呼出しときは)、いろんなところから呼び出されても、共通の中身になってしまう=スコープが1個、同じスコープになってる。

 

インスタンス変数クラスの静的変数は別物なので、thisとselfで使い分けてる、というわけだな!

 

ここまで読むと「staticって面倒くさいやつだな!なくてもいいじゃん!」と思っただろう。その通り!

staticは使わなくて済むなら、なるべく使わない方がいい。

「static 欠点」で検索してもらえば、staticを使った場合問題点が紹介されている。

どうしてもstaticじゃないと実現できないこと、staticの方が便利な場合だけ、staticを使うようにしよう。

 

(参考)PHPのstaticの使い方

 

#23 抽象クラスを使ってみよう

動画でこんな用語が出て来た。

 

 

抽象クラス

これはドットインストール説明そのままでOKですね。

 

具象クラス(今まで勉強してきた普通クラス)だけではなく、「抽象クラス」という特殊クラスを作る仕組みも用意されている。

抽象クラスは、継承してその子クラスを作るとき、「必ずこのメソッド自分で作れよ!」などと強制できる。

まりクラスの利用方法継承とか)について、プログラマーに指示を出せる働きがある。

 

抽象クラスの特徴として、具象クラス(通常のクラス)との違いを挙げます

 

1. 抽象メソッド定義する事ができる。

抽象メソッドとは、実際の処理を自身にではなく子クラス記述させるためのメソッドです。

この抽象メソッド記述できることが、抽象クラスの最大の特徴です。

抽象クラス継承したクラスは、この抽象メソッドを必ず「オーバーライド」しなければなりません。(オーバーライドしないとコンパイルエラーとなります。)

 

2. 抽象クラス単体でインスタンスを生成する事はできません。

抽象メソッド定義している。

まり、実際の処理を記述していない訳ですから当然インスタンスを生成して使用する事は出来ません。

JavaPHPも同じですね。

 

#24 インターフェースを使ってみよう

OOP継承には、「単一継承」と「多重継承」という種類がある。

普通は、「単一継承」といって、親クラスからクラス継承して作るとき、親クラスは1個だけしか指定できない。(1:1)

クラスA、クラスB、クラスCの3つを親クラスとして、クラスZという子クラス継承して作る仕組みは、「多重継承」という。多重継承可能場合、子クラス複数の親クラスを持てる。(多:1)

 

PHPJavaでは、多重継承ができない代わりに、「インターフェース」という仕組みが用意されている。

インターフェースを使うと、多重継承と似たようなことができる。

 

↑ここにクラスインターフェースの相違点がまとめられてたので、参考にしてみてください。

 

インターフェースの使い方、文法を見ておきましょう。

  • class」の代わりに「interface」を使う。
  • 「extends」の代わりに「implements」を使う。
  • 継承する」という代わりに「実装する」という言い方をする。

interface sayHi {

 public function sayHi();

}

interface sayHello {

 public function sayHello();

}

class User implements sayHi, sayHello {

 public function sayHi() {

  echo "hi!";

 }

 public function sayHello() {

  echo "hello!";

 }

}

$taro = new User; // コンストラクターに渡す初期データがない場合「new User();」みたいに「()」を付けなくてもOK

$taro->sayHi(); // hi!

$taro->sayHello(); // hello!

 

PHPOOP機能

#22から#24までを見て、PHPOOP基本的な仕組み~使える機能について見てきました。

PHPには、他にもいろんなOOPで使える機能が用意されています

 

その他のOOP機能

Javaなど他のプログラム言語には、PHPにはないOOP機能も用意されています

オブジェクトを利用するときの仕組みとして、いろんな方法が考えられてます

 

使う機会があれば調べてみましょう。

 

ここまでで、やっとOOP基本的な仕組み、用意されている機能テクニックを学びました。

次回は、なぜこんなOOPの仕組みが考え出されたのか?どうやってOOP活用していくのか?を見ていきましょう。

 


anond:20181015215004 未経験からプログラマーなんだが全然からない

anond:20181016015826 増田プログラマー養成講座 その1 パソコンの用意

anond:20181016164341 増田プログラマー養成講座 その2 プログラムデータ+処理、プログラム言語の種類

anond:20181016180059 増田プログラマー養成講座 その3 構造プログラミングの基本(順次、反復、分岐

anond:20181016193144 増田プログラマー養成講座 その4 子ども向け教材「Scratch」で構造プログラミング練習

anond:20181017161003 増田プログラマー養成講座 その5 オブジェクトとは何か?

anond:20181017191404 増田プログラマー養成講座 その6 OOPの種類、PHPの準備

anond:20181019181549 増田プログラマー養成講座 その7 OOPの仕組み(前半)

anond:20181020230044 増田プログラマー養成講座 その8 OOPの仕組み(後半) ←★今ここ★

anond:20181022232327 増田プログラマー養成講座 その9 MVCフレームワークを使ってみよう

anond:20181023184616 増田プログラマー養成講座 その10 OOP参考書

anond:20181024214737 増田プログラマー養成講座 コンテンツ一覧

2018-10-14

anond:20181014003945

mac持ってるならxcodeインストールして適当に始めてみては?

本とかいレベルじゃなさそうなのでswift教えてくれる教室に行ったほうがいいと思う。

アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん