タグ

programmingとProgrammingに関するardarimのブックマーク (981)

  • 最小限のコードで動く最も汚いコードから始める

    最小限のコードで動く最も汚いコードから始める コードを書く際の重要な要点は、読みやすく他人に理解される「良いコード」を書くことです。しかし、完璧を目指して最初から書こうとすると行き詰まります。代わりに、荒削りながらも動くコードを作成し、徐々にリファクタリングして完成度を高めます。型エラーやリントエラーを無視しても構わないので、まずは動くものを作成しましょう。それからリファクタリングして「良いコード」を作成できます。 コードを書くときに最も大切なことってなんだろう?聡明な読者諸君ならご存知だろうが、コードは書く時間よりも読む時間のほうが長い。だから他人に読まれることを意識して、読みやすい「良いコード」を書かなくっちゃならない。コンポーネントは適切な粒度で分割されていて、適切な名前がつけられている。型システムに安全性だって守られてるし、最新のなんとかアーキテクチャにも準拠している。素晴らしいコ

    最小限のコードで動く最も汚いコードから始める
    ardarim
    ardarim 2023/09/04
    なんか創作に通じるところがあるな。下手くそでもいいからまずは完成させろ的な
  • アイヌ語仮名「ㇷ゚」に対する正規表現の罠

    導入 アイヌ語は日語と異なり、閉音節(子音で終わる音節)も存在するので、表記の際音素文字であるラテン文字なら、そのまま p, t, k, m, n, s, r などの子音文字を後ろの付ければ良いわけなので、アイヌ語ローマ字表記では、何も問題が生じない。しかし、元々開音節言語である日語に特化したカタカナのような仮名文字で表記する際、鼻音 n は「ン」でなんとかなる(実はそれでもまずい事になっているけどここでは割愛する)が、p, t, k, m, n, s, r, h はどうしようもないので、特殊の捨て仮名(小書き仮名文字)を利用することになっている。 具体的には以下のような特殊仮名文字(通称 アイヌ語仮名)である。 ㇷ゚ -p ッ -t ㇰ -k ㇺ -m ㇱ -s ㇻ -(a)r, ㇼ -(i)r, ㇽ -(u)r, ㇾ -(e)r, ㇿ -(o)r お分かり頂けただろうか… 問題 r

    アイヌ語仮名「ㇷ゚」に対する正規表現の罠
    ardarim
    ardarim 2023/09/01
    このあたりはどこまで厳密にやるか処理系依存なのか。「ㇷ゚」はそもそも片仮名集合に含まれるのか否か、片仮名とは何かという定義問題にもなってきそうだが
  • OSはどうやってP-coreとE-coreを使い分けているのか - Blog posts by @retrage

    Alder Lake以降のIntel CPUでは、P-coreとE-coreの2種類のコアが搭載されている。 P-coreは性能重視、E-coreは省電力重視という位置づけで、OSがうまくこれらのコアを使い分けることで、消費電力と性能の両立が図られている。 ここまでの話は広く知られているが、実際にどのようにしてOSに対してコアの使い分けをさせているのかの実装レベルでの解説は (少なくとも日語では) ほぼ存在しないようなので調べてみた。 OSから見たP-coreとE-core OSの役割の一つとしてプロセススケジューリングがあり、どのプロセスをいつどれぐらいの期間どのCPUコアで実行するかを決める。OSができるだけ効率よくプロセスをスケジューリングするためには、CPUコアの性能や消費電力の違いを考慮したスケジューリングが必要になる。そこで、Intel CPUではOSに対して次の2つの情報を

    OSはどうやってP-coreとE-coreを使い分けているのか - Blog posts by @retrage
  • つよつよエンジニアの成果物にある5つの特徴 - Qiita

    はじめに エンジニアとして成長し、「つよつよエンジニア」と呼ばれて周囲から評価されるエンジニアになりたいという若手エンジニアや学生の方は多くいると思います。 私は今までで数百人以上のエンジニアと一緒に仕事をしており、その中にはベンチャーや上場企業でCTO/VPoT/テックリードといった役職についている「つよつよエンジニア」も多くいます。 (かくいう私も組織マネジメント力よりは技術力を評価されてCTOをしていますし、今もコードを書いています)。 「つよつよエンジニアになるためにはどのようなアクションをとればいいか」という視点で述べられていることは多くても「成果物にどのような特徴があるのか」という観点で述べられていることはあまり無い印象です。 成果物の特徴さえわかれば、まだ自身がそのレベルまで到達できていなくても、成果物のレベルを引き上げることができます。 (世阿弥の「風姿花伝」でも「真似る」

    つよつよエンジニアの成果物にある5つの特徴 - Qiita
    ardarim
    ardarim 2023/08/03
    たしかに属人的に求めるものではなくてチームとしてマネージすべきタスクの気がする。一部の「つよつよエンジニア」の属人的能力に依存してるとしたらヤバい組織だね
  • プログラマーのための行動経済学 (コードをきれいにするのはいつ?) - techtekt

    はじめに サマリー 先延ばし傾向(現在バイアス) 対策:コミットメント 課題点 1. 金銭的な制裁を行うのが難しい 2. 現在バイアスを自認していない人はコミットメント・デバイスを使わない 3. コミットメント・デバイス設計の問題 組織内の先延ばしを防ぐには まとめ ※三浦は退職していますが、人の同意を得て、掲載を継続しています。 はじめに こんにちは。パーソルキャリア株式会社でデータアナリストとして働いている三浦です。 8 か月前ぐらいに、将来の自分のためにもコードはきれいにした方が良いという内容の記事を書きました。 プログラマーのための行動経済学 (自信過剰とリーダブルコード) コードをきれいにする、新しい技術を学ぶ。 将来のために必要だと分かっていても、面倒でつい先延ばしにしてしまいませんか。 この記事も、半年前には書き終わっている予定でした。 今回は、こういった先延ばしをテーマと

    プログラマーのための行動経済学 (コードをきれいにするのはいつ?) - techtekt
    ardarim
    ardarim 2023/08/03
    仕事が忙しい時ほどリファクタリングしたくなる(現実逃避) 実際リファクタリングはしようと思ってするのではなく、見ていられなくなって気付いたらリファクタリングしている(プロシュート兄貴風)
  • コンピュータ講座 応用編 第1回

    第1回 CPUは数百の足を持つトランジスタのかたまり 第一回目は、CPUを物理的・電気的な部品として解説します。パソコンに使用されるCPUの外観は、数百の足(ソケットに挿すピン)を持ち、1億個を超えるトランジスタを集積したICで、VLSI(大規模集積回路)と呼ばれます。今回は、このCPUを外側から眺めて、物理的な仕組みや電気的な働きを説明します。 CPUの構造 CPUの解説の最初に、CPUの構造を概観します。そのために少し遠回りですが、ICの製造方法に触れておきます。 ICの製造方法 ICの材料にもっとも多く使われるのはシリコンです。土や砂の主成分であり入手しやすい事や、動作が安定していること、その絶縁膜が半導体に適しているという理由からです。 実際に材料として使われるのはシリコンが酸化物と結びついた珪石です。珪石をいくつかの工程を経て、高純度化(純度99.999999999、イレブン

  • 米Microsoftら、“コーディング専用”大規模言語モデル「WizardCoder」開発 文章から高品質なコード出力

    このコーナーでは、2014年から先端テクノロジーの研究を論文単位で記事にしているWebメディア「Seamless」(シームレス)を主宰する山下裕毅氏が執筆。新規性の高い科学論文を山下氏がピックアップし、解説する。 Twitter: @shiropen2 米Microsoftや香港浸会大学に所属する研究者らが発表した論文「WizardCoder: Empowering Code Large Language Models with Evol-Instruct」は、米Hugging Faceが5月に発表したCode LLM(コーディング専用大規模言語モデル)「StarCoder」を軽量で高精度に強化する手法を提案した研究報告である。リポジトリはこちら。 コード生成に関連する課題に取り組むため、多数のCode LLMが提案されている。これらのCode LLMは、大量のコードデータを使用して事前学

    米Microsoftら、“コーディング専用”大規模言語モデル「WizardCoder」開発 文章から高品質なコード出力
  • 名前に関するガイドライン | Microsoft Docs

    名前付けのガイドラインでは、アセンブリ、名前空間、型、メンバー、およびパラメーターなど、クラス ライブラリの構成要素に対して適切な識別子を選択するためのガイダンスを示します。 これらのガイドラインに従った識別子を選択すると、ライブラリの使いやすさが向上します。このため、ユーザーはライブラリを使用するために新しい一連の規則を習得する必要性を感じずに済みます。 開発者にとって一貫性のある環境を提供するには、パブリック クラスやプロテクト メソッドなど、公開される要素にこれらのガイドラインを適用する必要があります。 ただし、コード全体での一貫性を維持し保守性を向上させるには、これらの規則をコード全体で一貫して使用することを検討します。 Portions Copyright 2005 Microsoft Corporation. All rights reserved. Portions Copy

    名前に関するガイドライン | Microsoft Docs
  • きれいなコードを書けという話について - Software Transactional Memo

    前回のブログから90日以上経ってしまったので広告が載ってしまったから短文でもアウトプットしておく。 プログラマとして仕事をしているとコードと向き合っている時間の9割以上は既存のコードを読んでいる、だから読みやすさは重要である、という言説は耳にタコができるほど誰もが言っている。 仕事で書かれるコードが誰のレビューも通ること無くマージされている現場は凄惨だが、自分より明らかに経験を積んだ人たちが何度もレビューを重ねたコードが読みやすいかというとそうとは限らない。良いコードが守るべきルールをすべて守っていても不可解なコードはあるし、どんなに読みやすいコードでも数千行の規模になってくるとやはり脳内からこぼれて一度に覚えておける範囲からはみ出る。 変数名や関数名をわかりやすくするとか不必要な技巧を凝らさないとかわかりやすい設計にするとか主観的な事を偉そうに語るは山ほどあり、それらのを崇める事は悪

    きれいなコードを書けという話について - Software Transactional Memo
  • 知識0の状態からたった2時間でVSCodeの拡張機能を作った話 - Qiita

    はじめに こんにちはkenです。エディターはVS Codeを使ってます。 突然ですがみなさん、普段開発をしていて 「VS Code にこんな拡張機能、あったらいいのにな〜」 と思うことありませんか? 私はあります。しょっちゅうあります。 そこで先日、予定がない休日を利用して拡張機能の開発に挑戦してみることにしました。 最初は拡張機能の開発をどのように進めていけばよいのか全くわからず、そもそも拡張機能でどこまでのことを実現できるのかすらわかりませんでした。ましてや実装についての知識なんて皆無です。 「これは完成まで1日くらい、いや下手すると3日くらいかかるかな」と考えていたのですが、いざやってみるとたった2時間で作れてしまったので今回はその経験についてお話ししたいと思います。 この記事を読んで、 「こんなにお手軽なら自分にも作れそうだ!」 と感じてくれたら幸いです。 題 作りたかったものと

    知識0の状態からたった2時間でVSCodeの拡張機能を作った話 - Qiita
  • What effect does DirectCast have an performance and late/early binding?

  • 英語ネイティブなら「B if A」と言うところをことごとく「if A, then B」と言っていたらかっこよすぎるあだ名がついてしまった

    画力・博士号・油田 @bd_gfngfn 英語母語話者なら “B if A” と発話するであろうところをことごとく “if A, then B” と発話していたらあだ名がVisual Basic Manになった人の話好きすぎる 2023-06-28 09:42:17

    英語ネイティブなら「B if A」と言うところをことごとく「if A, then B」と言っていたらかっこよすぎるあだ名がついてしまった
  • 凄腕エンジニアさんから学んだ例外の話 - Qiita

    はじめに 今携わっているプロジェクトで凄腕エンジニアさんと一緒に開発をさせていただいているのですが、その凄腕エンジニアさんから教えていただいた例外の話がとても勉強になり、 さらにこの例外の話を他のプロジェクトエンジニアさんに伝えたところ、反応が良く、とても勉強になりました!という声をいただけたので、アウトプットしていきたいと思います。 (この記事の中で凄腕エンジニアさんのことはTさんと呼ぶことにします。) ※【凄腕エンジニアさんから学んだ例外の話】の補足 というQiita記事を書きました。 この記事を読み終わった後に疑問が残った人などは補足資料として読んでいただけると嬉しいです。 例外の考え方の源 Tさんの例外の考え方は http://diveintopython3-ja.rdy.jp/your-first-python-program.html#exceptions ↑こちらのPyth

    凄腕エンジニアさんから学んだ例外の話 - Qiita
  • 何年も前に書かれたソースコードを読むときの頭の中 - Mitsuyuki.Shiiba

    コードを書く仕事をしてると、読むことも多い。読んでる時間のほうが多いかもしれない。いま書かれてるコードを読むことも、もちろん多いし、何年も前に書かれたコードを読む機会も割とよくある。 コードを読むと、そのコードを書いた人の考えや、そのときの状況が感じられて、おもしろい。特に、何年も前に書かれたコードを読むときは、コーヒーを片手に(そのときはこんな感じだったんだろうなぁ)って想像しながら読んで楽しい。 ふと、どういうコードから、自分がどういうことを想像するのかを書いてみようと思った。 前提 今、目の前で書かれているコードを読んでレビューしてるときの話じゃなくて、何年も前に書かれたコードを読むときの話をしようと思う。だから、そのコードが良いとか良くないとか、こうするべき「だった」とかは考えない。今後の自分がどう書きたいかなぁ?くらい。 また、そのコードを書いた人が良いとか良くないとかでもない。

    何年も前に書かれたソースコードを読むときの頭の中 - Mitsuyuki.Shiiba
    ardarim
    ardarim 2023/06/26
    分かりみが深い
  • NTTと早大、誤った正規表現の文字列抽出を自動で修正する技術を発表

    印刷する メールで送る テキスト HTML 電子書籍 PDF ダウンロード テキスト 電子書籍 PDF クリップした記事をMyページから読むことができます NTTと早稲田大学は6月16日、誤った正規表現の文字列抽出を検出して自動的に修正する技術を世界で初めて実現したと発表した。同17~22日に開催される「PLDI2023」で詳細を報告するという。 今回開発した技術は、多様なバリエーションを扱うことからあいまいさのない正確な記述が求められる正規表現の文字列抽出において、誤った記述を検出し自動的に修正する。NTTは、正規表現によるパターンの確認を実施するプログラムの振る舞いとして、「ECMAScript 2023」に完全準拠した正規表現エンジンの振る舞いを理論モデルとして厳密に定義し、この理論モデルに従って修正結果となる正規表現に誤りがないことを保証する条件を生成する方法を提案した。 さらに、

    NTTと早大、誤った正規表現の文字列抽出を自動で修正する技術を発表
    ardarim
    ardarim 2023/06/17
    修正してもらうのではなく普通に正答例を与えて帰納的に正規表現生成させるだけでよくない?と思ってしまうのだけど何か間違ってるのだろうか
  • 関数名、メソッド名、変数名でよく使う英単語のまとめ

    プログラミングをしていると関数名、メソッド名、変数名をどうするか悩みます。 ロジックより命名に時間を費やすこともざらにあります。翻訳したり、一般的な命名規則なのかいつも検索して大変です。 よく使うサイトの内容をコピってメモしておく 関数名とメソッド名の違いについて よく使う英単語のまえに、いつもごっちゃにして使っているけど、定義はこんな感じ 「関数」と「メソッド」の違い 似ているところ どちらも何か(引数)を入れると処理をして何か(戻り値)を返してくれます。 違うところ やってること自体は大差ありません。概念としては違います。 メソッドはオブジェクト指向で登場する用語で、オブジェクトの動作を定義したものです。 まずオブジェクトありきなのですね。一方の関数は、オブジェクト云々は関係ありません。 個人的な使い分け Java で登場する関数は「メソッド」です。C 言語で登場する関数は「関数」と呼

    関数名、メソッド名、変数名でよく使う英単語のまとめ
  • 空の配列に対するmaxは何を返すか - きしだのHatena

    ちょっと前に「配列中のすべての要素が条件を満たすかどうか判別する関数で、空の配列はTrueを返すべきかFalseを返すべきか」のような話が話題になってました。 まあこれは「Trueを返す」が答えなわけですが、では「配列中の最大値を返す関数で空の配列の場合は何を返すか」が気になりました。 「配列中のすべての要素が条件を満たすかどうか判別する関数」について言えば、簡単に言えばこんな感じ。 まず、配列のすべての要素が偶数であるかどうか判別する関数を考えます。 void main() { int[] data = { 23, 44, 12, 98, 5 }; System.out.println(allEven(data)); } boolean allEven(int[] data) { for (int n : data) { if (n % 2 != 0) return false; } r

    空の配列に対するmaxは何を返すか - きしだのHatena
  • プログラミング向けフォントの新しい選択肢「0xProto」/トレンドを押さえつつも、可読性とデザインに独自の工夫。控えめな合字活用もちょうどいい【レビュー】

    プログラミング向けフォントの新しい選択肢「0xProto」/トレンドを押さえつつも、可読性とデザインに独自の工夫。控えめな合字活用もちょうどいい【レビュー】
  • コーヒードリップのためのアプリを作った

    はじめに コーヒーコーヒー粉にお湯を注ぐなどして得られる抽出液である。抽出の方法の1つに粕谷 哲さんが発明した“4 : 6メソッド”という手法があり、これは要約すると下記のようになる。 コーヒー抽出の工程を注ぐお湯の量で前半4割と後半6割に分割する 前半4割の抽出においては、2回または1回お湯を注ぐがこのときの割合をコントロールする 後半6割はお湯を分割する回数をコントロールする このような調整を行うことによって、コーヒーの甘さ・酸味、濃さをある程度の再現性をもって調整できるという方法である。この手法は大変よいものであると思いつつも、次のような問題があると感じていた。 コーヒー豆の質量比でお湯の量を決定するが、豆 : 水 = 1 : 15以外の比率を用いると計算が複雑になる 前半4割の抽出では、1 : 1以外の比率を用いると計算が複雑になる 後半6割の抽出では抽出回数によっては1回あたり

    コーヒードリップのためのアプリを作った
    ardarim
    ardarim 2023/05/29
    Hyper Text Coffee Pot Control Protocolには対応しないのかな
  • 【C#】C# の async/await は実際にどうやって動いているか。 - ねののお庭。

    はじめに 登壇版 Taskの質 C# のイテレータ async/await Compiler Transform ExecutionContext builder.Start() の重要性 IAsyncStateMachine.MoveNext おわりに はじめに C#er は呼吸するように使っている async/await。 そんな async/await について、先日 Stephen Toub 氏 (.NET の中の人。中心人物の一人。) が How Async/Await Really Works in C# という非常に面白い記事を投稿していました。 この記事では Stephen 氏の記事をベースに、C# において async/await は実際どうやって動いてるの?というお話をしていきます。 以前に C#での非同期メソッドの分析。 という翻訳記事を書いたのですが、元になった記

    【C#】C# の async/await は実際にどうやって動いているか。 - ねののお庭。