タグ

ブックマーク / bugrammer.hateblo.jp (13)

  • ユニットテストを書かないことについて - Line 1: Error: Invalid Blog('by Esehara' )

    はじめに 最近は、同じ職場で働いている人に対して、『テスト駆動開発入門』のを貸したり、自分自身でも全く更地のところにユニットテストを書くという作業をやったり、あるいは実装中にもユニットテストを書かないと、コードを書く手が少し滞ってしまうくらいには、テストに依存している自分がいる。 さて、ここ最近で一連のテストの話が各方面から出ていて、それらの議論について興味深く感じる一方で、たとえば自分はそうだけど、「執拗にテストを書いているけれども、これで前に進んでいるんだろうが」という罪悪感みたいなのを抱えている人というのは、それなりにいるんじゃないかと。特にユニットテストを腐らせて、テスト自体を負債にしてしまった人であるなら特に。 ここ最近の、アジャイル開発であったりとか、あるいはプログラマのためのみたいなのを開いたりすると、たいてい「他のことは良いからテスト書け」と載っている一方で、見回してみ

    ユニットテストを書かないことについて - Line 1: Error: Invalid Blog('by Esehara' )
  • It is too hard for me to 社会復帰 - Line 1: Error: Invalid Blog('by Esehara' )

    これはつらぽよ Advent カレンダー13日目の筈でした。 正直なことをいうと、僕の素行は余りにも良くはなかった。少なくとも、職歴は大きな穴が開いているところが幾つかあるし、やっと掴んだ職歴についても、一年続くのがやっとで、なかなか長続きすることはなかった。 経歴的に言うと、元々僕は製工場でアルバイトを一年間ほど続けていた。何のを製していたのかと言えば、アルバイト雑誌とか、あるいは風俗案内用の小冊子とか、そのあたりを製していた。もしかしたら、貴方がアルバイトを探そうと思って手に取った、無料で配布されている冊子だ。恐らくそういう類のは、背表紙がホッチキスで止められていると思うけれども、あのホッチキスが止められる前の、裁断された紙を重ねて機械に放りこむということをやっていた。この作業は若干面白くて、紙を揃えて入れなければならないのは当然なのだが、この紙を一枚ずつ取り出すために、紙の

    It is too hard for me to 社会復帰 - Line 1: Error: Invalid Blog('by Esehara' )
  • Maybe FizzBuzzの実装比較: HaskellとClojureに関して - Line 1: Error: Invalid Blog('by Esehara' )

    この記事はHaskell Advent Calender 2013 13日目の記事の筈でした。 この記事は間違った記事の可能性があります (2013/12/17 追記) Maybe Monadsが適切に使われていないというご指摘を頂いています。修正までにお時間をください。 Maybe Monadsの例は不適切だった可能性があります (2013/12/18 追記) このようなフォロー(?)を頂きました。 @esehara Maybe モナドの記事、もしかしたらこんな感じのことを表現したかったのかなーって思ってみたりしてみたでし https://t.co/crS7QvECfZ— (deffish *tai*) (@taiki45) 2013, 12月 17 ありがとうございます。以下については、間違いがあるので、気をつけてお読みください。 はじめに 関数型言語界隈には、安易に触れると燃えるトピ

    Maybe FizzBuzzの実装比較: HaskellとClojureに関して - Line 1: Error: Invalid Blog('by Esehara' )
  • 優秀なエンジニアがいなくてもやっていくために - Line 1: Error: Invalid Blog('by Esehara' )

    ITの世界には「銀の弾丸は存在しない」という合言葉がある。これはどうやら狼やドラキュラを退治するときの道具が「銀の弾」らしく、古典的な名著であり、未だに参照され続けている『人月の神話』というに収められている論文から来ているらしい。なぜ、「銀の弾丸は存在しない」と言われるのかというと、ある諸問題に関して一気に片付けられるような、そういう解決策は無い。少なくともそれらの問題に関しては泥臭く、忍耐を持って接しないといけないという話だ。川を綺麗にするためには根気よく缶を拾ったりしなければいけないのと似たようなものだろう。 元のドラキュラの話を知らないので、Wikipediaで聞きかじりに語るのだが、そもそも「銀の弾丸」といったところで、その「銀の弾丸」を使う存在というものがいる。ドラキュラの場合、それが「ヘルシング教授」である。ヘルシングといえば平野耕太の漫画を思い出すが、どうやら原作のドラキュ

    優秀なエンジニアがいなくてもやっていくために - Line 1: Error: Invalid Blog('by Esehara' )
  • 他人の技術に興味や関心を持つということ - Line 1: Error: Invalid Blog('by Esehara' )

    暫くスタートアップのお手伝いをしている。最近やったのだと、下のような感じ。 jeffh/sniffer · GitHubを使ってSphinxでDocstringをぶん投げる DjangoとJenkinsを連帯させ、ローカルでテストを廻す blockdiagを使ったモデル関係の整理 Muninを導入して、落ちる原因になってるサーバーリソースの監視 Hipchatを使っているので、GitHubやPivotal Trackerを連携させる Hipchatの遊び心としてHubotの導入 django開発の基礎としてBeProud社の『Pythonプロフェッショナルプログラミング』を薦める そんな感じ。上のことがどれだけ効いているかはわからないけれど、自分が楽しんでやれる環境に整備し、あとは他の人にも「だいぶ楽になったなー」という気持ちになれれば、こっちとしては万々歳。もしかしたら半分くらいは自己満

    他人の技術に興味や関心を持つということ - Line 1: Error: Invalid Blog('by Esehara' )
  • Vim Conference 2013とオープンソースの精神 - Line 1: Error: Invalid Blog('by Esehara' )

    Vim Conference 2013にお邪魔。 基的に、自分は何か思いついたことがあるとすぐに「何か発表させてくださいよー」ということで、LT枠か、発表者枠でネタを提出するわけですが、今回も「じゃあEmacsのevil-modeの話をするわ」という変化球を投げたところ、あっさりキャッチされてしまったので、発表させていただきました。少々準備不足の点もあって、退屈であった点は幾つかあったと思います。というわけで、自分のスライドは下にあげて、今回は自分の話を飛ばして話させて頂ければと思います。 オープンソースの精神 自分が、そもそもエンジニアの世界に入ろうとしたきっかけというのが、オープンソースというありかたがとてもキラキラしていたから、というのは、実は一つあります。オープンソースというのは、基的には「自分が必要だから」「自分が楽しいから」書かれるものですが、どうせ自分で書いて、それが企業

    Vim Conference 2013とオープンソースの精神 - Line 1: Error: Invalid Blog('by Esehara' )
  • スタートアップにとって、プログラミング言語の使用者数が多いということは問題なのだろうか? - Line 1: Error: Invalid Blog('by Esehara' )

    最近、とあるスタートアップのお手伝いを細々と続けている。自分は全く分からないのだけれども、ベンチャーの人材獲得が厳しいらしい、みたいな記事を読んでいた。そこであげられていた言語は、PHPRubyだったが、自分はPythonを使っていて、結構仕事を探すのに苦労したりしていた。当然のことながら、自分のスキルセットが余りにもWeb向きではないし、さすがにポテンシャル云々とも言ってられない歳ではあるので、仕方ないかなと思いながら、今のベンチャーで、いろんな雑用的な仕事を行ったりしている。 で、そこのベンチャーで「Python仕事なかなかないんですよねー」みたいな話をしたら、「あれ、Python仕事、至る所にあるよ」と言われて、あれ、これって何かミスマッチが起きているのかなと思ったりもした。お金は寂しがり屋であるから、お金のある人のところにいくんやで、という話があったか、仕事も「元々仕事が多い

    スタートアップにとって、プログラミング言語の使用者数が多いということは問題なのだろうか? - Line 1: Error: Invalid Blog('by Esehara' )
  • 重要なのはオブジェクト指向じゃないと思うんだよ - Line 1: Error: Invalid Blog('by Esehara' )

    最近になって、オブジェクト指向がよくわからないという御仁とご一緒することになった。別段、それ自体が悪いことではない。確かに、その人の書いた、以前のコードというのはめちゃくちゃであった。当然のことながらif文は何十にも繰り返されているし、その中でネストが3つにも4つにも増えていくという恐るべきコードだ。そして、どうやら僕の前に、教えてくれた人がいるらしく、その人に「オブジェクト指向というのを教えてもらったから、もう少し上手く書けるようにになっている筈だ」ということを言っていた。 僕はそのことに、特段ケチをつけたいとは思わない。誰だって無知から始まる。僕もオブジェクト指向にとんちんかんなことを言って恥をかくことがある(もしかしたらこれからもね!)。無知が恥なのではなく、学ばない姿勢が恥なわけだから、僕はそういうのはいいなあ、と素直に思える。しかし、どうも僕は引っ掛かっていることがある。それをメ

    重要なのはオブジェクト指向じゃないと思うんだよ - Line 1: Error: Invalid Blog('by Esehara' )
  • 一人でコードを書きなさんな - Line 1: Error: Invalid Blog('by Esehara' )

    とりとめのない話をメモがてら。 最近、コードを読むことが多くあるのだけれども、「このコードは一人で書いているな」という感想を覚えることが多い。もちろん、基的にはコードというのは、物理的には一人で書くものであるのは間違いないのだが、たぶん、それとはまた別種のものだ。 僕がこの世界でメシをう数年前に、PHPユーザーは他の言語を知らないから、他の言語の良いプラクティスを知らないという批判が議論を呼んだことがあるようだ。このさいPHPはどうでもよく、問題は「他の言語の良いプラクティスを知らない」ということだ。プログラミング言語というのは、そのときに共存しているお互いのパラタイムと関係している。例えば、最近ならJava8がOption型を導入しようとしているのは、やはり「関数型言語」というのが成熟してきて、その方法論が有益なものとして受け止められるようになってきたからだ。C++もラムダを取り入れ

    一人でコードを書きなさんな - Line 1: Error: Invalid Blog('by Esehara' )
  • なぜAltJSだったのか、そしてこれからもAltJSなのか [東京Node学園2013] - Line 1: Error: Invalid Blog('by Esehara' )

    東京Node学園でライトニングトークをしてきました。下がその資料です。 マイナーAlt JS百花繚乱 from Esehara Shigeo まずは、スタッフの方々、LTをAcceptして頂き、ありがとうございました(ちなみにPythonではPycharmのコミュニティーエディションを使ってます)。 ちょっと酔っ払って書いてるので、少し「クサい」ところもありますが、お付き合いして頂ければと思います。 全体の感想 まず、自分の話をするまえに、礼儀として全体の感想から。 で、感想なのですが、個人的に一番面白かった発表はECMAScript6が、現状としてどのような仕様になっているかという話でした。実はひっそりと『ECMA-262 Edition5.1を読む』というを買っていて、ECMAScriptってJavaScriptが元にしている仕様でしょー、くらいの浅はかな理解だったのですが、その浅は

    なぜAltJSだったのか、そしてこれからもAltJSなのか [東京Node学園2013] - Line 1: Error: Invalid Blog('by Esehara' )
  • 計算機コンピュータにおけるFizzとBuzz(PyCon2013復(習|讐)編) - Line 1: Error: Invalid Blog('by Esehara' )

    PyConでFizzBuzzについて話をしてきました。いろいろ考えた結果、強引な英語でやるということをやりました。笑ってくれた人が半分くらいいて、真面目に聴きたい人はいらいらした感じになったのは申し訳ないです。ちなみに、スライドはしたのところにあります。 Fizz and buzz of computer programs in python. ※ブックマークでのご指摘通り、19ページの部分でelifが抜けていたので、意図通り動かないことがわかりました。ありがとうございます。 で、今回のブログ記事に関しては、当は話したかったけど話せなかったことについて補足説明をしたいと思います。 FizzBuzzという題材について そもそも、なぜFizzBuzzという題材を選んだのか、については以下の通り。 FizzBuzzには「反復」と「分岐」という二つのポイントがある 「反復」と「分岐」と一口にいっ

    計算機コンピュータにおけるFizzとBuzz(PyCon2013復(習|讐)編) - Line 1: Error: Invalid Blog('by Esehara' )
  • 「値が無い」ということをどう表現するか、あるいはOption型について - Line 1: Error: Invalid Blog('by Esehara' )

    はじめに 現在、「イケている」と呼ばれる関数型言語について、大抵の場合は「Option型」と呼ばれる型が実装されていたりします。具体的には、OCamlとScalaであり、HaskellにもMonadの一つとしてMaybe型というものがあります。 この「Option型」とは何か、といえば、要するに「値があるかどうかわからない型」という型であり、値として「値を持っていない」か、「値を持っている」という二つのパターンをとります。そして、「値を持っている」という状態のときだけその値に対してアクセスすることができます。 とはいえ、これだけだと何が嬉しいのかさっぱりわかりませんので、その辺りについて、少しだけメモしておきます。 「値が無い」ということを表現すること 素朴に考えて、「何らかの値が無い」ということを示すためには、二つの方法で表現することが出来ます。 値が無い場合は、None(Python

    「値が無い」ということをどう表現するか、あるいはOption型について - Line 1: Error: Invalid Blog('by Esehara' )
  • Pythonのlambdaだけで、Schemeのcond(条件分岐)っぽいものを実装する長い道のり - Line 1: Error: Invalid Blog('by Esehara' )

    はじめに 最近はずっとScheme(いわゆるLispの方言)とかそういうのをいじっていたせいなのか、「あー、関数型っぽく考えてえなあ」という、いわゆる関二病(関数型言語を勉強して二ヶ月目にかかる病気)になってしまっていた。で、そういった「関数型」によくあるアプローチをPythonで書き直した場合は、どういう形になるのだろうか、と思ったので、興味がてら、幾つかのサンプルを書いてみる。最初に、condを実装してみようと思う。 ちなみに、同じようなことを過去に考えていた人はいたようで、fn.pyという名前で公開されていたりします。 実装 例えば、今から階乗を算出する関数を定義してみます。この場合、関数を定義するのに、lambdaだけしか使えない、という縛りをつけます。もちろん、既存の階乗を求める関数を使ってもいけない、とします。 まず、単純に関数のテンプレートを考えてみます。関数のテンプレートは

    Pythonのlambdaだけで、Schemeのcond(条件分岐)っぽいものを実装する長い道のり - Line 1: Error: Invalid Blog('by Esehara' )
  • 1