タグ

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

  • 単一責任原則で無責任な多目的クラスを爆殺する - Qiita

    この記事は クラウドワークスアドベントカレンダー2020 8日目の記事です。 概要 こんにちは、クソコードを爆殺リファクタリングするのが大好きなミノ駆動です。 今回は単一責任原則の話です。 単一責任原則はSOLID原則のひとつとして有名で、2020年のオブジェクト指向カンファレンスのアンケートでも、SOLID原則の中で最も人気がありました。 皆さんは単一責任原則を遵守した設計をしていますか。 どんな構造が単一責任設計で、一方どんな構造が単一責任でない設計か、明確に意識していますか。説明できますでしょうか。 ところで「単一責任原則とはなんぞや」について、少なくとも私の観測範囲では、概念的な話にとどまっているものが多く、コードレベルで具体的に説明しているものは少ないように感じます。 そうした状況からか、単一責任原則の解釈が人によって違っていたりしているように感じます。 記事は、今一度単一責任

    単一責任原則で無責任な多目的クラスを爆殺する - Qiita
  • AtCoder:競技プログラミングコンテストを開催する国内最大のサイト

    <a href="https://atcoder.jp/contests/abc331">大和証券プログラミングコンテスト2023AtCoder Beginner Contest 331)</a> が開催されます。 - コンテストページ: https://atcoder.jp/contests/abc331 - 開始時刻: <a href='http://www.timeanddate.com/worldclock/fixedtime.html?iso=20231202T2100&p1=248' target='blank'><time class='fixtime fixtime-full'>2023-12-02 21:00:00+0900</time></a> - コンテスト時間: 100 分 - Writer: <a href="/users/kyopro_friends" cla

    AtCoder:競技プログラミングコンテストを開催する国内最大のサイト
  • 2019年、人気のプログラミング言語トップはPython。Java、Cが続く。IEEE Spectrumによる調査

    2019年、人気のプログラミング言語トップはPythonJava、Cが続く。IEEE Spectrumによる調査 電気通信分野の標準化団体であるIEEE(アイトリプルイー)が発行するオンラインマガジン「IEEE Spectrum」が、人気のあるプログラミング言語の2019年版「The Top Programming Languages 2019」を発表しています。 結果は、1位はPython、2位はJava、3位はCとなりました。 IEEE Spectrumは毎年この人気プログラミング言語のランキングを発表しています。基的にはGoogleの検索ボリュームやGoogle Trends、TwitterGitHub、Stack Overflowなどをソースとしてメトリクスを算出、ランキングを算出しています。そのランキング算出方法を大幅に見直したとのこと。 This year we’ve d

    2019年、人気のプログラミング言語トップはPython。Java、Cが続く。IEEE Spectrumによる調査
  • ダメエンジニアの8つの特徴 - Hack Your Design!

    (画像はウンコード・マニアより引用) 1. オブジェクト指向を理解しないダメエンジニアはオブジェクト指向を理解しません。 もちろんオブジェクト指向を理解しなくてもプログラミングはできますし、動くプログラムを書くことは可能です。しかしオブジェクト指向プログラミングを使わずに(あるいは十分に理解せずに)書いたプログラムは著しくメンテナンス性・可読性が低く、共通化すべき箇所が共通化されず無駄なロジックが散在するコードとなるでしょう。 オブジェクト指向の技術は1970年頃の登場以降、様々な進化を遂げながらも今なお開発の最前線で使われている技術です。こんなすばらしい技術を使わない手はないでしょう。 2. コードが美しくないダメエンジニアのコードは汚いです。 では美しいコードとはなんなのか。個人的には「プログラマの思想が見えるコード」「一貫性があるコード」だと思っています。 思想が見えるコードというの

    ダメエンジニアの8つの特徴 - Hack Your Design!
  • プログラミングが、いつまでも楽しくあるように ─ 長いフリーランスを経て就職した今、思うこと - GeekOutコラム

    どうも、きしだなおき(@kis)です。LINE Fukuokaで働いています。 長らくフリーランスとして活動した後で就職したので、そのときは福岡をはじめ、ネットでつながっている全ての人が驚いたのですが、なんだかんだでもうすぐ4年が過ぎようとしています。 会社員になってJJUG CCCのスポンサーセッションで発表してきた - きしだのはてな このコラムでは、フリーランスプログラマーになった経緯などを振り返りつつ、就職した今はどういう感じで生きているかを書いていきたいと思います。 プログラミングを始めて、仕事にするまで Javaとの出会い・Javaの面白さ 大きなテクノロジーを求めてフリーランスから会社員に 会社員になって気付けたいくつかのこと コードが書けるようになるプログラミングの勉強について プログラミングのトレーニングと実践 起きれない ところで会社員になってどうだったの? 楽しく仲

    プログラミングが、いつまでも楽しくあるように ─ 長いフリーランスを経て就職した今、思うこと - GeekOutコラム
  • 漸進的型付け言語の時代に必要なもの - mizchi's blog

    最近では、Gradual Typing、漸進的型付けと呼ばれる型システムを備えた言語(拡張)が増えてきています。 次のようなもの JavaScript: TypeScript / Flowtype Python: mypy / pyre-checker PHP: hack / php-storm flow/pyre-checker/hack と facebook 製が多いですね。 この記事は、それらを使う動機と運用について書きます。この記事の出発点として、 おそらく TypeScript/Flow で発生した問題が後発の言語で発生すると思っており、それらを使う方や、設計する人への提言でもあります。 自分は昔 https://github.com/mizchi/TypedCoffeeScript というAltJS作ろうとして、実装のツラミはなんとなく知ってるつもりです。ホビーレベルで作るもの

    漸進的型付け言語の時代に必要なもの - mizchi's blog
  • Not Found

  • 型システム 〜プログラムの安全性を支える数学〜 - Laborify

    京都大学大学院 情報学研究科 通信情報システム専攻 修士2回生の五十嵐雄です.大学では,プログラミング言語理論,その中でも特に型システムの研究をしています. この記事では,私が特に力を入れて研究している漸進的型付けという種類の型システムについて紹介します.プログラムや型システムといった基的な概念から解説していくので,プログラミング経験のない人も安心して読み始めてもらえたらと思います. はじめに プログラムとはコンピュータへの命令を記述したものです.2018年現在,私たちの生活は数多くのプログラムに支えられています. あなたがこの記事を Windows が入ったパソコンで見ているなら,まずその Windows がプログラムです.お家にテレビや冷蔵庫があれば,それらの中にもプログラムが内蔵されているでしょう.空いた時間にスマートフォンでゲームをするなら,遊んでいるゲームも全てプログラムです.

    型システム 〜プログラムの安全性を支える数学〜 - Laborify
  • IoTデバイス用プログラミング言語「Eclipse Mita」登場。C言語へ変換、組み込み開発を容易に

    IoTデバイス用プログラミング言語「Eclipse Mita」登場。C言語へ変換、組み込み開発を容易に Eclipse Mitaでは、IoTデバイスをプログラミングする際に面倒になりがちな、センサーの読み取りやネットワークデバイスの制御といった低レベルかつデバイスごとに異なる部分をプラットフォームごとに吸収する仕組みを持ち、IoTデバイスにおいてもモダンなプログラミングを実現できるとのこと(プラットフォーム吸収部分のドキュメントはまだ準備中のようです)。 また、イベントループを用いることでプログラミングモデルを分かりやすくするなど、組み込み開発を経験したことのないプログラマでも容易にIoTデバイスのプログラミングができるような言語設計になっています。 Eclipse MitaのコードはC言語として出力されるため、多くのIoTデバイスに対応できる見通しです。 Eclipse Mitaの発表に

    IoTデバイス用プログラミング言語「Eclipse Mita」登場。C言語へ変換、組み込み開発を容易に
  • 命に関わるコードを書く時の10個のルール

    ミス一つで命に関わったり数年の努力が失われたりするような重大なコードを書く場合、どのような点に気を使うべきなのかを、NASAで働くコンピューター技術者のGerard J. Holzmannさんが「The Power of 10」としてまとめています。 The Power of 10: Rules for Developing Safety-Critical Code - Wikipedia https://en.wikipedia.org/wiki/The_Power_of_10:_Rules_for_Developing_Safety-Critical_Code 1. Gotoや再帰など複雑なフローは避ける By atsunori kohsaki 2. 暴走を阻止するため、全てのループに回数上限を設定する By Woplu 3. ヒープ領域のメモリを割り当てない これは、使用済みメモリが

    命に関わるコードを書く時の10個のルール
  • プログラミング経験がない経営者のためのソフトウェア開発 11の事実 | Social Change!

    今やどんなビジネスでもITが関係している。ITを支えているのはソフトウェアだ。あらゆるものがソフトウェアで実現される時代になった。そんな事業や生活に密接に関わるソフトウェアだが、その開発について知られていないことも多い。 とくに経営者がプログラミング経験がないことで、ソフトウェア開発のリーダーシップをとるときに的外れなマネジメントをしてしまうことがある。あまねく経営者がプログラミング経験があれば良いのかもしれないが、それは現実的ではない。 プログラミング経験がなくても、せめてソフトウェア開発の特性について知っておくと良さそうなこともあると思い、なるべく専門用語を使わずに稿を書いた。 プログラミングは製造ではなく、設計である いまだにソフトウェア開発を、ビルや家屋の建築に喩える人がいるし、工場でモノを製造するようにプログラムが作られると思っている人もいる。 ここが間違いのもとだ。ハードウェ

    プログラミング経験がない経営者のためのソフトウェア開発 11の事実 | Social Change!
  • 人気が下降しプログラマの求人も少ないプログラミング言語ワースト10は? 一方で仕事の多い言語は? CodementorXとCoding Dojoの調査結果

    人気が下降しプログラマの求人も少ないプログラミング言語ワースト10は? 一方で仕事の多い言語は? CodementorXとCoding Dojoの調査結果 仕事としてどんなプログラミング言語が扱えるかは、プログラマのスキルやキャリアにとって重要事項でしょう。 フリーランスエンジニアのマッチングサイト「CodementorX」は、GitHubTwitter、Stack Overlowなどのコミュニティサイトにおける人気や、同社の求人データの傾向などを基に、人気が下降し求人も少ないプログラミング言語を、記事「Worst Programming Languages to Learn in 2018 | Codementor Blog」で発表しています。 一方、プログラミング学習サイトの「Coding Dojo」は、求人サイトIndeed.comの情報を基に、仕事の多いプログラミング言語を「Th

    人気が下降しプログラマの求人も少ないプログラミング言語ワースト10は? 一方で仕事の多い言語は? CodementorXとCoding Dojoの調査結果
  • 読んで良かった基礎知識の入門書

    とあるエンジニア技術勉強法 (インターン学生向け) というスライドを先日 @iwashi86 が書かれていました。 インターン学生向けとありますが、新人プログラマ向けとしても素晴らしい資料だと思います。 ここでは「即、役立つわけではないが後から効いてくる」という「基礎知識」に絞って教材を紹介します。 目の前の仕事のために必要なことと並行して基礎知識を学ぶのは、長期的には良いと思います。 なお「基礎」==「簡単」というわけではなく、無理せず自分のペースで付き合うのがおすすめです。 自分で読んで、かつ、とても良いと思ったもののみを紹介するので、全分野をカバーしてはいません。 基礎にどのような分野があるかは新卒準備カレンダー2011や情報科学科カリキュラムが参考になります。 以下はどれも有名ななので、ググれば感想なども見つかるでしょう。 気になった、読もうと思うについては、ググるのも良い

    読んで良かった基礎知識の入門書
  • O'Reilly Japan - ベタープログラマ――優れたプログラマになるための38の考え方とテクニック

    プログラマとしてのキャリアをスタートすると、構文や設計を理解するだけでなく、その他の様々な事柄を理解し習得する必要があると気づきます。書は、優れたコードを作りだし、人々と効率的に働く生産性の高いプログラマになるための考え方とテクニックを38のテーマで紹介します。はじめに、コード1行1行の書き方、デバッグやエラー処理、コードの改善方法など開発現場でのコーディングを取り上げます。次にコードを単純に保つこと、コード変更やテスト、リリースなどソフトウェアを開発する際の考え方や心構えを扱います。個人的な活動として、継続的な学習方法と停滞を避けるための課題の見つけ方など、自らを成長させる方法も紹介。さらに組織の中で他の人とコミュニケーションを取りながら、効果的に働くための習慣を解説します。『Code Craft』の著者Pete Goodliffeが、自らの経験を元に「優れたプログラマ」になるための考

    O'Reilly Japan - ベタープログラマ――優れたプログラマになるための38の考え方とテクニック
  • 人間らしくコードレビューするには(パート1) | Yakst

    自動化することによりあなたはレビュアーとしてより価値のある貢献ができるようになります。importsの順序やソースコードのファイル名の命名規約などの問題を無視できるならば、機能上の誤りや可読性の問題といった、より関心のある問題にフォーカスすることができます。 オーサーもまた自動化の恩恵を受けます。ケアレスミスを見つけるのに1時間浪費することなく、即座に見つけられます。即座にフィードバックを受けられることで、関係のあることがオーサーの頭に残り、これにより学習が容易となり、修正コストが低くなります。それに加え、彼らが初歩的な誤りについて指摘を受ける必要がある場合、あなたから指摘を受けるよりコンピューターから指摘を受けたほうが彼らの自尊心の観点からはるかに気分がよいわけです。 これらの自動チェックはコードレビューのワークフローの中に入れましょう(例えば、Gitのコミット前のフックやGithub

  • コーディングに対する考え方を変える6つのプログラミングパラダイム | POSTD

    私は時折、コーディングに対する考え方を変えさせられるような、従来と非常に異なるプログラミング言語に出会います。記事では、その中でも特に気に入っている発見をいくつかご紹介したいと思います。 これは、先賢による「関数型プログラミングは世界を変える!」的な投稿ではありません。記事で挙げるのは、もっと「知る人ぞ知る」的なリストです。多くの読者の方にとって、以下の言語やパラダイムは聞いたことのないものが大半だと思いますので、私が経験したように、これらの新しい概念を学ぶ楽しさを感じていただければ幸いです。 注:私は以下の言語の多くに関して最低限の経験しかありません。その発想に引き込まれたのであって、専門的知識は持ち合わせていないため、訂正すべき点や誤りがあればどうぞご指摘ください。また、記事で取り上げていない新しいパラダイムや概念に出会った方は、ぜひお知らせください。 最新情報:記事が r/p

    コーディングに対する考え方を変える6つのプログラミングパラダイム | POSTD
  • 「自分でやる」という快感を追い続ける - あるプログラマーの成長戦略 -

    1. 「自分でやる」という快感を追い続ける - あるプログラマーの成長戦略 - Vol.01 Jan/28/2017 Isao Takahashi Travel Service Development Department, Rakuten Inc. http://travel.rakuten.co.jp/

    「自分でやる」という快感を追い続ける - あるプログラマーの成長戦略 -
  • 56歳からコードを書き始めて食べていく方法

    私は56歳、最近プログラミングを始めたんだ。 なぜかって?やりたいからに決まっているじゃないか。ようやく最近コツをつかめてきてね。でもコツをつかめたからといって簡単にはいかない。正直なかなか手こずっている。でもいいんだ。 アルゴリズムに挑戦して我を忘れるのは楽しいし、まだテストしたい事があって「あと数分だけ」と繰り返し自分に言い聞かせるのもいい。「今度こそ上手くいったかも、、」とドキドキしてから「やったぞ!ついに動いた。」となる瞬間も大好きだ。 でもこんな私には今まで趣味と呼べるものが何ひとつなかった。自分に見返りがない事に時間を費やすのは嫌だったんだ。ただ楽しみのためだけに何かをするのが好きじゃなかったのさ。休みの日にやる事といったら、ちょっとした小遣い稼ぎになるような事ばかりだった。 オーケー。もちろんコーディングだって小遣い稼ぎさ。上手くやればかなり稼げる。これだってあなたから見れば

    56歳からコードを書き始めて食べていく方法
  • 技術的負債の返済 – レガシーコードをリファクタリングで救うには | プログラミング | POSTD

    レガシーコードをうまく手なずけて、もう一歩成熟させるにはどうすればいいのでしょう?この投稿では、大規模なレガシーウェブアプリケーションと格闘してきた私が学んだことを紹介します。レガシーコードをうまく手なずけて 、もう一歩成熟させるにはどうすればいいのでしょう?この投稿では、大規模なレガシーウェブアプリケーションと格闘してきた私が学んだことを紹介します。 レガシーコードはリファクタリングで救出可能 耳寄りなお知らせがあります! リスたちは毎年何千もの木を植えてくれています 。まあ自分たちが隠したドングリのありかを忘れてしまった結果ですけどね。そしてもうひとつ。 あなたのプロジェクトも救出できる のです。 ボスから任されたプロジェクトが どんなに醜い泥まみれのレガシーコードだったとしても 、そこには 必ず 道があります。道は曲がりくねっていて、木陰にはモンスターが待ち構えていることでしょう。

    技術的負債の返済 – レガシーコードをリファクタリングで救うには | プログラミング | POSTD
  • 消えたプログラマの残したものは - megamouthの葬列

    システム開発の佳境に、開発メンバーが突然出社しなくなってしまう。 携帯にも連絡がつかず、3日ほど音信不通になったので、さすがに心配になった上司が大家と共に自宅を訪れると、夕日が差し込む部屋の真ん中に、当の人が何の表情も浮かべずにただ座っていたりする。 そういう事は大して珍しいことではないので、ある程度経験のあるIT業界人なら、同僚が「消えて」しまってもそれほど驚くことはない。 プログラマというのは、とかく「消えて」しまうものなのだ。と彼らは思っている。 「消えた」プログラマは、意識的にしろ無自覚にしろ自分の人生をちょっとばかり台無しにしながら、プロジェクトに虚無の穴を空けるわけだが、そうした「工程の穴」は他のメンバーが残業したり、派遣会社から来た代替の人員が埋めてしまったりする。ビジネス的には人月で数えられた我々の「数字」などというものはちょっとした帳尻あわせでなんとかなってしまうらしい

    消えたプログラマの残したものは - megamouthの葬列