タグ

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

  • else 句に「// 何もしない」コメントを書く意味について

    確かに、パッと見で 「なんだこれ?」 になりますね。 意味のないコメントとして else 句ごと削除してしまって良さそうにみえます。 しかし、実はこの「何もしない」コードは、 プログラミング(理論)的に面白い側面を持っている ので、簡単に記事にまとめてみたいと思います(記事中では Swift に似た擬似コードを使用します)。 キーワード if 式、網羅的パターンマッチ、参照透過、副作用、モナドと単位元 else 句が省略できる条件 例えば、次のコード例を考えてみます: let array: Array<Int> = ... var positiveArray: Array<Int> = [] // var = 可変変数 for x in array { if x > 0 { positiveArray.append(x) } else { // 何もしない } } ここでは array か

    else 句に「// 何もしない」コメントを書く意味について
    kniphofia
    kniphofia 2022/01/10
    考慮しているかどうか、です。
  • 『PCに詳しい人しか答えられない漢字クイズ』プログラマ向け中心の全8問が無事に大喜利会場化「プログラムを[?]らせる 」

    くいなちゃん @kuina_ch PCに詳しい人しか答えられない漢字クイズ: 1. プログラムを[?]らせる 2. プロセスを[?]す 3. サーバが[?]ちる 4. APIを[?]く 5. 例外を[?]げる 6. エラーを[?]く 7. バグを[?]む 8. メモリを[?]う 2021-11-04 21:05:31 くいなちゃん @kuina_ch わたしの知識の一部をあげますので、あなたの一部をください! くいなちゃん、6さい。 フォローが多いですが、結構読んでいます。 サイト→ kuina.ch [イラスト/作曲/プログラミング/ゲーム制作/あらゆる学問/… kuina.ch

    『PCに詳しい人しか答えられない漢字クイズ』プログラマ向け中心の全8問が無事に大喜利会場化「プログラムを[?]らせる 」
    kniphofia
    kniphofia 2021/11/14
    バグは潰すものだと思ってました。APIは呼ぶものだと思ってました。
  • 「はじめてゲームプログラミング」の衝撃

    エンジニアの間で話題沸騰「はじめてゲームプログラミング」 6月11日に発売され一時トレンドにも載るほど。 「ナビつき!つくってわかる はじめてゲームプログラミング」。 「ノード」をつなげてプログラミングしてゲームを作っていきます。 例えば「Lスティックノード」と「ヒトノード」を繋いでLスティック操作ができるようになります。 チュートリアルでは「おにごっこゲーム」や「マリカ」みたいなものを作れちゃいます。 私ももちろんプレイして実況配信なんてやってみたのですが節々で「プログラミング学習」という点で衝撃を受けました。 今回はその衝撃を紹介していきたいと思います。 約束された「完成したときの達成感」 「ナビつき!」というタイトルの通り、チュートリアルが懇切丁寧です。 失敗につながるようなメニューは無効化されていますし、しばらく迷って画面上で進捗を出せないでいるとアシストしてくれます。 「完成」す

    「はじめてゲームプログラミング」の衝撃
    kniphofia
    kniphofia 2021/06/14
    させてあげてます!!
  • 高速逆平方根(fast inverse square root)のアルゴリズム解説 - 滴了庵日録

    高速逆平方根とは? C言語のコード 検証 アルゴリズムの要点 [1] 逆平方根の計算を対数・指数の計算に置き換える [2] 浮動小数点型の内部表現を利用した対数・指数の近似計算 [2.1] 対数の近似 [2.2] σの最適値 [2.3] 整数型での解釈 [2.4] 逆平方根の計算とマジックナンバー0x5F3759DF [3] ニュートン法による収束で精度アップ 感想 高速逆平方根とは? 高速逆平方根(fast inverse square root)とは、平方根の逆数 を高速に計算するアルゴリズムです。平方根の逆数は逆平方根とも呼ばれます。逆平方根はベクトルの正規化などに用いられるので、これを高速に計算できるアルゴリズムには大きなご利益があります。 参照: Fast inverse square root - Wikipedia C言語のコード 高速逆平方根の関数を示します。0x5F375

    高速逆平方根(fast inverse square root)のアルゴリズム解説 - 滴了庵日録
    kniphofia
    kniphofia 2021/02/10
    「ただし、(5) で求めた σの値から計算すると 0x5F37BCB6 となり、一般的に知られているマジックナンバ0x5F3759DF と微妙に食い違います。」あたまおかしい(ほめ言葉)
  • 子供を天才プログラマーにしようとして失敗した話 - LiBz Tech Blog

    そんな大げさなタイトルにしてしまいましたが、 実態はただの子育て日記みたいな形になってしまいました。。。 子供にプログラミングを勉強させようと考えている方は、ほんの少し参考になるかもしれません。 ※コメントをうけて追記 無理やり・強制でやらせて...等とコメントいただいておりますが、 基的には子供に「やりたい?」「行きたい?」と聞いて、「やる!」「行く!」と了承もらったものになります。 プログラミングに限らず、いろんなスポーツや習い事について同じように聞いて、「いやだ!」と言われたことはやらせておりません。 また失敗と書いていますが、ここでの失敗は「今までの私の接し方のミス」の話であって、子供に対して言ってるものではありません。 背景 自分が社会人になってから転職エンジニアになっているので、 小さいころからプログラミングと出会いたかったという思いがありました。 (PCを触り始めたのは大

    子供を天才プログラマーにしようとして失敗した話 - LiBz Tech Blog
    kniphofia
    kniphofia 2019/09/28
    天才は気づいたときには既になっているものでならされるものではない。自由に。
  • 江添亮のC++入門

    書はプログラミングの経験はあるがC++は知らない読者を対象にしたC++を学ぶためのである。書はすでに学んだことのみを使って次の知識を説明する手法で書かれた。C++コンパイラーをC++で書く場合、C++コンパイラーのソースコードをコンパイルする最初のC++コンパイラーをどうするかというブートストラップ問題がある。書はいわばC++における知識のブートストラップを目指しただ。これにより読者はを先頭から読んでいけば、まだ学んでいない概念が突如として無説明のまま使われて混乱することなく読み進むことができるだろう。 C++知識のブートストラップを意識した入門書の執筆はなかなかに難しかった。ある機能Xを教えたいが、そのためには機能Yを知っていなければならず、機能Yを理解するためには機能Zの理解が必要といった具合に、C++の機能の依存関係の解決をしなければならなかったからだ。著者自身も苦し

  • プログラミング言語はひとつマスターすれば他もできる? - t-hom’s diary

    プログラミングでは、ひとつの言語をマスターすれば、どんな言語でも使えると言われている。 この言説には賛否あるけど、ある意味正しくて、ある意味間違いだと思う。 より正確に言えば、新しく学ぶ言語と既にマスターしている言語に共通する概念についてはスムーズに移行できるということだ。 たとえば変数・分岐・繰り返し・比較演算なんかは、大半の言語が備えている共通概念である。言語によって作法やスタイルが異なるだけで考え方は同じなので、新しく学習する言語でこれらを使いこなすのは難しくない。 仮にVBAを100%マスターしているなら、Pythonの学習範囲はPython特有の部分だけで済む。 まあそうは言ってもなかなか一つの言語をマスターするのは難しい。 VBAの学習割合が少なければ、Pythonをマスターするための学習範囲はより広くなる。 じゃあまずはVBAを極めよう!と考えるかもしれないがそれも早計である

    プログラミング言語はひとつマスターすれば他もできる? - t-hom’s diary
    kniphofia
    kniphofia 2019/09/15
    まずはOS対応から
  • プログラミング必須英単語600+ | プログラミング英語検定

    概要 プログラミングをする際には、APIリファレンスやソースコードのコメントなどを英語で読むことが求められます。場合によっては英語で関数名を付けたり、ちょっとしたマニュアルを書いたりする機会もあります。ただしプログラミング時に求められる英単語は、一般的な英語で求められる英単語とは異なります。 必須英単語リストでは、プログラミング時に求められ、特に目にすることが多い英単語を以下のカテゴリーに分けて選定しています(注1)。プログラミング英語の学習や知識確認にご活用ください。

    プログラミング必須英単語600+ | プログラミング英語検定
    kniphofia
    kniphofia 2019/09/06
    カタカナ表記でいいんじゃないの(思考停止)
  • 「コメントは書くな」 - Qiita

    同僚だったロシア人のMはとにかくすごいエンジニアで、給料について社長ともめていたかと思えば、スーパーデプロイシステムを一人で作り上げていたり、Python推しの会社の中で、各所を説き伏せてTypeScript on node.jsの導入を進めたりしていた。 皮肉屋で、だれかれかまわず議論をふっかけていたが、とにかく仕事が速くて品質がよいので絶大に信頼されていた。 私は開発者としてMから様々な教えを授けられた。当時私はPHPerあがりのひよっこで、日々ダメコードを生産していた。 ある日Mにコードレビューを依頼すると、こんなことを言われた。 「堀さん!ソースコードにコメントを書いてはいけない!」 // connect to the database named "mysql" on the localhost val driver = "com.mysql.jdbc.Driver" val u

    「コメントは書くな」 - Qiita
    kniphofia
    kniphofia 2019/07/01
    テクニカルなコードは説明がほしいな。
  • 「設計なんて不要でしょ」について - Qiita

    経緯 以前とある席で偶然シニアエンジニアの方と設計について議論することがありました。 その時に特に耳に残っていたのは以下の様な内容です。 クリーンアーキテクチャってテストしやすくする為のですよね? 設計はコード書ける人が他のコードを書ける人に威張るための道具なのではないか? 設計を学習するならブロックチェーンとかを勉強して技術力を高めるべきなのではないか? リーダブルコードさえ読んでいれば設計は必要ないのではないか? 設計なんて不要でしょ その方はかなり詳しく設計の歴史をしっていて尤もな事を言っていましたが、平成も終わる頃においてはその限りではないです。 なので平成最後の日にそれら全てに対して最終的に解答できる形で設計の有用性を説明し、気持ちよく令和を迎えます。 注意: 一応ここで説明する内容や要素も一面だけです。 よくある誤解 クリーンアーキテクチャといえばこの有名なリングですよね。 こ

    「設計なんて不要でしょ」について - Qiita
    kniphofia
    kniphofia 2019/04/30
    指してる意味が複数存在する例
  • 上級プログラマってどんな本読んでるの?中堅プログラマがマウンティング取られないための名著8選 - 世界が幸せで在ります様に

    この記事を読もうと思ったということは,あなたはそこそこできるプログラマ,あるいは社内でも自他ともに優秀と認められるほどの実力者かもしれません. ただし,そんな状況でも業界で名が知られる優秀な人や社内の上級プログラマと対峙した時身構えてしまい相手の不思議な理論に屈服してしまう経験はありませんか?気でプログラミングをすれば互角,あるいは言語によっては自分の方が明らかに上だと自負できる状況にもかかわらず. そんな中,そこまで優秀そうに見えないのにうまくマウンティングを回避しているプレーヤーを見たことはないでしょうか? 彼らと自分は何が違うのか? 簡単に言えば,知ってるコンピュータ科学の量と,何らかの物事に対して同調するのではなく先駆者的にそれを宣言することです.それを少しでも発揮できる名著をこれからご紹介します. ※安心してください,日語の書籍だけ紹介します. Coders at Work

    上級プログラマってどんな本読んでるの?中堅プログラマがマウンティング取られないための名著8選 - 世界が幸せで在ります様に
    kniphofia
    kniphofia 2018/06/18
    上級は読んでない
  • ソースコードの形状ルール | 吉本式BEM設計(BEM設計ベース)

    HTMLのソースコードの形状ルール 今回のこの記事に対しての反響について 日頃から他の実装者が制作したWebサイトのソースコードを見るようにしていますが、美しいソースコードだと思えるソースコードにはなかなか出会えません。 「美しいソースコード」という意味には、単に「美しい」だけではなく「見やすい」という意味も含めて使用しています。 タイトなスケジュールに追われて、ソースコードを整える余裕がないというのが現状でしょうか。 中でも最も気になるのが、インデントです。 Webサイトのソースコードを見ると8割程度の割合で、インデントが付いています。 なぜインデントを付けるのかを聞くと「コーディングミスが防ぎやすい」「作業効率が良くなる」という回答がきます。 これについて否定はしませんが、ではインデントを付けないとコーディングミスが起きやすく、作業効率が悪いのかというと、そんなことはありません。 私は

    ソースコードの形状ルール | 吉本式BEM設計(BEM設計ベース)
    kniphofia
    kniphofia 2018/05/11
    インデントなしはさすがに見難いです
  • 提案:エンジニアに気軽に「バグ」というのはやめませんか? - worker experienceの日記

    もしかしたら私だけかもしれないです。ずれているかもしれません。 一般論ではないかもしれません。 でも、同じような気持ちになっているエンジニアがいるかもしれないので、 代表して言わせてください。 エンジニアに、気軽に「バグ」と言うのをやめませんか? 最近立て続けに以下のようなことが起こっており、私と同僚が消耗しています。心がすり減ってます。ワーカーエクスペリエンスが低下しています。。。 ~~~~~~~~~~~~~~~~~~~ 「○○さん、この数値がバグなんだけど直してもらえる?」 →調べたらその週は祝日影響で、営業日が少ないだけだった。 「あのデータのバグはいつ直りますか?」 →データの集計定義の変更の依頼があり、変更前の状態をバグと呼ぶ 「この前入ってなかったバグなんだけど、次の開発に入れてもらっていい?」 →スコープ外のこと(担当がそれを忘れていた)をバグと呼ぶ ~~~~~~~~~~~~

    提案:エンジニアに気軽に「バグ」というのはやめませんか? - worker experienceの日記
    kniphofia
    kniphofia 2018/03/01
    バグぐらい出せばいいじゃない
  • Javaではif (isAdmin == true)というコードを書いてはいけない - Qiita

    はじめに 当たり前だと思うのですが、意外と守られていないことがあります。その1つの例として、条件分岐でのbooleanの扱いを挙げてみます。 ~~タイトルには「Javaでは」と書きましたが、おそらくどの言語でも同じです。~~JavaScriptなど他の言語では当てはまらないので取り消します1。 何がダメか 明確にコーディング規約で否定しているケースもありますが2、Javaでは以下のようなコードは書いてはいけません。 if (isAdmin == true) { // isAdminがtrueのとき } if (isAdmin == false) { // isAdminがfalseのとき }

    Javaではif (isAdmin == true)というコードを書いてはいけない - Qiita
  • 「最初に学ぶべきプログラミング言語」 - mizchi's blog

    初心者に最初にぶち当たるのが『環境構築』という大きな壁なんですよね。そこで何割の人がスタートラインにすら立てずに挫折するだろうか…5割は超えるかもしれない…— ビタワン@社畜ちゃん②巻2/27発売予定 (@vitaone_) 2017年2月5日 環境構築が壁で、楽しい(かどうかは人によるが)プログラミングにたどり着けなくてモチベーションが、というのはわかるが、環境構築を経験してその辺の洞察身につけてもらわないと現場で困る、というような話もあって、二ヶ月速習でiOSエンジニア、みたいな講習はその視点欠けててダメ— 現場の声 (@mizchi) 2017年2月5日 よほどよくできた環境でもない限り、何作ろうとしても初動でうまいこといくケースが少ないので、それを解決するための勘と体力は絶対に必要なんだよなー— 現場の声 (@mizchi) 2017年2月5日 僕も完全独学でプログラミング始めたの

    「最初に学ぶべきプログラミング言語」 - mizchi's blog
    kniphofia
    kniphofia 2017/02/06
    バッチファイルとかシェルスクリプトじゃないのですね
  • オブジェクト指向設計(2016年度)

    コンテンツ 第1章 基的な用語 第2章 オブジェクト指向開発 第3章 設計の問題 第4章 オブジェクト指向設計の原則 第5章 単一責任の原則 第6章 Visitor パターン 第7章 LSP、DIP、ISP 第8章 パターン技術 第9章 ユースケース 第1章 基的な用語 クラスとオブジェクトの違い 第2章 オブジェクト指向開発 オブジェクト指向開発 オブジェクト指向分析 機能外要求 User インタフェース Student クラスとTeacher クラス Student クラスのソースコード Teacher クラスのソースコード 演習2-1 UserLocator クラスのソースコード 演習2-2 演習2-2 の解答 Teacher.java UserLocator.class 第3章 設計の問題 演習3-1 演習3-1 の解答1(返却値を利用した方法) 演習3-1 の解答2(条件分岐

  • プログラミングする時にイケてない関数・変数名をつけないために覚えておきたいネーミングルールの良記事+ツール8選|TechClips[テッククリップス]

    プログラミングをしていて関数や変数名をつけるときに、毎度のことのように考えるのが手間、とはいえ、適当なネーミングでも違和感あるし……。なにより他のエンジニアが見たときに「なんだこりゃ、分かりにくい。」というのは避けたいところ。 そういったプログラミングにおけるネーミング問題を解消できるツールや情報をまとめてみたので、是非、参考にしてみてください! 1. codic codic ネーミングと言えば、一度は使ってほしいド定番の「codic」。簡単に言うとネーミング辞典サービスで、日語の動詞で終わるように文章を入力するとプログラミングでよく使われるようなネーミングを提案してくれます。さらに単語のニュアンスも表示してくれるので、和英辞書のような使い勝手というのが分かりやすいでしょう。さらに、ユーザー登録をすれば、辞書として単語を追加していくといった活用も可能。考えずとも最適なネーミングが生成でき

    プログラミングする時にイケてない関数・変数名をつけないために覚えておきたいネーミングルールの良記事+ツール8選|TechClips[テッククリップス]
  • 「Rubyのここがイケてない」を論破したい - Qiita

    職場のPythonistaとプログラミングについての話をすると、ことごとくRubyディスの流れに持ってかれてしまいます。 Railsは流行ってるけど Rubyはそうじゃないよね 絶滅しそうなプログラミング言語にRubyが選ばれたのは 順当 GithubRailsで作られているというのは 都市伝説 (大規模開発に向いてるとは思えない) Rubyのrequireは 仕様不備 なぜそんなに嫌うのですか? TMTOWTDIは悪 TMTOWTDIとは"There's More Than One Way To Do It."の頭文字で、「やり方はひとつじゃない」という意味の、Perlのモットーです。 Rubyでは、その思想を受け継いでるためなのかわかりませんが、組み込みクラスの多くのメソッドに別名が定義されています。 例えば Enumerable#map,find,inject,select,inc

    「Rubyのここがイケてない」を論破したい - Qiita
    kniphofia
    kniphofia 2014/12/26
    比べる対象が間違ってませんか。
  • jQuery++

    Hi, I’m jQuery++. I am a MIT licensed collection of extremely useful DOM helpers and special events for jQuery 1.8 and later. I’m not a UI project like jQuery UI or jQuery Tools. Instead, I’m all about providing low-level utilities for things that jQuery doesn’t support. If Underscore is jQuery’s functional-programming tie, I am jQuery’s bald-spot covering toupee. Select the plugins you want and c

  • 良いネーミングをするために覚えておきたい英語のルール5つ - プログラマー幸福論

    Photo by muraterturk こういった記事って、ネーミング規則や慣習の視点から書かれていることが多いんですけど、この記事では、英文法に視点を置いて、参考になりそうなことをいくつかピックアップしてみたいと思います。 「省略形は使わない」などの規約的なものは、各プロジェクトのルールに従えばいいので、ここでは書きません。あくまで英語という視点から書いているということを、ご理解ください。 Rule 1 : “検索”は名詞 一般的な英語辞書のルールでは「検索」は、動詞ではなく「検索する」が動詞になります。「検索」は、検索することの名称 だと考えられるため、動詞ではなく名詞として扱います。 英語辞書には、日語の品詞ごとに表記のルールがあります。これが理解できていると、和英辞書などで品詞を意識して検索できるようになります。以下に、一般的な英語辞書の表記ルールをまとめてみました。 <各品詞

    良いネーミングをするために覚えておきたい英語のルール5つ - プログラマー幸福論