タグ

論とProgrammingに関するch1248のブックマーク (242)

  • コードに対してコメントを書くと実装に関するコメントになる - きしだのHatena

    おととい、渋谷JVMというイベントがあって登壇させてもらったんですが、そのあとビール飲んでるときに、ぼくが「コード書く前にコメントだけ書くのいいよね」と言ったあとの返答としてきょんくん(kyon_mm)が言った言葉。 全体としては 「コード先に書いてそのコードに対してテストを書くと実装に対するテストになるし、コードを先に書いてそのコードに対してコメントを書くと実装に対するコメントになる」 という感じ。 ここに至るまでの話もおもしろかったんだけど、ここでは、コメントについて書いてみます。 まず、実装に対するコメントってどういうのかというと、こういうの。 id = findId(name); if(id == -1){ // idが-1だったとき登録 register(name); } いやそれはコード見ればわかるから、ってやつですね。 これは、こうやるとより適切です。 id = findId

    コードに対してコメントを書くと実装に関するコメントになる - きしだのHatena
    ch1248
    ch1248 2015/04/20
    Test FirstならぬComment Firstか。
  • ソフトウェアの技術革新って必要なのかな?

    プログラマの間では昔から、この手法は処理が遅いだとか、無駄が多いだとか、再利用を心がけろだったりとか 様々なやり方で、ソフトウェアをチューンナップして処理速度を上げるためのやりとりが際限なく 繰り返されているけど、だいたいどれもハードウェアの技術革新によって記録は塗り替えられてないかな。 そりゃ、ミドルウェアレベルでは全てのパフォーマンスに影響してくるので、ちまちまとした 改良が加えられるべきなんだけど、ソフトウェアレベルではどうなの? I/Oに引きずられるから、I/Oの処理は最低限に抑えるってのが昔から定説だけど それもSSDの登場で、かなり緩和された感があるし、結局プログラマの努力って ハードウェアの努力には追いつかないし、無駄なのではないかと思ってる。 10年前を支えたプログラム技術で今も生きているものってある? オブジェクト指向とかプログラムのわかりやすさを追求したものは別でね。速

    ソフトウェアの技術革新って必要なのかな?
    ch1248
    ch1248 2015/04/15
    パフォーマンスの話かと思っていたら、急にFF3の話になって困惑。
  • コードコンプリートを再読した - $shibayu36->blog;

    以前職業プログラマーなら必ず読むべき「Code Complete」 - $shibayu36->blog;や補足 - 職業プログラマーなら必ず読むべき「Code Complete」 - $shibayu36->blog;で紹介したコードコンプリートを再読した。 Code Complete 第2版 上 完全なプログラミングを目指して 作者:スティーブ マコネル日経BPAmazonCode Complete 第2版 下 完全なプログラミングを目指して 作者:スティーブ マコネル日経BPAmazon 一年前はどちらかというと、コードのスタイルの話とか、条件をどうやって綺麗に書くのかとか、コメントはどう書くのかということを学びたくて読んだけど、今回はクラス設計をどうしていくべきかとか、チームでのエンジニアリングをどうしたら良いかとかを中心に読んでいった。 やっぱり学びたいと思っている内容が違うとそ

    コードコンプリートを再読した - $shibayu36->blog;
  • 共通化でモチベーションと効率が低下した話 - Qiita

    自分は普段ソーシャルゲームの開発に関わっていますが、群雄割拠のグリモバ全盛期にその開発を効率化するために社内ではいろいろな取り組みがなされました。そのひとつにアプリ別ではなく機能別のチームを作るということがありました。結果としてそれは失敗だったと言えるのでそのことについて書いていきます。 背景 当時のソーシャルゲームの主流はカードゲームで、クエスト・レイドをこなしつつガチャで引いたカードを合成して強化していくスタイルが一般的でした。そしてその多くがシステムはほとんど同じで見た目だけを変えた「柄替え」アプリでした。 その中で行われたのが二つの共通化です。 コードの共通化 今までのアプリでは元のアプリのソースからフォークするなどして別のプロジェクトとして独立させそれに対して各チームが開発を行うと言う感じでしたが、今回の共通化ではゲームのコアとなるロジック部分をサブモジュールとして分離し、各アプ

    共通化でモチベーションと効率が低下した話 - Qiita
  • 解析まとめ

    最終更新:2017/02/06 SFC版DQ1 状況再現について - シドー戦に加筆 2014/09/14 DQ2(SFC)マドハンドバグについてを追加 2011/10/03 DQ2(SFC)パルプンテ蘇生バグについてを追加 2011/09/17 DQ1,2(SFC)乱数生成についてを追加 2011/07/25 「トラマナ」ページに棺桶時の扱いに関して追記 DQ1,2(SFC) バグ系 マドハンドバグについて(外部ページ) グレムリンバグ回避の手引き<未完> DQ2大灯台グレムリンバグの具体的な条件と対処法(新) DQ2大灯台グレムリンバグの発生条件(旧) DQ2パルプンテ蘇生バグについて 仕様系 乱数生成について トラマナの仕様について 福引に関して 味方への状態異常確率・魔除けの鈴・悪魔の尻尾 グループ内攻撃ターゲット決定・メタルはぐれのターゲットぶれ 逃げ確率と確定逃げ条件 物理ダメ

  • ○周年 - Interdisciplinary

    前のブログ開設から合わせて9年?ですかね。結構長くやってますな。 更新頻度は少なくなってきてますが、ぼちぼち続けます。読んで下さっている方には、これからも、よしなに。 今年の振り返りとして、読んで、良かったな、と思ったの紹介。 ▼ プログラムはこうして作られるプログラマの頭の中をのぞいてみよう 作者: 平山尚(株式会社セガ)出版社/メーカー: 秀和システム発売日: 2013/09/25メディア: 単行この商品を含むブログ (5件) を見るプログラミング関連ので、全くの初学者向けのものとしては、私が知っている中で最良。用語より概念と構造を先に教える、という私の標語?に合致しています。これこれこういう用語がある。その用語はこういう意味・定義である、というのは、その語を知らない人にとっては、用語と概念を一緒に憶える必要があって、それは負担。そうでは無くて、これこれこういう論理構造や概念があ

    ○周年 - Interdisciplinary
  • Shibu's Diary: 「納品をなくせばうまくいく」を読んでません

    渋日記@shibu.jp 渋川よしきの日記です。ソフトウェア開発とか、ライフハックを中心に記事を書いていきます。 「納品」をなくせばうまくいくというが流行っているみたいです。僕はまだ読んでいませんが、タイトルを一目見れば、倉貫さんファンからすると内容を想像するのは難しくないでしょう。きっと今まで倉貫さんが語ってこられてきたことの集大成であろうと想像しています。 「納品をなくせばうまくいく」の感想part1~ソフトウェア業界のビジネスモデルが抱える問題 こちらのブログにはこのモデルを採用することでいろいろ問題が解決するよね!ということが書かれていますが、こちらに書いてない話で、「なぜダメと分かっている方法論がまかり通っているのか」をまとめてみたいと思います。もしかしたら倉貫さんのにすでに書かれているかもしれませんが。 ムダのない予算管理がムダを生む ダメなモデルを使い続けているのは、基

  • クソコードと呼ばない - ppworks.jp

    新しい現場にはいったときに心がけていること、クソコードと呼ばないこと。 誰かのコードを読んでいるとそりゃまあクソコードを見つけることがある。その時どう立ち向かうかという精神論の話。 例えソレがそうであってもソレを口にするとネガティブが蔓延する。思ってもイイ、でも言ってしまってはならない。あるフェーズに置いては必要だった し、現に動いていて価値を提供している のだ。あるべき姿を叫ぶの簡単だ。あるべき姿を見ているなら行動しないといけない。見つけたらリファクタだ。出来るところからやるんだ。 Shut the fuck up and write some code & 許可を求めるな Pull Request せよ— 🌈KOSHIKAWA (@ppworks) 2014年5月23日 クソはクソと言える空気や文化は大事。良くないものを指摘できるようにはしたい。口の前に手を動かそう。プログラマーなら

    クソコードと呼ばない - ppworks.jp
    ch1248
    ch1248 2015/02/09
    3000行のメソッドに何の悪びれもせず200行追加する人の事を思い出した。
  • モダンなVBAの書き方

    「糞VBAコードのメンテナンスが減りますように。なむなむ」 VBAは、非常に古い(VB6ベース)の言語なので、既存のコードは、非常に読み難い物が多いです。しかし、最近、ちょっとしたことをVBAで書いちゃうというソリューションは、案外一般的になりつつあるように思います(これ自体は悪いことではないと思う)。新しく書くVBAのコードをどう書くべきか?という自分なりの意見を纏めてみました。これは、VBAで完全なOOPをしろと言っているものではなく、単純な構造化された小さい関数を組み合わせてプログラムを書く方針(関数型言語のことではない)を勧めるものです。 変数宣言を強制する! これは、自分のため。とにかく書く。オプションで設定しておけば自動で挿入される。 変数宣言は、必要になったところで宣言する! そのコードを読む人に、いちいち、関数の先頭までスクロールさせるな。変数の有効範囲をなるべく狭くするこ

    ch1248
    ch1248 2015/02/08
    配列多用は最悪だけど、クラス使うと遅くなるのがなあ……。
  • Excel VBAつかいまくってるからそろそろ腹にためてることをちょっと書き出すか - oe-roelのカオス落書き帳

    相変わらずExcel VBAを使いまくってる日々なので腹にためてることをちょっと書き込もうと思った。なんか前にも書いたかもしんない。知らない。 以下はバッドノウハウの類も含むカオス内容。 if文内に書いた条件は全て評価されることに注意する。CやJavaのようなショートサーキットタイプではない。 それでもif文の評価コストに慎重にならないこと。 他言語で&&で置き換えられる内容をif文のネストで表現している奴を見たらVB出身を疑うことができる。 変数の通用範囲がプロシージャレベルであることに注意すること。ブロックで通用範囲が消えたりしない。 Dim hoge as New ClassNameとした場合、hogeが始めて使われる場所で変数にNewしてSetされる。その後プロシージャ内でこの宣言が実行されたとしてもNewされることはない。プロシージャレベルでのオブジェクトの使いまわしが怖いならA

    Excel VBAつかいまくってるからそろそろ腹にためてることをちょっと書き出すか - oe-roelのカオス落書き帳
    ch1248
    ch1248 2015/02/08
    だいたい同意。
  • いげ太の日記: ぼくらが VBA を書く理由

    2014年3月24日月曜日 ぼくらが VBA を書く理由 誰かが言った。VBA のここがダメだと。その dis は妥当なものであり、僕も頷けるところだった。自分で言うのもなんだが、僕は VBA についてよく知っている、まあそれなりには。先の dis についても、僕はその解決のための API を知っていて、それらをどう組み合わせれば便利に使えるかについてのアイデアさえあった。ならば、それを作って示すというのがプログラマー分であろう。あとはこの面倒くさいと思う気持ち、VBA なんかのために貴重なプライベートの時間まで割きたくないと判断する僕の真っ当な脳内スケジューラ実装においてどんな理由を与えて当該タスクのスタベーションを回避するかという問題であった。VBA は残念だ。どこがって、なんかもう全体的に。でもこのアイデアはその残念さを払拭とまではいかないが、いくらか緩和させる可能性を持っている

    ch1248
    ch1248 2015/02/07
    同じVBA好きの人間にとって、F♯の第一人者がこう言ってくれる事がどれだけ心強いか。
  • 独学でプログラミングを始めて1年ほど経つので読んだ書籍をまとめてみる(だいたい50冊以上(適当)) - プログラミングを学ぶ唯一の道、それはプログラムを実際に書いてみること

    2015-01-24 独学でプログラミングを始めて1年ほど経つので読んだ書籍をまとめてみる(だいたい50冊以上(適当)) 書籍 独学でプログラミングを始めて1年ほど経つので、この1年を振り返るためにも読んだ書籍をまとめてみようかと思います。 以下のほとんどの書籍を通読していますが、なかには途中で投げ出したものも含まれます。 まずは、自分をプログラミングの世界へ導いてくれた、この書籍:プログラミング言語C 第2版 ANSI規格準拠作者: B.W.カーニハン,D.M.リッチー,石田晴久出版社/メーカー: 共立出版発売日: 1989/06/15メディア: 単行購入: 28人 クリック: 721回この商品を含むブログ (206件) を見るこのには、さまざまな意見・見解があるかと思いますが、自分は、ここに書かれている「論理」に強烈に惹かれてプログラミングを始めたので、格別の思い入れがあります

    独学でプログラミングを始めて1年ほど経つので読んだ書籍をまとめてみる(だいたい50冊以上(適当)) - プログラミングを学ぶ唯一の道、それはプログラムを実際に書いてみること
    ch1248
    ch1248 2015/01/28
    C++の良書、軒並み絶版になってる影響が出てる感じ。
  • Qiitaで何があったのか

    Qiitaで起きたちょっとした騒ぎについて、事情を知らない人たちが混乱しているみたい。 自分が知っている範囲で、何があったのかを書いておくことにする。� 登場人物については、具体名を出すと迷惑かと思うのですべて伏せる。 知りたければ調べれば分かると思う。 ちょっと前の話何ヶ月くらい前だったか、Qiitaでちょっと�話題になった投稿があった。 Swiftについての話だったからWWDC2014よりは後の話。 この投稿をしたのが今回の騒ぎの中心人物。名前を言ってはいけないあの人。以下Kとする。 で、何が話題だったかって、ものすごい分量のテキストでそれっぽく書いてあるんだけど�内容は�(というかタイトルからして)デタラメ。 でもものすごい分量でそれっぽく書かれていると信じてしまう人もいるようだった。 コメント欄には正しい指摘をする人もいたんだけど、Kは否定的な指摘(客観的に見て正しい指摘なのだが)

    Qiitaで何があったのか
  • λ計算とは コンピュータの人気・最新記事を集めました - はてな

    まず無限個の変数が与えられているとする。変数は通常x, yなどど記述される。変数から出発し、次の操作を繰り返して得られるものをλ式と呼ぶ。 λ抽象 λ式Mと変数xから、式λx. Mを生成する操作。これは、変数xに引数を受け取り、値Mを返す関数を意図する。Mに含まれる変数xはこのλにより束縛されるという。ただし、すでに束縛されているものは除く。 関数適用 二つのλ式M, Nを並べて結合した式MNを作る操作。これは式Mが表す関数に引数としてNを与えることを意図する。 またλ抽象や関数適用の範囲を明確にするために括弧を用いる。 例: (λx. xx)(λx. xx),λf.(λx.(f (x x)) λx.(f (x x)))

    λ計算とは コンピュータの人気・最新記事を集めました - はてな
  • ソフトウェアエンジニアがたどる成長過程と失敗の行きつく先 | POSTD

    これからご紹介する私の試みはなかなか難しい側面があり、物議をかもすかもしれません。また、お見せするのは初めてなので完璧とは言えないかもしれません。私はソフトウェアエンジニアのスキルとその影響力を評価するシステムを開発しようとしています。少なくとも、プログラマが成長していく理想的な成長過程を大まかに描いてみようと思います。評価スコアは0.0から3.0まであり、それぞれの数字は専門能力を開発していく際の出発点を表しています。 このシステムは主にビジネスの観点から見た、ソフトウェア業界が求めるものに基づく 実務的な スケールです。数学的な才能や高速アルゴリズムを書く能力、Linuxカーネルの内部構造に関するプログラマの理解の深さなどを評価するスケールではありません。もちろんこうした能力は重要ですし、通常、エンジニアのスキルとともに伸びていく能力ですが、私のシステムが焦点を当てたいのはそこではあり

    ソフトウェアエンジニアがたどる成長過程と失敗の行きつく先 | POSTD
  • http://coder.lv9.org/softwareEngineering.html

  • IIJ Research Laboratory

    ネットワークの計測と解析 インターネットの使われ方やネットワークの挙動を把握する事は、ネットワークを運用し、その技術開発を行う ために欠かせません。しかし、観測で得られるデータ量は膨大ですがノイズが多く、また、観測できるのは極めて限られた部分でしかありません。そこで、膨大なデータから意味のある情報を抽出したり、部分的な観測からより一般的な傾向を推測する事が必要となります。... インターネット基盤技術 速くて、安全で、信頼性が高く、使いやすく、など、インターネットサービスへの要求はますます高まっています。これらの要求に応えるために、インターネットの 基盤技術も日々進歩しています。いまやインターネットはつながるだけのサービスではなく、高度で複雑な機能を備えた社会基盤となりました。IIJ技術研究所は、インターネットの基盤として実現が期待される機能を提供するために、さまざまな技術課題に取り組んで

  • C++でのポリモーフィズムと継承と、コード保守性 - negationの日記

    結論から言うと「ポインタを使うしかない」ということなのですが,まずはいくつかの問題とパターンを見てみましょう. 初めは、C++で継承を使ったポリモーフィズム実現まで まず例題として複数クラスが関連したものを想定します.今回は下記のような小説棚をクラスで書くこととします. class Novel{ //小説クラス public: std::string title; //タイトル std::string author; //作者名 std::string illustrator; //挿絵作者名 //コンストラクタ Novel(); Novel(std::string t, std::string a, std::string i) : title(t), author(a), illustrator(i){}; virtual ~Novel(); //「==」演算子定義 bool op

    C++でのポリモーフィズムと継承と、コード保守性 - negationの日記
    ch1248
    ch1248 2014/11/10
    設計の問題に見える。クラスをインタフェース部と実装部に分けて、pimplイディオム使えば上手くいきそう。
  • はてなブログ | 無料ブログを作成しよう

    オーベルジーヌ実レポ べ物の鼻塩塩(未だに通じるのかな) オーベルジーヌというカレーをご存知だろうか 都内にあるデリバリー専門のカレー屋で、 ロケ弁などで大人気の格欧風カレーが楽しめるらしい いいな〜 いいな〜オブザイヤー 都内の奴らはこんな良いモンってんのか 許せねえよ………

    はてなブログ | 無料ブログを作成しよう
  • プログラミングの勉強で重要だなとおもったこと

    1、あらゆる意見について盲信してはいけないインターネット上ではとりわけ多いけれど、ある意見を適当に述べている人というのは多い。適当に述べている……とは、別に悪気があってそうなったわけじゃなくて、人もよくわかっていないけど「なんかうまくいったからとりあえずブログに書いた」風のものがあるということだ。例えばブログに書いてあったソースをそのまま貼付けてコンパイルエラーになることがあるけれど、それには色々要因があって「人がブログ上で書いたまま検証していない」「サイト上でレイアウトが崩れた」「環境が違う」等いろいろある。自分のわからないものに関しては「そうなんだ。まぁとりあえずそういうことにしておこう」ぐらいでいい。断定口調で「絶対こうだ」と書いている人も、間違っていることが多々ある。それはでもそうだ。「ほんとうかなぁ?」と思ったら疑った方がいい。自分しか信じてはいけないし、その自分すら疑った

    ch1248
    ch1248 2014/10/28
    同意。エクセルがクソ、というよりエクセルを使う人の多くがクソ、という気はする。