タグ

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

タグの絞り込みを解除

programmingに関するghostbassのブックマーク (1,767)

  • 可読性を高める2つの大きな方向性 - 脳内メモリに優しいコードを書く -

    TL;DR 「可読性が高い」とは、「理解するために使う脳内メモリの量が少ない」ということである。 理解するために使う脳内メモリの量 = コードを理解するのに必要な情報量 - コードについての予備知識 「そのコード 1 行を単独で理解するのに必要な、追加の情報を意識する。その追加で必要な情報が減るようなコードにする」というのが可読性を高めるための一つの大きなの指針としてアリなのではないか。 はじめに 可読性についての細かい Tips は様々ありますが、「結局」何をどうすればいいのか?という漠然とした問いには答えられていない気がします。細かい Tips を包括する大きな指針をがないかと考え、まとめたのがこの記事です。 可読性の高いコードとは? 脳内メモリの消費を抑える 可読性とは、コードが頭に入ってくる時のスムーズさと言えると思います。すなわち、いかに直感的に、余計なことを考えず、脳内メモリの

    可読性を高める2つの大きな方向性 - 脳内メモリに優しいコードを書く -
    ghostbass
    ghostbass 2021/06/01
    「コメントアウト」がいつから「言語で提供されているコメントの仕組みを使ってコードを無効にすること」から「「そのコードでおこなっていること以外」の、ややメタ的な情報を含める」になってしまったんだよ
  • C#のORM(オブジェクト関係マッピング)における理想形を考えてみる - Qiita

    はじめに C#のORマッパーといえばEntity Framework(以下、EF)が有名で、データベースの接続を調べると真っ先にEFの名前が出てきます。ORMの機能を充分に備えたライブラリはEFしかありませんが、致命的な欠点があります。欠点については後述しますが、これを解決するには他のライブラリを使うほかありません。記事では、EFを使わずにORマッパーの機能を使うライブラリとその組み合わせを紹介します。 ORMの基的な機能 紹介する前にまずはORMで必要な機能を確認します。ORM(Object-relational mapping)は、オブジェクト関係マッピングと呼ばれ、オブジェクト思考とRDB間の非互換であるデータの違いをうまく吸収(これの逆をインピーダンスミスマッチと言います)して、簡単にデータを扱えるようにする技法です。基的な機能は以下があります。 SQLを意識することなくコー

    C#のORM(オブジェクト関係マッピング)における理想形を考えてみる - Qiita
    ghostbass
    ghostbass 2021/05/28
    Dapperが"O"RMかというと微妙、って立場。構成ファイルやらクエリーやらで悩まなくて済むのでEF推し。
  • C# カテゴリーの記事一覧 - PG日誌

    タイトルの通りですがカメラの画面いっぱいに SpriteRenderer を広げる実装例を紹介したいと思います。 動作仕様は以下の通りです。 画面サイズが変わっても SpriteReneder が画面いっぱいに表示される カメラが移動や回転しても位置が追従される コンポーネ…

    C# カテゴリーの記事一覧 - PG日誌
    ghostbass
    ghostbass 2021/05/27
    メソッドが1000行有る時点で大丈夫じゃないわ
  • クリーンアーキテクチャ完全に理解した

    clean_architecture.md 2020/5/31追記: 自分用のメモに書いていたつもりだったのですが、たくさんのスターを頂けてとても嬉しいです。 と同時に、書きかけで中途半端な状態のドキュメントをご覧いただくことになっており、大変心苦しく思っています。 このドキュメントを完成させるために、今後以下のような更新を予定しています。 TODO部分を埋める 書籍を基にした理論・原則パートと、実装例パートを分割 現在は4層のレイヤそれぞれごとに原則の確認→実装時の課題リスト→実装例という構成ですが、同じリポジトリへの言及箇所がバラバラになってしまう問題がありました。更新後は、実装時の課題リストを全て洗い出した後にまとめて実装を確認する構成とする予定です。 2021/1/22追記: パートの分割と、クリーンアーキテクチャという概念の定義について追記を行いました。大部分の実装例パートを中心

    クリーンアーキテクチャ完全に理解した
  • IsModified.cs

    ghostbass
    ghostbass 2021/04/22
    こういうサンプル転がってないので
  • クソコード動画「Userクラス」で考える技術的負債解消の観点

    2021/04/10開催 Developer eXperience Day 2021 「クソコード動画『Userクラス』で考える技術的負債解消の観点」の解説資料です。 https://dxd2021.cto-a.org/program/time-table/b-3 クソコード動画はこちら https://twitter.com/MinoDriven/status/1380773721032433674 YouTubeライブのリンクはこちら https://www.youtube.com/watch?v=ajPaGPdj6tU

    クソコード動画「Userクラス」で考える技術的負債解消の観点
    ghostbass
    ghostbass 2021/04/11
    Userを Client とか Customer とかにすればヤバさがわかるだろうか。結局その語の意味するところを明確にしないまま関連ドメインを作ると意味不明な実装になってしまう。/DB設計で意味不明な列ができるのも同じ。
  • 「DDDで複数集約間の整合性を確保する方法」に対する考察 - かとじゅんの技術日誌

    久しぶりにブログ記事を書きますか。 ということで、松岡さん(id:little_hands)のブログ記事に対する考察記事です。 この記事は古くなったので、ぜひ以下も参照してください。 blog.j5ik2o.me little-hands.hatenablog.com 題材も松岡さんのブログ記事と同じもので考えます。 「実装方法1. ユースケースで複数集約を更新する」について考察したいと思います。 注意事項)この記事で使うトランザクションという用語は単なる一連の手続きという意味ではなく、ACID特性を持つRDBのトランザクションという意味です。 class CreateTaskUseCase1( private val taskRepository: TaskRepository, private val taskReportRepository: TaskReportRepository

    「DDDで複数集約間の整合性を確保する方法」に対する考察 - かとじゅんの技術日誌
    ghostbass
    ghostbass 2021/03/15
    なるほど
  • Javaのプロが避ける「波かっこ」の“駄目”な使い方とは?

    関連キーワード 統合開発ツール | プログラマー | プログラミング プログラミング言語には根的な共通点がある。一般的に、 変数宣言 条件式 関数 という3つの要素から成ることだ。条件式を評価して、その結果に応じて演算する関数の集合体がソースコードになる。 どのようなプログラミング言語でも、こうした基的な考え方に変わりはない。処理の集合としてソースコード全体を記述する「手続き型」か、データと処理(メソッド)をまとめて定義した「オブジェクト」を組み合わせる「オブジェクト指向型」かにかかわらず、プログラミング言語に共通した考え方だと言える。 プログラミング言語によって大きく違うのが、「波かっこ」(「ブレース」「中かっこ」とも)の使い方だ。 そもそも「波かっこ」は何のためにあるのか

    Javaのプロが避ける「波かっこ」の“駄目”な使い方とは?
    ghostbass
    ghostbass 2020/12/13
    なんやこのあからさまなC# dis...
  • 伝わるバグ報告 | さくらのナレッジ

    この記事は2020年10月28日に行われたさくらの夕べ Tech Night #3 Onlineにおける発表を文章化したものです。 ダーシノと申します。さくらインターネットでフロントエンドエンジニアをやっています。この記事では、発生したバグをプログラマーに的確に伝えるためのバグ報告の書き方について説明しようと思います。 バグ報告にはコツがある! プログラマをされている方で、過去にこんなバグ報告をもらった経験はないでしょうか。例えば「動きません」とだけ送られてきたりとか、イラッとした感情も含めた「使えねぇな!」みたいな報告、「アレもコレもソレもおかしいよ」みたいな、いろんなものが書かれた報告もあると思います。バグを残してリリースしてしまったプログラマーとしては非常に申し訳なくて今すぐ対応をしたいのですが、さすがに先ほどのようなバグ報告を受けても、我々プログラマは対応のしようがありません。「申

    伝わるバグ報告 | さくらのナレッジ
  • 「この位置にprintfが無いとなぜか動かないんだ。」 - Qiita

    はじめに 先日ツイッターで見かけた呟き pic.twitter.com/33Yk02hu1U — TOMO (@tomozh) October 14, 2020 そういうこともあるのか的な反応もあるようなので具体例を挙げてみることにする。 例1 所謂FizzBuzz問題。 #include <stdio.h> void fizzbuzz(int n) { int next; int i = 1; do { printf(i % 15 ? i % 5 ? i % 3 ? "%d\n" : "Fizz\n" : "Buzz\n" : "FizzBuzz\n", i); if (i++ >= n) next = 0; } while (next); } int main(void) { printf((char[]){""}); // この位置にprintfが無いとなぜか動かない fizzbuz

    「この位置にprintfが無いとなぜか動かないんだ。」 - Qiita
    ghostbass
    ghostbass 2020/10/19
    「動作している風なのは偶々の結果でありプログラムが正しい訳ではない」「自分の書いたコードを信じてはいけない」肝に銘じる
  • なぜ我々は頑なにforを避けるのか - Qiita

    動機 前回の記事を投稿したことを某SNSで通知したところ、そのSNSでこんなコメントをいただいた。転記する許可を取ったわけでは無いので私なりに要約させていただくと、 なぜそんなトリッキーな書き方をしてまでforを使うのを避けるのか そんな書き方をして可読性を下げるくらいなら素直にforを使う方が良い ということだと理解している。 なるほど、一理ありそうだ。しかし一方で、前回貼ったStackOverflowのQ&Aはなかなかの人気記事(質問に1243ポイント、回答に最大で1559ポイント)なので「多少トリッキーなことをしてでもforを書きたくない!!」という意見をもつプログラマも一定以上いるのだろう。当然私もその1人だ。 ということで、この記事で「なぜそこまで意固地になってまでforを書きたくないのか」を説明することにする。 尚、今回は前回の記事つながりで言語はJavaScriptを使うが、

    なぜ我々は頑なにforを避けるのか - Qiita
    ghostbass
    ghostbass 2020/09/30
    そこにある失敗は現時点でのべてらんなら大抵経験してるからな…(ただしベテランでもかたくなにforeach使わない種族がいるけど)
  • PHPでパスワード比較に==とか===使っちゃだめって知ってた? - Qiita

    PHPerの皆さん、重要な文字列を入力データと保管情報を比較するときに比較演算子("=="とか"===")使ってませんか? これ実は使っちゃだめなので、気をつけましょう。 なぜだめなの? (2020/8/31修正) 関数名をtypoしていたため修正しました。(正)memcmp・(誤)strcmpです。 PHPを含む多くの言語では、文字列を比較する際に内部で memcmp() を使います。 通常の(厳密なセキュリティを必要としない)ケースでは、比較演算子を使うことはまったく問題ありません。 パスワードなど絶対に推測されてはいけない文字列を比較する場合、この関数は脆弱といえます。 memcmp() は内部で1バイトずつ比較検証するため、応答時間をもとに先頭から何文字正解だったか推測できます。 このような攻撃を「タイミング攻撃」といいます。 どうすればいいの? PHPでは、ハッシュ値を用いて文字

    PHPでパスワード比較に==とか===使っちゃだめって知ってた? - Qiita
    ghostbass
    ghostbass 2020/08/29
    どうせハッシュしてるしpassword_hash()したバイト列と保存したバイト列を単純に比較したところで「パスワード文字列の何文字目まで一致している」なんかわかるはずないと思います。
  • デモ(疑似体験)取引キャンペーンの登録情報(個人情報)が漏えいした件について - DMM FX

    弊社では仮想資金を用いて外国為替証拠金取引(FX)を疑似体験していただくサービス(以下、デモ取引)において、一定期間内の取引成績に応じて賞品をプレゼントするキャンペーン(以下、デモ取引キャンペーン)を実施しておりますが、2019年2月以降に開催いたしました3回のデモ取引キャンペーンにご参加いただいたお客様の「メールアドレス」と「登録時のIPアドレス」の2点が、一般ユーザーの方がアクセスする場所ではないものの、インターネット上で閲覧できる状況となっていたことが判明いたしました。 弊社は、2020年8月14日(金)20時45分頃、事象を発見しましたが、その後、直ちに調査を行い、閲覧可能となっていた当該情報の消去を行っております。 なお、デモ取引キャンペーンの賞品プレゼントに利用されるその他の情報(氏名、住所、銀行口座情報)や、【DMM FX】(実際の法定通貨を利用したFX)関連の個人情報は守

    デモ(疑似体験)取引キャンペーンの登録情報(個人情報)が漏えいした件について - DMM FX
    ghostbass
    ghostbass 2020/08/25
    個人情報保護法に基づく「個人情報」である「メールアドレス」(メールアドレスに氏名(フルネーム)および組織名が含まれているもの) < 意味が分からない
  • 【お詫び】IPアドレスが他者からも確認できてしまう不具合について|note株式会社

    経緯と再発防止策について追加のご報告をいたしました。くわしくはこちらをご覧ください。https://note.jp/n/naf3775e93a58 (2020年8月14日 22:33追記)noteサービスにおいて、記事投稿者のIPアドレスが記事詳細ページのソースコードから確認できてしまう不具合が存在していました。 なお、一般的なIPアドレスから、個人情報を特定することはできません。 現在は、該当部分を修正し問題なくご利用いただける状態です。ご迷惑をおかけして、大変申し訳ありませんでした。 今回の不具合により、名誉毀損などの被害をこうむったクリエイターに対しては、ご人と連携して法的措置を含めてnote社がサポートいたします。 以下、発生内容と今後の対策についてご報告します。 IPアドレスとは? インターネットでの通信先の情報です。一般的にはIPアドレスは地域や建物、組織で同一の値が共有され

    【お詫び】IPアドレスが他者からも確認できてしまう不具合について|note株式会社
    ghostbass
    ghostbass 2020/08/14
    ipアドレスとしてランダムなバイト列を与えられてそこから特定個人を知り得るかと言えばNoではあるけど、○○さんのnoteってページで投稿者のipアドレスが確認できるなら○○さんという特定個人の情報が(ry
  • 世界のプログラミング言語(28) COBOLがコロナで大注目?! 60年以上前の言語が最近話題

    COBOLとは1959年に事務処理用に開発されたプログラミング言語です。この変化の早いIT業界で半世紀(60年)以上も昔に開発されたCOBOLが今でも生き残っているのがスゴイことです。しかも、最近になりTwitterでトレンド入りもしているというのです。COBOLに何が起きているのでしょうか。また、COBOLとはどんな言語なのでしょうか。謎めいたCOBOL言語を使ってみましょう。 COBOLの人気急浮上の理由 最初に、今になって急にCOBOLが話題になった理由を種明かししておきます。2020年4月にアメリカ・ニュージャージー州の州知事が、COBOLについて言及したのです。新型コロナの流行によりアメリカではロックダウンが実施されました。それにより、アメリカで失業率が増加し、COBOLで実装されていた失業保険の給付申請のためのシステムがダウンしてしまったのです。それで、州知事がシステムを強化す

    世界のプログラミング言語(28) COBOLがコロナで大注目?! 60年以上前の言語が最近話題
    ghostbass
    ghostbass 2020/08/14
    ピリオドちゃんと付けろや!
  • GitHub - contactmodel/COVID19-Japan-Reff

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - contactmodel/COVID19-Japan-Reff
    ghostbass
    ghostbass 2020/08/05
    実行再生産数計算スクリプト/Rは読んだことも触ったこともないが
  • 命名のプロセス - kawasima

    多くの人が、1回で最高の命名をしようとする。これは難しく、うまく行くことなんて滅多にない。問題はネーミングというのは設計であるということだ。あらゆるものに収まりの良い場所を与え、正しい抽象化をしなくてはならない。これを最初の1回で完璧にこなせる可能性は低い。だから進化的ネーミングについて話をしよう。

    命名のプロセス - kawasima
  • 人材派遣のアスカが最大3万件の個人情報を流出…1カ月以上も周知せず 弁護士は行政処分の可能性を指摘 (3ページ目)

    アスカはどのように情報流出したのか アスカによると、同社が受けたのは「SQLインジェクション」と呼ばれるサイバー攻撃の可能性が高い。 「SQLインジェクション」の「SQL」とは、データベースを操作するためのコンピューター言語のことで、「インジェクション」は「注入」を指す。不正な指令や操作をデータベースに注入し、データベースの情報を盗み出したり、利用者の端末にウイルスを感染させたりすることを目的とする。 2015年には菓子メーカーのシャトレーゼもSQLインジェクションを受け、約21万人のユーザーIDやパスワード、電話番号などの個人情報が流出した。 SQLインジェクションは古典的な攻撃方法 インターネットセキュリティに詳しいITジャーナリストの三上洋氏はSQLインジェクションについて「攻撃がSQLインジェクションによるものであれば、Webアプリケーションに甘さがあった可能性は否定できない」と説

    人材派遣のアスカが最大3万件の個人情報を流出…1カ月以上も周知せず 弁護士は行政処分の可能性を指摘 (3ページ目)
  • WPF4.5入門

  • プログラムは分割しようという話 - Atsuo Ishimoto's blog

    Python.jp Discordサーバを始めてから、早いものでもう2年ほど経ちました。登録者は2700名ほどで、初心者の質問なんかもちょくちょく流れてきます。 で、結構いろんな質問を見てるんですが、初心者はもちろん、プログラミングを始めてからけっこうたつような人でも、質問の内容がどうも怪しい、という人がいます。コンピュータやプログラミングの知識以前に、なにか問題を解決するときに、解決するための基礎的な手順ができていない感じの人たちです。プログラミングというのはある意味で問題解決の連続ですから、これがうまくできないとなかなか先に進めません。 なかでも、「問題を分割しない人」 というタイプの人が、プログラミングの勉強に苦労している人たちにはかなり多い感じがしています。 独学でプログラミングを覚えると、最初はこういった手法に気が付きにくいかもしれませんから、簡単にやり方を説明してみようと思いま

    プログラムは分割しようという話 - Atsuo Ishimoto's blog