「Ruby」を含む日記 RSS

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

2018-11-20

CoffeeScript - Rubyみたいに書ける (今は使わない)

rubyが嫌いなので使わなかった

typescriptに飛びついてからAltJStypescript

だけど、最近使いたいものがcoffeeだった

もちろんjsなんだから使えはするが、読んだり改造が困難

全部書くか迷う

あの頃、coffeeに夢中だった人たちは今でも使っているのだろうか

2018-11-19

学習用のプログラミング言語の選定基準

型について考えてみる

個人的には、

  1. 最初に、動的型付けの言語を使ってみる。
  2. 次に、静的型付けの言語を使ってみる。
  3. 最後に、型推論が強力な言語を使ってみる。

という順番がいいと思う。

 

  1. 最初、試作品を一気に作る場合、型は柔軟に変更できる方が楽。Rubyモックアップを作る、とか。
  2. 次に、試作品を完成品にするとき、型チェックでエラーを弾く。Javaガッチリ作り込む、とか。
  3. 最後に、型推論コンパイラに型チェックをさせる。人間様は型で消耗しなくていい。OCamlで書いて、他の言語トランスパイルする、とか。

…というかんじ。

 

双方の立場の一番の違いは、動的型付け言語システム非平衡状態を重視するのに対し、 静的型付け言語は平衡状態を重視していることなんじゃなかろうか。

型とは設計である

型とは設計だと思っている。しかコードから乖離することのない、生きた設計だ。

型を見れば問題の切り分けが出来ているかどうか分かる。

型を見れば開発者意図が分かる。

型を見れば静的な性質の多くが分かる。

型を見てそれらが分からないようなら、それは設計(型)が悪いのだろう、と僕は思っている。

さらに型チェックが通れば設計一貫性担保される。

設計の変更時にはコンパイラが何処を直せば良いか全て洗い出してくれる。

 

静的型付言語では型が煩わしくなるという旨の発言を聞くたびに、僕には「私は設計が出来ません/設計を考えた事がありません」と言っている様にしか聞こえない。

 

型って「データ構造」の設計必要情報だよね。

1ヶ月でJavaをマスターする学習カリキュラム

どうやったらプログラミング経験者を1ヶ月で一人前のJavaプログラマーにできるだろうか?

 

基礎

 

応用

 

これらを1ヶ月程度で詰め込むことは可能なのだろうか?

1ヶ月でJavaマスターした人がいたら、教材とか順番を教えてください。m(__)m

 

Railsエンジニア研修

はてなブックマークでバズってた宣伝を見ると、4ヶ月の研修Railsエンジニアを育成していた。

研修の成果を3行で

 

ざっくりスケジュール

4月
5月6月
7月

かなり余裕のあるカリキュラムで、OOPの基本を学ぶなら、(静的な型付けがないけど)Rubyはいいよね。

Java最初に覚えるべき知識が多過ぎて、初心者学習用途には向いてないと思う。

PythonRubyなど、グル言語LLプログラミングの基本を理解する。その後にJavaで肉付けする。という順番が良いと思う。

 

でも、いきなりJava現場に放り込まれたら、そうも言ってられないわけで、無理矢理でも1ヶ月でJavaマスターするしかない。

この無理ゲークリアするためには、教材と順番を工夫するしかないだろう。

どうだろ?

2018-11-16

SFCPS時代日本って世界屈指のITエンジニア大国だったのでは?

ゲームプログラミングITと呼ぶのかどうか知らんが

Ruby制作者が日本屈指のPG扱いされているけど

Rubyなんて数多く制作されたSFCソフト一本分にも満たないプロダクトだろ。

こんな化け物ソリューションを毎月アホみたいな数が作ることができた日本PGたち。

彼らはどこへ行ってしまったのか。

2018-11-09

”今後必要になる〜”の著者がうちの派遣おっさんだった

かなり興奮しているし酔っているので要領を得ないかも。

今日急にうちに派遣で来てるおっさんに飲みに誘われて、会社の近くの安い居酒屋につれていかれた。

なんで誘われたかというとこれもうまく言えないのだが、チームや全体での飲み会で近くにいることが多く、不幸なことに自分が少し聞き上手だからかもしれない。

とにかく席についてビールが来ないうちに、人をばかにしたような半笑いで話を切り出された。

おっさんが持っている10年も前にあったようなガラケーメモ帳画面を見せられ、君になら理解できるだろうとかクィータとかいサイトにはろくな人材がいないとかブツブツ言っていて、俺はメモの中身を読み進めているうちに顔が引きつっていくのがわかってなぜか記事自体よりもそのことで笑いが止まらなくなりそうなった。

しばらく自分はどうすればいいのか知らないふりをするべきか、なだめたほうがいいのかまじでわからなかったのだが、結局記事の本意を聞きたい好奇心には打ち勝てなかった。

ちなみに自分仕事場ではWinXPが現役で動いている。派遣おっさんも含め会社がそういうカラーだと言えば伝わるだろうか。

自分趣味でReact(ないしReactNative) とかで家計簿アプリを作っているし、Androidも(それこそJavaでだが)やっていてちょっと新しい技術は知っているというレベルである

・「マスター言語」について

端的に言うと「必修」という意味で使ったらしい。ルー大柴かおまえは。いや意味が通ってないしルーに失礼か。

JavaJavascriptが同列になっている点について

どうやらプロトタイプベースオブジェクト志向という意味をはきちがえている。

まりJavascriptはオブジェクト指向言語プロトタイプとして生まれ言語であり、完全オブジェクト指向言語(これも意味がわからなかった)のJavaとは切っても切り離せない関係であると思っているらしい。もう自分はここらへんから笑いが変な声で漏れる笑いを堪えられなくなっていて、喘息気味なんですとかアホな言い訳必死ごまかそうとしていたんだけれど、この派遣おっさんに対してそこまで気を使っている自分にも笑いが止まらなくなってまあなんというか、おもしろかった。

RubyJavaサブルーチンとは

Rubyが(というかRORが?)動作が遅いという話をどこかで読んだか聞いたかしたらしく、そして動作が遅いかわりに処理がしっかりしている(現文ママ)という位置付けの言語だと思っているらしい。正確性が必要な処理はサブルーチンにしたRubyに投げるべきだとかなんとか。

パッセンジャーよりもエンジンクスにひもづけるべき(現文ママ)とか言っててもうビールがまずくて仕方ない。

MSDN

自分MSDN学生時代にVisualC++とかで使ったことがあって、デスクトップアプリ用のライブラリだとずっと思ってたんだけど、違うんですかね。(無知

MSDM(何度聞いてもエムにしか聞こえない)の逆アセンブリ言語C++だとか、ここの話は輪をかけて本当に何言ってるのかわからなかった。

ねこのことを考えて耐えた。

SQL

あんま深く考えてなかったらしい。言語名前がついているか言語のくくりに入れた、くらいのスタンス

ちなみになぜか、使ったこともないらしいSQLiteで配列型を使えないことは知っていた。

と、ひと通り聞きたかたことを聞いた後、もうなんか疲れ果てたのでビールを半分残して帰った。

よほど調子が悪く見えたらしく、おっさんはひどく自分のことを心配してくれた。ごめんおっさん

2018-11-07

映画館の上映スケジュール一覧サイトがよくあるけど、手打ちなんだろうか

google検索映画.comのようなサイトで上映中の映画スケジュールが見られるが、これは手打ちでやっているのだろうか。

というのも大手でない、新文芸坐シネマカリテのようなサイト最初に上映スケジュールの1次情報が公開されている。

これは何らかのスケジュールの表をphpなりrubyなりpythonで展開すればweb pageとして成立する。

しかし、元のスケジュール表は公開されていないので他のサイトで利用しようとしたら上映スケジュールサイト情報手打ちで打つしかないのではないだろうか。

自分が知らないだけかもしれない、、もし何か有用APIをご存知の方いたら教えてくださいませ

2018-11-06

javaにも負けず

javaにも負けず

Cにも負けず

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

欲はあり

決していからず

いつも静かに笑っている


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

あらゆることを

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

そして忘れる


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

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

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

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

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


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

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

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

褒められ

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

そういうもの


私はなりたかった…

人がいないという話

偽装派遣現場で、人がいない人がいないと嘆いている。

偽装派遣会社はどこから人を調達してくるのか疑問に思ったことはないだろうか。彼らは会社同士でつながっていて、メーリングリスト的なもの連携している。

私はこれを「奴隷ネットワーク」と心の中で呼んでいるが、そこで元請け会社が「こんなスキルの人が欲しい」と募集して、二次請け以下の会社がそれに応募するのである

ここで問題なのは偽装派遣自体違法性はもちろんだが、彼らが「奴隷ネットワーク」以外では一切、条件にあった人を探そうとしないことである

彼らの目的は人を回して差益で稼ぐことなので、お客様のほしい人を「調達」する際に一般求人サイトを使ったり求人エージェントに依頼したり、フリーランスを雇ったりはせず、n次請けから調達」して差益を稼ごうとする。

しかし昨今のお客様は目が肥えており、単純作業しかできない人は求めておらず、要求は高くなってきている。

からRubyバリバリ使えてインフラにも詳しくお客様とのコミュニケーションも上手い」みたいな人(例です)を「奴隷ネットワークから調達しようとして、人いないわ〜マジ人手不足だわ〜〜と嘆いている。

いるわけねーだろ!

そんな人がどうして「奴隷ネットワーク」にいて、お前らに中抜きされて偽装派遣で働いてくれると思えるんだよ!

お前らと同じように求職者だってネット情報収集してるんだよ!偽装派遣ブラックだって、みんな知ってるの!

しかしそこを否定すると彼らのビジネスモデルの根幹が崩れるため、気づかぬふりして人を探し続けるのである

SIerとかSES企業とかの横文字はやめて「偽装派遣会社」で呼び名統一したほうがわかりやすいと思う。

しか上記のような状況があるので、そのうち彼らは立ち行かなくなるんじゃないかな。

2018-10-28

[]2018年10月27日土曜日増田

時間記事文字数文字数平均文字数中央値
001591508694.952
018710833124.542
02243916163.257
0391050116.757
04182366131.471
05141647117.659.5
06234414191.953
07234756206.852
0842276165.735
09678130121.352
1080777297.239
11818213101.444
1210411081106.545.5
13758372111.638
1445433796.440
159812920131.845.5
16757616101.551
1797903093.140
1883777193.634
19477576161.234
2099983899.441
2190803389.334
22768166107.450.5
2312412631101.950
1日1640178315108.745

頻出名詞 ()内の数字単語が含まれ記事

人(181), 自分(140), 話(82), 今(75), 女(69), 人間(61), 好き(59), 増田(56), 仕事(54), 意味(52), 最近(50), 男(49), 前(47), 気(40), 日本(40), 相手(40), 必要(37), 気持ち(37), 関係(36), 会社(36), 普通(36), 金(35), オタク(34), 嫌(34), 感じ(33), 社会(33), 結婚(31), 問題(30), 手(29), 理解(29), 他(29), 最初(28), 理由(28), ブス(28), 女性(27), 存在(26), 企業(26), 他人(26), ー(25), 絵(25), 東京(25), 目(25), 価値(24), バカ(24), 絶対(24), おっさん(24), 全部(24), あと(24), 時間(24), 頭(24), 今日(23), 結局(23), 人生(23), 時点(23), 子供(23), 経験(23), 無理(23), 生活(23), 萌え絵(22), 世界(22), 批判(21), 恋愛(21), 言葉(21), ネット(21), レベル(21), 漫画(21), 昔(21), しない(21), 病気(20), 表現(20), 一番(20), 給料(20), しよう(19), 場合(19), 誰か(19), 差別(19), スマホ(18), お金(18), 仕方(18), 別(18), 年収(18), セックス(18), 毎日(18), 能力(18), 逆(18), 行動(18), 内容(17), ただ(17), 女の子(17), 先(17), ゲーム(17), マジで(17), 最後(17), 簡単(17), 友達(17), いらすとや(17), 世の中(17), エロ(17), 方法(17), 時代(17)

頻出固有名詞 ()内の数字単語が含まれ記事

増田(56), 日本(40), 東京(25), 萌え絵(22), いらすとや(17), スマホ(17), マジで(17), じゃなくて(16), 従業員(14), 自己責任(13), 可能性(13), いない(12), なのか(12), なんだろう(11), 専業主婦(11), 経営者(11), 婚活(11), Java(11), キモ(10), AI(10), キモい(10), w(9), 安田(9), 具体的(9), 2018年(9), 消費税(9), わからん(9), twitter(8), エロゲ(8), iPhone(8), SNS(8), 労働者(8), 元増田(8), Twitter(7), ツイッター(7), いいんじゃない(7), 何度(7), 人手不足(7), 個人的(7), 笑(7), 安田純平(7), 自己責任論(7), 一緒に(6), どんだけ(6), クリエイター(6), 1年(6), IT(6), 人間関係(6), ブコメ(6), ぶっちゃけ(6), ワイ(6), Python(6), 2人(6), カス(6), 差別主義(6), Google(6), もののけ姫(6), アレ(6), 10年(5), BL(5), 普通に(5), PC(5), 分からん(5), 中国(5), 著作権(5), アシタカ(5), アップロード(5), 一方的(5), エロい(5), 学生時代(5), 豆苗(5), Ruby(5), Apple(5), お気持ち(5), 漫画村(5), エロ漫画(5), 1回(5), 外国人(5), アプリ(5), ブラック企業(5), 配置転換(5), LINE(5), アメリカ(5), ヤバい(4), ネット上(4), 出羽守(4), 1人(4), 10月26日(4), 数年(4), ギリシャ(4), 脳内(4), モテ(4), 30代(4), 欧米(4), 豊洲(4), 女子高生(4), 価値観(4), ニート(4), 多様性(4), ローソン(4), 2年(4), 非モテ(4), ここに(4), 好奇心(4), 平成(4), 大企業(4), 少数派(4), ゾーニング(4), フェミ(4), 就活(4), 3年(4), k(4), 保証人(4), 腐女子(4), ICBM(4), 知らんけど(4), 格ゲー(4), s(4), 何回(4), マウンティング(4), シリア(4), 国連(4), 事実上(4), LGBT(4), 毎日(4), きもい(4), 日本政府(4), B(4), 1000万(4), オチ(4), 現実的(4), モテる(4), ???(4), hatena(4), 二次創作(4), 少女漫画(4), 障害者(4), 高齢者(4), 仕方がない(4)

本日の注目単語 ()内の数字単語が含まれ記事

豆苗(5), ICBM(4), アシタカ(5), 10月26日(4), 泣きゲー(3), Pixel 3(3), ハウスメーカー(3), 時の人(3), 配置転換(5), LL(3), フォトショップ(3), いらすとや(17), アート(9), 倒産(8), Java(11), 自己責任論(7), 不景気(7), 従業員(14), 潰れ(14), 落ち込む(5), おなら(5), ジャーナリスト(13), 人手不足(7), ギャル(7), 景気(11), 乳首(13), 整形(6), 経営者(11), 婚活(11), 萌え絵(22), 専業主婦(11), ブス(28), 自己責任(13), iPhone(8), 遅い(9), 労働者(8), イラスト(11), 消費税(9), 完成(7)

投稿警察もどき日中に再投稿された本文の先頭20文字 ()内の数字投稿された回数

うんち (6), 今日も女は男叩き (2), 最初から (2)

頻出トラックバック先(簡易)

調子にのったブスを量産する趣味 /20181026222202(18), ■「〇ン〇ー〇」に当てはまる一番ダサい言葉を探している /20181027134503(17), ■露骨無自覚外国人差別を久しぶりに見たのだ /20181027010320(11), ■日本人のお金持ちって、日本アート関係お金使わず海外アート買うのなんでだろう /20181015010418(11), ■萌え絵についてオタクが見ていない不都合な真実 /20181027070706(9), ■東京人って東京以外全部「地方だって考えてるよね /20181027013205(8), ■GoogleからPixel 3をもらう方法 /20181027105050(8), ■男性って乳首感じないの? /20181026192127(8), ■企業は潰れてもいい? /20181027151709(7), ■非モテを救済するいい方法を思いついた! /20181027185029(6), ■【マジレス希望デートセックス教習所ってなんで無いの? /20181027003907(6), ■米って何でもよくない? /20181026191531(6), ■泥棒って無罪でいいんじゃね? /20181026234555(6), ■この漫画オチわからんのだけど /20181027141942(6), ■anond20181027133518 /20181027133913(5), ■将棋プロ選手を妙に持ち上げる雰囲気が謎 /20181027151508(5), ■哺乳類だけなんで知能が高くなったの /20181027185605(5), ■最近の若者のIT知識の無さには失望した /20181027202758(5), ■結婚願望はないけど付き合ってみたいとは思う /20181027002429(4), ■もう専業主婦希望結婚できないの? /20181027004917(4), ■米軍採用というおもしろフレーズ /20181026205731(4), ■新聞社安田を庇うことのわかりやす偽善 /20181027014053(4), ■もう女だけで社会を作ればいい /20181027102819(4), ■婚活したいけど社内片思いに終止符が打てなくて詰んだ /20181027010013(4), ■出羽守ってよくわからずに使ってる人いたのか /20181027014250(4), ■「山で迷ったら降りるのではなく登れ」 /20180817194156(4), ■TPOって死語? /20181027210100(4), ■anond20181027010338 /20181027010913(4), ■anond20181027091231 /20181027113805(4), ■2001年宇宙の旅を見たんだけど /20181027200619(4), ■弱点や苦手を表明する事はあくま相手が優しくなければ意味がない /20181027175836(4), ■嫁と喧嘩したんだが、これ俺が悪いのか? /20181027174952(4), ■24Fカップの女のだけど耳情報が処理できない /20181027203736(4), ■anond20181027155157 /20181027155824(4), ■手帳日記処分方法 /20181027112100(4), ■[Java] Javaの代わりになるプログラミング言語は何がいいかな? /20181027155327(4), ■本当に金がなくてやばいんだが /20181027205302(4), ■俺は障害者が大嫌いだ /20181027095014(4), ■自分キモすぎる /20181027223029(4)

増田合計ブックマーク数 ()内の数字は1日の増減

5750014(3334)

2018-10-27

anond:20181027183154

RubyRails含めて「小中規模のWebアプリを作るための便利な道具」としか認識されてないからかな

anond:20181027155327

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

 

LL4兄弟

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

 

関数型勢

ぶっちゃけ使いづらい?

 

マイクロソフト

Oracleと同じ穴の狢

 

Apple

マイクロソフト以下

 

JS

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

 

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

2018-10-23

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

前回はオブジェクト指向プログラミングOOP)の使いどころを学ぶために、MVCフレームワークを使ってみました。(ほんの触りだけ)

今回はOOP理解を助けるための参考書を探してみましょう。

 

OOP参考書

OOPに関する有名な本はたくさんありますAmazonレビュー評価が高い本は、定番の本が多いです。

だけど分厚い本は、ある程度プログラミングに慣れてから読んでみないと、最初意味チンプンカンプンだと思います

最初意味が分からなくても)なるべく早い時期に1回は読んでみた方が良いと思う本をピックアップしてみます

 

オブジェクト指向でなぜつくるのか 第2版

この本は、OOP概要、基礎知識コンパクトにまとめられています

今の自分知識の過不足をチェックできます

この本を1つの目安にして、今後の学習指針を立ててみて下さい。

 

プリンシプル オブ プログラミング 3年目までに身につけたい 一生役立つ101の原理原則

https://www.shuwasystem.co.jp/products/7980html/4614.html

この本は、OOPも含むプログラム設計ノウハウ原則をまとめて紹介しています

カタログ的に、各テーマを広く浅く紹介してるだけなので、詳しい内容は個別に掘り下げる必要がありますが、それでも概要を知る上では役立ちます

今すぐ理解できなくても、「あー、そういえば、そういう話もあったな」と後で思い出せる程度に眺めておくだけでも十分だと思います

(第3章にある「UNIX哲学」は、初心者にとってプログラミングの良い指針になると思います。)

 

オブジェクト指向設計実践ガイド ~Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方

https://gihyo.jp/book/2016/978-4-7741-8361-9

この本は、上記2冊の内容を具体的な事例で説明しているような本です。

OOP解説本をいろいろ読んでみると、

などといった用語に出くわすと思います

これらの内容はそれぞれが1冊の本になるほどボリュームの多い内容ですが、本書ではそれらのエッセンスをうまくまとめていると思います

サンプルコードRuby説明されていますが、何らかのOOP言語を使ったことがあれば、Ruby文法を知らなくても、だいたい意味は分かると思います

 

プログラミング入門書を数冊読んだ程度の段階では、上記の本を読んでもいまいちピンと来なくて、意味理解できないと思われます

しかし、将来自分がぶち当たるであろう壁、課題を先取りしているつもりになって、「こんなことも考慮してるんだな!」と雰囲気だけでもつかんでもらえればいいんじゃないかと思います

 

プログラミングって難しいイメージがありますけど、習うより慣れろの精神で、とりあえず適当に触ってみるのがいいと思います

 

その他

PHPを使って、OOP基本的な仕組みを説明をしたので、PHP入門書を挙げるなら、とりあえずこの1冊。

自分にとっては分かりやす説明だと思うのですが、類書はたくさんあるので、実際に本屋で確かめてみましょう。

 

Java入門書文法の基礎を学んだら、次に読んでみたい本。

デザインパターン」という知識があると、他人が書いたプログラムを読むときに役立つと思います

(なんでこういう書き方をしてるんだろ?とか、定番の書き方=パターンがいくつかあるので。)

 

グチャグチャな汚いコードを綺麗にスッキリさせるノウハウがあります

リファクタリングに関する知識を学ぶと、プログラムの書き方が改善されて、後で自分メンテナンスするときに苦労が減ります

 

今の段階では、パッと思いついた本はこんなかんじだけど、他にも良い本はいっぱいあります

自分が分かりやすいと思う説明方法と、他人が分かりやすいと思う説明方法は、必ずしも一致してない場合が多々あります

図書館本屋で、実際に本の内容を確かめてみて、自分にとって一番分かりやすいと思える説明の本を探してみてください。

 

本のコストパフォーマンス

リファレンス文法辞書など)は、読む頻度が多ければ、買って損はしない=元は取れると思うので、自分への投資だと思って、必要な本は買うようにしましょう。

プログラミング専門学校かに行ったら、学費が何十万円もしますね?それを思えば本なら安いものです。)

 

プログラミング学習曲線

プログラミングに限らず、他の勉強でも同じだと思いますが、最初は知らないことの連続ですね?

プログラムサンプルコードを見ても、意味が分からなくて、中身が不明な「ブラックボックス」に見えると思います

でも、いったん意味が分かるようになると、霧が晴れたように、急激に視界が開けてきます

学習曲線で言えば、滑らかな右肩上がり(/)ではなく、ある時グイッと変わる階段状(_l ̄)の変化に近いと思います

なので、最初は分からないことが多く感じても、それが当たり前なので、あまり気にする必要はないです。

理解を早める補助として、上記のような参考書活用されてみて下さい。

 

まとめ

今回までで、手続言語構造プログラミングオブジェクト指向プログラミング)の基本を知りました。

次回は、問合型言語SQL)を学び、データベースを使いましょう。

 


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:20181024214133 増田プログラマー養成講座 その11 データベースを使ってみよう

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

2018-10-22

増田プログラマー養成講座 その9 MVCフレームワーク

前回はオブジェクト指向プログラミングOOP)で使う様々な仕組みについて学びました。

今回はOOPWebアプリを作ってみよう!

 

今日学ぶこと

 

OOPの使いどころ

OOP文法を学んだ後、OOP長所が発揮される場面をどうやって説明したらいいのか?を考えてみた。

横田意見を参考にして、「フレームワーク」を使って、OOPの使い方を見てみよう。

 

フレームワークとは?

framework →「枠組み」「骨組み」「構造」などという意味英語

システム開発で使われる「フレームワーク」とは、よく使われる機能のパーツを用意して、まとめて1つのパッケージにしたプログラム群のことだ。

 

イメージとしては、いろんなおかずが入ってる豪華な幕の内弁当のようなものだ。

ただし、ご飯のマスだけが空になっていて、プログラマー自分ご飯を用意しないと、弁当としては完成していない形になってる。

普通の白いご飯を作って追加しても良いし、好みや必要に応じて、炊き込みご飯やまぜご飯を作って追加しても良い。

ゼロから豪華な幕の内弁当を作るのは大変だけど、ご飯だけ用意すれば完成するので楽ができる。

 

プログラムの開発でフレームワークを使うと、プログラマー必要最小限のコードを書くだけでアプリを完成させられるので楽ができる。

 

ライブラリーフレームワークの違い

フレームワーク」と似た用語で「ライブラリー」という用語がある。

イメージとしては、ライブラリーは、ばら売りのおかずだ。

弁当を作るときに使いたいおかず(ライブラリー)を自分で考えて探し出し、選ばないといけない。

フレームワーク最初からおかずが全部用意されているので、自分でわざわざ選ばなくてもOK

 

プログラム動作で見た場合フレームワークライブラリーでは決定的な違いがある。

↑このページの「図1●フレームワークにおける制御の反転」という図解を見てみよう。

制御の反転」(Inversion of Control、IoC)といって、自分の書いたコードが主役から脇役になってる点が違う。

 

(主役と脇役という説明は適切ではないかもしれないけど、イメージとしてはそんなかんじ?)

 

MVCフレームワークとは?

フレームワークはいろんな機能全部入りで、こいつを使えば、ちょっとコードを書くだけで、高機能アプリがすぐに作れる。

ここでは「MVCパターン」という仕組みで作られた「MVCフレームワーク」を使ってみよう。

 

MVCは「Model」「View」「Controller」の略で、MとVとCの3つを自分で用意すれば、アプリが作れちゃう仕組みだ。

MVC歴史は古くて、GUI(Graphical User Interfaceグラフィカルユーザインタフェース)を作る方法定番だ。

→「MVC 仕組み」でGoogle画像検索すると、分かりやすい図解がいろいろ出てくる。

 

(参考)

Wikipedia説明は、文章学術的で難しいけど、正確な説明になってると思う。

↑このページの「MVC概要」という図が、MVCの仕組み=動作の流れを分かりやす説明してる。

 

MVCの仲間たち

MVCパターンと似たような仕組みが、他にもいろいろある。

 

こういうプログラム設計に関するノウハウは、「アーキテクチャー・パターン」という分野に蓄積されている。詳細はGoogle検索してみよう。

 

WAF(Web Application Framework

Webアプリを作るときに使われるMVCフレームワークには、いろいろある。

WAFを使うと、Webアプリが手軽に作れる。

 

有名なものとして、

などが挙げられる。

 

PHPOOP学習しているので、ここではPHPのWAFの1つであるCodeIgniter」を使ってみよう。

 

CodeIgniterコードイグナイター)

CodeIgniterは使い方がシンプルで、覚えるルールが少ないので教材に向いているだろう。

それでは、CodeIgniterを使ってみよう。

 

準備

↑このページの「Downloadから「3.1.9.zip」という圧縮ファイルダウンロードする。(2018年10月現在バージョン3.1.9でした)

 

ダウンロードしたファイル解凍して、「CodeIgniter-3.1.9」というフォルダが出てきたら、「waf」という名前に変えよう。(「waf」はWeb Application Frameworkの略。)

今「waf」フォルダの中には、「index.php」というファイルや、「application」「system」などフォルダがあるね?

この「waf」フォルダを以前用意したXAMPPの中にコピーする。(参照:anond:20181017191404 増田プログラマー養成講座 その6 OOPの種類、PHPの準備)

=「C:\xampp\htdocs」(Cドライブの中の「xampp」の中の「htdocs」というフォルダ)の中に「waf」をコピーして下さい。

=「C:\xampp\htdocs\waf」という位置コピーできたらOK

 

動作チェック

これで「Welcome to CodeIgniter!」というWebページが表示されたら、CodeIgniter動作確認OKです。

 

CodeIngiterの設定

$config['base_url'] = 'http://localhost/waf/';

 

Webアプリ作成

それでは「Hello, world!」と表示させるシンプルWebアプリを作ってみよう。

 

MVC「C」作成する。

<?php

defined('BASEPATH') OR exit('No direct script access allowed');

 

class Hello extends CI_Controller {

 public function index()

 {

  $this->load->view('hello_index');

 }

}

ここで注目して欲しいのは、「class Hello extends CI_Controller」という部分です。

フレームワークが用意している「CI_Controller」というクラス継承して、自分で「Hello」というクラスオブジェクト設計図)を作っている、という点です。

ここでOOPの仕組み~継承を使ってるわけですね。

 

MVCの「V」を作成する。

次に、

<?php defined('BASEPATH') OR exit('No direct script access allowed'); ?>

<!DOCTYPE html>

<html>

<head>

 <meta charset="utf-8">

 <title>Test</title>

</head>

<body>

 <p>Hello, world!</p>

</body>

</html>

 

これでWebアプリができました!

今回は簡単なので、MVC「M」は用意しませんでした。(CとVだけで完成)

 

Webアプリ動作確認

Webブラウザーで「http://localhost/waf/index.php/hello」というURLアクセスして下さい。

画面に「Hello, world!」と表示されたら、Webアプリ作成成功です!

 

Hello, world!」の表示だけではショボ過ぎるけど、Webフレームワークを使えばもっといろいろな機能が作れます

詳細は、CodeIgniterマニュアルを参照して下さい。

↑このページで「ユーザガイド(日本語)」を読んでみて下さい。

 

まとめ

 

次回は、OOP理解を深めるための参考書を紹介してみます

 

Webアプリを作るときデータベースがないと不便なので、次の次ぐらいにSQLを学ぼう。

MySQLデータベース)を使えば、掲示板などのWebアプリも作れるようになります

 


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-21

[]2018年10月20日土曜日増田

時間記事文字数文字数平均文字数中央値
00559176166.828
0141226255.233
02214372208.223
03163513219.655.5
04103251325.142
0598371930.116
06353686105.370
07354351124.362
0852311960.027.5
0986658276.530.5
1060515585.933.5
11102729771.537
12119846871.240
1313218939143.546.5
141341069279.849
151381041975.543.5
16103838181.429
171811608888.934
181981443172.933.5
191871077857.626
201481137376.830
211561319984.636
221711577892.346
2310618090170.744
1日229521777194.936

頻出名詞 ()内の数字単語が含まれ記事

人(174), 自分(168), 話(111), 増田(92), 人間(78), 日本(75), 今(74), 女(67), 前(62), 男(60), 好き(60), 感じ(60), 問題(54), 仕事(51), 女性(51), 意味(47), 必要(46), あと(46), 関係(44), 頭(43), 相手(43), 気(42), ー(40), 子供(39), 個人(35), 目(34), 普通(34), 理解(34), しない(34), 最近(34), 世界(33), 金(33), 誰か(33), 言葉(33), 気持ち(33), セックス(32), レベル(32), ただ(31), 男性(30), 手(30), 主張(30), 自由(30), 社会(29), キズナアイ(29), 存在(29), 意見(28), 他人(28), 会社(28), 昔(28), 全部(28), 人生(28), 時間(28), 理由(28), 日本人(28), 時代(27), アニメ(27), 嫌(27), 場合(27), 神(26), ネット(26), 逆(26), バカ(26), オタク(26), 子(26), 状態(25), 女の子(25), 簡単(25), 批判(25), 無理(24), 価値(24), 他(24), 名前(24), 絶対(24), 全て(23), 結果(23), 興味(23), 記事(23), おっさん(22), キャラ(22), 別(22), 結局(22), 漫画(22), 現実(21), 一人(21), 確か(21), 一部(21), 妄想(20), 一番(20), 顔(20), ダメ(20), 文章(20), 扱い(20), 説明(20), 人たち(20), 心(19), 英語(19), 判断(19), 嫌い(19), 自体(19), 表現(19), 親(19), 話題(19), 一つ(19), 一緒(19), 作品(19)

頻出固有名詞 ()内の数字単語が含まれ記事

増田(92), 日本(75), キズナアイ(29), じゃなくて(18), 中国(18), マジで(17), フェミ(16), いない(15), 被害者(14), 可能性(14), PC(13), アメリカ(13), NHK(12), ベジタリアン(12), 元増田(12), twitter(12), 外国人(11), ジェンダー(11), なのか(11), 障害者(11), カス(11), お気持ち(11), hatena(11), いいんじゃない(11), ニセコ(10), 消費税(10), s(10), リアル(10), わからん(9), 東京(9), ビーガン(9), ブコメ(9), 絶対正義(9), ネトウヨ(9), 人間社会(9), Twitter(9), wiki(9), ありません(8), 個人的(8), スマホ(8), 笑(8), トラバ(8), アプリ(8), 二次創作(8), スペック(8), 価値観(8), エロい(8), ja(8), 何度(8), ちんこ(7), AI(7), ここに(7), 自分たち(7), ソ連(7), 安倍(7), IT(7), ダイバーシティ(7), 加害者(7), …。(7), wikipedia(7), 5年(7), である(7), ツイート(6), 健常者(6), なんや(6), アレ(6), ー(6), 一緒に(6), 多様性(6), 分からん(6), Ruby(6), くない(6), はてなー(6), 数年前(6), 萌えキャラ(6), はてブ(6), Web(6), ある意味(6), ブクマ(6), ドラゴンボール(6), 法人税(6), ツイッター(6), 基本的(6), KKO(6), ドラえもん(6), 金(6), Mac(6), ???(5), デスクトップ(5), セーラームーン(5), iMac(5), イスラム教徒(5), OK(5), Wikipedia(5), なんの(5), 1万円(5), 脳内(5), 10代(5), Access(5), テンプレ(5), 2018年(5), アスペ(5), 安室(5), ホッテントリ(5), 萌え絵(5), 2人(5), Windows(5), 社会学(5), MBA(5), 承認欲求(5), 20代(5), 新自由主義(5), バズ(5), 障碍者(5), 3日(5), ワイ(5), LGBT(5), hagex(5), 人間関係(5), Amazon(5), キモい(5)

本日の注目単語 ()内の数字単語が含まれ記事

ニセコ(10), 赤井(4), ベジタリアン(12), 手づかみ(5), Access(5), Shift(4), おねしょ(4), 鈴木福(3), 耐用年数(3), ペンタブ(3), 公立大学(3), 箸(17), ネイティブ(9), ブロッキング(11), ソ連(7), マウス(9), 植物(8), hagex(5), イデオロギー(6), ワクチン(5), ナイフ(5), 地雷(8), ドラえもん(6), 備え(8), 古く(6), パチンコ(7), 性能(8), 性器(7), 神(26), 木(6), 影(5), ジェンダー(11), 運用(9), wiki(9), プログラミング(12), パソコン(12), かっこいい(10), 消費税(10), 普及(8), 障害者(11)

投稿警察もどき日中に再投稿された本文の先頭20文字 ()内の数字投稿された回数

パンティー (14), あってる? (8), アスペって冗談通じないんだな (2), アホしかいない (2), キズナナイ (2), パリコレ (2), やらせろ (2), ようおっさん (2), 何も言い返せんかったわ anond:(2), https://support.au(2), 鬼滅の刃の鬼にいそうな性格してんなお(2), why? (2)

頻出トラックバック先(簡易)

■ /20180624222750(23), ■主人公10代のアニメ漫画はつまらない /20181018191725(15), ■外国人「箸ってタダの木の棒だろ?原始人か?」 /20181019231306(13), ■千田氏の問題提起を説明してみる /20181020130536(12), ■増田スルーされる理由 /20181020114600(12), ■少年誌で男同士の指輪とか何考えてんの? /20181020015302(12), ■はてブベジタリアンビーガンに対する偏見が低レベル過ぎてヤバい /20181020195622(8), ■一部のフェミニストは何か勘違いしてると思う /20181020144825(8), ■人間って、教えられなくても綺麗に見えるもの? /20181020165322(6), ■なんで都市ってブランディングせんの? /20181019152300(6), ■男子トイレの個室を長々占拠する馬鹿 /20181019152241(5), ■顔はそこそこ良い女だけど /20181020182917(5), ■歳をとると心と体が動かなくなるの?40歳から? /20181020003414(5), ■ブロッキング通信の秘密への素朴な疑問 /20181016005039(5), ■正味の話お気持ちで他を攻撃するのはオタク男が一番激しいと思う /20181020122643(5), ■トイレで手を洗わない人 /20181020112158(5), ■ITエンジニア界隈が全然売り手市場じゃなくて草 /20181020232035(5), ■萌えキャラは女も大好きとか言いたがる人達 /20181020173031(4), ■かっこいい苗字名前で生まれたかった /20181020190945(4), ■殺してくれ /20181020212527(4), ■anond20181020131808 /20181020132207(4), ■anond20181020180140 /20181020181151(4), ■元気でない /20181020194121(4), ■anond20181020132433 /20181020133937(4), ■税金必要理由がまず分からない俺がいる /20181020141349(4), ■私は見る目がない /20181020214137(4), ■増田匿名でよかったな /20181020011013(4), ■大人プログラミング勉強した方がいいの? /20181020163346(4), ■anond20181020135633 /20181020135808(4), ■anond20181020180024 /20181020180602(4), ■ /20181020174511(4), ■何の収益にも繋がらないのに個人サーバを有料で借りる意味 /20181020110700(4), ■赤ちゃんが泣くのでセックスできない /20181020102626(4), ■外国人「XXXXXXXXXX?XXXXXXXXXXX?」 /20181020122149(4)

増田合計ブックマーク数 ()内の数字は1日の増減

5724758(2077)

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 増田プログラマー養成講座 コンテンツ一覧

Rubyer「こう書くこともできて、こっちの方が簡潔ですよ!」

ぼく「あっハイそっすね〜」(どっちでもいいだろ、めんどくさ…)


Ruby界隈ってこんな感じ

anond:20181020133341

PythonがあればRuby不要

Ruby on RailsがなければRubyは普及しなかった。

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