タグ

関連タグで絞り込む (590)

タグの絞り込みを解除

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

  • エラーが出たら喜べ。エラーをちゃんと出せ。 - Qiita

    どうもエラーを出すもしくはエラーが出るのが怖いという人がいるみたい。例えば改修を行うときに既存部分でエラーが出ないことを最優先にして増築を行いいびつな構造を生み出すとか、単純に例外を全然使わないとか。エラーが出ると、「うわ、エラーになった。手間かけさせやがって面倒だなぁ…」みたいな感覚があって、とにかく自分がコードを書くときも一切例外を投げないというスタンスをとりがちなのかもしれない。 私はここで、適切にエラーが出てくれるのはむしろ喜ばしいことであり、自分がコードを書くときも積極的にエラーを出すようにすべきだ、という主張をする。 関数定義のドキュメンテーションの一部 ある関数の中身で一番最初に書くべき処理は何か、それは引数のチェックをして条件を満たさなければエラーを出すことである。例えば文字列は特定の形式になってなければならないとか、数値に最大値最小値があるとか、これらは関数の入力の前提条

    エラーが出たら喜べ。エラーをちゃんと出せ。 - Qiita
    mohno
    mohno 2024/05/05
    型付けの話かと思ったら、実行時のエラーか。「本当に怖いのはエラーが出ることではない、エラーが出ないまま実はおかしな挙動になっている場合である」/returnの後にelseを書いたり、elseでreturnするのは好きじゃない。
  • 今日からできる!簡単 .NET 高速化 Tips -2024 edition-

    C# / .NET における、パフォーマンス改善の Tips をお届けします。 これを見れば、効率良く 80 点を取ることができるようになるはずです!

    今日からできる!簡単 .NET 高速化 Tips -2024 edition-
    mohno
    mohno 2024/04/28
    .NET(旧.NET Core)のときに .NET Framework より格段に高速化されたと聞いて、そんな余地があったのか、とは思ったな。/後半、知らない話が。でもハードル上がっちゃう気も。/もう、あまり考えたくない(←オイ)
  • 【熱望】javascript の for 文で var i を宣言するのはやめて下さい - Qiita

    この書き方でも for 文は正常に動作します。 しかしながらこの書き方は 以下の書き間違いが生じることがあります。 for(var i = 0; i < array1.length; i++) { //長い処理 for(var i = 0; i < array2.length; i++) { } } 長い処理の中で i を宣言したことを忘れて 再び i を宣言してしまうことで 外側の for 文のカウントにバグが発生し 期待した動作にならない例になります。 私も他の人が作成した web アプリで このバグを見かけたことがあります。 for の変数を宣言する場合 必ず let で宣言して下さい。 var でなければ正常に動作しないのは 構造的欠陥のハズです。 let array1 = [1, 2, 3]; let array2 = [4, 5, 6]; for(let i = 0; i <

    【熱望】javascript の for 文で var i を宣言するのはやめて下さい - Qiita
    mohno
    mohno 2024/04/21
    varじゃなくlet(またはconst)を使え、ってのはforに限らないよね。/あと、for~ofでconstとか。
  • タイムスタンプの精度を落とすときは切り捨てろ - methaneのブログ

    とあるプロジェクトでナノ秒からミリ秒への変換で四捨五入してきた人がいて、時刻を扱うときは保存精度未満は切り捨てるべきというのが常識になっていないなーと思ったので。 2023-10-01 を、何年か表示する時に、2024年に丸める人はいないだろう。 13:45 が何時か表示する時も、13時と表示するだろう。(口頭で何時?と聞かれたら14時と答えるかもしれないけれど) つまり、ある精度で表した時刻は、実際には次のような半開区間を示しているのである。 2023-01-01 00:00:00 <= 2023年 < 2024-01-01 00:00:00 13:45:00.000 <= 13:45 < 13:46:00.000 そして、そう決めたからには一貫して同じように、指定精度未満は切り捨てというルールを維持しなければならない。秒以下は四捨五入で、とかやってはいけないのだ。 一貫しないと何が問題

    タイムスタンプの精度を落とすときは切り捨てろ - methaneのブログ
    mohno
    mohno 2024/04/20
    「ナノ秒からミリ秒への変換で四捨五入」←そもそも浮動小数型?「時刻を扱うときは保存精度未満は切り捨てるべきというのが常識になっていないなー」←GetMonth、GetDayみたいな(アブナイ)ヤツは見たことある。
  • PHPの時代は終わった? プログラミング言語のランキングで、2001年以来の最低シェアを記録【やじうまWatch】

    PHPの時代は終わった? プログラミング言語のランキングで、2001年以来の最低シェアを記録【やじうまWatch】
    mohno
    mohno 2024/04/10
    「かつては10%以上」「今月のシェアはわずか1.09%」←変化してるなら、ひとつの指標ではあろうけど、C、C++が2位、3位だしね。12位のアセンブリ言語とか「どれ?」とは思う。
  • C# Win32API完全入門 - Qiita

    はじめに 対象とする読者について 記事の対象者としては以下のような人を想定しています。 C#でこれからWin32APIを使ってみたい。 C言語のことがあまりよく分かっていない。 今までは適当に使っていたので一度きちんと理解したい。 自分が同じような状況であったため、一から調べて整理してみました。自分が理解した順番や内容で記載することで、また、具体的な使用例によってできることの広さや動作を感じ取ってもらうことで、理解の助けになればと思っています。 但し、分かっている人からすると冗長な説明になっている部分や好ましくない内容、正確性に欠ける内容などもあると思います。実際に使用する場合はその点にご留意願います。 Win32APIについて Windows API - Wikipedia Microsoft Windowsのシステムコール用APIのこと。特に32ビットプロセッサで動作するWindow

    C# Win32API完全入門 - Qiita
    mohno
    mohno 2024/04/02
    こういうプログラミングから遠ざかって10年くらいになるなあ。当時の仕事のメンテしてくれって言われたら(言われてはいないけど)断りたいレベル。
  • Python滅ぼす協会に入会したい

    なぜ令和にもなって動的型付け言語を使うのか シフトレフトという概念が生まれたのは二十年以上も前のはずだ。 それにもかかわらず動かしてみるまで答え合わせもできない言語で開発をするという発想自体がどうかしている。 同じ動的型付けといってもJavaScriptはブラウザという事情があるし、型の表現力に優れたTypeScriptがあるからまだよい。 しかし、Pythonはどうだ。他にいくらでも選択肢があるなかで、サーバーサイドにわざわざ選定する言語ではなかろう。 貧弱な型ヒント、しかも書いたところで大した効用もない。 使っている外部ライブラリにひとつでも型ヒントがクソなものがあれば即座に破綻する。 型というガードレールもシートベルトもなしで糞を撒き散らしながらする開発にはうんざりだ。 シンタックスもキモい 動的型付けもさることながら、シンタックスもキモい。とにかく思考を妨げる語順になっている。 m

    Python滅ぼす協会に入会したい
    mohno
    mohno 2024/03/30
    自分が使わなきゃいいだけじゃ、って話でもないんだろうな。まあ、JavaなんてやめてC#使おうぜ、って言っても聞いてもらえないしな。「SOLID原則のDはDon't use Pythonだ」
  • C# 12の新機能を紹介──型エイリアスやインライン配列など、待望の新機能とは?

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    C# 12の新機能を紹介──型エイリアスやインライン配列など、待望の新機能とは?
    mohno
    mohno 2024/03/27
    「C#は、.NETの標準プログラミング言語として絶え間ない進化を続けており、このバージョン12にも便利で使い勝手のよい機能が多数実装されました」←どんどん便利になるけど、正直、ついていけていない。
  • オブジェクト指向宗教史

    OOC 2024 の発表資料です。後のフィードバックを参考に、より妥当な文言に改訂してあります。 ※ コンテンツには、一部特定の宗教思想の迫害に言及する表現がございますが、そのような行いを肯定する意図の内容ではございません。

    オブジェクト指向宗教史
    mohno
    mohno 2024/03/25
    なにこれ。あなたのオブジェクト指向はどこから?みたいな話かな(私はC++)/いまさらAlan KayとかSmalltalkとか言われてもその流れはもうないよね。「あーはいはい また宗教な」
  • オブジェクト指向は必要なのか / Is object-oriented needed?

    2024/3/24に開催されたObject-Oriented Conferenceでの登壇資料です。 https://ooc.dev/2024/

    オブジェクト指向は必要なのか / Is object-oriented needed?
    mohno
    mohno 2024/03/25
    だってフレームワーク使うよね、とは思うけど「初心者に「オブジェクト指向」は不要」←それが C# のトップレベルステートメントなんだろうな。VB開発者はイベントハンドラという形で継承を実装していたようなものだし
  • 1行で発狂するコード - Qiita

    人は1行の記述で死ぬこともある 公開からコンスタントに閲覧をいただいている以下の記事。需要がありそうなので、もう1つ記事を書いてみようと思う。 題材は前回同様のJavaScriptのクソコードではあるが、前回は冗長を極めたクソコードであるのに対し、今回はたった1行である。 1行なのに、なんと示唆深いに富む(決してほめていない)コードだろうか。 不可思議なコード では、実際に見てみよう。 return a = a >= 10 ? 10 : a >= 5 ? 5 : a >= 3 ? 3 : a >= 2 ? 2 : 1, z * a; これを見て、何が return で返されるかわかります? 代入演算子 最初見たとき、代入文 a = ××× の評価値って何になるのかな? a が return されるのかなと思いました。 割り当て操作は、割り当てられた値として評価されます。 JavaScrip

    1行で発狂するコード - Qiita
    mohno
    mohno 2024/03/08
    「rm -rf /」じゃなかった。/「何が return で返されるかわかります?」←C言語だったら分かるし、JavaScriptも同じみたいだね。/オススメはされないだろうけど、カッコなしで済むような優先順位/評価順序になってるんだよ。
  • 浮動小数点型の算術とお近づきになりたい人向けの記事 - えびちゃんの日記

    お近づきになりたい人向けシリーズです。 いろいろなトピックを詰め込みましたが、「これら全部を知らないといけない」のようなつもりではなく、いろいろなことを知るきっかけになったらいいなという気持ちなので、あまり身構えずにちょっとずつ読んでもらえたらうれしい気がします。 まえがき 予備知識 規格 用語 精度という語について 記法 表現について 有限値の表現について エンコードについて 丸めについて よくある誤差や勘違いの例 0.1 = 1 / 10? 0.1 + 0.2 = 0.3? 整数の誤差 Rump’s Example 基的な誤差評価 用語に関して 実数の丸め 有理数の丸め 基演算の丸め 差について 複数回の演算 補題たち 桁落ちについて Re: Rump’s example 融合積和 数学関数に関する式の計算 誤差の削減に関して 総和計算 数学関数の精度について 比較演算について 雑

    浮動小数点型の算術とお近づきになりたい人向けの記事 - えびちゃんの日記
    mohno
    mohno 2024/02/26
    ちゃんと読んでないが力作だな。/「16 進法リテラル」←CだけじゃなくPythonにもあるのか。/「四捨五入の話」←Decimalでもないのに“小数第2位で四捨五入”とかやめてほしい。
  • JavaScriptの行末セミコロンは省略すべきか

    目次 自動セミコロン挿入(Automatic Semilocon Insertion) Restricted Production ASIの害 セミコロンにまつわる論争 で、どっちがいいの? JavaScriptには、 自動セミコロン挿入 という機能があり、行末でセミコロンを省略しても、多くの場合文法的に問題ありません。 しかしながら、 JavaScript: The Good Parts などで指摘されているように、自動セミコロン挿入は有害な機能であるため、JavaScriptのステートメント末尾には必ずセミコロンを付与するというのがフロントエンドエンジニアの共通認識だと思っていました。1 ところが、 Bootstrap に含まれるJavaScriptコードを見てみると、基的にセミコロンが使用されていません。 調べてみると、どうも世の中にはJavaScriptのステートメント末尾にセミ

    JavaScriptの行末セミコロンは省略すべきか
    mohno
    mohno 2024/02/19
    「どうも世の中にはJavaScriptのステートメント末尾にセミコロンをつけない派というのが存在するらしい」「だれもがきちんとASIを理解してJavaScriptを使うよう促すべきだという考え」←と言われてもなあ。
  • Q. 妹は何歳でしょうか? プログラマー「44 - 2 = 42だよね」テスター「これは容易には答えられないな」テスターに求められるスキルとは

    Mark Ward @mkwrd 流行っているから元のスライドもご紹介します。ITエンジニアの分類の一つ「テスター(テスト・品質の専門家)」の仕事と自己研鑽についての資料で、ぼくが2020年6月に書いて登壇したものです。 speakerdeck.com/mkwrd/200610-t… 2024-02-14 20:09:41

    Q. 妹は何歳でしょうか? プログラマー「44 - 2 = 42だよね」テスター「これは容易には答えられないな」テスターに求められるスキルとは
    mohno
    mohno 2024/02/15
    誕生日については考慮の範囲だろうけど、実はペットとか他人とか亜光速で移動とかは「知らんがな」でオシマイにする。
  • 継承はなんでダメ? - まめめも

    「オブジェクト指向の継承を使うな」という主張が広まっているようです。なんでダメになったんでしょうか。 インターネットで見かけた「継承はダメ」という主張をいくつか眺めて、友人と議論しつつ、考えてみました。 「コードが読みにくくなる」 継承があると、メソッド呼び出しが実際にどのメソッド定義を呼び出すのか字面でわからない。 デバッガを使って、親クラスのメソッドに飛んだり、子クラスに飛んだりするのを追いかけないと行けない。 つらい。という主張。 めっちゃわかる。わかるんですが、これは「高度に共通化されたコードは読みにくい」という一般的な側面がかなり大きいような。 たとえば継承の代わりに高階関数を使うと、関数呼び出しがどのクロージャに飛ぶか字面でわからなくなる。 ひどいとコールバック地獄になって何が何やらになります。 継承がことさらにまずい理由を想像すると、すべてのメソッド呼び出しがポリモーフィック

    継承はなんでダメ? - まめめも
    mohno
    mohno 2024/02/10
    継承というかクラスは使い始めると逃げられなくなるので雑な作りだと全体の品質に影響するけど(だから安易に継承使うな)、よくできたクラスは役に立つし、みんなフレームワーク使ってるよね。
  • 時代がstaticおじさんに追いついてきた(追記あり) - きしだのHatena

    この文章みてください。 オレはもう20年以上システム業界にいるけどな、その長い経験から言うと、オブジェクト指向なんてものは、理論としては面白いけど、およそ実用的とは言い難いものだな。まぁ、例えばGUIのコンポーネントとかはオブジェクト指向に基づいて作られているようだから、そういうツールとかを作る人には必要なものなのかもしれない。しかし君たちがいずれ作ることになる業務アルゴリズムにはまったく無縁のものだと思ってもらって間違いない。どうもこの業界、オブジェクト指向でなければダメ、というような風潮がまかりとおっているけどな、オブジェクト指向なんか当に使っている人はほとんどいないよ。オレも少し勉強してみたけど、カプセル化とかポリ何とかとか、どうにも利点が理解できなかったね。実際、実業務で使ったことなどないしな…… 「またお前、オブジェクト指向の話をしてるのか」と思ったかもしれませんが、2010年

    時代がstaticおじさんに追いついてきた(追記あり) - きしだのHatena
    mohno
    mohno 2024/02/08
    「オブジェクト指向」←なんつーか、フィボナッチ数列には要らんだろうけど(むしろ再帰すら使わん)、業務アプリの開発には必要というか、普通にフレームワーク使うよね。
  • Creating Objects (The Java™ Tutorials > Learning the Java Language > Classes and Objects)

    mohno
    mohno 2024/02/07
    Javaのnewは演算子じゃないどうこうと流れていた元ネタがOracleで、それが“以前は正しかった”なら、目くじら立てるような話じゃなさそう。/C++は演算子だし、オーバーロードさえできる(例外がなかったころの名残り)
  • 「メソッドのシグネチャ」はJava言語とJava仮想マシンで違う - きしだのHatena

    「プロになるJava」でシグネチャのことを次のように説明しています。 メソッドの名前と受け取る引数、戻り値の種類をあわせたものを シグネチャ といいます。 戻り値は含まないのでは?という話になり、結論から言えばJava言語では名前と引数でメソッドを区別、Java仮想マシンでは名前と引数、戻り値まで含めてメソッドを区別しているけど、ここではJava言語の話をしているので含まないほうが正しい、です。 シグネチャの定義 Java言語仕様では、「シグネチャとは」という定義はありませんが、「シグネチャが同じとは」という説明があります。ジェネリクスの型パラメータまで考慮はするけど、名前と引数が同じとみなせれば同じシグネチャだよという感じですね。 Two methods or constructors, M and N, have the same signature if they have the

    「メソッドのシグネチャ」はJava言語とJava仮想マシンで違う - きしだのHatena
    mohno
    mohno 2024/02/07
    「Java言語では名前と引数でメソッドを区別、Java仮想マシンでは名前と引数、戻り値まで含めてメソッドを区別」/C++は区別しないがVisual C++の外部シンボルには戻り値の型が含まれていた記憶(Borland C++では含まれていない)
  • プログラミングの終焉と生存戦略|k1ito

    この文章は何: 近年の生成AIブームにより、革命的なまでにプログラミングという仕事の形は変わることが予想され、実際、今までにない速度で世界が効率化され様々なサービスがローンチされていく中「使う側」としても「作る側」としても「IT業界(特にSaaS業界など)での生存」は難しくなっているように感じます。正解を知っていたらとっくに僕は大儲けをしているわけですが、当然わかるはずもなく生存戦略に苦しむだけの中での寝言です。 まとめと結論めいたもの:AI技術の発展により「プログラミング」と呼ばれる「人間の仕事を機械に引き継ぐ行為」のほとんどはゼロコストで行えるようになり、少なくとも今ほどの価値や競争優位の源泉とはならないだろう。今やるべきは、AIを自社の競争優位の源泉とするべく、まるで人材投資のようにAIへの引き継ぎ書を書くことと、AIの研修制度を作ることかもしれない。 プログラミングという仕事の終焉

    プログラミングの終焉と生存戦略|k1ito
    mohno
    mohno 2024/02/04
    自動化は進むだろうけど、クライアントが論理的に業務を伝えてくれるなんて期待はしてないよね?それで済んだら京都市のシステム開発は揉めないと思うよ。
  • 次期Python、ついにJITコンパイラ搭載の見通し。「copy-and-patch」と呼ばれる新たなJITコンパイラの仕組みとは?

    次期Python、ついにJITコンパイラ搭載の見通し。「copy-and-patch」と呼ばれる新たなJITコンパイラの仕組みとは? 機械学習AI処理の分野を中心に非常に高い人気のプログラミング言語である「Python」の次期バージョンに、処理速度の向上を目指したJITコンパイラが搭載される見通しです。 このJITコンパイラは、PythonコアデベロッパーのBrandt Bucher氏が提案し、実装しています。 そしてPython Software FoundationのフェローであるAnthony Shaw氏がブログ「Python 3.13 gets a JIT」で、このJITコンパイラについて解説しています。 これらの情報を元に、PythonのJITコンパイラがどのように実装されようとしているのか、少し紹介していきましょう。 RubyJavaScriptもJITが高速化を実現してき

    次期Python、ついにJITコンパイラ搭載の見通し。「copy-and-patch」と呼ばれる新たなJITコンパイラの仕組みとは?
    mohno
    mohno 2024/01/26
    「「Python」の次期バージョンに、処理速度の向上を目指したJITコンパイラが搭載される見通し」←速くなるの?と思ったが「現時点でのJITコンパイラによる性能向上は2%から9%」←大変そうだな。