タグ

論とprogrammingに関するch1248のブックマーク (241)

  • タイムスタンプの精度を落とすときは切り捨てろ - 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のブログ
    ch1248
    ch1248 2024/04/20
    これ重要よね。
  • 目的を規定せずにモデリングを考えても意味がない - きしだのHatena

    オブジェクト指向のでは「自転車をモデリングしてみましょう」「鳥をモデリングしてみましょう」ということが、どういうシステムで使うか規定せずによく書かれています。 けれども、モデリングではどういうシステムで使うかということが大事で、それを決めずにモデリングを考えても意味がありません。モデリングすべきはモノではなくシステムのプロセスです。 よく、オブジェクト指向では現実をモデリングするのようなことが言われますね。 例えば鳥が鳴くとして、その一種であるニワトリをどうモデリングするか、ということを考えるとします。 そうすると、まず void 鳴く() { print("コケコッコー"); } のようなメソッドを考えるのですけど、コケコッコーとうまく鳴けるのは鳴き慣れたニワトリです。そのため、鳴くメソッドにカウンターを用意してどんどんうまくコケコッコーになるようにしたくなります。 いや、そもそも、コ

    目的を規定せずにモデリングを考えても意味がない - きしだのHatena
    ch1248
    ch1248 2024/04/14
    その通りだし、端的に必要な話題がまとめられている。
  • 元ひきこもり37歳業務未経験女性がバックエンドエンジニアとして地方で採用されるまで - Qiita

    実務未経験、独学でプログラミングを勉強し、応用情報技術者試験に合格、ポートフォリオとしてのWebアプリケーションを制作し、地方のIT企業に就職にしました。 34歳のころからプログラミングの勉強を始め、ITエンジニアとして就職することに憧れていましたが、まさか実現できるとは…と自分が一番驚いています。どんなことをしたのか、こちらの記事でまとめたいと思います。 結論 34歳(35歳目前)から初めてプログラミング学習を独学で開始 放送大学を卒業、基情報技術者試験、応用情報技術者試験に合格 ポートフォリオを制作、応募先に提出 37歳で地方(東京以外)のIT企業(Web受託がメイン)に試用期間の3ヶ月間契約社員として働き、正社員に 提出したポートフォリオについてはこちらの記事で解説しています。 就職できたと思う要因 ポートフォリオを完成させ、GitHubでコードを公開、Qiitaで解説記事を書いた

    元ひきこもり37歳業務未経験女性がバックエンドエンジニアとして地方で採用されるまで - Qiita
    ch1248
    ch1248 2024/03/31
    これは凄いな。
  • PowerShellの今を見る 2つあるPowerShellはどっち使えばいい? (1/2)

    PowerShellに関しては、2021年に1回まとめたのだが、あれから3年も経過したので最新情報も含めて、簡単に解説したい。なお、それぞれのこれまでの経緯などは、過去記事に記載しているので参考にしてほしい。 ●あらためて「PowerShell」の現状と登場後の経緯を整理する https://ascii.jp/elem/000/004/052/4052789/ 結論から言えば、PowerShellには、Windowsに同梱されている「Windows PowerShell」と、ユーザーがインストールする必要がある「PowerShell」がある。コマンドラインを使う頻度が高いようならば、最新のPowerShellをインストール、そうでなければWindows PowerShellで十分である。 PowerShellのインストーラーなどに表示される奇妙な人物イラストを見たことがある人もいるだろう。

    PowerShellの今を見る 2つあるPowerShellはどっち使えばいい? (1/2)
    ch1248
    ch1248 2024/03/18
    あー、やはり2系統に分かれたまま進んでるのね。両方とも”Core”の部分が外れてたのは初めて知った。
  • Rustでリレーショナルデータベースを自作したときの成果と反省と学び - Yoshisaurのメモ

    はじめに この記事では、個人プロジェクトとしてRust言語でリレーショナルデータベースを開発した経験(もう五ヶ月も前...)について、その成果と反省、得た学びを共有します。 DBMSを自作した理由 自分がDBMSの自作に着手したのは、『Designing Data-Intensive Applications』というの内容を深く理解するためでした。 このは、データシステムの設計と運用において最も大切な「信頼性」、「拡張性」、「保守性」を保証する方法論を、豊富な文献を引用しつつ、理論と実践の橋渡しを巧みに行いながら、丁寧に説明している名著です。読んだことがない人は速攻購入してくだい。当にいいです。 このは、データベースの内部構造に関する話も豊富に含まれていたので、「データベース自作してみようか...」という気持ちになりました。 Rustを採用した理由 データベースの実装のついでに、

    Rustでリレーショナルデータベースを自作したときの成果と反省と学び - Yoshisaurのメモ
    ch1248
    ch1248 2024/03/04
    素晴らしい
  • プログラミングを始めたころとは考え方が全然変わっていることに気づいてびっくりした話 - 覚書

    家にパソコンがはじめて来てから30年くらい、プログラミングを始めてから20年以上が経ちました。その間、IT技術に対する愛は変わらずに、ずっと走り続けてきました。では当時の自分と今の自分で何が違うのだろうと考えてみたところ、めちゃくちゃ変わっていたのでびっくりました。記事では何がどう変わったのか、それを見てなにを思ったかなどを書きます。 昔は次のようなこだわりがありました。 大きなものは一つの仕事をする単純で小さなツールを組み合わせて作るべし ソフトウェアは可能な限り設定可能になっていてほしいし、それを自分の好みになるまでカリカリチューニングしたい 可能な限りすべてキーボードだけで操作できるようになっていてほしい いわゆるUNIX哲学をはじめとして、いろんなやWebサイトなどに強い影響を受けていることがよくわかります。 ところが今は次のように全然違うことを考えています。 トラブルハマった

    プログラミングを始めたころとは考え方が全然変わっていることに気づいてびっくりした話 - 覚書
    ch1248
    ch1248 2024/01/07
    わかる
  • Enumとてもつらい、でも負けない - エムスリーテックブログ

    列挙型、JavaでいうならEnum型、使っていますか。使わないわけにいきませんよね。 でも、Enumを使っていたせいで辛い目にあったことありませんか。ないですか。それならきっともうすぐに辛い目にあうと思います。 Enumはすべてのプログラマに等しく辛みを与えてくれるからです。そんな辛みについて、ちょっと一緒に直視してみましょう。 エムスリーエンジニアリンググループ、Unit1(製薬企業向けプラットフォームチーム)三浦(@yuba@reax.work) [記事一覧 ]がお送りいたします、エムスリー Advent Calendar 2023の6日目です。 アプリケーションプログラミング上の辛み 1. 既存のif文が偶発的に意図しない方に倒れる 2. switch文に至っては「どちらでもない」で処理不発に アプリケーションプログラミング上の対策 1. 分岐条件をEnumに持たせる 2. swi

    Enumとてもつらい、でも負けない - エムスリーテックブログ
    ch1248
    ch1248 2023/12/06
    共感する……
  • オブジェクト指向の複雑性を軽減する、データ指向プログラミング入門

    思った以上に反響をいただき嬉しく思っています。SNSやコメントで言及していただいている構造化プログラミングとの比較や現代的なOOP開発への適応記事を執筆予定です。記事が完成しましたら自分のSNSで共有いたしますので、もし良ければフォローしてお待ちいただけますと幸いです。(記事を書くのは思考が整理されて良いものですね。) TL;DR データ指向プログラミング(DOP) とは、データとコードを分割してアプリケーションを設計・実装するプログラミングパラダイムのこと。 DOPの実装は、以下の原則に従う。 コードとデータを分離する 汎用的なデータ構造でデータを表現する データをイミュータブルなものとして扱う データスキーマとデータ表現を分離する 個人的にDOPは、バックエンドを宣言的プログラミングっぽく書くための現実的な解だと捉えています。実装の詳細は翔泳社より出版されている「データ指向プログラミン

    オブジェクト指向の複雑性を軽減する、データ指向プログラミング入門
    ch1248
    ch1248 2023/10/25
    OOPでもクラス指向からメッセージ指向になったと解釈できるのかな。
  • ソフトウェア設計・アーキテクチャの学び方 - Qiita

    はじめに この記事はHow to Learn Software Design and Architecture | The Full-stack Software Design & Architecture Mapを翻訳したものです。 翻訳がおかしい箇所などあればご指摘頂けるとありがたいです。 元記事の著者: Khalil Stemmler(@stemmlerjs) 設計、アーキテクチャ、フロントエンド、ブロックチェーンに興味ある方是非Twitter(@show_clements)フォローしていただけると嬉しいです! 設計に関する記事 ソフトウェアデザインとアーキテクチャは、DevOpsやUXデザインのように、コンピューティングの領域の中でも独自の研究分野となっています。ここでは、クリーンコードからマイクロカーネルまで、ソフトウェアデザインとアーキテクチャの幅広さを説明するマップを紹介しま

    ソフトウェア設計・アーキテクチャの学び方 - Qiita
  • 名前に関するガイドライン | Microsoft Docs

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

    名前に関するガイドライン | Microsoft Docs
    ch1248
    ch1248 2023/07/19
    命名に関するMSのノウハウ
  • ChatGPTは真にプログラミング知識なしでのコンピュータ操作を実現している - きしだのHatena

    ChatGPTで文章を要約したり口調を変えたりゲームのルールを教えてゲームを遊んだり、みんな いろいろな使い方や楽しみ方をしていると思います。 中にはプログラミングにあまり縁のない人も多くいます。 これ改めて考えると、自然言語でコンピュータを操作指示できるようにしたということで、インパクトすごいと思います。 たとえばこんな感じで、口調の調整を行っている人はよくみかけますね。 これ、よく考えるとコンピュータの挙動を調整しているわけですよね。 ここでは「以降は語尾に「ンゴ」をつけてください」と指示しているだけで、この指示にはまったくプログラミング知識が使われていません。 しかも「何か質問あるンゴか?」のように疑問形の形を調整してくれていますね。適切に「!」も入れて、「ンゴ」で終わらせることに何を求めているかもくみ取ってくれています。これをプログラミングで実現しようとするとかなり大変です。 RP

    ChatGPTは真にプログラミング知識なしでのコンピュータ操作を実現している - きしだのHatena
    ch1248
    ch1248 2023/02/28
    人間の知性の構造って、ChatGPTに近いと思うんだよな。嘘や誤りもよく混じるし。
  • オブジェクト指向はコードを複雑に読みにくくする - きしだのHatena

    「オブジェクト指向するとプログラムが読めなくなるから禁止」のような話は昔からあって、新しい技術についてこれない人を揶揄するようなニュアンスで使われていましたが、実際にはこれはオブジェクト指向迷路にうんざりした現場での率直な意見だと思います。 オブジェクト指向は、まじめにやるほどプログラムを読みにくくするという性質をもっています。 ※ 使い方次第というコメントついてますが、だからこそちゃんと性質をしっておく必要があると思います。 オブジェクト指向の代表的な指針を3つあげると次のようなものがあります。 オブジェクト同士の連携としてプログラムを組む 単一責務の原則 インタフェースと実装の分離 まず、オブジェクト同士の連携でプログラムを組むと、コードが飛びまくって追いにくくなります。そして単一責務の原則により、小さいクラスが大量に生成されて、追いにくさがさらにあがっていきます。 ダイクストラ先生が

    オブジェクト指向はコードを複雑に読みにくくする - きしだのHatena
    ch1248
    ch1248 2023/02/25
    少なくともクラス指向でのOOPだと、IDE前提にしても処理が飛び過ぎで複雑化が免れないんだよね。メッセージ指向の方面からもうちょい何とかならんのかなとは思うが……。
  • 雑に作って、それから作り込んで、最後にテストを書く「テストラスト」開発 - give IT a try

    (この話は最初Twitterに書こうと思ったけど、長くなるのでブログに書くことにしました) 僕はRSpecやMinitestでテストを書くのは得意ですが、常にテストファースト(TDD)で開発するとは限りません。 今業務でやってるタスクはこんなふうに進めてます。 雑に動くものを作る ↓ 見た目をきれいにする&機能を作り込む ↓ テストを書く ↓ リファクタリングする この順番で開発する理由を以下に述べます。 雑に動くものを最初に作る理由 最初は見た目とか、異常系とか、細かい仕様とかを無視して、正常系が一通り動くものを作ります。 これはこれから作ろうとしているものの認識が合っているかどうかをPO(プロダクトオーナー)に確認するためです。 実際に動く画面を見せると「こんな感じでOK」とか「ここはこういうふうにしたい」というフィードバックをもらうことができます。 また、開発者としてもコードを書きな

    雑に作って、それから作り込んで、最後にテストを書く「テストラスト」開発 - give IT a try
    ch1248
    ch1248 2023/02/17
    最初、「えっ」って思ったけど、「テストファーストで作ることはないの?」以降読んだら納得した。
  • もし「リーダブルコード」を弁護士が読んだら? - MNTSQ Techブログ

    こんにちは。「リーダブルコード」を先月読破して、感銘を受けた弁護士の人です。 なにに感銘を受けたかというと、「エンジニアが高級言語を効率的にコーディングするための工夫」は、契約という言語をコーディングするために援用できることがとても多いということです。 例えば、リーダブルコードは「関数には空虚な名前(tmpとかretvalとか)でなく、エンティティの実体に即した名前をつけよう!」と提案しています。 これめっちゃわかります!!!なぜなら、契約言語では当事者というクラスの表現のために「甲」「乙」という定義を未だに使います。そして、甲と乙を逆に書いてしまったままReviewを通過することが実際によくあります。オライリーさんには激怒されるでしょう。 しかし、よく考えると高級言語と契約言語が似ているのは当然だと思うようになりました。それは、どちらも「一定のインプットを入れると、必ず一定のアウトプット

    もし「リーダブルコード」を弁護士が読んだら? - MNTSQ Techブログ
    ch1248
    ch1248 2022/12/28
    法の世界でシステム開発の手法は有効だし、取り入れるべきだと思っているので、具体的な話が出てきて喜ばしい。
  • 仕事ができない感から完全脱却してみる|牛尾 剛

    わたしは未だに自分が「仕事ができない」感がある。いや、たぶん思い込みじゃなくて、当にそうだと思う。周りと比べても意味はないのだが、明らかにプログラミングのスピードが遅いし、ソリューションや思考の精緻さに欠ける。アメリカのテックカンパニーの人員削減が盛んだしいつ首になってもおかしくないと思う。 「向いていない」エンジニアへのあこがれアメリカで自分がしたかったことは、今度こそ胸を張って「エンジニアです」といえるようになること。何かを作れる人間になること。これは今までの人生で一度もかなっていないことだ。だから、正直なところ「向いていない」と自覚している。 だから、自分と一緒に働いているVincentに聞いてみた。彼は私よりずっと若いけど仕事をしっかりできる。私よりずっとプログラミングも素早いしロジックをよく覚えているし、複雑なリファクタリングもこなせる。 同僚の要領を得ない回答 彼にどうしたら

    仕事ができない感から完全脱却してみる|牛尾 剛
    ch1248
    ch1248 2022/12/09
    この「仕事できない感」、俺も悩まされたんだけど、部署変わって自分に非常に合う環境になったら治ったというのがある。
  • プログラミング言語の入門が終わったら何の勉強をすればいいの? - きしだのHatena

    JJUG CCC 2022 Fallで「Javaの入門が終わったら何の勉強をすればいいの?」という内容で発表を行いました。 基的なものが作れるようになったけども、イマイチプログラムが組めないというときに、何を勉強すればいいかをまとめました。 入門が終わって作りたいものがあれば作っていきましょう、業務で言われたものが作って行こう、でもなんだかちゃんとしたものが作れないな、もっとちゃんとしたものを作りたい、次のステップに進みたいというときに勉強していく感じです。 資料はこちらです とりあげたについてまとめておきます。 開発作業について 概要 プログラミング言語 アーキテクチャ ミドルウェア ネットワーク デプロイ 理論 開発手法 開発プロセス まとめ フレームワークは入門でやってる前提です。Java入門書「プロになるJava」ではJavaの基から簡単なDB操作、Spring Bootまで

    プログラミング言語の入門が終わったら何の勉強をすればいいの? - きしだのHatena
    ch1248
    ch1248 2022/11/27
    すごくちゃんとしたラインナップだ。
  • 先輩エンジニアから「メモリを意識してプログラムを書かないやつは三流だ」と言われたのですが、今は令和ですよと言いたかったです。メモリを意識してプログラムを書く必要性を分かりやすく教えて頂けませんか?

    回答 (25件中の1件目) 令和だろうがなんだろうが意識はしてないとダメだと思いますよ。 ハードウェア資源の限られた組み込み系やゲーム系は別として、業務系でもWeb 系でも 1バイトでも少なくなるように無駄を削るみたいなことはしなくてもいいでしょうし、たいていは解放漏れも意識しなくて良くなってます。 昭和〜平成初期のハードウェア/ ソフトウェア事情から考えれば、およそ足りなくなることが考えられないような大量のメモリーを使えはしますが、無限ではありません。 メモリー搭載量は予算次第で増減しますしね。 そして使えるメモリーの量よりも知識や想像力の欠如、考えなしのプログラミングからくる...

    先輩エンジニアから「メモリを意識してプログラムを書かないやつは三流だ」と言われたのですが、今は令和ですよと言いたかったです。メモリを意識してプログラムを書く必要性を分かりやすく教えて頂けませんか?
    ch1248
    ch1248 2022/10/10
    Yuguiさんが回答しとる。そして、素晴らしい回答だ。
  • Google Japan にビジネス職として新卒入社して、本社でソフトウェアエンジニアになるまで|Hiro Tsujino

    初めまして!タイトルの通りなのですが、自分は現在ベイエリアでソフトウェアエンジニアとして働いているものの、今の職種に就くまで少し変わった経緯があります。具体的には、文系学部(経済学部)を卒業して、ビジネス職(カスタマーサクセス)として入社した後、社に転籍し、今はソフトウェアエンジニア(以下、SWE)として働いています。 時々「どうしてアメリカに行こうと思ったの?」「どうして SWE になったの?」「どうやって独学で SWE になったの?」と聞いてくださる方がいるので、今回少し書いてみようと思った次第です。ただ、初めにお断りしておくと、その質問に直接お答えするというよりは、自分の体験談を叙述的に記述してしまったので、一部の方には物足りなく感じてしまうかもしれません。 動機 - なぜ社で SWE になろうと思ったのか結論から先に書くと、学生時代にベイエリアを訪れることがあり、そこで出会った

    Google Japan にビジネス職として新卒入社して、本社でソフトウェアエンジニアになるまで|Hiro Tsujino
    ch1248
    ch1248 2022/08/21
    Google内で、広告営業→セールスエンジニア→SWEという経緯なのだけど凄すぎる。「凄すぎて参考にならない」と言う人もいるが、細かく見ると部分的に真似できそうな部分もあったりするので、記事の存在はありがたい。
  • "The Essence of Software"が提唱する全く新しいソフトウェア設計の考え方|Idein株式会社

    (6/22 注:書き足りないと思っていた箇所を補って加筆修正しました) エンジニアのbonotakeです。Ideinに入ってかれこれ3年以上経ちますが、Ideinでブログ記事を書くのは初めてです。 今日は、ソフトウェア設計の全く新しい考え方について書かれた "The Essence of Software" というの紹介をしたいと思います。 このの著者はMIT教授でソフトウェア工学の世界的な研究者であるDaniel Jacksonです。形式手法Alloyの発明者、と言ったほうが通じる人には通じるかもしれません。形式手法とは、ありていにいえば、数理論理学を駆使してソフトウェアに潜むバグを論理的に駆逐する手法です。 (個人的な宣伝ですが、彼の書いたAlloyのを以前翻訳して出版しました。) そんな彼が昨年11月に新著を出版したというので、ほぼその日に買いました。……ですが、を開いてみる

    "The Essence of Software"が提唱する全く新しいソフトウェア設計の考え方|Idein株式会社
    ch1248
    ch1248 2022/06/22
    共感できる。正しいUXのセットを用意した上で、それに沿って開発するのはconcept designの一種ということかな。
  • 初心者プログラマーのための変数/関数/メソッドの英語命名規則 - Qiita

    はじめに 「なんか、レビューのたびに変数名を指摘されてる気がする...」 「日人なんだから、英語で命名とか無理...」 こんなお悩みありませんか? この記事では、「プログラマー英語の命名で悩んだ時にどうすれば良いか」をフローチャート形式で解説します! これであなたも駆け出しエンジニアを卒業できるかも!? ※記事はLaravel,Vue.jsのプロジェクトで運用されているルールを元に解説しています。 プロジェクト内だけの内輪ルールも含まれていますので、ご了承ください。 対象者 この記事は下記のような人を対象にしています。 駆け出しエンジニア プログラミング初学者 PHP(Laravel),JavaScript(Vue.js)で英語のネーミングに苦戦中 前提知識 下記のような中学・高校で学ぶ内容については理解していること前提で解説します。悪しからず。 三単現のsって何? 5文型(SV/S

    初心者プログラマーのための変数/関数/メソッドの英語命名規則 - Qiita
    ch1248
    ch1248 2022/06/16