「エラーメッセージ」を含む日記 RSS

はてなキーワード: エラーメッセージとは

2016-02-15

営業新卒が1年で辞めると言っているのだが…

転職エージェントととのやりとりを会社アドレスでやるのやめて欲しい。

システム担当から一応メールのチェックをするのだが、

顔写真圧縮してないサイズで送ってるのでエラーメッセージが乱発されるw。

これだから仕事ができずお客さんもたせてもらえないってわからないのか。

2016-01-22

http://anond.hatelabo.jp/20160122010841

いい大学出てるのにエラーメッセージにはっきり原因書いてあるのを一切読まず(読めず?)に動きません、なんて奴いっぱいいたしなぁ。

ダメな人は何言ってもダメだと思うよ、悲しいけど。

2015-09-30

システムエラーで落ちたんですけど」

いやただのエラーメッセージじゃん

落ちたつったらプロセスごと死んだか何かで復帰しない状態だろうが

ビビる

2015-09-19

http://anond.hatelabo.jp/20150919001330

まあポップアップで出てくるのは親切な方だよね

ムカつくのがページを遷移して「全角で入力してください」のエラーメッセージを出しつつ

パスワードクレジットカード番号が空になっている場合

2015-07-04

仕様書を細かく書いても意味無い時はどうすればいいか

だって、細かく書けば書くほど全部読まないんだもん。

その通りに作って寄越さないじゃん。意味無いじゃん。

 

画面設計書いて、そこに表示する項目と入力項目を細かく表に書いて、そこにその項目は必須入力じゃないって書いてあるのに、

受け入れテスト入力エラーが出ないとはずのところで入力エラーが出るの確認する。

ちゃんとエラーメッセージの表を作って渡してるのに、メッセージが間違ってる。

データ項目としては定義されていないが、この機能は別の項目にこういう入力をして表現するからこういう動作をしてくれって書いたと思ったけど、

項目が無かったのでこの機能実装できませんって言うな。

仕様書通りになっているかどうかのチェックから始める必要があるのはおかしいだろ。そこは仕様書書かせるなら最低ラインじゃね?

 

それなら、最初に大雑把に投げて、後からダメ出ししまくる方が楽じゃねーの?

2015-05-14

メンヘラ気質の、メンヘラが再発しないようにする方法

先に述べておきますと、わたしは医者ではありません。

経験則および、友人らの事例に基づき記載してみました。

なお、用語について、誤用している恐れがあります

メンヘラの条件は、以下のいずれかを満たしている事としてみます

・第2種向精神薬摂取を3種以上、半年間以上服用

社会との関係を1-3年以上継続して断っている

閉鎖病棟への入院

先ずは、メンヘラが陥りがちな心理状況です。

病的になると、恐らくは何をやっても、空回り。どうしようもない状態になるので、

定型うつ病対策効果的です。非定型については、省きましょう。

しかしながら、定型うつ病対策を長く受けてきた患者は、

自分価値勘違いする傾向があります

理由として、ドロップアウト、もしくは気味の人間なので、社会から見れば、同年代と比べ

価値があまりないのですが、少し語弊がある言い方をすると、最低限その間は

甘やかされてきたので、自分自身に力があるように思い込みます

そう、思い込まないとやってこれなかったので、自己肯定するか、他所のせいにしていたはずです。

いざ休養に入れば、病気を治すときは、「病気を治す。」という

目的1つに絞って行動するのが常ですので、成果は出ます寛解です。

寛解しても油断できないものがあります

ここで、自身の療養中の常識に染まっていると、社会

自身の考えの差異自覚するまで、時間がかかります

1日1週間でわかるものではないので、数ヶ月はかかるでしょう。

社会との折り合いをつけるために、自分おかしさ、異常さに気づいたしても、

わかったとしても、すぐに対策が身につくものでもないので、

所作として自然にこなせるにはやはり時間必要です。

病気療養後、寛解し、いざ社会復帰。

ただ、身体上はよくなってもまだ早いかもしれません。

焦ると、巻き返しをしようと気張ればすぐにリバウンドです。

ここで、悪循環に入りやすい、もしくは同様の失敗をおかす可能性が

あるものとしては、第三者が口を出せない状況が続くということです。

ちょっとおかしいよ。」

ラフになにか言える信頼関係づくりが希薄だと、勘違いしたまま進んでしまます

まり親しくない間柄では、善意のつもりが、イジメになってしまます

別段、直接「おかしい」と伝えなくても、相手に気づいてもらえればそれでいいので、

気づく力がありそうなら、何か伝わるようにしたり、見守ればそれでよさそうです。

言ってくれる人も鬼ではないはずなので、ここまでの痛みなら受け入れるだろう。

と勘案した上で伝えてくれていると信じたいところです。

薬というのは、毛布のようなもので、強い薬は分厚い毛布です。

からの声、音が聞こえなくなる分、薬を断てば大きな声、音が強い刺激として入ってきます

体調がよくなった上で、外界からの刺激全てに耐える力が出来てからが、本来寛解にも考えます

そろそろ本気を出していいとおもいましたか

まだです。

最終調整に必要なのは、衰えた体力と、使わずにいて錆びた頭を動かすことです。

とても難儀です。1,2ヶ月で取り返すことは出来ません。


話がふりだしに戻って、通しでご覧になればわかるとおもいますが、最初の話です。

・第2種向精神薬摂取を3種以上、半年間以上服用

社会との関係を1-3年以上継続して断っている

閉鎖病棟への入院

上記3点くらいまで来てしまうと、1年程度は調整が間に合わないようにも見えます

ここまでは状況説明です。

では、どうすればメンヘラにならず、正気を保ち続けれるか。

ここで、詰んでいます

なぜなら、上記3点の経験者は、精神面で持ち崩しやすからです。

観測し続ける限り、ほんとうの意味寛解はしていないし、思考子供のままです。

社会理不尽(とも思うべき折り合いの多さに慣れる)と付き合うには、

具体的な対策生活習慣としては、以下が挙げられます

レシピを見ない料理や、掃除といった、脳が無意識手続きを考えなければならない事をする

・習慣化された手続きを作る、行う。散歩やtail -f で/var/log以下を見て、エラーメッセージを解読するなど

はてな民のみなさんは、どんな方法対策があるとおもいますか?

2015-04-06

設計書のダメだしにむかむかくる

設計だよ?これからまだどうなるかなんて実装してみないとわかんないのに、

エラーメッセージもっとこまかくとかこっちの処理のほうが望ましいとかこっちにあわせろとか

そんな細かいとこより大筋の処理があってるかじゃないの?ていうかねちねちしすぎなんだよ書き方が

もう書き方だけでいらいらしてくるよ

くっそおおおおおおおおおお

こうなったらもっと完璧設計書を目指してやる!!!!!!!!!!!!!!!

2015-01-31

http://anond.hatelabo.jp/20150131120141

簡単なソフトでも、人に使ってもらう、って時点で結構難易度上がる。

間違った使い方したら強制終了、でいいなら簡単だけど、ちゃんとエラーメッセージ出すだけでも考慮しなきゃいけないパターンが一気に増える。

2015-01-21

いちいち言うべきか否か

今朝のスッキリで手巻きピザが紹介されたせいで、ピザーラサイト一時的アクセス集中でエラーになった

おそらく503エラーと思われるが、httpヘッダがshift_jisなのに、aspxのデフォ設定がUTF-8のままっぽくてエラー文がutfで吐き出されてた。

IEならこれでも表示できちゃうんだろうけど、firefoxとかだとおもいっき文字化けする

なので、まあ一応報告しとくかーと思ってピザーラメールした

返ってきた文章は、「今はエラーも出ずにちゃんと見れてますので確認してみてください。エラーの設定は影響範囲が広いので考えさせて」といったもの

まあそんなもんだろ。通常あるべき姿でないときに表示されるメッセージ不具合があったところで、誰も困るわけじゃない。

そもそもエラーメッセージすら出ずに白紙になるサイトなんてゴマとある。至極まっとうな返事かもしれない。

おたくのお店、停電したとき壁に変な模様が出ますから直したらどうですか?」って言ってるようなものだ。そもそも停電なんて普通起こらない。そこに金かけるかと。

こう来るのは分かってたんだけどねえ。じゃなんで問い合わせしたんだろ。問い合わせないと気がすまなかったのか。

言われる側としては迷惑な話じゃないのか。他人のアラにばかり目が行ってテメエの会社サーバーはどうなんだおい、と。

まあそんなことを考えさせられました

2014-11-19

http://anond.hatelabo.jp/20141118235205

あー、これはうちにもいた。git普通にコード管理してるプロジェクトに後から入ってきたのに、頑なに自分風習守るんだよなー。

もはや文化ですらない、自分のためだけのコメント

そんでgitの使い方は覚えられない、衝突のエラーメッセージ英語で恐い、-forceのオプションだけ覚えて他人の変更を消す、滅びやがれ!っていう。

2014-09-06

http://anond.hatelabo.jp/20140906083135

最近地方中央省庁とあるデータのやりとりが、AccessベースAccessVisualBasicからExcelベースExcelマクロ)に変わったんだが…。

うちの県ではVisualBasicランタイムを作業用PCインストールするだけで折衝に一年越しだったから、一応変更自体は歓迎だったんだけれども、これが…。

ちなみに、扱うデータ量は、ざっくり言って、一都道府県当たり平均で5000行×1000列の表くらい。多い都や府なら、列の方がこの数倍行くだろうな。で、あくま個人的感想として、どんな感じかつーと、

(1)データ触ったり集計したりしにくくなった。

前のシステムは、データ自体は単なるAccessデータだったので、間違いを修正したり別の集計に使用したりが意外と気楽に出来た。

今度は、Excelを無理矢理マクロやらで動かしてデータベース化してるからAccess時代よりも途中でデータが触りにくくなった。で、データミスがあれば、いちいち一番大元の支所の担当者に連絡して最初の打ち込みデータから変更して貰わないとならない。

(2)めちゃくちゃ重くなった。

これは、まあ想像つくと思うけど…重い。Excelはいファイルが数十メガとかあって、デカから扱いに困るし、重さについては、特にデータから選択して表示させる機能が弱いらしく、やたらに時間がかかる。これが結構致命的かも。支所に配付した入力システムですら、4年前のPCではフリーズしまくった(新しいPC使えと言ったら、結局個人用のPC使ったとかいう噂も……ウソでしょ?)。県庁での取込・集計システムは、取り込んだデータ10支所ごとのまとめ表を閲覧表示しようとするだけで大体数分かかる。なお、一支所毎に表示する機能がないので(なんだそれ)仕方なく、支所ごとに、システムから一覧表(紙)を打ち出して送付してもらっているが(なんだそれ)、そうなると今度は、データと紙が一致しないという事例が発生した。表示機能特に重いので、先方でも、データの中身は余り見ずに送ってるらしく、最終段階でデータいじったのを忘れたりしてそういうことが起こるらしい(なんだそれ)。

(3)マクロ部分で起きていることが把握しづらい。

これは仕方ないことだが、RDBなら元々ソフト機能でしていることをマクロやらせてて、そこを触られたくないからだろうが、やってることの中身が把握できない。で、たとえばデータ保存の際にいろいろエラーメッセージが出ることがあるんだが(2年前のシステムで、標準で.xlsで保存する仕様になってるため、「機能低下が云々」とか)、おそらく問題なかろうとは思いつつも、不安なまま運用してる。

結論

エクセルから入力とか扱いとか、気楽になった部分は評価する。なので、データベースとしての運用を想定したDB機能強化版のExcel Proとか出ないものか? と。

あと、これ中央ではちゃんと動いてんのかね? 心配なんだけれども。

まあ、そんなこんなでおにーさんはいろいろ困っています。。。

2014-06-19

Yahooパスワード検索おかし

ヤフオクでずっと探していた物を見つけたので、

数年前から使っていなかったYahoo! IDログインしようと試みた。

しかし、思いつく限りのパスワード入力してもログインできない。

まず「Yahoo! JAPAN IDを忘れた」のリンクからIDを確認。

記憶している物と相違なかったので、少なくともIDの間違いはない。

念のためコピペ対応しても状況は変わらない。

なので、間違っているのはパスワードの方。

まぁ、数年使っていなかった訳だし、パスワード記憶していないのは、いかにもありそうな話だ。

なので、ここ↓

https://account.edit.yahoo.co.jp/forgot_acct?.src=www&.done=http%3A//www.yahoo.co.jp/

の「パスワードを忘れた」のリンクから、再設定を試みた。

やることは非常にシンプルで、前述のように確認済みのYahoo!ID入力し、

画像認証の数列を入力して「次へ」を押す、だけ。

そうすると、次のメッセージが表示される。

エラーが発生したためお手続きができませんでした。次のような原因が考えられますので、ご確認のうえ、お手数ですが最初からやり直してください。

・確認コード有効期限が切れている。

一定時間操作を行わなかった。

URLを直接入力するなど、正しくアクセスしなかった。


おまえは何を言っているのかと。

順当な手順を踏んで、パスワードを確認したいだけなのに、なんかこっちが悪いみたいなエラーメッセージが出て、それができない。

特にメンテナンスや障害の報告がある訳でもない。

時間をおいても(と言っても、今日の出来事なのでたかだか時間だが)変化なし。

そして腹立たしいことに、Yahoo! JAPANには問い合わせをする窓口が無い。

電話番号はおろか、問い合わせフォームすらない。

FAQに、ズバリ自分と同じ悩みが載っていなければ、その先を調べる公式手段は無くなってしまう。

これが、有数の大企業の取る体制か。

まぁ、問い合わせ窓口が無いのは有名な話だが、自分必要に迫られるまで、あまり気にしていなかった。

当事者になると、本当に怒りに震える。

IDを問い合わせれば返答があるのだからアカウントが失効している訳ではない。

それなのに、パスワードを確認できないとは、本当にどういうことなのか。

日を空けたらしれっと使えるようになっているのかもしれないが、

とにかくホトホト呆れる。

いいかげんにしろYahoo

大企業が聞いて呆れるわ。

2014-06-04

http://anond.hatelabo.jp/20140604134107

横だけど

外部結合するテーブルのBool値を持つときに使うことがあるんだよ。

社員テーブル

キー 社員名 社員グループ

000  増田  A

001  増田  C

社員グループテーブル

キー   グループ名  人事画面使えるかどうかフラグ

A     人事部   使える

B     管理部   使えない

みたいなデータときに、人事画面使えるかどうかフラグをbool?で定義するケースがありえる。

(例えば、エラーメッセージを「人事画面使えるかどうかフラグがたって無いから画面を開けません」とするか「グループが未定義です」とするか、みたいなケースね)

2014-05-26

http://anond.hatelabo.jp/20140526152837

ネットプログラマーの人のツイッターとか見てても

え?仕事でつかっててこのレベル英語わかんないの?ってびっくりすることが多い

別に英語はいらないんだ。

プログラマが読む英語なんて、マニュアルだったり、エラーメッセージだったり、

書いてる側が最大限わかりやすさに配慮した英語なんだから辞書引けば意味はわかるんだ。

ただそれすらやらない馬鹿が多くて困ってるんだ。

2014-04-27

6,500円で中古XPマシン衝動買いした話

 魔が差した。

 増田にこのたびの失態をさらし、深く自省したい。

 また私の失敗が他山の石となれば、落命した諭吉成仏できるだろう。

Ubuntu14.04 LTSのリリース

 カーネルの変更、高解像度マルチタッチへの対応、長期サポート。すべてがまぶしく映った。

 UIは旧バージョンほとんど同じだし、高価なディスプレイ持ってないし、Ubuntuでトラブったら基本自力で解決するしかなくてサポートヘチマもない。

 何も目新しいことはないのだが、恋は盲目というやつだろうか。

中古PCインスコしたい」という欲求がふつふつと湧いてきて、どうにも抑え切れなかった。

ハードウェアのお得感

OSなし」、「XP」などのキーワードヤフオクを調べた。

 あれ、良くない。

 好条件の商品を探すのに熱中し気持ちが高ぶり、要らんものを買ってしまう。

    私「おぉ、XPマシンが即決6,500円じゃないか! 爆安だゾ!」

 普段から中古パソコン相場をチェックしているわけではないから、本当は高いか安いか判断できない。

 しかし、頭の中には『買いたい』という結論が先にある。

 そこで暴走する私の物欲は、「買い替えによる中古XPマシンの増加で、今リユースパソコンが値崩れしている」という話をでっちあげ、理性をねじ伏せてしまった。

    デスクトップPC 6,500円

    液晶モニター 1,500円

    キーボード 350円

 計 8,350円、光の速さでポチった。

 パソコン20万円、液晶は「1インチ1万円」という時代を知っているから、自然食料品店の催眠商法で羽毛布団を買ってしまうお年寄りみたいなもので、迷いはなかった。

○なんだ普通に使えるじゃないか

 買ってしまったハード類はすべて完動品。ジャンク品ではない。

 パソコンはちゃんと動くし、液晶は綺麗。

 幸か不幸か、衝動買い反省する材料にならない。デュフフフw

さよならXP

 Ubuntuで綺麗に上書きした。サポートが切れてるとはいもったいない

 ピュアLinuxマシンが手に入り、私はホクホクであるデュアルブートしているWindowsに気兼ねしたり、クソ遅い仮想マシンUSBイライラする必要がないのだ。

 衝動買い正当化する材料がまた一つ増え、子供のような物欲勇気りんりん。

○その他ハッピーなこと

 Dellキーボードが良い。

 省スペースで場所を取らない。あと、ストロークが深く打ち心地が良い。あまりにも素敵だからもう2個くらいポチりそうになった。

 他方、Ubuntuは言うことを聞かない。

 パッケージが足りない、競合している、見たこともないエラーメッセージ。つまずくたびにググらなきゃならない。

 でも、その手間が楽しいDV共依存みたいなものだろうか。「氏ね! 動け!」とシャウトするごとに愛が深まるのである

○懸案事項

ソーセージの中身は肉屋神様しか知らない』ではないが、『マザボと電源は修理業者と中国人しか知らない』

 マザボ(というか電解コンデンサ)、HDD、電源はい逝去されてもおかしくなく、不安だ。

○今後の課題

 一度、私の金銭感覚を山岳ベース軟禁して総括する必要があるように思われる。

 35,000円でNexus5を衝動買いしたり、米国AmazonからChromebook個人輸入したり、私は累犯を繰り返している。物欲粛清し、生産計画に見合った消費を心がけたい。

2014-04-09

オブジェクト指向 v.s. 関数型プログラミング

近年、関数型プログラミング重要はいろんなところで叫ばれています

Javaの最新バージョン関数型プログラミングに関する新機能が加わりました。

Rubyも昨今、関数型プログラミングへのサポートが手厚くなってきています

プログラミング教科書大手オライリーからJavascript関数型プログラミングを行うための解説書が発行されました。

関数型プログラミングへの注目度は高まってきています

おそらく、みなさんは既にオブジェクト指向が何か、を知っています

でも関数型プログラミングとは何か、胸を張って語れる人は、周りに見当たらないかと思います

実際、オブジェクト指向によってプログラミングする方法は、わかりやすい解説があちこちにある一方で、

関数型プログラミングとは何か、何が良いのか、ということについての、よいまとめは見つけることはできませんでした。

この記事を読む方の中で、「関数型プログラミングを取り入れるか・取り入れないか」で切実に悩んでいる人は、おそらくいないでしょう。

この記事はあまりかいところに立ち入りません。関数型プログラミングを使う側の立場に立って、利点や向き・不向き、それが導くスタイルを書きました。

みなさんは鳥のように飛んで、高い空から関数型プログラミングとは何か、何が良いのか、を見渡してください。

ふたつのアプローチ比較

オブジェクト指向アプローチは、名前をつけてプログラムを整理する

関数型プログラミングアプローチは、汎用部品でなんとかする

オブジェクト指向アプローチ

Googleが近年リリースした言語、Goには、”継承”を直接サポートする仕組みが無いことが話題になりました。

また、Mac OSXの基幹ライブラリCore Foundationは、ライブラリ自体C言語で書かれているにもかかわらず、その設計方針は明確にオブジェクト指向です。

継承クラスは、オブジェクト指向必須条件ではありません。

オブジェクト指向本質とは、何でしょうか。

その本質とは"名前をつけて対象を識別し、それを扱うこと"、にあります

最もプリミティブなオブジェクト指向対象は、ファイルハンドラです。あるファイルを開いて、読み込んで、あるいは書き込んで、ファイルを閉じる。

これらの処理をまとめたら、わかりやすいですよね?

対象に関する処理を、対象の周りにまとめる。これがオブジェクト指向の基礎的な理念です。

識別することとイコール比較できることは、とても良く似ています

イコールによる比較は、オブジェクト指向では鬼門であることが知られています

PointクラスインスタンスとColoredPointクラスイコール演算をどう決めればいいかに、正解はありません(詳しくは"effective java"をご参照ください)。

また名前をつけて識別する対象は、フワフワしていてはいけません。

たとえば、"軍人階級"をオブジェクトにしたとしましょう。"大佐"クラスのある兵士名前フィールドや、性別フィールドを持っているでしょう。

ところで彼が昇格したときに何が起こるでしょうか。

新たに"少将"クラスインスタンスが作られます。"大佐"クラスを破棄する前に、名前性別、その他沢山のデータを引き継がなくてはいけません。フィールドを増やしたい場合はその都度コード修正を加える必要があります(*)。

なるべくイコール比較を避けたい。対象不安定なものはいけない。では何に名前をつけて、識別するか。そこにオブジェクト指向技術者の熟練度が現れるのです。

関数型プログラミングアプローチ

一方、関数型プログラミングでは、特定の何かに名前をつけるより、極力、汎用部品でなんとかしようとしま

さな関数を、集めて撚り合わせて、新しい関数を作る。

関数自体リストなどのデータ構造に詰めることもよく行われます

実は、関数型プログラミングというのは本質を表していません。

その真の名は、"値指向プログラミング"です。

関数をはじめとして、リスト・ツリーのようなコンテナ手続きを抽象化したもの、回路を抽象化したもの

あらゆる対象を値として、合成し、ときに分解し、新しい値を作ります

変数という概念必要ありません。

変数適用する処理を作りあげることが、とても簡単だからです。

四則演算定義されたデータを詰めたデータ構造もまた、四則演算可能だったり。

値をイコール比較することも、なんのそのです。

誤解を恐れずに言うと、オブジェクト指向トップダウンなのに対し、関数型プログラミングボトムアップです。

関数型プログラミングの利点

読みやすい・理解やす

関数型プログラミングサポートする言語には、沢山の汎用部品定義されています

このような構造インターフェイスとして、様々なライブラリが組まれているので、

たとえばモナドを知っていれば、30分程度でパーサー(解析機)を理解することができて、

パーサーを理解できれば、JSONパーサー・ XMLパーサー・markdownパーサー・C++パーサー ... などを理解するのはとても容易です。

理解やすいこと。これが関数型プログラミングの大きな利点です。

追記:

また、汎用部品と型のお陰で、ライブラリドキュメントが圧倒的にひきやすい、というメリットも有ります

Haskellな人がPythonにトライした結果 - Togetterまとめ

書きやす

関数型プログラミングは「厳密な事前設計必要とするため、簡単なことをやるのにも時間が掛かる」。

よく誤解されていますが、これはウソです。

スクラッチプログラムするのは、非常に手軽です。

>> map (*2) [1,2,3]
[2,4,6]

邪魔な”儀式”や、"おまじない"のコードが徹底的に撤廃されているためです。

関数型プログラミングコードは、潔癖かつ濃密です。

たとえばC言語でint hoge(int x,int y)が定義されているときhoge(3)はなんの意味も持ちませんが(コンパイルコケますが)、関数型プログラミングでは意味があり、実際に有用です。

上の例では、「掛け算をする」(*)関数は、二引数関数ですが、それに引数を渡して作られた「2を掛ける」関数(*2)は、一引数関数になります

関数型プログラミングでは、「簡単なことは簡単にでき、複雑なことは複雑にできる。ただし、間違ったことは殆どできないか、全くできない」。

多くのバグは、コンパイルエラーとして検出されます

また、静的型付けの力によって、コード補完は非常に強力になっていますインテリセンスの比ではないです。

たとえば、関数中のある表記の型を任意に表示できます(GHC/TypedHoles - HaskellWiki)。

やがてやってくる未来には、プログラムテキストエディタで書くことは時代遅れになっているでしょう。

統合環境サポートで、バグミスの少ない、スムーズプログラミングができます

そしてその環境で動くプログラミング言語は、関数型プログラミングサポートした言語なのです。

いつ関数型プログラミング

以下の様な兆候を感じたら、あなたはそのプログラム関数型プログラミングで書くべきです。

一般に、オブジェクト同士の相互作用が複雑になるほど、オブジェクト指向では手に負えなくなっていきます

そういうときは、オブジェクトを直接扱わず、替わりにその"相互作用"を扱うことで、複雑さを軽減するアプローチ有効です。

それこそが関数型プログラミングアプローチです。

オブジェクト指向の利点

初心者にとっては読みやすい・理解やす

特にオブジェクト指向有効なのはプログラミング初心者がそのコードをいじるかもしれないときです。

関数型プログラミングは、強固さと柔軟さの代償として、高い学習コストを伴います

そのため、初学者にとってはハードルが高いのです。

扱う対象があまり複雑でない時は、書きやす

オブジェクト間の相互作用が複雑でなく、着目している(名前をつけている)概念が安定しているとき

そして、プログラムをいじる人たちの間で共通理解が図れているならば、オブジェクト指向が有利です。

関数型プログラミングの得意分野はなにか

数値計算

遅延評価という機能によって、レガシー言語で扱えなかった、巨大な数を扱うことができます

分数を扱うことができます虚数もです。

関数型プログラミングで書かれたプログラムは、正確さが要求される、金融関連の業界で使われています

テキスト処理

手続きとしてパーサーを記述できるので、テキスト処理プログラムはより理解やすく、メンテナンスやすものになります

関数型プログラミングを知らない人は、「正規表現おk」と言いますが、

彼の書いた複雑な正規表現は、半年後には(書いた本人でさえ)理解できなくなっていることでしょう。

並行処理

手続き一般を扱うことができるので、途中で割り込みのある手続きの表現も容易です。

関数型プログラミングサポートしていない言語ではコルーチン(ファイバー)などをつかってなんとかするしかありません。

さもなくば、非並行処理では普通に関数として記述できるところを、並行処理のために、Builder,Strategy,Command,Interpreterパターンを駆使して書き直すことになります

Javascript使いの方は、Deferredなどの構造を使うでしょう(http://qiita.com/KDKTN/items/4c6986049d204f0645d8)。

C++使いの方はBoostで頑張りましょう。破滅的に解りにくいコンパイルエラーメッセージと格闘してください。

レシピ

もう少し簡単な例をあげます

あなたは、あるレシピにしたがって、自動的料理を行うマシン制御プログラムを書いているとしましょう。

料理レシピは、"手続き"ですよね?たとえば、カレー

1. まず玉ねぎを炒める。

2. 飴色になったら、肉を加えて炒める。

3. 野菜を加える。

4. 水を加えて煮る。

5. スパイスを加える。

しかあなたはこの手続きを関数として表現できるでしょうか。

…できませんよね?何故ならば、各ステップの"間に"、マシンのロボアームの位置や動きを調整する処理が必要からです。

これをオブジェクト指向でやろうとすると、各ステップ副作用として、それらの処理を行うことになります

そうすると、マシンが二機に増えた時などの変更量は、絶望的なものになります

あるいは関数として表現するのを諦め、手順全体をDSL記述できるようにします。

このアプローチ関数型プログラミング的です。しか関数型プログラミングサポートした言語の助けなしでは、そのDSL記述するために沢山のユーティリティコードを書かなくてはならないでしょう。

オブジェクト指向アプローチでこの問題をエレガントに解こうとすると、クラス化の粒度を上げる事になります

野菜クラスフライパンクラス、ボイルクラスフライクラス、焼き加減クラス、アームクラス野菜の大きさクラス、切り方クラス、焼き方クラス、"焦げたよ"クラスetc...

こうすると早晩レシピプログラムコードから消え去ることになります。上記のたった5行は、依存性注入のオブジェクトグラフを構築するコードに取って代わることになります。そこには沢山の挙動制御オプションとして付記されているのです。

カレーなど、ある種のレシピ限定することで、見た目の理解やすさを得ることができますが、一方それは表現力を損なうことを意味します。

C言語などではマクロを使うこともできますが、それは結局、関数型プログラミングアプローチ意味するところと同じになります。すなわち、補助のために沢山のコードを書くことになるでしょう。

GUI

iOSのAppstoreアプリは、"無料"と書かれたボタンを押すと、それが"インストール"ボタンに変わり、それをもう一度押すと、ダウンロードの進捗を表すインジケータに変わり、それを押すとダウンロードキャンセルできます

このように、位置は同じなのに、ステートに依って見た目と機能が変わるボタンは複雑です。

これをオブジェクト指向で実現しようとすると、

1. 三つの異なるボタンを同じ位置に置くか

2. 同じボタンが三つの異なる機能を持つか

という下らない問題にぶつかります

一方関数型では、"機能"、"見た目"、"状態"、を独立に扱って、それらを合成してボタンを作るので、迷うことはありません。

「同じ位置にあるUIオブジェクトは、コード上で(インスタンスとして)独立して、他から干渉を受けない」

この条件が満たされているうちは、オブジェクト指向GUIを実現することに無理はありません。

しかし、携帯端末のような小さい画面で、多くの機能を達成するためには、UI要素はコンテキスト依存的に複雑になりがちです。

近年、PCのディスプレイの大きさは、頭打ちになってきました。

画素数は増えているのですが、MacにおけるRetinaのように、複数ピクセルひとつドットを表すようになってきています

これは、ひとつの画面に置かれるボタンなどのUI要素の数は、これから先の未来で増えることはない、ということを意味します。

したがって、未来GUIプログラミングは、注意深く機能ピックアップして制限するというデザイナー努力を脇におけば、

関数型プログラミングの力を頼るしか無いでしょう。

はじめよう、関数型プログラミング

まり

Haskell さいこうなのおおおおおおおおおおおおおおおおおお!! おしっこ漏れちゃうのおおおおおおおおおおおおおおおおおおおお(゜∀。)ワヒャヒャヒャヒャヒャヒャ

1. google:すごいHaskellたのしく学ぼう を注文する。

2. Download Haskell自分のPCに導入する。

3. コンソールghciと入力して、対話コンソールを立ち上げる。

4. 次の関数コンソールに打ち込んで、結果を見る。即値で書かれているところとかをいろいろ変更してみて、感動する。

take 4 $ map (*2) [1..]

5. ステップ1で買った教科書を読んで、学ぶ。


追記:

いかがでしたか

ちまたには、関数型プログラミングの利点は変数が無いことだ、とか、より安全から、とか、より速いから、などという妄言が満ち溢れています

オブジェクト指向関数型プログラミングは、水と油ではありません。プログラマ自分プログラムに最適なアプローチを選ぶことができます

一般にはあまり知られていないことですが、Haskellにもオブジェクト指向へのサポートがあるんです(Lensライブラリ、これを使用したサードパーティライブラリ最近増えてきています)。

この記事を読んだオブジェクト指向プログラマあなたが、少しでも関数型プログラミングに(そしてHaskell)興味を持ってくださって、ホームセンター大人用オシメのコーナーが大賑わいになれば幸いです。。

2014-02-06

http://anond.hatelabo.jp/20140206180454

エラーメッセージ読まない馬鹿は滅んでほしい。

原因も対処法も親切に書いてあるのに

「動かない」

とか言う奴。

英語苦手でもexcite翻訳ぐらいしろっつーの。

客だったら飯の種だけどなー。

2013-12-18

http://anond.hatelabo.jp/20131218131730

できればそうさせたい。

diff見なくても、コミットの時に競合が起こってるはずなんだよ。

その人多分、エラーメッセージ読まないから、競合の解決方法とか理解してないんだよ。

先輩だけど「バージョン管理システムの使い方わかってます?」って言うべきかどうか。

2013-12-07

システムさんは四方八方に八百万言いわせてほしい

http://kabux.hatenablog.com/entry/2013/12/06/091824

現場の人からシステムさんに一言、いや二言三言いわせてほしい

適度に煽りつつベタベタ書くね。ラブ・アンド・ピース

最後まで泣くんじゃない。

システム開発ってなんでそんなに時間が掛かるの? 人月ってワケワカラン。ボッてるの?

システム一式○○万円でござい、と出すと「もっと具体的な根拠を出せ! そんなんで当社の社内決裁通らんわ!」って言われる。言われた。

具体的な根拠(=原価見積もり書的なもの)って何?っていうと、労働集約産業なので、そのシステム作るのに何人が何ヶ月張り付いたか、に帰結するんだよね。

プログラムコードの行数で原価算出する手法もあったりするんだけど、古い大企業や公的機関といったお固いところほど、人月による詳細内訳が【求められる】。

発注の前に、プロジェクトメンバー構成表(各人の実名入り)出して」とかね。開発現場激励という名目の視察チェックが不定期に入ったりとかね。もうね。なんだろうね?

人月計算見積もり出してプロジェクト動かしてるにも関わらず、システム会社人間が死んだ魚の眼で一日中キーボードを叩き続けてる理由。

技術力および経験不足で見積もりミスってる。(および、競争入札で一番安いとこに発注するって言われたから無理なダンピングしてる)

・進行中のプロジェクトおいて、上流マネジメントの失敗で追加仕様仕様変更が頻発してる。

・開発メンバーの中に役立たずが混ざってる。

・一人の技術者に3人月分ぐらいの仕事押し付けてる。

この全てでございます

最近裁量労働制トレンドから遅くまで煌々と働かせても残業代払わなくていいし、生かさす殺さずで搾り取ろう! ふぁいと!

なんでわかりにくい UI なの? なんでエラーメッセージ意味不明システム情報出すの?

UI 設計担当者うんこから

なんで大きな開発案件ほど、UI 設計にちゃんとした時間工数割かずに適当にやっちゃうんだろうね? 不思議

設計最初の段階で【画面仕様書】という名のポンチ絵を書いて、ユーザ承認が降りたらもうあとは動かしたりしないんだけど。

おおむね、システム開発一筋30年みたいな大ベテラン伝統の技を活かして固定画面でキーボード操作オンリー前世UI になるか、ロクな経験も無い頭でっかちの若手がドヤ顔で最新トレンドを取り入れてメニューがやたらパカパカ閉じたり開いたりする落ち着きの無い UI 設計になる。なった。

激しく使いづらいと、作ってる側も認識してるけど、その段階ではもうどうしようもない。ゆくみち戻れず。

現場の利用ユーザには大変申し訳ない限りだけど、これはもうシステム会社まかせにしてても現実問題どうにもならんです。

だってシステム会社は納品済ませれば仕事完了だし。その先毎日10年に渡ってうんこ UI と延々付き合い続けるのは、あなたがたなのだから

画面仕様書が提示されたら、懇切丁寧に読み込んでチェック入れて赤字だらけにしたものを「バーカバーカ」って言いながら突き返しましょう。

その手間隙は絶対に惜しんではいけない。

開発会社からユーザインタビュー時間を下さい」って言われたときに、日常業務が忙しくて時間が取れないって断るのは自殺行為だ。残業してでもたっぷり時間取れ。

エラーメッセージ意味不明システム情報出すのは、システム会社が100%悪いですね。

さすがにそこまでユーザ側に設計チェックさせろというのも無理筋な話。TCO に密接に関わるんだからおざなりにせず、もっと気合入れて丁寧に案内作りましょう。

メッセージシステム不具合が発生したため処理を中断します。詳しくはシステム担当にお問い合わせ下さい」とかやらないように。約束だよ?

なんでそんなに高いの?

ユーザ側の想いとしてはもっともな話。

本業利益ベースでウン億円も稼ぐ苦労に思いをはべらすと、感情的にもなりますわな。日々 100 円単位コスト削減努力血道をあげてるっていうのに!

このあたりはシステム会社の営業がちゃんと、ユーザが心から納得できるように丁寧に説明して理解させろ。頑張れ。超頑張れ

まあこれについては根本、大規模システムにおける競争入札制度の欠陥ってのが何十年も前から指摘されてて、全く改善の目処が立っていない絶望的な今が有るわけです。

ユーザ企業は「こんなこといいな、できたらいいな。空を自由に飛びたいな。さて、ハウマッチ?」で競争入札を求めてくるし。

システム企業側は「え? もうちょっと詳しく話を聞かせてくれないとなんとも…あ、とりあえず予算組のために総金額だけ知りたいですか。入札日は2週間後!? あわわ…えーと、んじゃ、どんぶりで…こんぐらい?」って杜撰見積出して来るし。

まあそんな適当な入札、勇気を出して見送ればいいんですよ。でもそんな適当入札しかないんですよね世の中。武士は喰わねど高楊枝、なれど妻子は喰わしていかねば。

スタートラインがそんなだからボタンの掛け違い一つで開発プロジェクトはいともたやす炎上するし、末端の開発人員はブラックだし、上層部はいつまで経っても終息しない開発とテストエンドレスエイトに夜も眠れぬ日々を過ごすし、できあがったシステムうんこユーザ側も大変だし。幸せってなんだっけ?

システムの要件定義契約と、実際のシステム開発契約を分ければいいんじゃないって皆が思うのだけれど、まあ現実問題これもなかなかねえ。どうすればいいんでしょうね?

結論

開発プロジェクト開始初期段階での相互コミュニケーション意識のすり合わせを行うのがなにより重要ですよねー(適当

2013-10-10

日本語力の5%も英語使えないエンジニアの現状

http://anond.hatelabo.jp/20131008141912

全く困らない。慣れる。

困らない。欲しいAPI検索日本語の時と変わらないし

馴染みの無い単語もあまり出てこない。

適切な単語の選択のセンスプログラミング経験でいくらでも身に付くので、

辞書があれば困らない。

エラーメッセージ検索するとよくStack Overflowなどが引っ掛かるが

質問、解答のコードと簡単な解説を読む程度なら全く困らない。

ある程度長い場合機械翻訳に突っ込むこともあるが意味が取れなかったことはない。

質問をしたことは無いが、コードエラーメッセージを簡単にまとめればなんとかなると思っている。

プログラムコメントと同じく作業内容の要約程度なら書ける。

まり気の利いたことは書けない。

  • Issue

Issueを要約したタイトルぐらいなら書ける。

内容をすべて英語で書こうとすると日本語の時の数倍の時間が掛かることになるため、できれば書きたくない。

所詮数行なので機械翻訳の結果を整形して書く程度は出来る

日常会話、ビジネス英語からきしで

はてブに上がってくる英語学習記事は開いてすらないけれども、

英語に抵抗さえ持たなければ、「技術の習得」という観点必要英語

技術勉強だけやっていてもなんとかなるんじゃないだろうか。

2013-10-09

Gmailからエラーメール

ユーザーからメールエラーメッセージについて質問

Gmai宛に送ったら、なにやら長文が帰ってきたというので確認してみたら…

: host gmail-smtp-in.l.google.com[173.194.79.27] said:

550-5.1.1 The email account that you tried to reach does not exist. Please

try 550-5.1.1 double-checking the recipient's email address for typos or

550-5.1.1 unnecessary spaces. Learn more at 550 5.1.1

え~っと…

このメールは配信できなかったよ、アドレスをよく確認して余計なスペースが入ってないか見てね…か。

で、詳しくは↓を見ろと。

http://support.google.com/mail/bin/answer.py?answer=6596

なになに?

「この Gmail ユーザー存在しません...」

だったらUser Unknownって書いとけ!

言葉細やかに丁寧な説明だと思うけど、

英語苦手なユーザーが悩む→ISPの余計な仕事が増えるんだが…勘弁してくれ。

2013-07-02

わーい、今日からやっと配属だという初日に、エクリプス環境設定で一人やらかす。

手順書読み飛ばしてた自分が悪いんだけど、ビルドが通らない理由が切なかった

enumの文字がエラーメッセージに表示されて、そういえばJava先生に、

昔のjavaってenumは使えなかったんだ、みたいな小話を聞いたのを思い出して

あ、コンパイラー設定かも..と見直したらJREバージョンが新しいままになってた(といっても1.6だけど)。

この新人大丈夫かな、って周囲の目もきつかったが、ボロい開発環境もひいたし、

もう、なんか疲れた。やってけるのかな。

2013-05-24

http://anond.hatelabo.jp/20130524071640

ブログ見たけど酷いな。俺なりの解決案を書いてみる。アホなこと書いてるかもしれないが、少なくとも仕事はうまくいってる。

1) 仕様あいまい場合適当コーディング

誰か話が出来そうな人に聞いて決める。納期現場人間関係が問題?そんなクソ環境とか知るか。

エラーメッセージは後でトラブルが起きたときに使うんだろ?トラブル解決に必要情報くらい分かるだろ。

2) 進捗報告

数字でなく、抱えている問題を報告させる。

90%終わってるけれど大きい問題を抱えてていつ終わるか分からないのと、30%しか終わってないけれど後は単調作業で先が読める場合、前者の方が問題だろ。

量じゃなくて質。量は適当。間に合いそうかそうでないかだけでいい。

3) 面倒な繰り返し作業やテスト

自動化は当然として、単調作業だけ一ヶ月はスケジュール組む方がアホ。適度に単調でない作業を混ぜろ。

4) 他人の担当箇所だからいいや

気づいたら報告しろ。嫌いな奴、知らない奴だから報告できない?お前のそのコミュ障をまず何とかしろ

5) 後から気づく

元増田と同じ。リーダーに報告しろ

6) 誰も知らないかもしれない仕様

UT作るなり適当ログ入れたら分かるだろ。分かったことからコメント入れていけ。ログ入れたら動かなくなった?そんな言語捨てろ。

番外) 極端に有能なプログラマー

時間が余ったら元増田の言うように仕事の精度を上げるようにしてる。優先度は低いかもしれないけれど、コードけが成果物じゃないから。

俺ですらこうなんだから、有能なプログラマーならもっといろいろ思いつくだろう。

そもそもの問題点

バレずに、そのまま自分が別の案件現場に移動するまで逃げ切れれば

万事解決なのである

俺は一つのシステムを開発から保守までやってるから、逃げようにも逃げられないし、サボったらそれだけ自分が後で苦しむ。逆に頑張れば頑張るほど仕事が楽になっていくからやりがいもある。まず完成したら終わりというクソ環境から逃げることを考えたら?

こんなクソ記事がホットエントリってお前らどんだけクソ環境で働いてるんだ?

http://d.hatena.ne.jp/totopon114689/20120111/1326266304

事情で眠れない。

1) 仕様あいまい場合適当コーディング

仕様曖昧からこうしておくね、よろしく」という一方的な通知をメールでぶん投げて終わり。

曖昧な箇所とは、どうでもいいと思われている箇所なので、たいていの場合実際にどうでもいい。

「ケース自体は洗い出せているが、具体的にどのようなエラーメッセージを表示すべきか?」お前は小姑か。どうでもいいに決まってんだろそんなもん。

このようなコーディングは作った本人以外にはよく分からない、いわゆるブラックボックス化され

コメントを書けよ糞馬鹿野郎。見られたくないならコミットコメントチケットにひっそり隠すという裏技もある。

2) 進捗報告

進捗などというもの存在しない。0%か100%かだ。中間報告が必要タスク粒度が荒すぎる。

こんなもんは21世紀ITエンジニアにとって基礎スキルすぎるので割愛する。

3) 面倒な繰り返し作業やテスト

自動しろよ糞が。以上。

その程度の事もできない低脳だから、周りに迷惑をかけないように刺身タンポポワークに回されているのだろうが。次は机の上に内線電話しかない部屋で一日中座ってる仕事かな。

4) 他人の担当箇所だからいいや

俺ならチームのいるチャット問題点だけ書いて終了。

担当者を探すことすら放棄する。直らなくても気にしない。それらはリーダー担当者自身の仕事であり、俺の仕事じゃない。

無視してもいいが、指摘と無視では、大体無視の方が総コストが高く付く。

5) 後から気づく

自分自身がサーバ管理者になっていれば、夜中に誰にもバレないようにコッソリ修正してしまう事もできるかもしれないが

越権行為をする、つまり自分キャリア危険晒してまで修正するほど仕事熱心な奴は勝手にやればいいが、俺は死んでもやらない。

「ここにこういう不具合が残っている、どうしよう」とリーダーに丸投げするだけでいい。システムを止めて入れ替えとかそういう事はリーダー勝手に考える。勿論「軽微な不具合なので放置する」という判断もあり得る(大規模なシステムには大抵「既知の不具合リストがある物だ)。「面倒なので客には黙っておこう」というのも、夜中にコッソリ修正するのと同じく、ハイリスクな判断であり、そんなもんは自分でやらずにリーダーに丸投げすべきだ。

6) 誰も知らないかもしれない仕様

ユニットテストを書けよ糞が。こんなもんは21世紀ITエンジニアにとって基礎スキルすぎるので以下略

番外) 極端に有能なプログラマー

人間は、能力限界まで能力を行使していないと劣化する。優秀な人間はそれを知っているので、「自分仕事を減らすための嘘」は、自分を守るために必要最小限しかつかない。糞みたいな仕事で一杯になったら?黙って転職するんだよ。

あるいは、時間仕事の精度を上げる方に費やすテストの充実、ドキュメントの充実、開発用ツールの整備、リファクタリング時間の都合でオミットされがちな要素などいくらでもあるし、優秀な人間ほどそうした要素が沢山見えている。

総じて、ブログ執筆者が無能すぎるだけだな。つうか、なんで2012年の記事がホット入りしてるんだろ。

ログイン ユーザー登録
ようこそ ゲスト さん