「グローバル変数」を含む日記 RSS

はてなキーワード: グローバル変数とは

2018-09-13

仕事では完璧にしようとか考えず動く程度に適当に作ればいい

面倒な上司がいろいろ文句をつけてくる

意味不明ものが多いし何かとケチつけないと気がすまない性格から面倒なことを一々と

直接のユーザから意見なら多少は変でもそのユーザ必要としてるなら納得できるし、イライラすることもない

依頼があったわけでもないのに謎の基準文句をつけてくる

社内でそんなことこだわったところで実際には気にされないことが多いのにだ

まだデザイナーデザインについてこうした方がUXいいねみたいなことをいうならわかる

専門の人の意見だし

そうでもないのに何かと文句をつけてくる

増田なのでwebで例をだそう

CSS すらまともに使いこなせずマージンもパディングもないような酷い作りのものしか作らないのにソッチのほうが良いという

色は red, green, yellow と標準のペイントのデフォルトカラーかよというような色を指定してくる

#fcfcfc や #0a0a0a なんて使おうものなら白と黒しろ

max-width を指定せずに画面の端から端まであるようなものがいいという

そのわりにグラデーション無意味につけたがる

一部例じゃなく本音が出たがまぁいいか

今の時代アプリサービスを全く見てないのか?としか言えないようなセンス

自社サービスなんて手を出したらこれは酷いと話題になりそうなもの

見た目にあまりこだわれない社内用サービスしか作ってないからと言って、その他サービスをみてる人からすれば明らかに

残念なしか時代遅れなものが良いと思ってる

しかデザインに限ったことではないがまだ序盤の時点で言っておけばいいものの完成後にいまから変えるなんて難しいのが

わかりきってるようなときになってからああしろこうしろ言い出す

先に書いたようにユーザ要望ならまだ仕方ないと言えるがなぜこんな無意味なことに付き合わなければならないのか


わりと自分完璧主義なところもあるので作るならちゃんと作ろうとしてるんだが

こういうのを相手にしないといけないせいで結局グチャグチャになってくる

色のバランスレイアウトを考えたところで一瞬でそのバランス無意味になるようなことになる

プログラムだって全然関係ないものを無理やり入れ込まないといけないようなことになることも多い

疎結合だとかグローバルをつかわないとかそういう作りやすくするためのことをしていても

それが維持できないような無茶で無意味な指示が出る

根本的に変えたり対処するためのものを作るとかすればなんとかできなくはない

しかしそんな時間はないので結局ひどい作りになるしかない

過去プロジェクトでもそういうのが多いか自分で作るのくらいは扱いやすくしたいと考えていたのだが

過去のもこういう経緯で酷いものになっていったのかなと思う


過去に言われたものだと速度を優先だとか言って自分で作ったものよりは遅くするなと言う

そしてそのコードは本人でしか読めないような酷いものだった

しかしながら関数は使わずコピペだわforeachなどは使わずループ変数を使って地道にやるなどメンテナンス

できる気がしないが速度においては早いと言えるもの

当たり前のようにグローバル変数がいっぱいあるしライブラリ使用箇所はカスタマイズするための仕組みがあるのに

ライブラリ自体をどんどん書き換えていく

便利で読みやすいような書き方だと速度的にはそれに劣る

だがわざわざそんな扱いづらいし見づらいコードは書きたくない

そんなに速度にこだわるなら勝手に一人で機械語でも書いてろよって思う

しかし速度に加えてメンテやすしろという

どちらか取捨選択すべきものなのに両方みたせとか無理なことを言う

ちなみに便利なライブラリは基本無駄が多い遅いものからライブラリ頼みのベンダはクソだとか

能力がないだとか言っていた


そういえば昔先輩社員仕事したときには変に凝ったものとか必要以上に作り込んだりはしないほうがいいとか

言っていてそれなりに手抜きでさらっと一応は動くようなものを作っていた

私はそういうやり方が嫌いだったのだが今ではこういう環境に長くいた結果仕事のものにこだわって作り込んでも無駄

ということがわかってそうなったのかなと感じた

自分でもサビ残休日無償出勤してまでいいものにしようと努力はしていたが謎の指摘に合わせていると

愛着もなくなってきたし後は適当に済ませてしまおうかなという気持ち

ちゃんとした自分なりの完璧ものを作ろうとするなら仕事ではなく趣味で作ってるツールライブラリ

やればいいかと思う


作ったもの次第でユーザが集まる自社のウェブサービスパッケージ商品ゲームなどは作り込む方が

良いと思うが先に値段が決まって受注して作るようなものだと最低限の要望さえ満たしていればあとは

どうでもいい

しろ不便な方が改修依頼が来て稼げる

さらには綺麗で完璧な作りで大抵の想定できる改修は1日とかからないようなものに仕上げるよりも

どこ変えればいいかや影響範囲すらわからいくらいモノのほうが実作業時間が多いのでそれだけ請求できる

先に作り込むメリットがない


ストレスが溜まってきたので発散がてら書いてみたけど疲れてるのかわりと分かりづらい文章になった

けどまぁいいか

そろそろ転職でもしたいなーと考え始めた










2018-09-07

python pandas でのソフトウェア開発

複数データを読み取り pandas で加工して excel に出力する、ということをしている。

pandas だとテストが書きにくいと思い、jupyter を使いながら普通python コード(a.py とする)を開発している。

以下のようなサイクルで開発を行なっている。a.py でクラス関数をある程度書いたらjupyter にimport して挙動確認し、間違っていたら jupyter でプロトタイプ的なコードを作り a.py に変更を加える。その後、jupyter のプロトタイプ的なコードは消して、jupyter をリスタートし上手くいっていることを確認する。そして、また次の機能確認に移る。

メリットは、

・pandas の挙動確認できる

問題としては、

・jupyter で最初からリスタートすると 5 秒くらいかかり、遅いなと思う。

・jupyter ってそもそも開発するのに向いていないのではないか、と思う。自分が慣れてないだけかもしれない。

何か良い知見があれば教えて下さい。

追記

id:houyhnhm

クラス関数定義し直すときは、どんどん下に新たな定義を書いていくってことですか?一手間へるけど行数は増えそう。あとは、グローバル変数がめちゃくちゃ増えるから管理に注意しないといけなさそうですね。

2018-07-11

anond:20180711162801

学生時代UNIXC言語を独学していた頃。

ちょっとした事(たしかグローバル変数ローカル変数挙動の違いとか、そんな事だったと思う)を試してみようと思って、20行くらいのプログラムを作ったんだ。

でも、動かないの。

どんな短いプログラムでも意図しない挙動をしてしまうことはあるものだが、そんなレベルの話ではない。

ただ、計算した結果を画面に出すだけのつもりなのに、何も表示されないんだ。

で、少しずつコメントアウトしていったのに、それでも何も表示されない。

しまいには、"A" って画面に出すだけのコードになったのに、それでも何も表示されないんだ。

(この日記言及先を見れば、ネタは一目瞭然なんだろうけど)


で、もう一本別のコードtest2.c という名前で作ったら、ちゃんと "A" と表示された。

一番始めに作ったコードも、すんなり動いた。


そうさ。最初コードtest.c という名前で作ったのだ。

から、できた実行ファイルtest

カレントディレクトリ よりも先に /bin に PATH が通っていたので 、単に test と打つと、 /bin/test が実行されていたんだ。

2018-04-10

anond:20180410165141

引数禁止。全部グローバル変数で渡せ」

えー、グローバル変数変わるタイミング分かりづれー

サブルーチンを使うとあちこちに飛んでわかりにくい。同じ処理をするときコピペでそれぞれの場所に同じコードを書きなさい」

むかーし、「ふんどしプログラム」って呼ばれてたやつか。

サブルーチン無しのメインだらだら書くやつ。

プロジェクトで開発した事無い奴らなのか?

それともそのプロジェクトで失敗して変に原点回帰しようとしてるのか?

何れにしても悲惨現場だな。

anond:20180409181511

サブルーチンに値を引数で渡してたら「引数禁止。全部グローバル変数で渡せ」とか、「サブルーチンを使うとあちこちに飛んでわかりにくい。同じ処理をするときコピペでそれぞれの場所に同じコードを書きなさい」とか言われたことがあるわ。

そこまでひどくなくてもレヴューを受けると「うわ、こいつレベル低っ」「この人Excelばっかりでコードいたことないんだろうな」みたいな人ばっかり。

レビュー機能してる現場に遭遇したことない。

2018-03-30

anond:20180330155333

A→B→C→D→Eってメソッドの流れ作ってるのに

途中だけ使われたり乱入されたり、グチャグチャにされることがある

メソッド呼び出しの流れに、作成者意図した順番があって、途中だけ呼ばれるとぐちゃぐちゃになるって、グローバル変数状態管理してる系のクソプログラム臭いがするんだが…

2017-07-26

今動いているアプリはみんな「元社員の成分」でできている

変な名前グローバル変数とか、

/* なぜか動いている */ とか、

どう考えても順番がおかしファイル出力とか

もう指摘することもできない

見つけるたびに「マジかー」と叫ぶ

2017-06-14

Golang勉強3日目ぐらいで疑問に思っている事

これは将来Golangに慣れて来た頃に読み返すメモです

学習してから3日目ぐらいだけど連続3日でやったとは言っていない。

学習時間は24時間にも満たないと思う。

モチベーションが上がった時に学習する程度。

公式チュートリアルをやってるけどやった箇所は忘れた。

英語版日本語版があるけど日本語版情報が古くないか不安

まだ半分ぐらいしかやってないけど良チュートリアルだと思う。

他のプログラミング言語と違ってチュートリアルの内容が足りないってこともなさそうだし、Golangチュートリアルだけは繰り返しやったほうが良さそう。

からGolangを学ぶならGoogleリポジトリにあるパッケージ管理depを使うほうが安心する。

まだ公式ツールじゃないけど将来なるかもしれないしならないかもしれない。

Googleのことだからgxuiみたいに更新されなくなる危険もあるよな・・・

でもプロジェクト新規作成するときrails new helloに相当するコマンドがないので不便。

スケルトン生成ツールが別途必要だけどフォルダ作るだけだからbatファイル用意するだけで良さそう。

あとGOPATHの設定もか。今のところは手動でやってるけどそのうちbatファイルにしたい。

Golang自体シンプル言語だと思う。

でもやりたいことができないのがつらい。

Rubyみたいにcursesが標準で使えない。

RubyみたいにTKも標準で使えない。

cursesぐらいは標準で出来て欲しいよ。

から他の言語はいらないのにGolangではそんなことでもライブラリを探してきてインストールしないといけない。

開発環境にはGoglandかVimがいい。

Goglandだとそのままでも十分だけどVim場合vim-goを入れるのが良い。

勉強会に参加するときは軽量ノートを持っていくので動作が軽いVimがいい。

でもryzen搭載ノートが来たらIDEに乗り換えるかもしれない。

コマンドラインツールを作るならGolangが一番簡単

cliってライブラリもあるみたいだけど標準機能flagだけで十分便利。

学習3日目でもflagの使い方は楽勝だった。

今の所もあんまりコマンドラインツールに興味ないので難しいことはしない。

とりあえず2ちゃん質問するのが良さそうだけど過疎だった。

過疎ってことはあんまり人気がない?

まだ質問するぐらい基礎的なもの学習してないけど。

やりたいことをぐぐってコピペしてる程度なのでdeferとかgo funcとかグローバル変数とか基礎的な部分はまだ知らない。

インストールが楽だけどWindows作ったらMacでも動くかは謎。

Mac mini買ってから試したい。

でもMacって高いから多分買わないと思う。

MacハードウェアしかMacOSインストールできないライセンスからWindows PCMacインストールできないかapple嫌い。

初心者だけどMac持ってる奴apple信者キモ杉と言わせてくれ

2017-04-11

http://anond.hatelabo.jp/20170410230648

頭の良い奴がプログラミングできない理由3つ

  1. 頭が良いとある程度大きなプログラムも頭の中で描けてしまい、構造プログラミングとかの意味理解できないので、グローバル変数ありきで作ったり、モジュールの切り分け方針おかしくて早晩行き詰まる
  2. 頭が良いとプログラミングなんてIT土方仕事だと1瞬で見抜けるため、さっさと逃げ出す
  3. 頭が良いと金暴力セックスという人生の真理にとっくにたどり着いているため、プログラミングなんかやるわけない

2017-02-26

httphttp://anond.hatelabo.jp/20170226153940anond.hatelabo.jp/20170226153940

言語仕様上、マルチバイト文字変数名に利用できる場合でも、変数名は半角英数字を使う。

グローバル変数はなるべく使わない。

・1関数に100行以上書かない。

主に、PHP使ってる。

2017-01-20

うちの会社プログラマが糞すぎる

できるプログラマもいるのだが、あまりにも糞なやつが多いので吐きださせてもらう。

1.遅刻常習犯

月曜日遅刻率が高すぎる奴がいる

2.ホウレンソウがない

社会人常識だろう。

進捗状況の報告がない。

定義仕様勝手想像して作り、報告しない。

挙げ句、その仕様おかしいと指摘すると不機嫌になる。

定義の時点で、簡単でいいから報告してくれるといいのだが。

3.設計センスがない

せめてDBの初期設計正規化してほしい。

外部キーとか夢のまた夢。

4.プログラムセンスがない

1000行越えのメソッドが大量にあったり、

オブジェクト指向言語なのにほとんどが静的メソッドだったり、

妙なグローバル変数があったり、

コードクローンが大量だったり。

5.テストしない

一度動かせばエラーが出るのにやらない

6.既存コード理解しない

コード意図理解しない。

結果、修正を行うつもりが、壊している。

上司よ。はやくメンバー入れ換えてくれ。

2017-01-09

プログラミングの勘所

プログラミングの入門者には伝統的に変数やif文、for文などが教えられてきました。

昨今ではJavaやってGoogle Play Storeでアプリリリースするのが目標になるのかもしれません。

開発環境は年々高級になっており、以前より人の思考に近い感覚コーディングできるようになってきました。

はいえ、かつてWindowsGUIプログラミングがそうであったように、

スマホにはスマホ流儀があり、いくらアイコン右クリックしたいといってもスマホには右クリック概念が無いという、

今までの常識思考の在り方に対する挑戦も数多くあります

様々な流れに翻弄されつつもプロダクトを開発し世にリリースしていくことは、

プログラマ選択できる使命の一つとして今後も世界中で支持されていくと私は信じています

プログラミングとりまく状況はこの30年で大きく変化したと言えます

それでも基本的な部分は変わりがありません……などというのが通例ですが、

からといって基礎練を素直に続けることが正しいとも思いません。

今の新しい世代の人なら、まずはスマホアプリWebアプリWebサイトを目指すべきでしょう。

ハードウェアに興味があるなら、ラズベリーパイやArdinoを組み合わせても面白いですね。

すると、今とっかかりにすべき言語も絞られてきます

アプリならJavaSwift。(Unityを使うならC#ですね)

Web系ならphp。(ruby on railsもいいかと思います)

(15年前だったらC++でかっこいいwincdowsゲームを作りたい若者で溢れていました)

何かを作るにあたり、まずは1ボタン1機能から始めると良いと思います

ボタンを押したら、何かコマンドを実行する。

それはメール送信だったり、画面に文字を表示したり、ショップではがねのつるぎを購入したりと様々です。

技量が上がると、ボタンを増やしたくなります

ボタンを押すとボタンが増えたり減ったり、違う画面に移ったりしたくなります

途端に難しくなります

それらを整理するためにオブジェクト指向とやらを使わないといけなくなります

バグを出しにくくするための工夫が必要になってきます

何かを作る際に、機能が多くなると、それらを整理する手間が発生します。

グローバル変数はやめようとか、goto禁止というのはそういう活動の一環として生み出されてきたハウツーです。

そして自分の作りたいものは往々にして自分の実力を超えた所にあります

そこで挑戦と葛藤が始まります

幾多の困難を乗り越え、今の自分ならどの程度の規模のものを無理なく作れるかということがわかる場合があります。(わからない場合の方が多いんですけど)

するとあることに気づきます

自由に作りたいものを列挙するのは重要ですが、

最終的に何を作るか、何を作れるかというものを見据えながら、本当に必要機能を選別しないといけないのです。

欲しいものは全ては手に入りません。

全部じゃないと意味が無いなら、即座に全てをあきらめるか、考え方を変えなければ生き残れません。

プログラミングをする上で、夢を実現する技術を学ぶわけですが、

それには、何を実現したいと願うか、何を夢とするか、をコントロールする術も含まれます

そしてそれこそが、プログラミング、ひいては

生きていくために大切な希望を見つけるための技術であると気づかされます

2016-09-06

手続き型で代入ができる言語では、参照透過性があり副作用がないサブルーチンって存在しないんだろうか。

int sum (int n) {
  int i = 0;
  int result = 0;
  while (i <= n) {
    result += i;
    i += 1;
  }
  return result;
}

例えばこんなサブルーチンなら、ローカル変数のiとresultに再代入はするけど、同じ引数で毎回同じ結果になるし、ローカル変数以外には影響を与えない。

条件はおそらくこのくらいでいいはず。

こういうのがコンパイラIDEで検知できれば便利そうなんだけど。

2016-05-25

http://anond.hatelabo.jp/20160525213232

バグがあって、ストリームに変な値が入った時、どこがバグなのか、追跡するのが困難でしょ?

第一に、それは、ストリームFRPの値の定義)の問題であって、ユニットテストすれば良い。もしくは単にFRPログを取れば良い。

グローバル変数ではそういうことはできない。FRPでは、岡部氏のFRPライブラリ特にそうだけど、基本的ミュータブルな値同士が関数リアクティブ連携されて常に整合性を保っているのだからグローバル変数の、各所で更新されたそれぞれの値によって全体の整合性が損なわれないように気を配らなければいけないという(テスト自体困難な)問題は発生しない。それがFRPの唯一とも言えるメリットだとも言える。

使用する関数問題じゃないし、「印」として引数に加えても別に構わないと思うが、君のいうグローバル変数問題と一緒というのはまったく違う。

岡部氏との争いって「OCamlGUIアプリ純粋関数型(状態渡し)で簡潔に書けるか」ってところじゃないよね?

いや、それがそもそもの発端であるブログの経緯には書かれている。説明されている方式GUIアプリまで書けるのか?と疑念が呈されたことがきっかけ。

岡部氏はFRP状態関数の外部に持ってても純粋関数型だ、と言ってて、そこで争ってるんだよね?

この論点は聞いたことがない。岡部氏がこだわっているのは非手続き型の宣言型で、純粋がどうとか議論はされてないように思う。

あと、OCamlGUI状態渡しで書いたら簡潔で無いのを「書けない」、「不可能」って言ってるのはわざと印象操作しようとしてるよね?

原理的に可能かという議論ではなく、実用的な範疇か?という議論。反対派ブログで出てきたコードは、本人が認めるように普通のやり方ではなく、実用的なコードだとは思えない。あと、FRP状態渡しは同じ複雑さだという主張も崩されている。そこが重要

Haskellで書けて、OCaml冗長になっても、書けるなら「書ける」、「可能」だよね?

段階を踏んだ上で、非FRPHaskellのIOモナドコードを誰かが書いたらいんじゃない?当面、最初OCamlの話だったのに、いきなりHaskellやElmのコードで書いて、そういうのがごちゃまぜに、何がどの言語でできるのかできないのか、誤魔化しがあると見做されたか制限されたんでしょ。実際には、OCaml関数型では冗長しか書けないと実証されたけど、そういうのがバレないように、別の言語を利用していたと看破されて当然の状況だと俺は思うね。

俺の書き込み他人といきなり結び付けられたから、電波だな、と思ったの。

俺1人か、とか、らくだや住井が含まれてない根拠とか、関係無いよね。

関係ある。君ひとりは、そうじゃない、と君ひとりが言ってもそれが本当だとは確認のしようがないし、

書き込みをみれば、君以外の書き込みもすべて、その一派ではない、とでも言いたそうだ。

http://anond.hatelabo.jp/20160525202812

否。ストリームに限らず、定数は引数で与えなくても純粋関数である、という見解はごく普通

定数って、プログラム中で更新不可能で、いつ読みだしても同じ値が出てくるからグローバルでも問題無いんだよ。

ストリームは定数だ、って言ってみたところで、プログラム全体から更新可能なんじゃ、グローバル変数と同じでしょ?

バグがあって、ストリームに変な値が入った時、どこがバグなのか、追跡するのが困難でしょ?

なんで伝わらないんだろ。

複数人プログラム開発したり、他人プログラムデバッグしたり、したこと無いんだろうか。

まりGUIになればもはや関数型では書けない、というのが推奨スタイルだ、って言ってるようなもの

純粋関数型」とは何か、という話と、とOCamlでそれが推奨スタイルか、って別の話だよね?

岡部氏との争いって「OCamlGUIアプリ純粋関数型(状態渡し)で簡潔に書けるか」ってところじゃないよね?

純粋関数型とは何かといった時にHaskellのように、IOも含めて引数戻り値表現する、関数のふるまいが関数の外の状態依存しない、関数副作用が伴わないとかの性質をいうと思うんだけど、岡部氏はFRP状態関数の外部に持ってても純粋関数型だ、と言ってて、そこで争ってるんだよね?

あと、OCamlGUI状態渡しで書いたら簡潔で無いのを「書けない」、「不可能」って言ってるのはわざと印象操作しようとしてるよね?

Haskellで書けて、OCaml冗長になっても、書けるなら「書ける」、「可能」だよね?

その発言事実か確かめる術はないし、ここで岡部攻撃しているのは君ひとりなのか?他の人間まで一連の誹謗中傷集団ではない、す駱駝、住井が含まれていないみたいに断言する根拠は何か?

俺の書き込み他人といきなり結び付けられたから、電波だな、と思ったの。

俺1人か、とか、らくだや住井が含まれてない根拠とか、関係無いよね。

http://anond.hatelabo.jp/20160525104221

ストリーム関数の外部に持つFRP純粋関数型っていうのは少数派でしょ。

否。ストリームに限らず、定数は引数で与えなくても純粋関数である、という見解はごく普通

http://stackoverflow.com/questions/37405262/is-this-pure-functional-using-a-value-in-the-nested-closure-like-function/37405374

OCamlの元々の推奨スタイルならもっと短く書けるんでしょ?

まりGUIになればもはや関数型では書けない、というのが推奨スタイルだ、って言ってるようなもので、OCamlベースいくら関数型の講義やっても、最終的にはその関数型でまともなGUIアプリすら書けない、という批判でしょ。その批判岡部からされたら、あたか関数型で書ける、という強弁からまれたのが「状態渡し」理論。それが無理筋だ、ということが今回実証された。

だって駱駝でも住井でもない面識も無い俺の書き込みが住井扱いされるんだもの

その発言事実か確かめる術はないし、ここで岡部攻撃しているのは君ひとりなのか?他の人間まで一連の誹謗中傷集団ではない、す駱駝、住井が含まれていないみたいに断言する根拠は何か?

いやだからグローバル変数使ってるプログラム欠点をそのまま持ってるじゃん

あのね、グローバル変数欠点とは、それが「変数」だからなの。

何度も言うけど、「定数」ならグローバルだろうがなんであろうが、そんな欠点なんてないの。

http://anond.hatelabo.jp/20160524164501

関数型という枠組みの中にミュータブルな時間要素が純粋に収まるようにしているのがFRPだろ。

ストリーム関数の外部に持つFRP純粋関数型っていうのは少数派でしょ。

関数の結果が引数以外で決まるわけだからさ。

多分、純粋とかの定義もまた違うんだろうね。

関数型の拡張」で全部丸く収まると思うんだけど。

いやそもそも岡部氏が複雑なアプリになるとFRP必要

これはGUIアプリ(対話的なアプリ)ってことでいいのかな。

コンパイラだとかをFRPで書かないでしょ。

ユーザから入力リアルタイムに処理するプログラムにはFRP有効だよね。

事実、「駱駝」は「状態渡しはむしろ異常」って書いた上に、

OCamlでは」じゃないの?

全部純粋関数型(引数戻り値に収める、状態渡し)にするのを良しとするHaskellと違って、OCaml副作用部分的に使うのが普通で、IOモナドみたいな入出力までも純粋に書くための道具立てが揃ってない、それでちょっと冗長になる、ってことでしょ?

OCamlの元々の推奨スタイルならもっと短く書けるんでしょ?

俺はそう読んだけど。

それっぽい書き込みほどそうやって、事実誤認だ、と強調するから、なんで当事者でもないのに、そんなことが断言できて、電波だということになるんだ?

だって駱駝でも住井でもない面識も無い俺の書き込みが住井扱いされるんだもの

いやだから、どの関数で読み書きされようと、誰が書き換えようとも、時間にたいしてイミュータブルな定数なんだから、定数は定数なのよ。

いやだからグローバル変数使ってるプログラム欠点をそのまま持ってるじゃん

グローバル変数使ってるプログラム欠点説明する必要ある?

2016-05-24

http://anond.hatelabo.jp/20160524161137

拡張なら「関数型的じゃない」っていわれたら「関数型を拡張してるから」って答えればいいだけの話

関数型という枠組みを拡張しているのではなく、関数型という枠組みの中にミュータブルな時間要素が純粋に収まるようにしているのがFRPだろ。「関数型を拡張してるから」というのは、また独自拡張だ、という批判を許すし、FRP関数型の拡張だというのは誤解を招くし、語弊もある。

FRPの効力を否定なんて誰もしてない(よね)

いやそもそも岡部氏が複雑なアプリになるとFRP必要だ、と批判すると状態渡しで充分だ、という反発があった。それが誤魔化しだとして、今に至るし、否定されているから一連のブログでの徹底的なまでの反撃がなされている。

「これが正しい関数型でお前らの状態渡しは間違ってる」みたいに言うから荒れる

事実、「駱駝」は「状態渡しはむしろ異常」って書いた上に、岡部氏のコードの倍の分量の複雑なコードしか示せなかった。あの無理して書いたのが第三者にもまるわかりの状態渡しの実装って間違ってるんじゃないの?

個人的電波だと思うのはこういう匿名書き込みを住井だ駱駝だ言い出すところ

これまでのアンチ岡部のやり方を眺めていると、被害者岡部氏の分析には一定の信ぴょう性が認められるよね?

しかも、それっぽい書き込みほどそうやって、事実誤認だ、と強調するから、なんで当事者でもないのに、そんなことが断言できて、電波だということになるんだ?という素朴な疑問がある。当事者から否定してるんだろ、と誰が見てもおもうだろ。

ストリームから定数とか、過去の値保存してるから定数とか言ってみたところで、プログラム内の色んな関数から読み書きされる可能性があって誰が書き換えたか中身読まないとわからないんじゃ、グローバル変数使ってるプログラム欠点をそのまま持ってるじゃん

いやだから、どの関数で読み書きされようと、誰が書き換えようとも、時間にたいしてイミュータブルな定数なんだから、定数は定数なのよ。

グローバル変数ってのはFRP関係ないだろ?

http://anond.hatelabo.jp/20160524151555

FRPライブラリサブタイトルに、 library that provides first class reactive value 'over time' と書かれている、これ拡張じゃないのか?

拡張なら「関数型的じゃない」っていわれたら「関数型を拡張してるから」って答えればいいだけの話

すでに出たサンプルからFRPの効力がまざまざと見せつけられている。

FRPの効力を否定なんて誰もしてない(よね)

「これが正しい関数型でお前らの状態渡しは間違ってる」みたいに言うから荒れる

間違っている電波

個人的電波だと思うのはこういう匿名書き込みを住井だ駱駝だ言い出すところ

いやだから、定数なんだから書き換わらないんだよ、FRPストリームconst 定数なんだから

ストリームから定数とか、過去の値保存してるから定数とか言ってみたところで、プログラム内の色んな関数から読み書きされる可能性があって誰が書き換えたか中身読まないとわからないんじゃ、グローバル変数使ってるプログラム欠点をそのまま持ってるじゃん

2016-05-16

http://anond.hatelabo.jp/20160516181416

まず、

1.繰り返しになるが、お前の言う「グローバル変数」とかいイチャモン批判になっていない。なぜなら、サンプルコードでそれがグローバルなのは、単に、マウスイベント、座標と、階層が一層の単純で、一層=グローバルになっているだけ。おまえの初見思い込みを延々と押し付けトンチンカンイチャモンつけるな。

2.ブログ公式サイトにさんざん説明されているとおり、FRPとは時間軸を抽象化したファーストクラスリアクティブ関数ひも付けもので、その実装とDEMOコードがさんざん示されている。その上で、「おれのおもってること違う?」とか、馬鹿駄々こねているようにしかみえないし、「違う」と切り捨てる気にしかならない。

3.FRP変数、定数と、リアクティブな振る舞いはサンプルコードにおいて接続されて実装されているし、自分イベント拾って、とか、そのイベントをあるFRPライブラリがわざわざなんかでラッピングして、無駄に使いにくくしようとも、素のママでかけるFRPライブラリであっても、FRPライブラリはこうであるはずだ、とかいうお前の無知とは無関係

http://anond.hatelabo.jp/20160516174234

FRPって関数型プログラミング+リアクティブプログラミングでしょ?

そんで、リアクティブプログラミングって、

__drawFrom.t = {
        x: e.clientX,
        y: e.clientY
      };

みたいなグローバル変数を書き換えるコード自分で書くんじゃなくて、

この変数とこの入力欄/入力ボタンは結びついてます、って書くだけで、フレームワーク利用者に見えないところで、自動的更新してくれる仕組みだよね?

既存FRPライブラリってそうじゃない?

自分イベント拾ってグローバル変数書き換えてたらFRPじゃないよね?

違う?

http://anond.hatelabo.jp/20160516172607

__hoge.tがグローバルである必要など何もないし、

うん、そうだよね

問題になってるのは岡部氏のプログラム状態グローバル変数にしてて(別にそれ自体問題にするつもりは無いけど)それを関数型の書き方だ、って言ってることだと思ってたんだけど

http://anond.hatelabo.jp/20160516170242

からさあw、その「何らかの状態表現したオブジェクト」ってのが、すなわち

Date.now や __foo.tだ

って話なんだが、わかってきたかい?

わかってきたかい?というか、最初からわかってて、それをグローバル変数で持つの関数型的じゃないよね、という話をしていたのだけど

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