タグ

programmingに関するmizogucheのブックマーク (376)

  • 設計書論争での独り言 - うさぎ組

    重要な事 これは僕の経験に基づくものであり、世の一般的な皆々様にはあてはまるかどうかは存じ上げません。 僕がマイノリティかマジョリティかどうかはよくって、こういう状況もあるというだけです。ツッコミは大歓迎ですが「それはコーナーケース過ぎる」というご意見には「そうかもしれませんね。」としか答えようがありません。 あと、基的に@otfに向けた記事なので、言葉足りていない部分が多いと思いますが、彼とは職場が一緒でいろいろ共有できるので気にしていません。皆さんには言葉足りていなくってすいません。という謝りはすれども、反省はしない程度の感じ。 追記>> 言いたい事書いてなかった。 ただし、 設計書否定するなら、ここにある事くらい論破するくらいの人じゃないと一緒に仕事したくない。逆に、ここに同意するくらいなら設計書否定すんなよ。自分の仕事を呪え。 と思ってる。 <<追記 ではちょいちょいカテゴリ分け

    設計書論争での独り言 - うさぎ組
  • ソフトウェア開発プロジェクトをとりまく6つの誤解〜プログラミングを経験しないとわからないこと | Social Change!

    続きを書きました → 伝えなければ伝わらないという当たり前の話 ソフトウェア開発に関する相談を受ける中で、どうもソフトウェアというものの特性について誤解をされているな、という思いを持つことがあります。 そうした場合、聞いてみるとプログラミングの経験が無かったり、殆どプログラミングには携わったことがないという方が多いです。 ソフトウェアを開発しようとするならば、ソフトウェアという特性をよく知った上で、プロジェクトは運営した方が良いし、うまくいくはずです。そしてソフトウェアならではの特徴を知るのに、プログラミングの経験はとても重要です。 この記事では、プログラミング経験の無い方が陥ってしまいがちな、ソフトウェア開発にまつわる誤解について考えてみました。 Harry Potter is Ready for Divination / weekbeforenext 誤解:既にあるソフトウェアを流用し

    ソフトウェア開発プロジェクトをとりまく6つの誤解〜プログラミングを経験しないとわからないこと | Social Change!
    mizoguche
    mizoguche 2012/08/07
    「誤解:正確な見積もりを出すことが出来る『始める前にざっくりで良いんで見積もり出来ますか?』」最近これが多くて困る。
  • MOVEは望まれなかった子 - the sea of fertility

    なにやらMOVEが話題です。 MVC is dead, it’s time to MOVE on. http://cirw.in/blog/time-to-move-on [翻訳]MVCは死んだ。MOVEするときがきた きしだのはてな http://d.hatena.ne.jp/nowokay/20120704 Twitterで「”MOVEは生まれた瞬間死んだ” って記事まだー?」って騒いでたら「お前が書けよ」の流れだったので息抜きに書きます。息抜きなので図が無いのは勘弁してください。 MOVEが生まれていない理由 この文中ではMOVEが生まれた理由はMVCの問題点に関わるとされており、そのMVCの問題点としてされているのは次の2点です。 MVCではControllerが肥大化する MVCは10年古い技術で設計されていて、最新のプログラミングパラダイムに対応していない。 しかしこの理由のう

  • MVC is dead, it's time to MOVE on.

    MVC is a phenomenal idea. You have models, which are nice self-contained bits of state, views which are nice self-contained bits of UI, and controllers which are nice self-contained bits of … What? I’m certainly not the first person to notice this, but the problem with MVC as given is that you end up stuffing too much code into your controllers, because you don’t know where else to put it. To fix

  • マルチスレッドプログラムのデバッグ: 柴田 芳樹 (Yoshiki Shibata)

    コードレビューの視点 003」では、「マルチスレッドプログラミングに注意する」と題して、次のことが必要だと述べました。 マルチスレッドプログラミングに関する基礎知識をすべてのソフトウェアエンジニアがきちんと習得していること 書かれたコードは、マルチスレッドプログラミングに関する豊富な知識と経験を持つ人がきちんとレビューをする 書かれたコードは、自動テストが実行できるようになっていて、様々なプラットフォーム(単一コアから複数コア、あるいは、マルチプロセッサー)で長時間ランニングテストを行う。さらに、同時にシステムに別の負荷(CPU、HDなどへの負荷)をかけたランニングテストも行う そして、テストが止まっている場合には最優先デバッグすることも重要だと述べました。しかし、重要ことを書き忘れていました。デバッグは、テストが止まったままの状態でデバッガーをプロセスにアッタッチして行うということです

    マルチスレッドプログラムのデバッグ: 柴田 芳樹 (Yoshiki Shibata)
  • 例外設計における大罪 - 契約

    PHPカンファレンス2012 & WordCampTokyo2012 LT発表資料です。 タイトルの元ネタ: http://www.amazon.co.jp/dp/4094512624

    例外設計における大罪 - 契約
  • コードレビューの視点 009: 柴田 芳樹 (Yoshiki Shibata)

    修正後も自分で見直すコードをレビューした際に、様々な指摘をします。そして、記録を重視する組織では、必ず指摘事項をすべて記録して議事録として発行します。一方、ペアプログラミングでは記録することより、最終的なコードの品質が高くなることが目的です。どちらも品質の高いソフトウェアを開発することがその目的の1つです。 実は、議事録として発行するというのが意外とくせ者です。どういうことかと言うと、担当者は指摘事項を修正しただけで修正が完了したとして、再レビューへ持ってくることがあることです。そして、議事録にある指摘事項を1つずつ確認しようとします。 でも、実際に修正されたコードを見ると、さらに指摘すべき項目が多く見つかったりします。特に、最初のコードレビュー時における指摘は、頭の中で指摘した内容が修正された状態をイメージするだけであり、ペアプログラミングのように目の前に修正結果が見える訳ではありません

    コードレビューの視点 009: 柴田 芳樹 (Yoshiki Shibata)
    mizoguche
    mizoguche 2012/06/26
    ここではプログラミングのコードの話ですけど、すべての仕事に繋がってくる話な気がする。
  • あなたが理解できない,たった一行のRubyのコード (動的言語に対する静的解析の限界) - 主に言語とシステム開発に関して

    あなたは,下記のコードを理解できない。 p f /g+h/i これはRubyのコードである。「p」は,コンソールに出力する関数である。 問: だいたい,何をやっているコードですか? ※例えば,四則演算など。 構文をおおまかに説明して下さい。 どれが変数で,どれが関数で,どれが演算子か? ↓回答 回答: 一意に決定できない。 下記に, このコードの複数の解釈方法と, この件が引き起こす問題 について述べる。 ※なお,この問題が起きるのは動的言語に限らず,静的言語でも同様に発生しうることを前もって述べておく。 (1)分数の計算とみなすパターン 先行するコードを下記のように書いた場合: test1.rb # 変数に数値を代入 f = 2 g = 1 h = 2 i = 1 # 演算結果をpで出力する p f /g+h/i 実行結果: >ruby test1.rb 4 「分数の計算」とみなされる。

    あなたが理解できない,たった一行のRubyのコード (動的言語に対する静的解析の限界) - 主に言語とシステム開発に関して
  • https://blog.ik.am/entries/138

  • JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト

    ##ChatGPTの現状理解とR関数&パッケージ作成への活用 1. ChatGPTの現状理解 OpenAI社について ChatGPTとは? GPT-3.5とGPT-4 フロンプトとは? ChatGPTの得意なこと・苦手なこと(事例とTipsも) 2. R関数&パッケージ作成への活用 GPT API keyの取得 gptstudioパッケージを使って、RStudio上でChatGPTを使用する事例の紹介

    JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
  • re-dzine.net situs togel online toto 2023 -

    By penulis • January 10, 2023 • comments off Sebelum langsung ke poin utama yaitu mengenai trik rahasia main togel online yang beneran udah terbukti gacor buat hasilkan kemenangan, kalian yang mungkin masih berstatus pemula di game…

    re-dzine.net situs togel online toto 2023 -
    mizoguche
    mizoguche 2012/05/09
    これは大いに参考になる。/html,head,bodyて省略できるんや…
  • ウェブサービスをゼロから作って成功したこと、失敗したこと - id:k-z-h

    php, 雑記いつもなら寝ている時間なのだけれど、なぜか睡魔がやってこないので過去の思い出をまとめてみる。去年の2月ごろ、新規案件のウェブサービスに開発メンバーとしてアサインされた。作るべきものが大量にあったため、4チーム(工期中多少増減したが)に分けてドメインごとに作業分担をした。そのうち、ウェブアプリケーション体(フロント、API、マネージツール)を担当するチームのサブリーダーが自分の役割だった。そのプロジェクトは去年の末に一旦の区切りを迎え、自分はそこで退職し、新たな環境に身を置くことにした。それから丸4ヶ月経って、自分が書いたコードと新しい環境で書かれていたコードを見比べて、思うところが多々ある。それらを文章としてまとめたいと思う。 失敗したこと簡単な骨組みを作ったあと、デプロイの仕組みを作った。php には phar という仕組みがある。これは jar/war のようにウェブサ

  • RSpecによるユニットテストの書き方 — recompile.net

    2012年04月19日 最近、新人のテストコードを見る機会があり、ユニットテストの書き方について考える機会があった。ユニットテストはテンプレートみたいなものがあるので、それさえ押さえれば、誰でも簡単に書くことができる。 ここでは、その方法について紹介したい。サンプルはRSpecで書くが、その他のユニットテストフレームワークでも、応用ができるとおもう。 はじめにごく単純化すると、テスト対象は状態を持ち、入力を与えると何らかの出力を行なうものである。入力が変われば出力は変化するし、状態が変化すると入力が同じでも出力が変わる(かもしれない)。 ユニットテストは、テスト対象の状態を操作し、与えた入力によって意図通りの出力を得られるかを確認する作業のことをいう。なので、ユニットテストを書くときには、オブジェクトの状態ごとにメソッド単位で入力と出力を確認するようにする。 RSpecの疑似コードで書くと

    RSpecによるユニットテストの書き方 — recompile.net
  • プログラミング初心者のうちに身につけたい3つの習慣 | Social Change!

    プログラミング技術さえ身に付けば、プログラマとして一人前と言えるでしょうか? プログラミングを始めたばかりのうちは、プログラミング言語の習得や周辺の知識を得ることばかりに目がいきがちですが、それだけでは一流のプログラマになれません。(プログラミング言語を学びたいならこちら:写経で身につけるプログラミングの基) プログラマとして成長するためには、プログラミング技術を学ぶだけではなく、良いソフトウェアを作るための良い習慣を身に付けることが大事になります。初心者のうちに良い習慣を身につけておけば、ただ知識を追い求めるのではなく地に足をつけた成長ができるはずです。 記事では、私自身も先人たちから学んだプログラマが身につけたい3つの習慣について書いています。 自分で書いたすべてのコードを説明できるようになろう プログラミングは全て、明確な判断の結果です。if文を使うべきかどうか、どのAPIを使う

    プログラミング初心者のうちに身につけたい3つの習慣 | Social Change!
  • GoFの23のデザインパターンを,Javaで活用するための一覧表 (パターンごとの要約コメント付き) - 主に言語とシステム開発に関して

    GoFデザインパターンの一覧表と,活用のためのコメント,および入門者が独学するためのリンク集(サンプルコード付き)。 入門者の独学を支援するために,このページのURLを提示して熟読させ,各パターンを短時間で効率よく学んでもらう。 デザインパターンはプログラマの常識だ。 Java使いかどうかは問わない。 にも関わらず,入門書を買ったまま,途中で挫折する人が多い。 挫折の原因は,パターンの数が23もあって,多いからだろう。 全パターンをすんなり覚えてもらうためには,各パターンごとに 「要するにこういう目的のパターンなんだ。」 「10文字で表現すると,パターンの意味はこうなんだ。」 という要点・質を,短いコメントで伝えれば助けになるだろう。 こういった学習を通して,Java言語の「設計思想」も併せて感じ取ってゆけるはず。 全パターンの一覧表(要約コメント付き) 全パターンについて,10文字以内

    GoFの23のデザインパターンを,Javaで活用するための一覧表 (パターンごとの要約コメント付き) - 主に言語とシステム開発に関して
  • JavaやC#の常識が通用しないRubyのprivateメソッド - give IT a try

    衝撃を受けたできごと 最近Rubyを勉強しています。 JavaやC#でオブジェクト指向プログラミングの基はマスターしてるから、Rubyもそのあたりは楽勝〜!・・・と思っていたら、JavaやC#の常識が全く通用しない振る舞いに遭遇してかなり衝撃を受けました。それは、 privateメソッドはサブクラスからも呼び出せる ・・・ということです!!がーん。 たとえば、JavaやC#だと自分のクラス内でprivateメソッドが使われていない場合、不要なメソッドとして削除できます。(リフレクションを使って呼び出される可能性はここでは無視ね) しかし、Rubyでは誰かがサブクラスを作って呼び出している可能性があるので、privateメソッドを削除する場合は注意が必要です。メソッド名を変更する場合も同様ですね。 また、知らずに親クラスと同名のprivateメソッドを定義すると、予期せず親クラスの実装をオ

  • クリアなコードの作り方: 意図が伝わるコミットのしかた - 2012-03-13 - ククログ

    コミットメッセージの書き方ではコミットをわかりやすくするためには以下の2つの条件を満たす必要があると書きました。 コミットの内容が分かりやすく説明されていること コミットの内容が小さくまとまっていること このうち「コミットの内容が分かりやすく説明されていること」についてはすでに説明済みです。今回は「コミットの内容が小さくまとまっていること」について説明します。 めざすところ 単純にコミットの内容を小さくするだけではわかりやすくなりません。それでは、どのような基準で小さくすればよいのでしょうか。 よく言われることは1つのコミットには1つの小さな論理的にまとまった変更だけにする、というものです。たしかにこれは重要です。しかし、これだけを基準とすると、人によっては大きめなコミットになってしまいます。人それぞれで論理的なまとまりの大きさが異なるからです。 1つのコミットでどうすればよいかを考えるの

    クリアなコードの作り方: 意図が伝わるコミットのしかた - 2012-03-13 - ククログ
  • AndroidやiPhoneのHTML,CSS,JavaScriptのバグまとめ

    AndroidiPhoneHTML,CSS,JavaScriptのバグまとめ AndroidiPhoneなどのスマートフォンではHTML,CSS,JavaScriptにバグが多くてコーディングが大変になります。そこでバグを紹介しているサイト、記事をまとめてみました。(中にはバグではなく仕様なものもあるかもしれません) iOS 8.4.1の:hover問題 iOS 8.4.1で:hoverを指定していると1タップでページ遷移できない問題 【STINGER5】AndroidChromeで&nbsp;が「・」になってる気がする | ビビビッ &nbsp;を&emsp;に変更すると直るとのこと。 Mobile Safari 8でposition: fixedした擬似要素が完全に位置が固定されない - Weblog - Hail2u.net Mobile Safari 8でposition:

    AndroidやiPhoneのHTML,CSS,JavaScriptのバグまとめ
  • コードレビューの視点 002: 柴田 芳樹 (Yoshiki Shibata)

    必要なエラー情報を付加する何らかのエラーを検出した場合の対処方法としては、いくつかあります。 公開APIが呼ばれた場合のメソッドの引数の値が不正だった場合に、NullPointerExceptionやIllegalArgumentExceptionをスローしたりします。 デバッグ用にデバッグ文を表示したり、ログ情報を記録したりします。 コードレビューを行っていて気づく点としては、これらのエラーを通知してデバッグの助けとして書かれているコードが全く何の助けにもなっていないことが多いということです。 Javaでは慣例として、引数のnullの場合には、NullPointerExceptionをスローします(『Effective Java 第2版』 「項目60 標準例外を使用する」)。その場合、Javadocにその旨をきちんと記述すると同時に、例外をスローする際にエラー情報をコンストラクタのメッセ

    コードレビューの視点 002: 柴田 芳樹 (Yoshiki Shibata)
    mizoguche
    mizoguche 2012/03/12
    例外処理時のエラーログの残し方。
  • コードレビューの視点 001: 柴田 芳樹 (Yoshiki Shibata)

    Copyrightを書く1984年に社会人となって開発に従事したFuji Xerox 6060 Workstationでは、ソースコードにきちんとCopyrightを書いていたかどうかは覚えていない※のですが、それ以降のプロジェクトでは、ソースコードにはCopyrightを表記するのが当たり前の文化の中で過ごしてきました。 ※ たぶん書いていたと思うのですが・・・ Copyright表記そのものは、XDE(Xerox Development Environment)のエディタでは自動的に挿入・更新を行ってくれたりもしましたが、そうでない環境でも手作業でも必ず記述する習慣となっていました。そのため、私自身が書いたC++言語用コーディング規約にもCopyrightを記述することを規定していました。 企業でソフトウェアを開発する上でCopyrightを記述することは、私にとっては当たり前だとずっ

    コードレビューの視点 001: 柴田 芳樹 (Yoshiki Shibata)