タグ

ネタとC#に関するmohnoのブックマーク (23)

  • 【C#】SOLID原則を学ぼう - Annulus Games

    今回の記事はオブジェクト指向プログラミングにおける設計の基、「SOLID原則」について。 ある程度プログラミングの文法を知っていれば、動作するコードを書くことは可能です。しかし、より良いコードを書きたいのであれば、文法の知識だけではなく、設計に関する知識も必要になってきます。 特にUnityでは、適当にコードを書いていくと目も当てられないようなスパゲッティーコードが容易に出来上がります。「とりあえずシングルトンにすりゃいいや!」みたいなノリで「何とかManager」クラスを作りまくった結果、「あれ?この処理どこに書いたんだっけ?」という状況になったこと、誰しも一度はありますよね…? 今回は、そんなクソk…良くないコードを書かないための設計原則である「SOLID原則」について紹介します。記事内のコードはC#で記述しますが、言語に関わらずSOLID原則は広く応用の効く考え方なので、是非とも覚

    mohno
    mohno 2023/05/28
    「こんなクソデカクラスは破壊してバラしてしまいましょう」←久々に見たな。「SOLID原則」というのか。たとえC#を使っていても、こういう現場には行きたくない。/Square is a Rectangle が成立しないのも嫌い。
  • How to read a data row from Excel with more than 255 characters

    mohno
    mohno 2023/04/29
    OleDbでExcelデータを読み込もうとしたら、長いテキストが切れてしまう。しかし単純化してみるとうまくいく。検索してみたら8行目までに長いテキストがないとそれ以降の行で切り捨ててしまうらしい。マジか。
  • オブジェクト指向がわからないあなたへ

    どうも、都内の某企業に勤めるフルスタックエンジニアです。この記事では、ITの非専門家に向けて、オブジェクト指向の解説をしたいと思います。 小学生のプログラミング教育が開始されたり、AIやIoTなどの技術が身近になった今日、オブジェクト指向を理解しておくことは極めて重要です。なぜならば、オブジェクト指向はITエンジニアとっての「共通言語」であって、今やあらゆるソフトウェア技術がオブジェクト指向の上に成り立っているからです。したがって、オブジェクト指向を理解すれば、ITのすべての分野の基礎が身についたことになります。難しい概念がいくつか出てきますが、分かりやすく解説するので頑張ってついてきて下さい! オブジェクト指向とはまず、オブジェクト指向とは何かを解説します。オブジェクト(object)とは、「モノ」のことです。言い換えれば「モノ指向」です。つまり、コンピュータのようなバーチャルな対象では

    オブジェクト指向がわからないあなたへ
    mohno
    mohno 2021/04/21
    どこからツッコめばと思ったら……↓うわぁ、はてブで気付いた。「全部うそ」
  • await って言う単語

    C# 5.0で非同期メソッドが導入されてから、 正式リリースを基準にしても5年以上、 最初の発表からだと7年以上経っています。 で、5年経っても、「なんて読むの」「asyncのaとawaitのaは違う」などなどが「定番ネタ」として定期的に出てくるわけですが。 特に、ECMAScript 2017がasync/awaitを導入したり、 Unity 2017がやっとC#のバージョンを6.0に上げれる感じになってきたり、 5年の断絶を経て去年からasync/awaitに触れる人が増えているようです。 5年も離れたら、世代断絶も起こりますよね… そりゃ、「定番ネタ」が改めて増えもしますよね… ということで、5年くらい前に同じようなことをどこかで書いてるはずなんですけど、改めて。 英単語 えいしんく まず読み方。 async: エイシンク await : アウェイト ってやつ。async の方が「ア

    await って言う単語
    mohno
    mohno 2018/01/08
    「a + sync: a(否定) sync(同時)」「a + wait: a(向かう) wait(待つ)」←考えたことなかったな^_^; 予約語リストでアルファベット順を近づけたかったのか?w 「yield」←発音ムズイ、というか通じなかったことがある^_^;;
  • thisを書く派?書かない派? - Qiita

    あすかです。 プログラミングしてる時、たまに気になる話を雑めに書いてみます。 (´・ω・`) C#、VBやJavaなど、クラスベースのオブジェクト指向言語を前提にした話ですが、this(Me)を書いているプログラム、そうでないプログラムをよく見かけます。 例えば、thisを書くのは このような場面ではthisを書きます。文法上の制約ですから当たり前です。 今回は、このようなものではなく、thisを書かなくてもいい場面の話です。 thisを書くメリット ちなみに私はthisを書く派です。 というのも、後でコードを読み返す時に、ローカル変数とフィールド変数の区別が一発で付くからです。 VSはthisを色分けしてくれますよね。 けっこう地味かもしれませんが、長いクラス(といっても500行を超えるようなクラスはめったに書きませんが)の一部分だけを読む時に、thisの存在はかなり役に立ちます。 他の

    thisを書く派?書かない派? - Qiita
    mohno
    mohno 2017/10/14
    (当然現場に合わせるけど、それを除けば)個人的には付けないことが多い。フィールド変数/プロパティと引数/ローカル変数に同じ名前は使わない。よい考察。
  • Railsしかできない奴はいつまで経ってもRailsしかできない - Qiita

    あと5年もすれば「Railsしかできない奴はいつまで経ってもRailsしかできない」て言われるようになるよ - ledsun のコメント / はてなブックマーク 5年と言わず、今すぐ言おう。 流行りだと言われてRailsをやってみることにする。 Railsチュートリアルを一通りやる。 それなりの物ができる。 チュートリアルに毛が生えた程度はできる。 他のフレームワークに挑戦してみる。 Sinatraやってみたけど、Rubyの基礎がわかってないから、挫折する。RailsがあればSinatraなど不要と言って、Sinatraを貶す。なお、RailsとSinatraの違いはわかってない。 いっそ、他の言語に挑戦してみる。 Javaやってみたけど、オブジェクト指向の基礎がわかってないから、挫折する。Smalltalkこそがオブジェクト指向の流であり、C++風のオブジェクト指向は似非と言って、Ja

    Railsしかできない奴はいつまで経ってもRailsしかできない - Qiita
    mohno
    mohno 2017/05/14
    「Railsチュートリアル」ってこれ?→ https://railstutorial.jp/ 誰か具体例があるん?(こんなに色々興味を持てるなら、それはそれですごいけど) 「Delphiは有料だから手を出さない」w
  • 京大マイコンクラブが教える絶対に失敗しない言語の選び方

    京大マイコンクラブが教える絶対に失敗しない言語の選び方!!! 4月から始まる新しい生活,新しい環境…… そんな不安と期待が入り交じる環境を支えてくれるのは…… やっぱり新しいプログラミング言語ですよね!!!??? 下の質問に答えて、キミにピッタリのプログラミング言語と4月からの新しい生活を過ごしてくれ!!!! 各言語をクリックするとその解説ポエムが読めます。 ⚠ このチャートはエイプリルフール企画として作成されたものです (> < )。……質問がよくわからない時はNoを選びましょう! Tweet ノートパソコンの選び方版はこちら

    京大マイコンクラブが教える絶対に失敗しない言語の選び方
    mohno
    mohno 2017/04/01
    さすがにネタのためのムリクリ感があるな。「出っ歯だ」○→"Go"とか、「キーボードに0と1しかない」とかw Delphiないしなw
  • コンパイラーの資源枯渇系エラーとの付き合い方

    ちょっとしたきっかけがあって、C# 7のタプル、何要素まで書けるのかというのにチャレンジすることになりまして。 結果だけ書くと、数万要素のタプルを書くとVisual Studioがクラッシュしました。 これは、別にタプルに限った話ではなくて、巨大なソースコードをわせてコンパイラーを限界まで酷使したら落ちるのは当然なことでして。 起こしているエラーはスタック枯渇に類するもの(Insufficient Stack)のようです。 コンピューターの資源は有限なので、OutOfMemoryやStaskOverflowなどの資源枯渇系のエラーはどうやっても起こりえます。 数万引数のメソッドを書いたり、数万項の足し算をしたり、数万caseのswitchを書いたりしても、同様に落とせると思います。 なので、当に気にするべきなのは以下のような点かなぁと思われます。 仕様上の上限: 要素数などに仕様上の上

    コンパイラーの資源枯渇系エラーとの付き合い方
    mohno
    mohno 2017/02/02
    言語仕様に関係ないけど、仕様で「メモリ不足の場合は、適切な回復処理を行った後、メインメニューに戻る」とか言われて、「かなり防衛的に、余裕を持った上限設定」しますよ、ってやんわり断ったりしたことはある。
  • 小ネタ 「deconstruct」という単語 | ++C++; // 未確認飛行 C ブログ

    今日も、小ネタなような、C#7思い出話なような。 C# 7で、分解という機能が入ったわけですが、英語だと deconstruction という単語になります。 分解という機能のおさらいですが、以下のような書き方でタプルなどの型のメンバーを抽出できる機能です。 var (x, y) = tuple; これ、他のプログラミング言語だと、destructuring とか呼ばれたりしています。 といっても、文法上正式に destructuring と呼ばれているわけではないんですが(大体の言語は文法上は単に「pattern」とか呼ばれる機能)… まあ、解説ページなんかでは destructuring と呼ばれます。 で、今日、何が言いたいかというと、 deconstruct : デコンストラクト destructuring: デストラクト 並べるとわかりますかね。 「con」の有無。 decons

    小ネタ 「deconstruct」という単語 | ++C++; // 未確認飛行 C ブログ
    mohno
    mohno 2016/12/17
    "destructor"の元は、C#の元になったC++。日本語では構築子/消滅子という訳語が不評でカタカナになったという経緯も。圧縮/解凍も言葉は色々だったし、結局誰かが“こう”と決めるしかないんだろうな。
  • 小ネタ 隠し演算子(?)

    副作用を起こさない(非変)インクリメント、デクリメント(non-modified increment/decrement)です。 実際、以下のようなコードを実行することができます。 var a = 10; Console.WriteLine(-~a); // 11 Console.WriteLine(~-a); // 9 ideoneとかでも実行できます。 ideoneは確かMonoで動いているはずで、MonoのC#コンパイラーもひそかに対応しているということですね。 こいつは、演算子の形状からtadpole (オタマジャクシ)とか言われたりもします。 (?. なんかもエルビス プレスリーの髪型っぽく見えるという話からelvis演算子とか呼ばれたりもします。それと同種の愛称です。) x + 1でいいじゃないかと思うかもしれませんが、 単項演算子なので優先度が高いという利点があります。 (x

    小ネタ 隠し演算子(?)
    mohno
    mohno 2016/12/12
    へー、知らなかった、単項演算子はどうなるんだろう……とか思ってしまったぜ^_^;;
  • .NETコンパイラープラットフォームRoslynを使ってExcelをC#で操作できるように拡張する | MSP Japan Website

    みなさんいかがお過ごしでしょうか、MSPマーケティング職のがりっち( @garicchi )です。 皆さんはExcelを触っているとき、こんなことを思ったことはありませんか?     Excelの関数調べるのめんどくさい… C#が使えたらいいのに…      Excelの関数(SUM(B3,BC5)とか)に詳しい人なら思わないかもしれませんが、プログラマーExcelを触るとこのように思ったことがある人はいると思います。 実際にExcel内の関数でif分岐はできますが、1行で書かなければいけなかったり、いろんな条件式が積み重なるとカオスな状態になってしまいます。 カオスな条件式の例     プログラムを経験されている方ならば、「C#っぽい構文で書ければ条件式も見やすくなるのに…」と一度は思ったことがあるはずです。   C#ならば複雑な条件式も(比較的)見やすい     「 ああ…Excel

    .NETコンパイラープラットフォームRoslynを使ってExcelをC#で操作できるように拡張する | MSP Japan Website
    mohno
    mohno 2016/10/02
    おぉ、すげぇ……と思ったけど、「このアドインはネタなので活用用途が全く思いつきません」w VSTO 使うと配布がめんどくさくなるんだよなあ^_^;
  • シフト演算子使うなって言われた

    リーダー「ここの処理普通に書いて」 俺「どこがおかしいんですか?」 リーダー「シフト演算子使わないで。可読性下がるから。」 俺「…」 これって俺が悪いのか? 別にコーディング規約にそんなこと書いてないし、 この仕事やっててシフト演算子ごときで可読性って呆れてしまった。 やってられんわ。

    シフト演算子使うなって言われた
    mohno
    mohno 2016/05/07
    言語も文脈もわからないが“ここで”シフト演算子を使うな、と言われたのかどうか。ビット列操作で使うなと言われる気もしないが、乗除算代わりに使うものじゃないし、それくらいコンパイラが最適化してくれそう。
  • dotNetConf 2015 Japan with JXUG

    dotNetConf 2015 Japan で登壇してきました。 OneDrive にも: https://onedrive.live.com/view.aspx?cid=5C622397E11C979D&resid=5c622397e11c979d%21224309&app=PowerPoint 祝15周年 自己紹介に、しばらく入ると思います。祝15周年。 うちのサイト、ほんとに C# が表に出たのと同じ年からやってる(2000年に発表、CTP提供)ので、C#が15周年ならうちも15周年。正確に言うと、C# のプレスリリースが出たのが6月で、うちのサイトがパブリックになったのは年末なので、半年程度のラグはあるんですが(サイト作った当初は当時在籍中の大学内ローカルだった)。 そりゃおっさんにもなるわ。 .NET 系の勉強会もやっぱり .NET と共に平均年齢上がってたりして、たまーに見かけ

    dotNetConf 2015 Japan with JXUG
    mohno
    mohno 2015/04/12
    「int (キーワード)をリネームする気かよ」:-D まあSystem.Int32 もリネームしないだろうけど:-p オーバーロードやっかいだな。エラーにしたいところ(C++ で似た状況だとエラーになるようだ)
  • Visual Studio Community - Visual Studio

    Visual Studio Community - Visual Studio
  • 本日12月1日より、プログラマ有志による2014年の技術系Advent Calendarが各所ではじまる | gihyo.jp

    日12月1日より、プログラマ有志による2014年の技術系Advent Calendarが各所ではじまる 日12月1日より、プログラマ有志による2014年の各技術系Advent Calendar(アドベントカレンダー)が一日目を担当する人のblogではじまっている。技術系Advent Calendarの数の増加傾向は今年も続いており、Qiitaを利用したものがとても多くなっている。 一般的なAdvent Calendarは、12月25日のクリスマスを楽しみに待つために、12月1日から24日までのカレンダーの日付それぞれの部分が扉になっており、1日ずつその日の日付の部分を開くと天使や動物の絵などが見えるという仕組みになっている(もちろん、様々なバリエーションがある⁠)⁠。 これに発想をえて、技術系Advent Calendarでは基的に、12月1日から25日までの25日間、特定のプログラ

    本日12月1日より、プログラマ有志による2014年の技術系Advent Calendarが各所ではじまる | gihyo.jp
  • 車買取一括査定を依頼してこんな交渉には注意?

    少しでも高く車を売りたい。そして申込みをスムーズに行うためにも 車買取の一括査定サービスはとても便利です。 複数の業者へ一斉に中古車査定を依頼するのですが、交渉には少し注意が必要です。 一括査定からの申込みなので、業者も始めから競争相手がいることは知っています。 業者としては少しでも低い査定額で早く決めてしまいたいもの。 他の業者が来る前に、決断させるような交渉を進めます。 「今決めるなら、プラス10万円上げます」というような上乗せした査定額を 提示することもあります。思わず決めたくなりますが、冷静に考えてみると 最初からプラス10万円の提示ができたはずです。このやり方に誠意を感じますか? それでも決めてしまうか、他の業者を待つかはご自身次第になりますが、 このような交渉術はよくあることです。頭に入れておくと良いですね。 高額な査定額を探すためには、査定を依頼した車買取業者の金額がすべて

    車買取一括査定を依頼してこんな交渉には注意?
    mohno
    mohno 2014/08/15
    うん、拡張メソッドが使われているところまで含めて同意。
  • [C#] 「世界一IQの低いソースコードはこれ。」のような if 文を書いた場合の速度を測ってみた (プログラミング C# - 翔ソフトウェア (Sho's))

    « [TypeScript][WebGL][Three.js] 多体問題シミュレーション WebGL版 | メイン | [Event] Hokuriku.NET Vol.15 in FUKUI » [C#] 「世界一IQの低いソースコードはこれ。」のような if 文を書いた場合の速度を測ってみた 「世界一IQの低いソースコードはこれ。」で始まる tweet が興味深かった。 https://twitter.com/vjroba/status/494882208788660226 世界一IQの低いソースコードはこれ。 if と else を使って KeyEvent クラスの中の 200 を超える数の定数と一つずつ比較して、文字列に変換している Java のコードだ。 色々リプライされているようだが、「初心者向けの入門書なので、リフレクションや連想配列を (switch すら) 使わない方針で

    mohno
    mohno 2014/08/01
    「比較が 200 以上も続く上記のようなケースでは、if と else で書いた方が遅いようだ」←えー、ちょっとビックリ。最適化されないのか?
  • とある福井のstaticおじさん

    当にこんな人いるんですね…ちなみにこの話を見た時に思い出したのは ■press enter 「高慢と偏見」 http://goo.gl/DaAsT でした。

    とある福井のstaticおじさん
    mohno
    mohno 2014/04/18
    こういう緩い環境で仕事して給料もらいたい:-)
  • linq.js - LINQ for JavaScript Library - Home

    すべての Microsoft 製品 Global Microsoft 365 Teams Copilot Windows Surface Xbox セール 法人向け サポート ソフトウェア Windows アプリ AI OneDrive Outlook Skype OneNote Microsoft Teams PC とデバイス Xbox を購入する アクセサリ VR & 複合現実 エンタメ Xbox Game Pass Ultimate Xbox Live Gold Xbox とゲーム PC ゲーム Windows ゲーム 映画テレビ番組 法人向け Microsoft Cloud Microsoft Security Azure Dynamics 365 一般法人向け Microsoft 365 Microsoft Industry Microsoft Power Platform W

    linq.js - LINQ for JavaScript Library - Home
    mohno
    mohno 2014/03/22
    「linq.js - LINQ for JavaScript」←おお、こんなものが。
  • neue cc - C#の強み、或いは何故PHPから乗り換えるのか

    特にPHPディスりたいわけでは、あるのかないのかはともかく、やっぱり実際に使ってきて良いところというのも分からなくもない感じです。会場でも話したのは、短期的な開発速度には有利なのは間違いないのかな、と。デプロイとかも、とりあえずポン置きでいいし、開発も、なんかもう複雑なことやると面倒だし、どうせ文字列だらけになるしで、開き直ってハードコーディングでバカバカ作っていくから速い、とか。ただし勿論あとで苦労するわけですがそれはそれとして。けれどやっぱC#良いよね、って。 言語も色々なトレードオフで成り立つわけですが、その中でもC#は、バランス良くて好きだなーというのが私の個人的なところです。Visual Studio良いよねー、でもいいですしLINQ良いよねー、もいいですし、IntelliSenseがないと生きていけないですし。うん、そう、IntelliSense指向言語が好きなわけです。 ほと

    mohno
    mohno 2013/06/15
    (今は知らないけど)PHPは、ほんとうに設計の酷い言語だと思ったものだ。そして C#/.NET Framework with Visual Studio は、本当に楽。処理速度を気にすると、それはそれで色々あるんだろうけれど。