はてなキーワード: 三項演算子とは
業務システムずっとやっているが、静的型信者が言うような型違いを代入してしまうバグや、関数型信者が言うような変数再代入によるバグってあんまり頻繁に出会った記憶がないんだよな。
ちなみに動的型言語も静的型言語も両方実プロジェクトで経験ある(その中間的なキャストだらけのC言語とかも)。
関数型言語は実務では経験なくて、JSやTSに宣言的な書き方が増えてきたのを見てきた程度。
それよりも昔はメモリリークに悩まされたし、昔も今もロジックの間違いやレアな業務の考慮漏れがバグのほとんどという実感がある。
で、それらを防ぐために、シンプルでロジックを追いやすくIDEのデバッガで確認しやすいコーディングスタイルが推奨されるようになる。
そうなると式よりも文が扱いやすく、mapよりもforだし、三項演算子よりもif文だし、メソッドチェーンのようなのもあまり使わなくなる。
静的型の人は、レアな業務が考慮漏れされないように代数データ型として業務を定義しろって言うだろうけど、それはもう全部型ワールドで設計し直すことになるので導入コストが高すぎる。
自分には6年付き合った年上の彼女がいた。名前はPHP。学生の時からの付き合いで、自分にとっては初めての彼女だった。付き合った当初は全てが新鮮で、オブジェクト指向やSOLID原則、大事なことは全て彼女から教えてもらった。(そう思われるかもしれないが、)時間が経って彼女の魅力が感じられなくなってしまったということはなくて、彼女は歳をとっても魅力的なままだった。むしろreodonlyプロパティやEnum、null safe演算子など、新しい機能が導入されてますます綺麗になっていったように思う。最近ではジェネリクスさえ導入されたようだ。彼女は本当に努力家だ。
(褒められた話ではないが一応、彼女以外の女性を全く知らなかったわけではなく、TypeScriptという若い子と少し遊んでいたこともある。TypeScriptは昔からの知り合いのJavaScriptの妹で、大雑把な姉と違って几帳面で、少しオタク気質もある個性的な子だった。よく新しい型パズルを考案して楽しそうに話してくれたが、自分には正直よく分からなかった笑。)
そんな中でも基本的には6年間PHPとずっと一緒に過ごしてきた。前述の通り彼女に何か不満があったわけではない。ただ、彼女との将来に不安を覚えるようになってしまっていた。周囲に彼女と付き合っていることを話すと、「え、まだPHPと付き合ってたんだ?(昔は人気だったけど、最近はそうでもないよね)」みたいなことを、彼女のことをよく知らない人から言われたりもした。そこまで直接的ではなかったけれど。自分も、彼女以外の女性のことをほとんど知らずにずっと彼女と付き合っていて大丈夫なのかななんて思ってしまったりしていた。
結局自分はPHPと別れて、新しい女性と付き合う決断をした。新しい彼女の名前はGo。彼女は若いのに自分の芯がしっかりしていて、みんなの憧れの格好良い女性といった人だった。そんな彼女と付き合いだして、最初は戸惑うことも多かった。
例えばこんな感じだ。
また、今まで当たり前だと思っていたPHPの良さに気づくことも多い。PHPStanを使えば静的型付け言語と同じように型安全性を担保できていたし、彼女のWeb FWには歴史が長いだけあって痒いところまで手が届く様々な機能が完備されていた。経験豊富でこちらの要望をなんでも受け止めてくれるような包容力があったことに今更気づいた。
とはいえ、いつまでも昔の彼女を引きずっていてもしょうがない。Goにはこちらに積極的に合わせてくれるような包容力はないが、彼女なりの哲学を持っていてそれ故の美しさがあると思う。そして正直、まだ彼女の10分の1も理解できていない。彼女が得意だという並行処理や、実行速度が求められるような処理も、自分はまだ実際に実装したことはない。でもこれからしっかり向き合って、Goのことをもっと理解して、実りのある交際にしていきたいと考えている。PHPと別れてGoと付き合う決断したのは自分なのだから。
function hoge(callable $f = fn ($a) => $a) {} // エラー
function hoge(callable $f = 'intval') {} // エラー
function hoge(callable $f = null) {} // 合法
即時関数くらい書かせろよなぁ。せめて文字列でcallableな関数指定できるようにしてほしいわ
省略するには、$fがnullか確認してコールバック実行時にif文だか三項演算子だかで切り分けるしかない
なんで callable型 に null 入れられんだよ。キメェなぁ。なんでデフォルト値として関数代入できねーんだよ。使えねぇなぁ
いかにも増築増築で別々の機能を後付けて盛り付けてるって感じで、機能間の生合成がいまいちなんだよなぁPHP
まあ呼び出し元では hoge(fn ($a) => $a) みたいな呼び出しできるので、マシっちゃマシだけど
参考:
https://stackoverflow.com/questions/55587939/default-callable-in-function-definition-in-php-7
良い言語だと思うが、不満がある。
という愚痴がある。他人の書いたものを読む分には良い言語だと思うよ。
型ヒントはコンパイル時のエラーにならないじゃん。だったら、いらなくね?タプルは複数の値を返すときに使うのね。Go みたいだね。または Ruby の Struct みたいな。
あれ嫌いな人おるのか。俺も好きじゃないが。純粋に Haskell と同じ文法だったら良かったのにね。
アレはキモいね。素直に ?! で良いと思う。というか、Python は英語圏の人も納得はできないだろ、っていう文法が多くないか?
というのは同意する。ただ、書くときにそうは思わない。例えば、with 構文は Ruby の方がブロックを抜けたらクローズするという方針のが良いと思う。
時間 | 記事数 | 文字数 | 文字数平均 | 文字数中央値 |
---|---|---|---|---|
00 | 143 | 15513 | 108.5 | 39 |
01 | 116 | 12787 | 110.2 | 42 |
02 | 66 | 15409 | 233.5 | 33 |
03 | 27 | 3456 | 128.0 | 53 |
04 | 18 | 2483 | 137.9 | 76.5 |
05 | 61 | 7826 | 128.3 | 45 |
06 | 64 | 5316 | 83.1 | 48 |
07 | 57 | 3879 | 68.1 | 39 |
08 | 86 | 11967 | 139.2 | 65.5 |
09 | 150 | 12698 | 84.7 | 46.5 |
10 | 258 | 20435 | 79.2 | 50 |
11 | 203 | 18412 | 90.7 | 48 |
12 | 290 | 18500 | 63.8 | 40 |
13 | 239 | 22502 | 94.2 | 44 |
14 | 246 | 26177 | 106.4 | 45 |
15 | 188 | 15130 | 80.5 | 37 |
16 | 234 | 22047 | 94.2 | 44.5 |
17 | 163 | 12036 | 73.8 | 48 |
18 | 233 | 20296 | 87.1 | 46 |
19 | 222 | 16385 | 73.8 | 44.5 |
20 | 195 | 22566 | 115.7 | 36 |
21 | 234 | 21420 | 91.5 | 38.5 |
22 | 217 | 31387 | 144.6 | 37 |
23 | 175 | 17447 | 99.7 | 44 |
1日 | 3885 | 376074 | 96.8 | 43 |
ショタドール(10), 三項演算子(6), リョナラー(4), シロンボ(3), 隠れれ(3), sirabee(3), 卵胞(3), ネオテニー(5), 月経周期(4), 広告表現(9), ユーリオンアイス(3), 一人一派(45), ラブドール(28), 菅(12), 絵柄(25), 統一(31), ロリコン(40), 児童(30), 大多数(13), 女オタク(14), 迫害(10), 表現規制(13), 公共の場(16), オタ(22), 嗜好(15), 歌詞(23), 配慮(44), 規制(78), オタク(273), 表現の自由(25), 表明(29), フェミ(99), 価値観(40), 犯罪(59), 実在(19), 論理(24)
■男オタクはなんで他者への配慮が出来ないの? /20200831162341(38), ■ミスチル、ワンオクどころか浜崎あゆみですら歌詞に重みがあった /20200901103059(21), ■結婚するんだけど母親がホント嫌 /20200830195255(16), ■ /20200901132146(14), ■三味線って猫の皮使ってるの知ってる? /20200831220710(13), ■虫が原因で引っ越したいという妻 /20200901094609(12), ■Twitterは最早オタクのものじゃない /20200901115123(11), ■ /20200901105922(9), ■妻が昨晩家を出て行った。どうしたらいいのかわからない。助けて。 /20200901055242(9), ■同僚がヤバい女の人にタゲられてしまった。 /20200901083319(9), ■女の子とのほうが暮らしやすい /20200901124446(9), ■いつの間にかなくなった設定一覧 /20200901125234(8), ■anond:20200901105922 なぜフェミがオタクを叩くのか。 /20200901182958(8), ■「ここは三項演算子を使いましょう」「何でですか?意味同じですよね?」への返答求む /20200901212815(8), ■結婚する /20200901084646(8), ■結局、表現の自由問題って /20200901180012(8), ■Vtuber炎上しすぎ問題 /20200831115924(7), ■ゲーミング墓石買った /20200901041103(7), ■助けてくれ /20200901000706(7), ■ /20200901101632(6), (タイトル不明) /20200901100008(6), ■anond:20200901103059 /20200901103645(6), ■初音ミクは有名Pに食いつぶされてやがて死ぬ /20200901110216(6), ■anond:20200901110449 /20200901113409(6), ■中学生の時に30歳の人と付き合ってた /20200901131333(6), ■スーパー銭湯の男湯に娘を連れてくる父親が許せない /20200901172204(6), ■ちょっと待って、もしかして皆ロリショタを犯したいの? /20200901183641(6), ■LGBTとペド /20200901210546(6)
say = n => n % 3 == 0 ? "fizz" : n % 5 == 0 ? "buzz" : n;
https://anond.hatelabo.jp/20170911110731
昨年、はてブでバズりまくったエントリにまんまと乗せられた実務経験なしのプログラミング初心者が
N予備校プログラミングコースのプログラミング入門 Webアプリコース(有料のプログラミングコースで一番最初にやるコース)を修了したので知見をまとめておきます。
そんな感じです。以下、理由。
入門コースの実践編となる3章からは各講義の最後に課題が出されて、
N予備校のGitHubリポジトリにプルリクエストを出すことで課題の提出に変えて、
学習を進めていくのですが、
https://github.com/progedu/intro-curriculum-3001
https://github.com/progedu/intro-curriculum-4023
ちゃんと内容を理解できている人の割合はさらに低いと思われます。
なぜそんなに脱落していくかというと、まあ難易度だったり色々あるとは思うのですが
~をするにはこういうプログラムを書けばいい!ということは教えてくれるのですが、
なぜ、こういうプログラムを書けば~ができるのかということについての説明が少ないです。
感覚としては、途中の式と解答だけが書いてある数学の参考書を読み進めているような感じで、学習者には途中の式の意味を自力で読み解く能力が求められます。
その過程でドキュメントをあたったり、自ら調べて解決する能力が必要です。
またアロー関数式だったり、三項演算子や論理演算子を用いた代入などの省略記法を多用する割にソースコード中にほとんどコメントを書かないことも初学者には難しいかなと感じました。
体系的な学習にも不向きです。
あとオブジェクト指向の説明をせずに、JavaScriptのオブジェクトを扱っていたり、
データベースの学習をする前に、MVCパターンを扱っていたり、ちぐはぐさを感じるところも多かったです。
ということで(他にもいろいろあるのですが)、未経験者が独学で進めていくのは厳しいんじゃないかな~というのが入門コースを終えての結論です。
たとえば保護者の方が専門のエンジニアで分からないことがすぐに聞けるような環境にあればよい教材になるかもしれません。
ただ中級者へのステップアップを目指している初心者がきっかけをつかむには良い教材になりえるとも感じました。
私自身、GitHub、Linux(Ubuntu)、Node.js、Expressフレームワークなど、自主的にはなかなか食指が動かなかった分野の知識を得ることができたと思います。
難易度は高いですが、中級者向けのまとまった教材というのはネット上にもあまりないと思いますので、ある程度経験のあるプログラマが知識を深めるために利用するのはありだと思います。
ただ社会人が学習を進めるにはまとまった時間の確保というのがネックになるとは思います。
N予備校の入門コースの想定学習時間は180時間だったと思いますが、私はこのコースを修了するのに400時間前後かかったと思います。
(今年の1月初頭からほぼ毎日午後を勉強時間に充てて、ようやく昨日入門コースを修了しました)
コースを終わらせることだけを目標にするならもっと短くできるとは思いますが、ある程度知識をつけて今後にいかすことを目標にするとなると、想定学習時間内でコースを終わらせるのは難しい気がします。
色々書きましたが、それでも月1,000円というのは破格の価格設定だと思いますので、気になっている方は挑戦してみてもよいのではないでしょうか。
などがおすすめです。 「「分かりそう」で~」のサイトには本当にお世話になりました。m(_ _)m
ただ特にプログラミング経験の浅い方に伝えたいのですが、N予備校の入門コースが理解できなかった、挫折したからといって、プログラミングができないということはまったくないです。
私自身、SEやプログラマとしての実務経験はありませんが、趣味でも仕事でもガンガンプログラムを活用しています。
ぜひ挫けずにプログラミングの学習を続けていただきたいなと思っています。
あとネット上にはN予備校のプログラミングコースのレビューも散見されますが、無料コースしかやってないんじゃないかなーというものが多いのでお気をつけください。
基本的に無料コースと有料コースは別物と考えたほうがよいと思います。
参考になれば幸いです。
ところで、N予備校のニコニコ動画再現コースが2017年度中公開予定になってるんですけど、本当に公開されるんですよね・・・?(※)