2019年8月19日のブックマーク (4件)

  • 技術者に迫る「45歳の崖」、なぜ学ぼうとせず転職もしないのか

    ありがたいことに、この「極言暴論」は人月商売のITベンダーの技術者、そしてユーザー企業のIT部門の技術者から強い支持をいただいている。IT業界の多重下請け構造などの理不尽やユーザー企業の経営者のITに対する無理解などを無遠慮にバンバン批判するので、技術者からすると「よくぞ言ってくれた」となるだろう。 ただし、私は必ずしも技術者の味方というわけではない。だから「この人たちはいったい何を考えているのだろう。どうしてここまで愚かなのか」と思うときがある。その典型がブラックに近いような下請けITベンダーで酷使されながら、転職しようとしない人たちだ。空前の技術者不足で自身のキャリアや人生を大きく変えるチャンスが広がっているのに、多重下請け構造の底辺でくすぶっている。 「この会社はどうしようもない」「こんなところにいては自分の将来は無い」などと話す技術者に出会う場面がある。そんなとき、私は「だったら転

    技術者に迫る「45歳の崖」、なぜ学ぼうとせず転職もしないのか
    Ioannes
    Ioannes 2019/08/19
  • 無料で読めるITまんが 2019年版

    ネット上にはたくさんのIT系のコンテンツがあふれています。そのほとんどは文章として書かれていますが、一部にはマンガの形で面白く分かりやすくしたものもあります。 ここでは、マンガ化されたITコンテンツを集めてみました。毎年夏の恒例企画、ITまんがの2019年版です。 今年のトピックは新着マンガの1つ目と2つ目で紹介している、AWSとレッドハットが自社製品の解説をしているマンガです。企業向けのビジネスが中心のこの2社がマンガという手法を使ったことは注目に値するでしょう。また3つ目と4つ目で紹介している、すがやみつる氏のマンガは懐かしい思いで読む読者も多いのではないでしょうか。 もしここに掲載していないITまんがをご存じでしたら、Twitter(@publickey)などで教えてください。毎年更新する予定です。 2019年版の新着ITまんが New! 七転び八起きのAWS開発日記 新米プログラマ

    無料で読めるITまんが 2019年版
    Ioannes
    Ioannes 2019/08/19
  • 末尾再帰をループにできないRustプログラムの例 - 簡潔なQ

    概要: 生存期間の関係で、ループでは書けないが末尾再帰では書けるアルゴリズムの例を挙げる。 単方向リンクリスト 次のような単純なリンクリストを考える。 struct List<T> { root: Option<Box<Node<T>>>, } struct Node<T> { value: T, next: Option<Box<Node<T>>>, } backの実装 単方向リンクリストの末尾要素の取得は O(n) である。これは次のように書くことができる。 impl<T> List<T> { fn back(&self) -> Option<&T> { let mut node = if let Some(ref b) = self.root { b.as_ref() } else { return None; }; while let Some(ref b) = node.next

    末尾再帰をループにできないRustプログラムの例 - 簡潔なQ
    Ioannes
    Ioannes 2019/08/19
  • 僕たちがテスト駆動開発をする理由 - Qiita

    追記(2019/11/2) 今回の記事で深く扱えなかったリファクタリングに関する記事を書きました。 「汚いコード、綺麗なコードって何?」リファクタリングを考えてみる テスト駆動開発とは テスト駆動開発とは、「テスト => 実装 => リファクタリング」という流れを何回も何回も繰り返してプロダクトを成長させていく開発手法です。 もう少し詳しく説明します。次の3段階を繰り返します。 1. テストケースを考えるフェーズ これは設計を考えることに等しいフェーズです。このオブジェクトがどんな機能を持っていて欲しいか、どういう風に使われるか、そしてその時にどんな結果を返して欲しいか、という思いをテストケースに込めます。 重要なのはこの時に実装のことは一切考えず、どう使われるかを考えることです。 2. 実装するフェーズ テストをパスするためだけの最低限度の実装をします。この時も抽象化やキレイなコードなど

    僕たちがテスト駆動開発をする理由 - Qiita
    Ioannes
    Ioannes 2019/08/19