「関数」を含む日記 RSS

はてなキーワード: 関数とは

2018-12-09

プログラミングの壁

環境設定が一番の壁とはいうけど初心者本終わった後、if、for、自作関数覚えたあとの学習教材探しも中々高い壁じゃねーかな?

というか自分がそこにあたっててpaizaのBから先に行けない

pythonc#でおススメ教えて

2018-12-08

マッチングアプリ現実

まりにもモテなさすぎてマッチングアプリ登録したものの、先程心折れて退会してきた者だ。

せっかくの体験を無に帰すのも勿体ないので、ここに使ってわかった現実を書き残す。せめてこれから登録しようと思っている増田達の糧になれたら幸いである。

結論から言おう。

世にあるマッチングアプリ恋人ができることはまずない。

特に今まで非モテだったものアプリを始めた途端に恋人が出来ました、というのはよっぽどの幸運に見舞われない限りありえないことだから覚悟した方がいい。




さて本題だが、その前にマッチングアプリには大別して二種類あることを説明しなければなるまい。

一つは主に大手グループ企業等が長年運営している大規模マッチングアプリであり、SNS広告ガンガン出ているのもこちである代表例はPairsやタップル、Omiaiなど。

もう一つはいわゆる出合い系サイト系譜を継ぐ海のものとも山のものとも知れぬマッチングアプリである代表例は某県知事の件で有名になったアレなどで、ググったときにすぐ「セフレ」だの「ヤレる」だのといった単語が出てくるのがこちらだ。

まずこの二つのウチで手を出すとしたら明らかに前者の方がいい。

というか後者はまずい。

大体登録と同時に可愛い女の子から次々とメッセージが届き、鼻の下を伸ばしてやりとりしていると「ホ別で2万ね♡」などといういかがわしい流れになり、それでもホイホイついていくと写真とは全く別人と対面することになる。いわゆる援デリというやつである。真っ当な風俗嬢なら普通に客が取れるはずなので、そもそもこんな営業してる相手な時点で色々と察するべきである。下手したら病気になるぞ。



という訳で真っ当な増田諸君は前者のアプリを選ぶのだろうが、こちらもこちらで中々の地獄を見せてくれる。

参考までに、ここでは一番分かりやす地獄提供してくれたタップ誕生 (以下タップル) を例に挙げよう。

タップルはサイバーエージェント100%子会社であるマッチングエージェント社の運営する大規模マッチングアプリであり、公式発表によると現在の会員数は400万人を超えている。SNSや各種雑誌にも広告を出稿しており、典型的な”前者”型アプリだ。

この手のアプリ業者ほとんどおらず (いないとは言ってない) 、基本的運営サクラを雇うことも皆無なので、そういう意味ではまず安心だ。

では何が地獄なのか? 単純に出会えないのである。何故かを以下で説明していく。




タップルでは登録者たちは望む相手マッチング依頼「いいかも」を送ることができる。依頼を受けた相手はその「いいかも」を承認するかしないかを選ぶことができ、ここで承認されればメッセージのやりとりが可能になる。

しかしこのマッチング依頼がクセものだ。

タップルではこの依頼権「いいかも」が1日20回分付与される (ちなみにこの「いいかも」は会員登録と同時に大量に付与されるし、課金でも買える)。

男性はこれをフルに活用すると考えた場合、仮に「ユーザー男女比が1:1」「全ユーザー間でもらえるいいかも数に偏りがない」という極めて有り得ない状況を仮定しても女性一人あたり1日20件のマッチング依頼がくることになる。

しか現実問題として、こんな甘い状況はない。

まず男女比だが、これが1:1ということは確実にない。直感にわかると思うが、この手のアプリは常に女性不足男性過剰の状況に陥っている。

では実際にはどうなのか?

やや古いデータになるが、withnewsの調査によるとタップルの女性比率2015年時点で28.62%となっている (https://withnews.jp/article/f0150915001qq000000000000000G0010901qq000012496A)。

すなわち男女比は2~3 : 1ということになり、女性一人が受ける「いいかも」数は1日50件程度となるということだ。

さらに「ユーザー間でいいかも数に偏りがない」というのも確実にありえない。

現実世界と同じく、マッチングアプリ世界においても年齢は若ければ若い方が、ルックスは良ければ良い方が人気のユーザーとなる。

いやむしろ相手の外見と簡単プロフィールしか確認できないマッチングアプリにおいて、この傾向は現実よりもさらに顕著である

実際の年齢や外見による偏りが指数関数的に急なのか、それとももう少し穏やかなのかはわからないが、普通女性ユーザーなら1日あたりの「いいかも」数が100〜200程度なことは珍しくない。

身の程をわきまえず「可愛い彼女が欲しい!」などとほざこうものなら、相手の「いいかも」数は1日あたり500〜1000件を超えていると思った方がいい。



さてここで問題である

普通人間が1日に100〜1000件のマッチング申請を受け、それを処理しきれるだろうか?

間違いなくNoである

それを仕事にしているのならまだしも、余剰時間の片手間にやっているアプリでそんな処理をこなす女性はまずいない。

まずいないが、それでも敢えてこなそうと思ったらどうするか?

先程も述べたが、マッチングアプリにおいて最初に参照できるのは相手の顔と簡単プロフィールくらいである。

すなわち、ここで女性が行う判断は大きく下の二つとなる。

1. 余程のイケメンか好条件だったら承認しよう。

2. とりあえず片っ端から承認して、その上で面白いメッセージを送ってきた人とだけやり取りを続行しよう。

逆に言えば、男性諸君に求められる能力は以下の二つのいずれかだ。

1. 外見、年収などが非常によい

2. 女性口説くのがうまく、特に強烈な掴みができる



さて、ここで改めて問題である

非モテをこじらせてマッチングアプリに救いを求める男性が、このどちらかの能力を有しているだろうか?

間違いなくNoである

というか、このマッチングアプリで生き残れるやつなら現実世界普通に彼女ができる。

それではこの低い確率を生き残れるやつは一体普段どんな職についているのだろうか?

答えは「ホストである。もちろん全員ではないが、こういったケースがかなり散見される。

すなわち、マッチングアプリとは女性にとってですら、「水商売の男が営業をかけてくる場」なのだ

こんなアプリにまともな女性居座り続けるか? あまり期待しない方がいいのはすぐにわかるだろう。


そして忘れてはいけないのが料金だ。

タップルの場合登録までは無料だが、メッセージを送ろうとした場合は月額3900円の利用料金がかかる。

相手の人気度やメッセージ既読状況を知りたい場合は更にプラスで4800円がかかる。

これが自動更新で毎月勝手課金されていく。




よって非モテ増田に与えられる結末は、毎月1万円近くの課金をした結果、あまりまともな女性ユーザーがいない環境で、ひたすら申請拒否され続ける日常である

これがマッチングアプリ現実だ。





タップルは特にわかりやす地獄アプリだが、他のアプリも正直なところ似たりよったりであることは否めない。

例えば、やはり超大手マッチングアプリのPairsもApp Store確認できる公式の謳い文句に「毎日5000人以上が登録とある

これが正しいのならひと月の登録人数は15万人を超える計算となる。

対してカップルの成立件数は「毎月7000人」だ。

ということはPairsで恋人を作ろうと考えた場合、単純計算で15万人中の7千人、トップ5%以下の勝ち組に入らないといけないのである

これは偏差値ならば65を超えるレベルだ。

さて、自分自身人生を振り返ってよく考えてほしい。

あなたモテ偏差値は65を超えるだろうか?

あなたにはトップ5%に入る自信があるだろうか?

ちなみにPairsの利用料金は月額4100円、プレミアムオプションプラスで4100円、身バレ防止のプライベートモード機能は月額2500円である





さて、文章がいたずらに長くなってしまった。

ここまで読んでくれた増田に対しては感謝を申し上げたい。

マッチングアプリは今群雄割拠時代に入っており、さらにこれらの提灯記事SEO対策万全の状態跋扈している。そのため、中々利用者生の声特にネガティブな事が届きづらい。

例えアプリ欠点を挙げる記事があっても、それは結局他のアプリ誘導するステマ記事であることは日常茶飯事だ。そんな中で、本当の利用者の声の一つとして参考にしていただけたなら幸いである。



最後に、私が上手くいかなかったのはアプリの使い方下手だからとか、自分レベルより高望みしすぎだとか、そもそも根性がなさすぎるといった意見を持つ方もいるだろう。

全て正論である

これから挑戦する予定の増田は、是非私のことを半面教師として頑張っていただきたい。

2018-12-07

anond:20181207030700

ぼくの文章を見てどうして「独創的を書く必要がある」というふうに読み取ったかについて疑問を感じますが、独創的という言葉に含まれる「自分で新しいものを考え出す」という部分を捨てて「自ら考える」という部分に着目してください。頭で何も考えずにシステム開発ができますか。オリジナリティのある製品が作れますか。

コードが独創的である」とは何を持って独創的ですか。聞くところによれば人間が書いたコードは筆跡のように書き手の癖があり、かなりの確率作成者コードから同定できるということです。自分が書いたコードはいつでもある意味独創的なのだと思います別に結果的に他の人と似たようなコードになることはかまいません。

あなたソートの各種アルゴリズム自分で書いたことはありますか。考えてわからなければ答えを見ても良いですが、そこには単にsort関数を呼ぶ以上に自分理解できていない「ものごとの仕組み」というものがあります

独創的であろうがなかろうがそんなことはどうでもいいことです。頭から考えをひねり出しながらコードを書く機会ならいくらでもあることでしょう。

またあなたからは「機会がなければしなくていい」というぬるい思考が読み取れます。それは「勉強なんて何の役に立つの」という意味です。

そんなあなたには「思慮の足らずを自覚せよ」という警句を捧げたいと思います

[]2018年12月6日木曜日増田

時間記事文字数文字数平均文字数中央値
005512211222.039
01408924223.163.5
02132213170.2101
03111666151.580
04424461.044
05111221111.027
06172811165.446
0730246682.239.5
08577756136.138
0971546276.929
101301031379.341
111471312389.350
121871402575.035
13113975586.336
141341156986.351
15104989795.246
161701464786.237.5
172131479069.434
182331432561.539
192001674183.746.5
20106915086.342
2113714233103.936
221331017576.537
232301922283.637.5
1日254622693989.141

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

人(259), 自分(169), 増田(119), 今(101), 話(98), 女(92), 男(75), 日本(68), 前(66), 仕事(64), 普通(64), 人間(64), 問題(63), 好き(58), ー(55), 気(50), 意味(49), 相手(49), 感じ(48), あと(47), 必要(47), 女性(46), 社会(44), 時間(43), 結局(42), 金(41), 今日(41), 理由(41), 親(41), 病院(40), バカ(40), 結婚(40), 理解(39), 会社(39), 顔(39), ネット(38), 関係(38), 他人(38), 病気(37), 他(35), しない(35), 最近(34), 逆(34), 気持ち(34), 日本人(34), 一番(33), 童貞(33), 人生(33), 子供(32), 言葉(32), 頭(31), 全部(31), 手(31), 生活(30), しよう(30), ネタ(29), 無理(29), 友達(29), 別(28), 存在(28), セックス(27), 男性(27), じゃなくて(27), 一緒(27), 絶対(27), 世界(26), 障害(26), いや(26), 誰か(25), 目(25), 場合(25), 嫌(25), 確か(25), 昔(25), 子(24), ブサイク(24), 馬鹿(24), 可能性(24), 結果(24), ダメ(24), 迷惑(24), 周り(24), イケメン(23), では(23), 努力(23), 通信(22), 場所(22), お金(22), テレビ(22), 批判(21), 家(21), 心(21), 一人(21), レベル(21), 記事(21), 状況(20), 毎日(20), ゲーム(20), とこ(20), 最初(20), 嫌い(20), 解決(20), 全員(20), ただ(20)

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

増田(119), 日本(68), じゃなくて(27), 可能性(24), イケメン(23), いない(19), ソフトバンク(19), 元増田(19), アプリ(15), マジで(15), キモ(14), ワイ(13), リアル(13), ダイバーシティ(12), 韓国(12), Windows(12), トラバ(11), 普通に(11), なんだろう(11), わからん(11), 審査員(11), ???(11), 東京(10), 中国(10), 引きこもり(10), ブサイク(9), 出会い系(9), twitter(9), Twitter(9), 多様性(9), ブコメ(9), スマホ(9), フリーソフト(9), ツイッター(9), なのか(9), ネトウヨ(9), 基本的(9), SNS(9), にも(9), キモい(8), 何度(8), いいんじゃない(8), 個人的(8), 1人(8), 大阪(8), アメリカ(8), Amazon(8), M-1(8), 社会的(8), 視聴者(8), 婚活(8), 何回(7), どんだけ(7), 3年(7), hatena(7), フェミ(7), 上沼恵美子(7), シェアウェア(7), …。(7), 飲み会(7), ガチ(7), ブクマ(7), 笑(7), 嫌儲(7), ADHD(7), 喪女(7), はてブ(7), ツイート(7), 高輪(7), 上沼(7), なんの(7), いいね(7), ブログ(7), あるじゃん(7), オープンソース(7), スペック(6), ゲートウェイ(6), ぶっちゃけ(6), スピリチュアル(6), 被害者(6), ルッキズム(6), 自己責任(6), 平成(6), 必要性(6), な!(6), カス(6), ミキ(6), 自撮り(6), 秀丸(6), キレ(6), wikipedia(6), 民営化(6), メンヘラ(6), 外国人(6), 知らんけど(6), s(6), とろサーモン(6), マウンティング(6), 自民党(6), 低能先生(6), ある意味(6), スマブラ(6), 玉袋(6), KKO(6), 保険証(6)

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

シェアウェア(7), 便利屋(4), ブロードバンド(4), えこひいき(4), 秀丸(6), モデム(5), 水源(5), とろサーモン(6), 伺わ(5), ADHD(3), 審査員(11), 上沼(7), ソフバン(5), おはぎ(5), しっし(3), エアリプ(3), ソフトバンク(19), えっち(16), 通信(22), ミルク(10), 接点(7), 水道(11), 喪女(7), ブサイク(24), 機嫌(14), 植松聖(5), Windows(12), 出会い系(9), フリー(11), 引きこもり(10), バンバン(6), ADHD(7), パチンコ(9), けども(24), 障害(26), 童貞(33), 病院(40), 普及(12), 病気(37), とら(11), 行け(39), イケメン(23)

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

■27歳、童貞です。 /20181205230256(31), ■anond20181205125518 /20181205222003(15), ■「えっち」という言葉をつければどんなネガティブ言葉ポジティブ説 /20181206115752(13), ■はてなでは公平なジェンダー議論ができない /20181206103207(11), ■Wi-Fiはタダで使えると思っている奴多すぎ問題 /20181206214612(11), ■僕が電車でわざと大股開きで座る理由 /20181205125518(10), ■25歳女です。職場の同性の先輩の体臭がキツくて悩んでいます。 /20181206115358(9), ■アラフォー処女最後足掻き /20181206165158(8), ■腹痛いときに祈る神様 /20181205194013(8), ■ワイってADHDなんか?追記あり /20181206181736(8), ■1日使える金が10万ほどある /20181206164828(8), ■タバコ吸ってたら水をかけられた /20181206172947(7), ■人に迷惑をかけるなら申し訳無さそうにしろ /20181206163142(7), ■SNSメンヘラ /20181206161949(7), ■健康で子なし介護なし専業主婦って /20181206135600(7), ■すぐキレる知らないおっさん /20181206211156(6), ■高知駅前駅ってあるんだけど /20181205210320(5), ■ /20181206210915(5), ■1000年後も残っていそうな日本語 /20181205193411(5), ■妻が最近ネトウヨ化して困っている /20181205141921(5), ■平成も終わろうとしてるのに未だに育児科学技術で叩けていない件 /20181206120211(5), ■エロ作品批判に対しては表現の自由と言うのに /20181206104137(5), ■ちんこ見せたら逮捕ってよく考えたらおかしい /20181202101108(5), ■同人イベントでのこと /20181206175512(5), ■プログラマってどこまで関数を覚えているの? /20181206180248(5), ■玉袋を身体の外にだす理由ってなんなの? /20181205172010(5)

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

5852032(3157)

2018-12-06

anond:20181206180248

よく使う関数自然と覚えるけど、基本いちいち記憶しようとはしない。

リファレンスから手早く検索できたりすればコーディングする上で支障が出ることは少ない。

anond:20181206180248

そういう関数がある、ということだけ覚えておく

関数名や引数は毎回ググる

2018-12-03

anond:20181203135010

Excel関数をわざわざ入れるとか

毎回別ブックに転記しないといけないとか

なんかあるんだろ

2018-12-01

anond:20181201155849

勉強始めたの、いいね

20代半ばから努力

でも全然間に合うよ。

勉強はいからでも始められるし、勉強をする人としない人では人生の後半になればなるほど、大きな差が出る。

英語を本気で勉強しようと思ったなら、このへんがおすすめ

 

★わりとすぐに効果が出るのでやってて楽しい

オバケ英語発音

http://amzn.asia/d/5pUwyQ3

 

英語耳(聞き取り

http://amzn.asia/d/cfCycut

 

★やり通すのはきつめだけどやりきったあとの効果が高い系

英語ベーシック教本(中学英語からやり直したい人向け)

http://amzn.asia/d/hnegImX

これをやりきったら英語リーディング教本もいいかも。

 

自分が30才超えてから勉強を初めて、すごく効果が高かった本です。

 

ちなみに、自分20代後半まで全然なにも考えずに生きてきて、

君と同じく、派遣大企業に勤めてた。

そこに同じく派遣でやってきた女の子が初めてできた彼女で、

彼女にふさわしい人間になろうと勉強を始めた。

 

の子とは結局別れたけれど、勉強しはじめたことで自分世界が広がった。

そのあとに青年海外協力隊に行ったりもした。

協力隊も、もし興味があったら行ってみるといいと思う。君のいう「上流」の、本当の友達がたくさんできるよ。

 

別に自分が上流になったとは思わない。

今も地元友達もつながりがあるし、彼らは彼らで面白い人たちが多くて勉強になる。

 

最後に、勉強の成果っていうのは指数関数的に伸びるんだ。

っていってもわかりにくいかもだけど、要するに最初全然成果が出なくて、あとになればなるほど伸びが大きいってこと。

なかなか英語できるようにならなくても、続けて欲しい。

頑張って。

 

大丈夫勉強を始めた君は、もう別の道を歩み始めてる。

2018-11-26

anond:20181126203123

mapやreduceみたいなものは一切使わず繰り返しはすべてfor文

これは関数スタイルを徹底するのでない限り自由やろ

コード見るのが一番の判断基準だと思う

ITエンジニアで、割とすごいと思っていた上司がいる

本人の話ではできそうな人だった


あるときその人の作ったものを引き継ぐ事があったのだけど、コードゴミのようだった

よくこれで動くなというかメンテしてきなっていうレベル


当たり前のようにグローバル変数を使うし、どこで最初に代入されるかも全コードgrep書けないとわからない

関数化もせずコピペが多い

mapやreduceみたいなものは一切使わず繰り返しはすべてfor文


本気でコードは捨てて仕様に基づいて1から作り直したほうがいいレベル


変に速度にこだわって、そんなの誰も気にしないってレベルのことにまで文句つけてくるくらいだから最適化の結果関数はインライン化して使い捨て変数はなしでグローバルを使うとかやってるのかと好意的に考えようともした

しかし、見ていると、その辺のwebページコピペがそのままコードに残ってるし、そういうところはインデントも揃ってなくてグチャグチャ

タブとスペースの混在も当たり前

あれこれ試した結果が見えるコードコメントアウトは全部残っている

単に能力無いようにしか見えない


それでも一応なにかそれなりのものを作れてしまうのが悪いところなんだと思う

趣味でやる分にはそういうので動くのはいいと思うが、仕事でそういうのはホントやめてほしい

ずっと一人で作っていて他の人と変わらないでもらいたい

昔はそこそこあった尊敬度もいまではマイナス、見下す対象しかならない



ということがあって、採用とかしてる人は本人が何作ったとか何使えるとか言っても、ちゃんコードみて能力判断したほうがいいと思った

外面のいいものが作れても中身がボロボロものが長く使えるとは思わないし、チームで作業するなら邪魔なだけ

特にキレイに書いたり修正やすものパフォーマンス落とすだけとか時間無駄って考えてるようだからどうしようもない

2018-11-18

関数型プログラミングに変えた方がテストが楽

関数型で副作用を分離=参照透過性を活用すれば、テストの組み合わせ爆発は避けられる。

変数をすべて定数にしてもプログラムは書ける。

anond:20181118174253

投資などいわゆる金融知識に関わる数学」っつったらまあ最低限二次関数とか初歩的な微積くらいは必要だろうから、やっぱりせめて数Ⅱくらいはできなくちゃね、ってとこに落ち着きそうなもんだが

2018-11-16

anond:20181116172655

プログラミングできるやつ基本的大学入る前からプログラミングで何か作ってるから

プラットフォームはなんでも良いのだけどリレー回路的なモノへ事前に触れている

プログラミング言語じゃなくてもよく、例えば今の子ならMinecraftレッドストーン回路をめっちゃやってたとか、少し前ならRPGツクールRPG何本も作ってたとか

そういうリレー回路を扱うことが当たり前になっていて関数への理解も速い

2018-11-11

anond:20181111213336

手芸屋みたいに、布やボタンを選ぶように、店内を歩いて必要機能の物を集めたい。

パイソンって言語なら、ネットを見て回れば必要機能が集まる気がする。

店員さんに聞いたら、おすすめ関数を教えてくれる

質問サイトにゆけば、オススメ関数を教えてくれる

型紙に基本設計があって、自分用にカスタマイズできる

オープンソースには基本設計があり、自分用にカスタマイズできる。

ハンドメイドプログラミング

オーダーメードプログラムを誰かに作って貰おうとすると300万以上必要だし、ハンドメイドみたいに出来ないものだろうか

  1. 手芸屋みたいに、布やボタンを選ぶように、店内を歩いて必要機能の物を集めたい。
  2. 店員さんに聞いたら、おすすめ関数を教えてくれる
  3. 型紙に基本設計があって、自分用にカスタマイズできる

2018-11-10

anond:20181110213031

二次関数理解してる高校生が全高校生のどれだけいんの?二次関数を学びたがってる高校生がどれだけ?と考えると、無償化に何の意味もないことがわかる。

論理的に全く繋がっていないように思えます

anond:20181110211906

高校もいらないと思うよ。すでに高校堤防は壊れてるから今更難しいけど。

二次関数理解してる高校生が全高校生のどれだけいんの?二次関数を学びたがってる高校生がどれだけ?と考えると、無償化に何の意味もないことがわかる。

それでも中卒でいられないのは社会が中卒を排除しているから。才能のある奴もない奴も「仕方なく」無意味な3年間を遊んですごして無意味肩書を得る。

最近はそれですらキツくなってきたか無意味時間が4年も伸びた。

この調子でいけばマスタードクターまで伸びかねない。アホか?人材の浪費でしかない。

こんな制度無意味以外の何物でもない。建前だけでお茶を濁すからこうなる。

高卒」「大卒」という大雑把なくくりではなく、中学高校大学の成績を就職にそのまま反映して就職するルートや、

それだと先生の質に左右されすぎるので見込みのある中学生を囲い込んで大学まで企業が援助しつつ金を出して成果を出させ、

その成果を企業が買い取るとか、成果を何か出させることを担保させるルートなどを整備するべき。

もちろん飛び級もありだと思う。当然今の就活制度根本から破壊する。

要は制度的にはほぼアメリカになるということ。

アメリカ就活では日本就活ほど甘くない。知ってるかもしれないが。大学で遊んでいた奴に一切の未来はない。

なんならハイスクール日常生活すらも入試の一環だからエリートになりたいなら高校からして遊べない。

日本では良い大学に「入る」、良い企業に「入る」がゴールだから燃え尽きる奴が出てくる。燃え尽きた奴を高値で買う。無駄のもの

企業の方にも人的投資という概念が足りないからこうなる。まあ国の制度でなんとかなる問題でもないが。文化的ものがある。

anond:20181110185725

ただのリッチな標準関数

プラプラついてないほうのCだと文字列とか扱うのが死ぬほどめんどくさかったり、Windowsの画面表示とかろくに扱えなかったりするだろ

そういう面倒くさいけど使用頻度が高い機能自分実装しなくても済むように大体の人がこれは要るでしょうってのをまとめたのがフレームワーク

2018-11-04

増田プログラマー養成講座 その17 Webアプリの骨組み

前回は、Webアプリの完成見本を先に見てみました。

今回は、Webアプリを作る途中の過程を見て、作る雰囲気を一緒に味わってみましょう。

 

フレームワーク使用ルール=「設定より規約」=手抜きをする仕組み

最近フレームワークは、「設定より規約」(CoC、convention over configuration)という発想で作られている。

フレームワーク規約使用ルール)に従うと、プログラマー作業量が減って、楽ができる。

 

設定より規約(convention over configuration)とは、開発者の決定すべきことを減少させ、単純にするが柔軟性は失わせないというソフトウェア設計パラダイム

使用しているツール実装した規約開発者の望む動作と一致していれば、設定ファイルを書く必要もない。実装規約と望みの動作が違っている場合必要動作を設定しなければならない。

 

最近フレームワークは「設定より規約アプローチ採用しているものが多い。

例えば、Ruby on Rails、Kohana、Grails、GrokZend FrameworkCakePHPSymfony などがある。

 

CodeIgniter使用ルール

CodeIgniter使用ルールは、マニュアルチュートリアル確認できる。

↑このページの「アプリケーションフローチャート」を見てみよう。

 

  1. 一番左の「index.php」が、Webアプリ入口になっている。(エントリーポイントフロントコントローラーパターン等ともいう)
  2. から2番目の上段「Routing」で、URLに応じて、仕事の振り分け先を決定する。(ディスパッチ、マッピングルーティング等ともいう)
  3. から4番目の「Application Controller」で、具体的な処理の指示を出す。
    1. Application Controllerは、「Model」に必要データを用意させる。
    2. Application Controllerは、「View」に表示用の画面を作らせる。
    3. Application Controllerが、index.phpに表示用の画面を渡す。
  4. 表示用の画面(最終的な処理の結果)を受け取った「index.php」は、ユーザーブラウザー)に画面を渡す。

 

 


 

それでは、CodeIgniterプログラマーが用意する部分のM(Model)とV(View)とC(Application Controller)を、骨組みから作ってみよう。

事前準備として、前々回と前回のWebアプリ完成見本を用意するところまでやっておこう。

 

スケルトンとは?

スケルトン(skeleton, 骨格)とは動物人間の骨格。

コンピュータプログラムコードの骨格部分。プログラムコード作成では、初期段階でスケルトン作成し、その後で詳細部分を肉付けしていく。

 

 

 

Application Controllerの骨組み

まずは、MVCのCの骨組みを作ろう。

Controllerは、ユーザーからリクエストを受け付けて、ModelViewに指示を出す監督です。

 

上記フォルダの中に「Welcome.php」というファイルを作る。(デフォルトであるはずなので、それを使ってOK

 

CodeIgniterルールで、Application Controllerを置く場所は「application/controllers」というフォルダになっている。

CodeIgniterルールで、一番最初に呼び出されるApplication Controllerは「Welcome.php」というファイルになっている。

→これは「C:\xampp\htdocs\waf\application\config\routes.php」という設定ファイルで決められている。

$route['default_controller'] = 'welcome'; // 別の名前にすれば変えられる。

 

「Welcome.php」の中身を以下にように変更する。

<?php

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

 

class Welcome extends CI_Controller

{

 // 初期画面

 public function index()

 {

  echo "Here is index()";

 }

 // 更新画面

 public function update()

 {

  echo "Here is update()";

 }

 // 削除画面

 public function delete()

 {

  echo "Here is delete()";

 }

}

これがチャットApplication Controllerとして動作する最小限の内容=骨格だ。

 

継承

class Welcome extends CI_Controller

という行に注目してみよう。

CodeIgniterで用意されてる「CI_Controller」クラス継承して、プログラマーが「Welcome」クラスを作ってる。

継承によって、フレームワークが用意してる様々な機能をWelcomeクラス内で使えるようになる。

 

URLリクエスト)とControllerの対応マッピング)のルール

「Welcome」クラスの中に、「index()」「update()」「delete()」という3つのメソッドを用意した。

CodeIgniterURLは、Action Controllerのクラス名やメソッド名とひもづけられている。

今回作るWebアプリだと、

「http://localhost/waf/クラス名/メソッド名」

という対応関係になっている。

(例)

http://localhost/waf/        →Welcomeクラスindex()メソッドが呼び出される。

http://localhost/waf/welcome/index  →Welcomeクラスindex()メソッドが呼び出される。

http://localhost/waf/welcome/update →Welcomeクラスのupdate()メソッドが呼び出される。

http://localhost/waf/welcome/delete →Welcomeクラスdelete()メソッドが呼び出される。

 

 

 

Viewの骨組み

次にMVCのVの骨組みを作ろう。

ビューは、表示する画面の部分です。HTMLWebページの構造を書きます

 

 

welcome_index.php編集

以下の内容にして保存する。

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

<!DOCTYPE html>

<html>

 <head>

  <meta charset="utf-8">

  <title>増田チャット</title>

  <base href="<?php echo base_url(); ?>">

 </head>

 <body>

  <h1>増田チャット</h1>

  <h2>新規投稿</h2>

 </body>

</html>

 

chat_update.php編集

以下の内容にして保存する。

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

<!DOCTYPE html>

<html>

 <head>

  <meta charset="utf-8">

  <title>増田チャット</title>

  <base href="<?php echo base_url(); ?>">

 </head>

 <body>

  <h1>増田チャット</h1>

  <h2>編集</h2>

 </body>

</html>

 

chat_delete.php編集

以下の内容にして保存する。

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

<!DOCTYPE html>

<html>

 <head>

  <meta charset="utf-8">

  <title>増田チャット</title>

  <base href="<?php echo base_url(); ?>">

 </head>

 <body>

  <h1>増田チャット</h1>

  <h2>削除</h2>

 </body>

</html>

 

Viewファイルの追加に合わせて、Controllerも一部変更します。

 

Welcome.php編集

<?php

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

 

class Welcome extends CI_Controller

{

 public function __construct()

 {

  parent::__construct();

  $this->load->helper('url');

 }

 

 // 初期画面

 public function index()

 {

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

 }

 

 // 更新画面

 public function update()

 {

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

 }

 

 // 削除画面

 public function delete()

 {

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

 }

}

 

(変更点の説明

コンストラクターの追加

コンストラクター「__construct()」は、クラスからインスタンスが作られるとき自動的に実行されるメソッドだ。コンストラクターは、初期化最初にやっておくべき下準備を書いておく。

$this->load->helper('url');

CodeIgniterには、リンクの表示を補助する「URLヘルパー」という機能が用意されている。

上記のように書くとURLヘルパーを呼び出して、使えるようになる。

Viewファイルの以下の行でURLヘルパーを使っている。=「base_url()」という関数URLヘルパーの1つ。

<base href="<?php echo base_url(); ?>">

 

ビュー読み込みメソッドの追加

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

というメソッドによって、Viewファイルの「welcome_index.php」を呼び出し、画面を出力します。

 

これでMVCのCとVの骨組みができた。

今の段階でWebブラウザーで各ページを表示させると、各Viewファイルの中身が表示される。

 

 

 

Modelの骨組み

次にMVCのMの骨組みを作ろう。

モデルは、具体的な処理内容(ロジック)を書いて、データを読み書きする部分です。

データベースを操作するSQL文もモデルに書きます

 

上記フォルダの中に「Chat_model.php」というファイルを作り、以下の内容にして保存する。

<?php

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

 

class Chat_model extends CI_Model

{

 public function __construct()

 {

  parent::__construct();

  $this->load->database();

 }

}

 

CodeIgniterで用意されてる「CI_Modelクラス継承して、プログラマーが「Chat_modelクラスを作ってる。

「Chat_modelクラスコンストラクターには、以下のように書いている。

$this->load->database();

これは、データベースを使用する準備だ。

 

Modelの追加に合わせて、さらにControllerも一部変更します。

 

Welcome.php編集

<?php

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

 

class Welcome extends CI_Controller

{

 public function __construct()

 {

  parent::__construct();

  $this->load->model('chat_model');

  $this->load->helper('url');

 }

 

 // 初期画面

 public function index()

 {

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

 }

 

 // 更新画面

 public function update()

 {

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

 }

 

 // 削除画面

 public function delete()

 {

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

 }

}

 

コンストラクター

$this->load->model('chat_model');

と書いて、「Chat_model」というモデルを読み込むようにした。

これで、モデルに用意するいろんな機能コントローラーで使えるようになる。

 

 

 

以上で、MVCの骨組み(スケルトン)だけを作成するプロセスを見ていきました。

まだ中身はスカスカで、何も機能がついてませんね。

次回は、データベースのCRUD操作を行なって、チャットメッセージを追加/取得/変更/削除する機能実装してみましょう。

 


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:20181026145516 増田プログラマー養成講座 その12 データベースの参考書

anond:20181028152656 増田プログラマー養成講座 その13 SQL文法

anond:20181031014212 増田プログラマー養成講座 その14 Webアプリの試作品作成

anond:20181101225335 増田プログラマー養成講座 その15 Webアプリの完成見本

anond:20181101230220 増田プログラマー養成講座 その16 Webアプリの完成見本(続き)

anond:20181104161900 増田プログラマー養成講座 その17 Webアプリの骨組み ←★今ここ★

anond:20181104233013 増田プログラマー養成講座 その18 SQLデータの追加と取得

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

anond:20181104145101

言語覚えるより、関数型とかオブジェクト指向とか、そういうの覚える方がいいよな

LISPみたいな概念レベルで違うやつを除けば、そんなに違わないからすぐ慣れる

2018-11-03

ワイの転職市場価値

スペック

日東駒専卒業従業員数50人の製造下請け入社

主な職業履歴

VBA·関数を使った業務改善

見積もり工数入力)の自動化

以前は対応表を観ながら入力していたが、関数で算出を自動化

生産スケジュール組立

日報より各商品の1個あたりの各工程毎の工数を算出、納期から逆算しシート上のカレンダーに配置

工程の日毎の合計を取りグラフ

業務システム作成(未完のまま放置

受注→製造指示書印刷→納品書印刷請求書印刷(月毎売上登録

製造指示書印刷構成検索→資材受注登録

等一通りの機能を備えた業務システム

Excel VBA知識0から二年がかりで作成したが複数人利用によるシステム損傷の可能性があり放置

Access VBA作成しなかったことが悔やまれ

VB.NETによる検索フォーム作成

CSVファイルデータを取得しフォームに表示→検索結果絞り込み→ダブルクリック接続した検査ボードに埋め込んだボードNo.と比較し一致の場合検査開始するプログラム指導の下作成

⑤その他雑事

ISO関連の手伝い

産廃業者、貯水槽清掃業者等との折衝

内PCの管理 等

手取り16万円だけど転職したらどれくらい稼げるんや

最速降下曲線

手順

美しい

これ自分もやりそう、気をつけねば

https://note.mu/kohakuiro/n/ncf6a1658baf5

ツイフェミ議論を観察したことがある人ならわかると思いますが、彼女たちは基本的統計のようなマクロデータではなく、個人ミクロ被害体験プラス象徴的な現実事件によって、擬似的にマクロ社会を描き出し、あたか社会全体がそうなっているかのように語る傾向があります

わたし」や「身近な人」の被害体験と、社会大事件を一直線に結ぶことで、その間に存在する多彩な事象も、オセロのように「黒一色」に塗り替えてしまうんですね。

オセロの例えは分かりやすい。

0~100の入力を受け付ける関数デバッグで、入力0と入力100がOKだったら、OKにしてしまう感じ。

2018-11-02

anond:20181102002040

ワイ関数オタク、Calculus of Inductive Constructionsの勉強をしようとするも英語が苦手で挫折

日本語資料ないんか・・・?有料でいいか・・・

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