タグ

プログラミングに関するfoohogehogeのブックマーク (74)

  • C#に潜むstructの罠 - KAYAC engineers' blog

    こんにちは。技術部平山です。 この記事ではC#のstructを使った際にはまった罠について書きます。 Unityでの体験を軸にお話しますが、Unityに限ったことではないかと思います。 お急ぎの方のために結論を申しあげますと、structを使うなとなります。 どうしてもstructを使いたい気分になった時に、罠にはまって時間を無駄にする覚悟をした上で使いましょう。 未来に活きる良い失敗ができると思いますし、最終的には製品の性能も上がるとは思いますが、 structを使わないといけない理由は、たぶんありません。なくても製品は作れます。 しかし、一回もstructと書かなかったとしても、C#で書く限りstructからは逃れられないのです。 (2019/04/10) 末尾に話を単純化しすぎた点について補足をいたしました。 structとは C#の型にはclassとstructがあります。 ...

    C#に潜むstructの罠 - KAYAC engineers' blog
  • ググるのをやめるとプログラムの生産性が上がるかもしれない - メソッド屋のブログ

    今日はプログラミングの生産性に対して気づきがあったのでシェアしてみたい。 なぜ米国の人は生産性が高いのだろう プログラミングの生産性に関しては以前から興味がありいくつかのポストで考えたことをシェアしてきた。私は職業柄、いろんな国でいろんな人々とプログラミングを一緒にする機会が多い。その時に頻繁に感じるのは、平均的に言うと、アメリカの人プログラマが生産性が高い確率が高くて、しかもコードもきれいだという傾向にある。アメリカでお客さんと一緒にコードを書くと、お客さん自体が物凄く良く知っているし、実行力もある。アメリカの次と言うことでいうと、英語がネイティブの国もそれに近く、フランスなどの言語が近いところが続く感じなので、英語が物凄く影響すると思っていたし、実際すると思う。そのあたりの話はこちらのポストに書いてみた。 simplearchitect.hatenablog.com 定義での理解と、例

    ググるのをやめるとプログラムの生産性が上がるかもしれない - メソッド屋のブログ
    foohogehoge
    foohogehoge 2018/09/18
    なるほど。 コピペする心理ってそうなのかも。 「コピペすんな」から先を考えなきゃかな
  • 実況中継シリーズ 「開発現場で役立たせるための設計原則とパターン」 #builderscon 2018 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    先日慶應義塾大学日吉キャンパスで行われた builderscon2018、最高のカンファレンスでしたね。わたしも「開発現場で役立たせるための設計原則とパターン」というタイトルで発表させていただきました。今回は恒例「実況中継シリーズ」として、プレゼンの再現をブログで行いたいと思います。 なお、過去の実況中継シリーズは前職の技術ブログにまとまっていますので、そちらからご覧ください。 それでは編を開始したいと思います。 開発現場で役立たせるための設計原則とパターン アバンパート よろしくお願いします。 まず最初に簡単に自己紹介をさせていただきます。 先月転職をしまして、8/1からClassiという会社で働いています。と息子がおります。Scalaが好きですが、仕事ではRubyメインという感じです。 Web+DB PressやSoftware Designで何度か特集を書かせていただきました。と

    実況中継シリーズ 「開発現場で役立たせるための設計原則とパターン」 #builderscon 2018 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
  • Rubyコミッター・Yuguiに学ぶ、コードに書くべき「適切なコメント」と「適切な場所」 - エンジニアHub|Webエンジニアのキャリアを考える!

    Rubyコミッター・Yuguiに学ぶ、コードに書くべき「適切なコメント」と「適切な場所」 Rubyコミッター・園田裕貴(Yugui)さんが、長年の経験で体得したソースコードに書くべき「コメントの技法」を教えてくれました。 プログラミングにおいて、どんな初心者でも書けるけれど、適切に書くのは上級者でないと難しいもの。それがコメント(=ソースコードに書かれている注釈やメモ)です。 不適切なコメントをつけても、プログラムの動作には影響しません。しかし、書き方の巧拙によって、コードの可読性や理解のしやすさには雲泥の差が出ます。良質なコメントが良質なコードをつくるのです。 今回はRubyコミッターでありgrpc-gatewayの開発者でもあるSupership株式会社の園田裕貴(Yugui)さんに、優れたエンジニアがどんな観点を持ち、どんなコメントを書いているのかを聞きました。 園田 裕貴(そのだ・

    Rubyコミッター・Yuguiに学ぶ、コードに書くべき「適切なコメント」と「適切な場所」 - エンジニアHub|Webエンジニアのキャリアを考える!
  • PowerShellにおける"戻り値"と"Return"について - しばたテックブログ

    PowerShellの基的なことがわかってなかったシリーズ第三弾です。 内容としては、牟田口さんのブログの winscript.jp で書かれていることそのまんまです。 なので詳しいことを知りたい方はそちらをご覧いただければ十分かと思います。 今回わざわざパクリエントリを書くのは上のエントリを紹介したかったから+自分の備忘録のためになります。 はじめに 以下の超簡単なFunction、Funcを例に説明します。 Function Func(){ Write-Output "1+1は?" return 1 + 1 } このファンクションを実行するとコンソールには PS C:\> Func 1+1は? 2 と表示されます。 この時Funcの戻り値は何か?という話しになります。 私はつい最近までこのFuncの戻り値は2だけだと勘違いしていました。 Funcの実行結果を変数$Resultに設定し

    PowerShellにおける"戻り値"と"Return"について - しばたテックブログ
  • PowerShell関数 CapmNetwork

  • 「関数型プログラミングって何?」日本語訳 - Okapies' Archive

    この記事は、技術翻訳 Advent Calendar 2016 の15日目です(枠が空いてたので勝手にお邪魔してます)。前回(6日目)は、id:msyksphinz さんの「個人が趣味技術書を翻訳するという意義について」でした。 今回ご紹介するのは、昨年末に公開された Kris Jenkins さん (@krisajenkins) の "What Is Functional Programming?" です。日語訳の公開については著者から承諾済みです。また、London Functional Programmers meetup での同タイトルの講演動画が公開されています。 関数型プログラミングの考え方は、世間ではどうも小難しい話だと思われている節があります。その理由の一つに、議論の抽象度が(比較的)高いことが挙げられるでしょう。例えば、以前このブログで紹介した「なぜ関数プログラミング

    「関数型プログラミングって何?」日本語訳 - Okapies' Archive
  • 循環的複雑度を活かしたバグ潜在リスクの軽減 - 現場のためのソフトウェア開発プロセス - たかのり日記

    昨日のエントリーに引き続き、このエントリーは「Software Test & Quality Advent Calendar 2011」における12/19分として書いています。 今日は、少しばかりアカデミックな話。 でも、うまく活用すると、品質改善のための強い武器になることでしょう! 循環的複雑度とは? まずは、今回のタイトルにも書いている「循環的複雑度(Cyclomatic Complexity)」というメトリクスの説明から。 循環的複雑度は、Thomas McCabe 氏が開発したものであり、簡単に言うと、コードの複雑性を数値化したものです。 ソースコードの一部の循環的複雑度は、ソースコード内の線形独立な経路の数である。実際、if文やfor文のような分岐点のないソースコードの場合、その複雑度は 1 であり、そのコードには1つの経路しかない。コードに1つのif文が含まれていれば、コードに

    循環的複雑度を活かしたバグ潜在リスクの軽減 - 現場のためのソフトウェア開発プロセス - たかのり日記
    foohogehoge
    foohogehoge 2015/09/07
    循環的複雑度の話
  • 複雑度と単体テストケース数の相関関係 - プログラマの思索

    garyoさんから、ソースの複雑度と単体テストケース数について有益なアドバイスを示唆してもらったので、メモしておく。 ◆SourceMonitor Version 2.4 SourceMonitorはフリーで、以下の言語のソースのソフトウェア複雑度(McCabeのサイクロマチック数)を測定できる。 例:C++, C, C#, VB.NET, Java, Delphi, Visual Basic (VB6) or HTML ◆McCabe's cyclomatic complexity SourceMonitorで求められる複雑度(McCabeのサイクロマチック数)は、モジュール内の分岐の数(+ループの数)で計算される。 複雑度の数値は、下記の意味を持つらしい。 10 以下であればよい構造 30 を越える場合,構造に疑問 50 を越える場合,テストが不可能 75 を越える場合,いかなる変更も

    複雑度と単体テストケース数の相関関係 - プログラマの思索
  • 2015年に備えて知っておきたいリアクティブアーキテクチャの潮流 - Qiita

    はじめに もうすっかり年末なので、これから2015年にかけてアプリケーションアーキテクチャがどのようになっていくのかという個人的な考え/妄想や背景について、「リアクティブ」というキーワードをもとににまとめてみたいと思います。 Google Trendsを見ると"reactive programming"という言葉は2010年前後から、ゆっくりとバズをし始め、現在も上昇を続けています。 また、仕事としては、2010年ごろから大規模なWebサービス開発において、フロントエンド、バックエンド、アルゴリズム改善といった様々な箇所で、リアクティブプログラミングの要素を取り入れながら、アーキテクチャの改善を進めてきました。そのため、こういったアーキテクチャがコード品質の維持や安定性の向上、実際的で複雑な問題の解決にも適応可能であるということを実感として持っています。 近年、そういった要素が様々なツール

    2015年に備えて知っておきたいリアクティブアーキテクチャの潮流 - Qiita
  • 「ほとんどのユニットテストが役に立たない理由」を読んで | POSTD

    数ヶ月前、私はJames O Coplienの ほとんどのユニットテストが役に立たない理由 という記事に出会いました。Jamesはほとんどのユニットテストは無意味であると考えていて、タイトルは内容をそのまま正確に表しています。彼は 追加記事 で議論をさらに展開しています。私は彼の議論に大変興味をそそられました。というのは、私はユニットテストから多くの利益を得ているからです。私たちはどうしてこのような異なる見解を持つに至ったのでしょうか? 私が何かを見逃したのでしょうか? 結局のところ私は彼の見解に賛成できませんでした。以下は彼の記事に対する私の意見です。 ユニットテストが必要な場合 私の経験では、ユニットテストはアルゴリズムロジックに対して行う時に最も有益です。結合度の高いコードについてはその性質から特に有益ではありません。結合度が高いコードはユニットテストのために多くのモックオブジェクト

    「ほとんどのユニットテストが役に立たない理由」を読んで | POSTD
  • 僕にそのコピペを直せというのか(2021年4月版) - Qiita

    ソースコードをコピーアンドペーストで作成したコードクローンの方が信頼性がいいという言説もないことはないですが、多くの場合、コードクローンの存在は我々を土壇場で苦しめることが多いです。 担当者が逃げた、ソースコードを、夜遅くまで修正してリリースしたあとに、実は「コピペで作っているから別の所も全部なおしてテストしてね」とか言われて、作業をやり直すのは、とてもとても悲しいものです。 殆ど同じソースコードを間違い探しのように微妙に変更して、修正していくのは屈辱の極みです。 土壇場において、このような罰ゲームを避けるために、コピペの頻度というものは常時監視しておき、異常な頻度の場合はただちに是正すべきです。 ここでは、コピペの検出を行うツールについて説明します。 PMD-CPD PMDはJavaで実装されたJavaのソースコードの潜在的問題を検出するツールです。 http://pmd.sourcef

    僕にそのコピペを直せというのか(2021年4月版) - Qiita
    foohogehoge
    foohogehoge 2014/08/05
    コピペ検出ツール
  • TFS のコマンド ライン ツール

    Visual Studio Team Foundation Server (TFS) コマンド ライン ツールは、いくつかの種類のタスクを実行します。 一部のタスクはユーザー インターフェイスから実行できますが、他のタスクはツールからのみ実行できます。 たとえば、コマンド ライン ツール タスクには、Team Foundation バージョン管理 (TFVC) オブジェクト、作業項目追跡オブジェクト、Microsoft Test Manager をサポートするオブジェクトの管理、TFS アプリケーション層サーバーの構成と管理などのタスクがあります。 コマンド ライン ツールを実行するには、管理者の資格情報でログオンしている場合でも、状況によっては、管理者特権でコマンド プロンプト ウィンドウを開くことが必要になります。 クライアント ツール: クライアント コマンド ライン ツールにアクセ

    TFS のコマンド ライン ツール
  • いまさら聞けない「オブジェクト指向設計の3つのコツ」~オブジェクト指向設計問題解説 #objectoriented - CodeIQ Blog

    CodeIQ中の人、millionsmileです。 いろいろ経歴を積むと、「いまさら聞けない」ことが増えてきます。「オブジェクト指向」というのもそんないまさら聞けないものの一つでしょうか。 そんなわけで、いまさら聞けないことをイマサラ問題として出題してみました。 問題は、日ITエンジニアの父と言いたくなるくらい温かみのあるフィードバックをしてくれることで好評な有限会社システム設計の増田亨さんからの出題です。オブジェクト指向設計について2問出題していただきました。総計65名もの方に挑戦いただきました! 問題の解説記事は、オブジェクト指向設計の3つのコツを中心に説明してくれていますので、読みやすいですし、頭にすっと入ってきます。 ではでは、増田亨さんによる解説記事をお楽しみください。 https://codeiq.jp/ace/toru_masuda/ ◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇

    いまさら聞けない「オブジェクト指向設計の3つのコツ」~オブジェクト指向設計問題解説 #objectoriented - CodeIQ Blog
  • [雑記] O/R インピーダンスミスマッチ

    概要 Ver. 3.0 「LINQ」 を用いることで、 IEnumerable や XML、リレーショナルデータベースなど、 様々なデータソースに対して、共通の構文で問い合わせなどの操作を行うことができます。 その中でも、リレーショナルデータベースへの問い合わせを可能とする LINQ to SQL や Entity Framework は、 オブジェクト指向プログラミングとリレーショナル データベースの間の溝(インピーダンスミスマッチ)を埋める技術として、非常に面白いものになっています。 サンプル プログラム:EntityFrameworkSample.zip ほとんどのアプリケーション = GUI + データ処理 近年、ほとんどのアプリケーションは、何らかのデータに対する操作と表示が主な仕事となっています。 すなわち、データ処理(読み出しや更新)と表示用の GUI 構築がプログラムの行う

    [雑記] O/R インピーダンスミスマッチ
  • Assessment Software for Candidates | Hirevue Hiring Platform

    SolutionsCreated with sketchtool.Our TechCreated with sketchtool.Why HireVueCreated with sketchtool.ResourcesCreated with sketchtool.Our CompanyCreated with sketchtool. HireVue offers a complete library of interview, game-based, virtual job tryouts and technical assessments that empower hiring teams to make faster, fairer decisions. Assess the skills and competencies that better predict success—an

    Assessment Software for Candidates | Hirevue Hiring Platform
    foohogehoge
    foohogehoge 2011/06/14
    「プログラミングスキル」をテストするためのプラットフォーム らしいよ…。
  • codic - デベロッパーのためのネーミング辞書

    codicは、プログラマーのためのネーミング辞書です。新しいcodicでは、翻訳エンジンを搭載しネーミングをジェネレートできるようになりました。

    codic - デベロッパーのためのネーミング辞書
  • VB.NET - COM オブジェクトの参照カウントを解放する

    COM オブジェクトを扱う場合は、参照カウントの解放を意識しなければなりません。使用した COM オブジェクトの参照カウントが、正しくデクリメントされていないと意図したタイミングでプロセスが解放されません。 参照カウントのデクリメントは、System.Runtime.InteropServices.Marshal クラスにある ReleaseComObject メソッドを使用します。COM ラッパ オブジェクト (COM そのものではない) の参照が未到達になれば、ガベージ コレクションを実行して解放することができますが、こちらはあくまでも保険です。 参照カウントのデクリメント解放自体は、ReleaseComObject メソッドを呼び出すだけですので難しくはありません。面倒なのは、ReleaseComObject メソッドを実行するために、参照したものをすべて変数へ格納しておく必要がある

  • 今日から始める! Androidケータイアプリ作成の基礎 (1/3) - @IT

    2009年10月、Android Marketの有料アプリ配信が始まりました。また先日新バージョンの2.0も発表され(参考:グーグルAndroid 2.0対応のSDKリリース)、これからAndroidのアプリ作成を始めようという方も多いと思います。せっかくなので、Androidだからこそ作れるアプリを作りたいものですね。 稿では、Androidの特徴を押さえてアプリ作成を始めるための基礎を紹介します。 Androidアプリ作成を始めるには何が必要なの? まずは、Androidアプリ作成に当たり、必要なものを確認します。 ■ OS環境 ここで特筆する必要はないかもしれませんが、以下の通りです。 Windows XPまたは、Vista Mac OS X 10.4.8以降 Linux ちなみに、筆者のOS環境はWindows 7ですが、2009年11月現在のところ問題は起きていません。 ■

  • いま使うべき、学ぶべき.NETテクノロジはどれ?(1/4) - @IT

    連載:.NET中心会議議事録 第1回 いま使うべき、学ぶべき.NETテクノロジはどれ? デジタルアドバンテージ 一色 政彦 2009/11/18 @IT/Insider.NET内に設置されているコーナー「.NET開発者中心」(以前は「VB研」)の主催により、現場で働く.NET開発者のためのセミナー「.NET中心会議」の第1回が、2009年10月24日(土)に開催された。 今回は「いま使うべき、学ぶべき.NETテクノロジはどれ?」というテーマで、現実的に、開発者が現時点ではどのような技術選択をすべきかについて、パネル・ディスカッションが行われ、下記の4つのテーマに対して、およそ3時間かけて徹底的な議論が展開された。 ●討論テーマ 1:Windowsアプリケーション 2:Webアプリケーション 3:データ・アクセス 4:開発言語 なお、当初はより多くのテーマについての討論を予定していたが、ディ

    foohogehoge
    foohogehoge 2009/11/24
    非常に興味深い記事。WPFやSilverlight・LINQなどについて。 2009/11/14