タグ

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

  • おっさんのためのModernC++入門ガイド(草稿) - dec9ue's diary

    みなさんはC++の読み書きができますか? 自信がある方、いつ頃勉強しましたか?もし20世紀に勉強したのであれば、その知識は相当古いです。実質現在のModernC++(C++11以降のC++)とは概念上の互換性がないので脳のアップデートが必要です。 自信がない方、文法は知っているけどなんとなく使いこなせていない方、マサカリ屋にあーだこーだ言われて大混乱している方。必勝パターンを身につければもっと楽にコードを読み書きできるようになるかもしれません。 この文章の目的は、ModernC++におけるメンタルモデル(考え方)や必勝パターンをざっくりと導入することでみなさんが楽にModernC++を読み書きできるようなお手伝いをすることです。主要な内容としてはムーブセマンティクスと右辺値 とその次の章でだいたいA4換算で15ページくらい?ほかは正直流し読みしてもらえるような内容です。また、内容的にはその

    おっさんのためのModernC++入門ガイド(草稿) - dec9ue's diary
  • モダン JavaScript チートシート

    Skip to the content. モダン JavaScript チートシート 画像クレジット: Ahmad Awais ⚡️ イントロダクション 動機 このドキュメントはモダンなプロジェクトでよく見られる JavaScript のチートシートと最新のサンプルコードです。 このガイドは読者に JavaScript をゼロから教えるものではありません。 基礎知識は持っていて、モダンなコードベースに慣れる(例えば React を学ぶ)のに苦労している開発者を助けるためのものです。 説明の中で JavaScript の諸概念が使われています。 また、議論の余地のあるポイントについてときどき個人的な tips を載せますが、その際はあくまでも個人的なおすすめであることを述べるように気をつけます。 メモ: ここで紹介されている概念のほとんどは JavaScript 言語のアップデート( ES2

  • 一時期プログラミングのデザインパターンというものが大流行しましたが、現在ではどのように評価されているのでしょうか?

    回答 (5件中の1件目) この質問にかなり先行して2015年、Quora(家)で投げかけられた質問として、 Why do some functional programmers criticize design patterns in OOP languages as a sign of language deficiency, while Monad is also a design pattern? なぜ、関数型プログラマらは、オブジェクト指向(OOP)言語のデザインパターンを、言語の欠陥の象徴だと批判するのでしょうか?モナドもデザインパターンじゃないんですか? があります。...

    一時期プログラミングのデザインパターンというものが大流行しましたが、現在ではどのように評価されているのでしょうか?
  • JavaScriptで書く「var,let,const」の違いと使い分け方法

    JavaScriptで書く「var,let,const」の違いと使い分け方法 プログラミング初心者向けに、JavaScriptにおける【let、var、const】の違い・使い分けを解説した記事です。記事では、let、var、constをどんな時に使うのか、書き方の例などを紹介します。実際のサンプルを書きながら解説しているので、参考にしてみてください。 テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査 JavaScriptにおけるvar、l

    JavaScriptで書く「var,let,const」の違いと使い分け方法
  • WindowsがLinuxより優れている点は何ですか? (OSの設計に関する質問であり、利用者の使い勝手の話ではありません) 。

    回答 (6件中の1件目) 私はWindowsのカーネルを熟知しており、Linuxのカーネルについてはそれなりに知っています。 意外に思われるかもしれませんが、類似点の方がずっと多く、違いは少ないです。私がよく言う違いの1つは、LinuxのI/OモデルはUNIXから継承した同期式が基で、WindowsのI/OモデルはVMSから継承した非同期式が基であるということです。WindowsのI/Oリクエストの設計は、同期式と非同期式のI/Oを美しく管理できる優れた設計になっています。Linux(及び普通のUNIX)でも非同期のI/Oは可能ですが、そのための統一された仕組みはありません。これは...

    WindowsがLinuxより優れている点は何ですか? (OSの設計に関する質問であり、利用者の使い勝手の話ではありません) 。
    nharuki
    nharuki 2021/07/19
    これ、ドライバに限らず大体が両OS全般に言えるような…“1つのソースコードに統合することもできますが、条件付きコンパイルの嵐で酷いコードになる可能性が高いです。”
  • タイムゾーン呪いの書 (知識編)

    「タイムゾーン呪いの書」は、もともと 2018年に Qiita に投稿した記事でしたが、大幅な改訂を 2021年におこない、同時にこちらの Zenn に引っ越すことにしました。 この改訂では Software Design 誌の 2018年 12月号に特集の一章として寄稿した内容も取り込みつつ、夏時間をめぐって各地で起きつつある変化について 2021年 6月現在の状況なども追加しました。そんな追記もしていたら記事全体が長大になってしまったため、この「知識編」と、「実装編」・「Java 編」に記事を分けました。「知識編」は、導入にあたる第一部です。 Qiita のほうは、引っ越した旨とこの引っ越し先へのリンクだけ追記して、しばらくそのまま残すつもりです。 はじめに タイムゾーンという概念のことは、ほとんどの人が聞いたことがあると思います。ソフトウェア・エンジニアでも多くの方が、時刻やタイムゾ

    タイムゾーン呪いの書 (知識編)
    nharuki
    nharuki 2021/07/05
    闇深みが深い・・・
  • GitHubにAIプログラミング機能「Copilot」登場 関数名とコメントから中身を丸ごと自動補完

    GitHubは6月29日(現地時間)、関数名とコメントから、関数のコードを丸ごと自動補完するAIプログラミング機能「GitHub Copilot」(コパイロット、副操縦士の意)を発表した。専用ページから登録すると、テクニカルプレビュー版の招待を順次受けられる。 米Microsoftのコードエディター「Visual Studio Code」と、Visual Studio Codeベースのクラウド開発環境「GitHub Codespaces」向けの拡張機能として提供する。 例えば、コメントとして「// Get average runtime of successful runs in seconds」(成功した実行の平均実行時間を秒の形式で取得する)と書いておき、その下に「func averageRuntimeInSeconds」と関数を書き始めると、Copilotがその先を自動補完。必要な

    GitHubにAIプログラミング機能「Copilot」登場 関数名とコメントから中身を丸ごと自動補完
  • jemalloc について調べたのでまとめた - zonomasaの日記

    ※この記事は3回シリーズのうちの一つ jemalloc について調べたのでまとめた - zonomasaの日記 続 jemalloc について調べたのでまとめた(ビルドと組み込み方法) - zonomasaの日記 jemalloc の解析機能 - zonomasaの日記 photo by mutednarayan jemalloc とは jemalloc は、標準ライブラリで定義されているmalloc, free 等のメモリアロケーション APIの実装である。 jemalloc : 公式ページ jemalloc は2005年より、Jason Evans によって開発されており、SMPでのスケーラビリティのためにFreeBSD のlibcに取り込ま標準アロケータとなっている。 その他にも、Facebook の内部や、KVS のRedis、fluentd などにも取り込まれている。 具体的には

    jemalloc について調べたのでまとめた - zonomasaの日記
  • レビュアーにやさしいリファクタリングPRを作る

    リファクタリングの PR、見るのツラい内容になりがち PR(PullReqeust)を作成してレビューを受け、Approve を受けたらマージする..という開発スタイルはよくあるパターンで、新たな機能追加や修正では観点が明確で動作確認も実施しやすいのですが、これがリファクタリングがテーマになると、途端にレビューが大変になることがあります。 個人的な経験則もありますが、何も意識せずに PR を作ると、次のような問題が発生しやすいように感じます。 1テーマに関する修正が一気に詰め込まれていて物量が多い 何を確認したらよいのかわからない 複数 PR に分けている場合に、後続の PR だけを見ても理解できない など... リファクタリングの PR は内容も淡々としたものになることが多く、確認もリグレッションテストが中心で、レビュアーはそこそこ心を削られます。そのうえ上記のような問題を抱えていると、

    レビュアーにやさしいリファクタリングPRを作る
    nharuki
    nharuki 2021/03/25
    ちょーだいじ → "途中で見つけた他の改善点をすぐに全部拾おうとしない"
  • Rust入門

    プログラミング言語Rust入門です.なるべくわかりやすいように解説しました.公式ドキュメントを読んでみたけど,あまりよくわからなかったという人に向いているかもしれません. 誤字や間違いなどのご指摘は以下からコメントをお願いします. https://zenn.dev/mebiusbox/scraps/90bc293a07430d

    Rust入門
  • Rust Cookbook for Beginners - CADDi Tech Blog

    こんにちは😉 @ryokotmngです。 今日は社内ドキュメントの、Rust初心者向けのクックブックを公開しようと思います。 私自身コードを書くのに四苦八苦していた頃にとても助けられたので、Rustをはじめたばかりの方の参考になれば嬉しいです。 目次 [toc] はじめに この記事では、The Bookに記載されている知識を前提としています。 Rustを全く書いたことがない方は、先に読んでみることをお勧めします。 サンプルコードが結構長いこと、実行環境があった方が良い内容も多いことから、サンプルコードは大体Rust Playgroundのリンクとなっています。 ぜひご自身で修正して遊んでみてください。 単位つきの計算を型で厳格に縛る 例えば複数の長さの単位 (mm, cm, mなど) を扱う場合に、単位が合っていない長さ同士の計算をする場合、単位を揃える必要がありますね。 この時、最終的

    Rust Cookbook for Beginners - CADDi Tech Blog
  • プログラミング言語の未来はどうなるか | κeenのHappy Hacκing Blog

    κeenです。最近JEITAのソフトウェアエンジニアリング技術ワークショップ2020に参加したんですが、そこで五十嵐先生、柴田さん、Matzとパネルティスカッションをしました。その議論が面白かったので個人的に話を広げようと思います。 年末年始休暇に書き始めたんですが体調を崩したりと色々あって執筆に時間がかかってしまいました。 時間を置いて文章を書き足していったので継ぎ接ぎ感のある文体になってるかもしれませんがご容赦下さい。 というのを踏まえて以下をお読み下さい。 いくつか議題があったのですが、ここで拾うのは一番最後の「プログラミング言語の未来はどうなるか」という話題です。 アーカイブが1月末まで残るようです。もうあと数日しかありませんが間に合うかたはご覧下さい。 そのとき各人の回答を要約すると以下でした。 五十嵐先生:DSLを簡単に作れる言語というのが重要。それとプログラム検証、プログラム

    プログラミング言語の未来はどうなるか | κeenのHappy Hacκing Blog
  • [C++]素敵な宇宙船演算子(<=>) - 地面を見下ろす少年の足蹴にされる私

    ※この内容はC++20より有効なものです。現行(C++17)ではまだ1ミリも利用可能な情報ではありません。また、随時記述が変更される可能性があります。 Spaceship Operator(宇宙船演算子)とは 自動生成される演算子 対称性 default実装 暗黙deleteされるケース 戻り値型 その他比較演算子のdefault実装 Comparison category types(比較カテゴリ型) weakとstrong substitutability(代入可能性、代入原理) 狭義の弱順序との関係 共通比較カテゴリ型(Common comparison category type) 比較カテゴリ型と==,<を利用した宇宙船演算子の合成 合成のレシピ 戻り値型指定と==は必要? 組み込み型の宇宙船演算子 operator==について 任意のクラス型の非型テンプレートパラメータとしての

  • プログラミングロボット Root | アイロボット公式サイト

    プログラミングロボット Root rt1では、実践的なプログラミングを目に見える形で体験しながら、計算的思考スキルを養うことができます。30種以上の機能とセンサー、マグネット式ホワイトボード走行機能、長時間駆動バッテリーを活用したユニークな学習体験を通じて、プログラミングによってロボットを実際に動かすことができます。

    プログラミングロボット Root | アイロボット公式サイト
    nharuki
    nharuki 2021/01/19
    きになる。英語サイト https://www.irobot.com/en/Root の方はチュートリアルなどが既に揃ってる
  • Typescriptの次はRustかもしれない

    Introduction Rustを学び始めたのは多分今年の3月くらい。 なぜ急にRustに興味を持ったのかは後述しますが、半年ほどRustをいじくりまわしてみて、まだまだ学び途中でもRustの素晴らしさを語らずにはいられず、記事を書くことにしました。 Rustは「Cの正当な後継」なんてよく言われますが、WebエンジニアからみてもRust当に素晴らしいってことが少しでも伝わればいいなと思います。 RustTypescript 「なぜRustTypescript?」って思う方は多いと思うので、順に話していきたいと思います。 2020年のフロントエンドの流行 まず2020年今日時点のフロントエンドについて雑に書くと ReactVueが主流 Typescriptがデファクト、babelなどでトランスパイルは言わずもがな サーバーサイドもNodeで書くならTypescript Jest、

    Typescriptの次はRustかもしれない
  • Rustの全マクロ種別が分かったつもりになれる話! / rust-all-kinds-of-macro

    Rustのマクロの書き方を一通りご紹介します。macro_rules!で定義する一般的な宣言マクロはもちろん、#[derive]で使う自動導出マクロや属性マクロなどの手続きマクロも説明します。これであなたも黒魔術師! 2020/07/28 OPTiM TECH NIGHT|Rustの全マクロ種別が分かったつもりになれる話! https://optim.connpass.com/event/180982/

    Rustの全マクロ種別が分かったつもりになれる話! / rust-all-kinds-of-macro
  • マルチスレッド・プログラミングの道具箱

    まえがき クラウド上の仮想サーバから手元のスマートフォンまで、いまや複数のCPUコアを搭載するマルチコアはどこにでもある環境になりました。ハードウェア側が並列(Parallel)・並行(Concurrent)処理に向けて急速に進化する一方で、ソフトウェア側つまりプログラミング言語の進化はさほど追い付いていません。並行処理記述の手軽さを求めた Go言語 や、マルチスレッド処理の安全性を重視する Rust言語 などが登場してはいるものの、「普通にプログラムを記述するだけで複数CPUコア環境で高速に走るプログラミング言語」は遠い夢物語のままです。 モダンなプログラミング言語や並列・並行処理ライブラリは、複雑で難解なマルチスレッド処理を直接記述しなくてすむよう、安全性・利便性の高い抽象化レイヤを提供します(例:Go言語のgoroutineとchannel、Rust言語の Rayonライブラリ)。し

    マルチスレッド・プログラミングの道具箱
  • アルゴリズムビジュアル大事典

    このサポートページでは、マイナビ出版発行の書籍「アルゴリズムビジュアル大事典」にて作成しましたシンボル、アニメーション、疑似コードを掲載いたします。また、内容のアップデートを行ってまいります。詳しい解説は、書をご参考にしてください。 アニメーションコントローラの使い方はクイックマニュアルでご確認頂けます。 補足情報が表示されているトピックにつきましては、ご注意ください。その他の訂正等は正誤表をご覧ください。ご質問、不具合等のご報告は、ご遠慮なくy.watanobe@gmail.com(渡部)までお送りください。

  • Cの可変長引数とABIの奇妙な関係 - Qiita

    printf に関する以下のツイートが流行っていました。 上のツイートでは割とあっさり説明されていますが、amd64 SysV ABIでこの現象が起こる理由にはもっと深遠なものがあると思うので、可変長引数とからめて説明してみたいと思います。 前提条件として「ABI」「可変長引数」「non-prototyped関数」の知識が必要なのでそこから説明します ABIとは ABI (Application Binary Interface) とは、機械語レベルでのインターフェースのことです。 機械語そのもののルールはISA (Instruction Set Architecture) によって規定されていますが、たとえばC言語の「関数呼び出し」などの概念を機械語でどのように表現するかについては規定していません。そのルールを定めたのがABIです。したがって、ISAとABIはおよそ1対多の関係にあります

    Cの可変長引数とABIの奇妙な関係 - Qiita
    nharuki
    nharuki 2019/09/02
    ABIこわい
  • APIとかABIとかシステムコールとか - Qiita

    はじめに 記事はLinux環境における次のようなことをざっくり理解するための記事です。 Application Programming Interface(API)って何? Application Binary Interface(ABI)って何? システムコールとAPIとABIの関係って? それぞれ何がどう違うの? この手の情報はググればwikipediaやらにいろいろ情報が載ってるんですが、初心者が理解するには細かいことまで書かれすぎていて、かつ、それぞれの関係がわかりにくいです。なので、用語を逐一解説するのではなく、ありがちな質問のQAという形をとりました。人によって用語の意味の揺らぎがあったりするんですが、私の解釈ということで。あからさまに間違っていたら指摘していただけると嬉しいです。 これを書こうと思ったきっかけは、以前こんなtweetを見かけたことです。それから「そういえば最

    APIとかABIとかシステムコールとか - Qiita